WARPXM v1.10.0
Loading...
Searching...
No Matches
wmsubsolver.h
Go to the documentation of this file.
1#ifndef wmsubsolver_h
2#define wmsubsolver_h
3
4// Wx lib includes
5#include "lib/wxobject.h"
6
7// STL includes
8#include <string>
9#include <typeinfo>
10#include <vector>
11
12// forward declarations
13namespace wxm
14{
15namespace variable
16{
17class variable_t;
18}
19} // namespace wxm
20class WmVariable;
21class WxCryptSet;
22class WmSolverBase;
24
25class WmDomain;
26
39class WmSubSolver : public WxObject
40{
41public:
46 typedef std::vector<std::string> subsolver_crypt_args_t;
47
49 virtual ~WmSubSolver();
50
56 virtual void setup(const WxCryptSet& wxc);
57
63 const WmSolverBase& getParent() const;
64
73 wxm::variable::variable_t& getVariableByName(const std::string& variableName) const;
74
81 const WmDomain& getDomain() const;
82
83protected:
89 WmSubSolver(const WmConstOpaquePtr& parent_solver);
90
97 virtual void typeCheck() = 0;
98
99private:
100 const WmSolverBase& _parent;
101};
102
107#endif // wmsubsolver_h
Opaque Pointer object that carries the referenced data type, but does not expose this payload type as...
Definition: wmopaqueptr.h:81
Definition: wmdomain.h:35
A base class for solvers in WARPM.
Definition: wmsolverbase.h:35
Base class for sub-solvers in WARPXM compute kernel system.
Definition: wmsubsolver.h:40
virtual void typeCheck()=0
Check that the provided variables meet the expected variable types for this subsolver.
const WmDomain & getDomain() const
Get the domain for the system.
wxm::variable::variable_t & getVariableByName(const std::string &variableName) const
Retrieves a variable registered with the parent solver that matches the specified name.
virtual void setup(const WxCryptSet &wxc)
Setup subsolver object using supplied cryptset.
WmSubSolver(const WmConstOpaquePtr &parent_solver)
Create new subsolver.
std::vector< std::string > subsolver_crypt_args_t
Arguments to subsolver calls that appear in the crypt set sequence E.g.
Definition: wmsubsolver.h:46
virtual ~WmSubSolver()
Destroy subsolver.
const WmSolverBase & getParent() const
Get parent solver object.
Base class for variables that store one or more components of data.
Definition: wmvariable.h:31
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
WxObject is a base class for WarpX classes which need to go through a creation/destruction cycle with...
Definition: wxobject.h:54
Definition: variable.h:22
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8