IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
FieldSolverBase.h
Go to the documentation of this file.
1#ifndef IPPL_FIELD_SOLVER_BASE_H
2#define IPPL_FIELD_SOLVER_BASE_H
3
4#include <memory>
5
7#include "datatypes.h"
8
9// Define the FieldSolverBase class
10namespace ippl {
11 template <typename T, unsigned Dim>
13 private:
14 std::string stype_m;
16
17 public:
18 FieldSolverBase(std::string solver)
19 : stype_m(solver) {}
20
21 virtual void initSolver() = 0;
22
23 virtual void runSolver() = 0;
24
25 virtual ~FieldSolverBase() = default;
26
27 std::string& getStype() { return stype_m; }
28
29 void setStype(std::string& solver) { stype_m = solver; }
30
32
33 void setSolver(Solver_t<T, Dim>& solver) { solver_m = solver; }
34 };
35} // namespace ippl
36#endif
VariantFromConditionalTypes< CGSolver_t< T, Dim >, FFTSolver_t< T, Dim >, FFTTruncatedGreenSolver_t< T, Dim >, OpenSolver_t< T, Dim >, NullSolver_t< T, Dim > > Solver_t
Definition datatypes.h:68
Definition Archive.h:20
void setSolver(Solver_t< T, Dim > &solver)
Solver_t< T, Dim > & getSolver()
Solver_t< T, Dim > solver_m
virtual void initSolver()=0
std::string & getStype()
FieldSolverBase(std::string solver)
virtual void runSolver()=0
virtual ~FieldSolverBase()=default
void setStype(std::string &solver)