24class WmTaskGraphProcessor;
93 VariableMap_t::const_iterator i;
94 i = _variables.find(
name);
95 if (i != _variables.end())
102 wxe <<
"Variable " <<
name <<
" not found";
118 VariableMap_t::iterator i;
119 VariableMap_t* p_variables =
const_cast<VariableMap_t*
>(
123 i = p_variables->find(
name);
124 if (i != p_variables->end())
130 WxExcept wxe(
"WmSolver::getVar : ");
131 wxe <<
"Variable " <<
name <<
" not found";
152 SequencedGroupMap_t::iterator i;
153 i = _sequencedGroups.find(
name);
154 if (i != _sequencedGroups.end())
161 wxe <<
"WmSequencedGroup " <<
name <<
" not found";
190 return _solverParameters;
226 void preRedoPerStep();
270 std::pair<TimestepConstraint, TimestepDecision> advance(
real tend);
273 typedef std::map<std::string, wxm::variable::variable_t*> VariableMap_t;
274 typedef std::pair<std::string, wxm::variable::variable_t*> VariablePair_t;
277 typedef std::map<std::string, WmSubSolver*> SubSolverMap_t;
278 typedef std::pair<std::string, WmSubSolver*> SubSolverPair_t;
281 typedef std::map<std::string, WmHostAction*> HostActionMap_t;
282 typedef std::pair<std::string, WmHostAction*> HostActionPair_t;
285 typedef std::map<std::string, WmSequencedGroup*> SequencedGroupMap_t;
286 typedef std::pair<std::string, WmSequencedGroup*> SequencedGroupPair_t;
289 solverParameters_t _solverParameters;
295 bool flexible_writeout;
299 unsigned _startFrame;
304 VariableMap_t _variables;
306 SubSolverMap_t _subSolvers;
309 HostActionMap_t _hostActions;
312 SequencedGroupMap_t _sequencedGroups;
329 void add_host_actions(std::vector<WmHostAction*>& g,
const std::string&
name);
332 std::vector<WmHostAction*> _startOnlyG;
334 std::vector<WmHostAction*> _endOnlyG;
336 std::vector<WmHostAction*> _perStepG;
338 std::vector<WmHostAction*> _preRedoPerStepG;
340 std::vector<WmHostAction*> _restartG;
Manages information about dt tried first, dt actually taken, and dt suggested for the next timestep,...
Definition: timestep_status.h:21
Definition: wmdomain.h:35
The WmHostAction class is a base class for sub-solvers in the WARPXM system.
Definition: wmhostaction.h:35
Represents a set of events that must be executed serially in the specified sequence.
Definition: wmsequencedgroup.h:23
Top level class for WARPXM simulations.
Definition: wmsimulation.h:28
A base class for solvers in WARPM.
Definition: wmsolverbase.h:35
Provides many vital functionality to building and executing a sequence of simulation code.
Definition: wmsolver.h:36
WmSubSolver * getSubSolver(const std::string &name) const
Return pointer to subsolver.
virtual void setup(const WxCryptSet &wxc)
Setup the subsolver using cryptset.
WmSolver(const WmSimulation *parentSim)
Create solver Subsequent setup() call still required.
const wxm::variable::variable_t & getConstVar(const std::string &name) const
Return constant reference to a read variable.
Definition: wmsolver.h:91
wxm::variable::variable_t & getVar(const std::string &name) const
Return reference to a variable.
Definition: wmsolver.h:116
const solverParameters_t & getSolverParameters() const
Return the solver parameters.
Definition: wmsolver.h:188
void setStartFrame(unsigned frame)
Set frame from which to start the simulation.
Definition: wmsolver.h:56
virtual void solve()
Run solver.
void presolve()
Run any pre-solve initialization.
void step_dt(real limit_dt=0)
Tries to steps a single time step dt.
const std::type_info & getVarType(const std::string &name) const
Return a type_info reference for a variable known to the solver.
const WmDomain & getDomain() const
Return unstructured multi-subdomain domain.
WmSequencedGroup & getSequencedGroup(const std::string &name)
Return reference WmSequencedGroup.
Definition: wmsolver.h:150
virtual ~WmSolver()
Destroy solver.
const std::vector< WmHostAction * > & getPerStepGroup() const
Definition: wmsolver.h:198
const std::vector< WmHostAction * > & getStartOnlyGroup() const
Definition: wmsolver.h:193
Base class for sub-solvers in WARPXM compute kernel system.
Definition: wmsubsolver.h:40
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
Provides an abstract interface for access to hierachical datasets.
Definition: wxiobase.h:25
virtual std::string name() const
Get name of object.
Represents important parameters for the efficacy of a completing simulation step.
Definition: wxstepperstatus.h:19
Definition: time_stepper_base.h:12
wxm::lib::Except is the class to use for creating and throwing exceptions.
Definition: wxexcept.h:31
Definition: variable.h:22
Definition: wmsolverbase.h:38
Provides a means for derived messengers to return implimentation specific message status flags and da...
Definition: wxiotmpl.h:23
#define real
Definition: wmoclunstructuredreconstruction.h:11