WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dt_calc::integrating_controller Class Reference

#include <integrating_controller.h>

Inheritance diagram for wxm::dt_calc::integrating_controller:
wxm::dt_calc::time_stepper_base WmHostAction WxStepper WxObject

Public Member Functions

 integrating_controller (const WmConstOpaquePtr &parent_solver)
 
void setup (const WxCryptSet &wxc) override
 Setup object using supplied crypset.
 
bool allow_retry () const override
 
TimestepDecision test_dt (const WxStepperStatus &stab) override
 Test whether the provided step status is acceptable, and recommend a timestep to take.
 
- Public Member Functions inherited from wxm::dt_calc::time_stepper_base
 time_stepper_base (const WmConstOpaquePtr &parent_solver)
 
void setup (const WxCryptSet &wxc) override
 Setup object using supplied crypset.
 
bool needsDomain () const override
 Return true if this updater needs a domain to work on.
 
WxStepperStatus step () override
 not used, just here to have the WxStepper interface
 
void typeCheck () override
 not used, just here to implement WmHostAction interface
 
virtual bool allow_retry () const
 
virtual TimestepDecision test_dt (const WxStepperStatus &status)=0
 Test whether the provided step status is acceptable, and recommend a timestep to take.
 
- Public Member Functions inherited from WmHostAction
 ~WmHostAction () override
 Destroy hostaction.
 
void setup (const WxCryptSet &wxc) override
 Setup hostaction object using supplied cryptset.
 
std::vector< std::string > readVarNames () const
 Get names of all read variables used.
 
std::vector< std::string > writeVarNames () const
 Get names of all write variables used.
 
unsigned numExpectedReadVars () const
 Return number of read variables expected by this hostaction, or minimum number required for hostactions allowing variable number of read vars.
 
unsigned numExpectedWriteVars () const
 Return number of write variables expected by this hostaction, or minimum number required for hostactions allowing variable number of write vars.
 
bool allowsVariableReadVars () const
 Does this hostaction allow variable number of read variables?
 
bool allowsVariableWriteVars () const
 Does this hostaction allow variable number of write variables?
 
virtual bool needsDomain () const
 Return true if this updater needs a domain to work on.
 
void setParentStepHandler (WmExecutionStep< WmHostAction > *parentStepHandler)
 Set enclosing step handler TODO: convert this to being a friend function or something.
 
unsigned numActualReadVars () const
 Get number of actual read variables used when user calls this hostaction.
 
unsigned numActualWriteVars () const
 Get number of actual write variables used when user calls this hostaction.
 
const WmDomaingetDomain () const
 Get (unstructured) domain on which host action works.
 
std::vector< std::string > getWriteVarList () const
 Returns list of write variables for this hostaction.
 
std::vector< std::string > getReadVarList () const
 Returns list of read variables for this hostaction.
 
const WmSolverBasegetParent () const
 Get parent solver object.
 
- Public Member Functions inherited from WxStepper
 WxStepper ()
 Create a new stepper.
 
virtual ~WxStepper ()
 Dtor: destroy object.
 
void setDt (time_t dt)
 Set time-step for the step method.
 
time_t getDt () const
 Get time-step for the step method.
 
void setTimeData (const WxStepper &timeData)
 Set time data for the step method.
 
void setCurrentTime (time_t tcurr)
 Set current time.
 
time_t incrementCurrentTime (time_t tadd)
 Increment current time.
 
time_t getCurrentTime () const
 Get the current time.
 
void setCurrentFrame (int frame)
 Set current frame number.
 
int incrementCurrentFrame ()
 Increment current frame number.
 
int getCurrentFrame () const
 Get the current frame number.
 
virtual WxStepperStatus step ()=0
 Advance the stepper by assigned time step.
 
virtual WxStepperStatus end ()
 Perform actions only done at simulation end.
 
- Public Member Functions inherited from WxObject
virtual ~WxObject ()
 Dtor: destroy object.
 
void setIo (WxIoBase &io)
 Set the I/O pointer for use in object.
 
void setMsg (WxMsgBase &msg)
 Set the msg pointer for use in object.
 
WxIoBasegetIo ()
 Return reference to I/O object.
 
const WxIoBasegetIo () const
 Return constant reference to I/O object.
 
WxMsgBasegetMsg ()
 Return reference to msg object.
 
const WxMsgBasegetMsg () const
 Return const reference to msg object.
 
virtual void setup (const WxCryptSet &wxc)
 Setup object using supplied crypset.
 
virtual void init ()
 Initialize the object.
 
virtual void finishBuild ()
 Finish building the object.
 
virtual void load (WxIoBase &io, const WxIoNodeType &grpNode)
 Load object from file.
 
virtual void dump (WxIoBase &io, WxIoNodeType &grpNode) const
 Dump object to file.
 
virtual std::string name () const
 Get name of object.
 
void setName (const std::string &nm)
 Set object's name.
 

Public Attributes

double max_dt
 Maximum timestep allowed.
 
double max_growth
 Maximum amount the timestep is allowed to grow in a single timestep.
 
double kappa
 I-controller parameter; typically should be 0.9.
 
double error_tol
 what error tolerance level is acceptable.
 
double max_error
 What max error value is allowed before the controller forces a retry.
 
double alpha
 I-controller parameter: \(\alpha = \frac{k_I}{p}\), where \(k_I\) is the integral constant and \(p\) is the order of accuracy of the temporal discretization method's error estimate.
 
bool stability_limit
 True if the controller should take the minimum of the error-based timestep and stability timestep.
 
- Public Attributes inherited from wxm::dt_calc::time_stepper_base
real init_dt
 

Additional Inherited Members

- Public Types inherited from WxStepper
typedef real time_t
 Time scalar data type.
 
- Protected Member Functions inherited from WmHostAction
 WmHostAction (const WmConstOpaquePtr &parent_solver)
 Create new hostaction.
 
const std::type_info & getVarType (const std::string &variableName) const
 Get a variable types from the parent solver.
 
const wxm::variable::variable_tgetReadVar (unsigned pos) const
 Get a reference to a read variable.
 
wxm::variable::variable_tgetWriteVar (unsigned pos) const
 Get a reference to a write variable.
 
virtual void typeCheck ()=0
 Check that the provided variables meet the expected variable types for this hostaction.
 
- Protected Member Functions inherited from WxObject
 WxObject ()
 Create object, that will be initialized subsequently.
 
 WxObject (const std::string &name)
 Create object with given name bypassing object setup phase Protected because there is no reason to have a WxObject directly, as it is meant to be a parent class.
 
- Protected Attributes inherited from WmHostAction
bool _allReadVarsSameType
 
bool _allWriteVarsSameType
 
bool _allowsVariableReadVars
 
bool _allowsVariableWriteVars
 
bool _WriteVarConditionHasBeenSet
 
bool _ReadVarConditionHasBeenSet
 
unsigned _numExpectedReadVars
 
unsigned _numExpectedWriteVars
 

Constructor & Destructor Documentation

◆ integrating_controller()

wxm::dt_calc::integrating_controller::integrating_controller ( const WmConstOpaquePtr parent_solver)
inline

Member Function Documentation

◆ allow_retry()

bool wxm::dt_calc::integrating_controller::allow_retry ( ) const
inlineoverridevirtual

Reimplemented from wxm::dt_calc::time_stepper_base.

◆ setup()

void wxm::dt_calc::integrating_controller::setup ( const WxCryptSet wxc)
overridevirtual

Setup object using supplied crypset.

This method should read in parameters needed to initialize it. May only be called once.

Parameters
wxcCryptset using which the object is set up.

Reimplemented from WxObject.

◆ test_dt()

TimestepDecision wxm::dt_calc::integrating_controller::test_dt ( const WxStepperStatus status)
overridevirtual

Test whether the provided step status is acceptable, and recommend a timestep to take.

It is the job of this method to reduce over all MPI ranks.

Parameters
statusThe combination of WxStepperStatus instances returned by all of the host actions which ran on this rank, during the current time step.
Returns
a decision on whether this timestep was successful, and the dt of the next timestep that should be taken.

Implements wxm::dt_calc::time_stepper_base.

Member Data Documentation

◆ alpha

double wxm::dt_calc::integrating_controller::alpha

I-controller parameter: \(\alpha = \frac{k_I}{p}\), where \(k_I\) is the integral constant and \(p\) is the order of accuracy of the temporal discretization method's error estimate.

For the Dormand-Prince method, \(\alpha = \frac{1}{p+1}\)

◆ error_tol

double wxm::dt_calc::integrating_controller::error_tol

what error tolerance level is acceptable.

It is a user's responsibility to determine what type of error tolerance to use based on subsolvers.

◆ kappa

double wxm::dt_calc::integrating_controller::kappa

I-controller parameter; typically should be 0.9.

◆ max_dt

double wxm::dt_calc::integrating_controller::max_dt

Maximum timestep allowed.

◆ max_error

double wxm::dt_calc::integrating_controller::max_error

What max error value is allowed before the controller forces a retry.

◆ max_growth

double wxm::dt_calc::integrating_controller::max_growth

Maximum amount the timestep is allowed to grow in a single timestep.

◆ stability_limit

bool wxm::dt_calc::integrating_controller::stability_limit

True if the controller should take the minimum of the error-based timestep and stability timestep.


The documentation for this class was generated from the following file: