deltaFlow
SolverFactory.H
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Saud Zahir
3 *
4 * This file is part of deltaFlow.
5 *
6 * deltaFlow is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * deltaFlow is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with deltaFlow. If not, see
18 * <https://www.gnu.org/licenses/>.
19 */
20
27#ifndef SOLVER_FACTORY_H
28#define SOLVER_FACTORY_H
29
30#include <memory>
31
32#include "ISolver.H"
33
34enum class SolverType;
35
40class SolverFactory final {
41 public:
47 static std::unique_ptr<ISolver> create(SolverType type);
48};
49
50#endif
SolverType
Types of solvers supported by deltaFlow.
Definition Argparse.H:43
Abstraction over power-flow solvers (Open/Closed Principle).
Creates ISolver instances for a given SolverType.
static std::unique_ptr< ISolver > create(SolverType type)
Construct a concrete solver for the given solver type.