|
chombo-discharge
|
TimeStepper for advancing a system of N coupled ODEs on an AMR mesh. More...
#include <CD_MeshODEStepper.H>


Public Member Functions | |
| MeshODEStepper () | |
| Constructor. Does nothing. | |
| MeshODEStepper (const MeshODEStepper< N > &)=delete | |
| Copy constructor. Disallowed. | |
| MeshODEStepper (const MeshODEStepper< N > &&)=delete | |
| Move constructor. Disallowed. | |
| virtual | ~MeshODEStepper () |
| Destructor. | |
| MeshODEStepper & | operator= (const MeshODEStepper< N > &)=delete |
| Copy assignment operator. Disallowed. | |
| MeshODEStepper & | operator= (const MeshODEStepper< N > &&)=delete |
| Move assignment operator. Disallowed. | |
| void | setupSolvers () override |
| Instantiate the ODE solver. | |
| void | allocate () override |
| Allocate storage for solvers and time stepper. | |
| void | initialData () override |
| Fill problem with initial data. | |
| void | postInitialize () override |
| Perform any post-initialization steps. | |
| void | postCheckpointSetup () override |
| Post checkpoint operations. | |
| void | registerRealms () override |
| Register realms. Primal is the only realm we need. | |
| void | registerOperators () override |
| Register operators. | |
| void | parseOptions () |
| Parse options. | |
| void | parseRuntimeOptions () override |
| Parse runtime options. | |
| virtual int | getNumberOfPlotVariables () const override |
| Get the number of plot variables for this time stepper. | |
| virtual Vector< std::string > | getPlotVariableNames () const override |
| Get plot variable names. | |
| virtual void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string &a_outputRealm, const int a_level) const override |
| Write plot data to output holder. | |
| virtual Real | computeDt () override |
| Compute a time step. | |
| virtual Real | advance (const Real a_dt) override |
| Advancement method. Swaps between various kernels. | |
| virtual void | synchronizeSolverTimes (const int a_step, const Real a_time, const Real a_dt) override |
| Synchronize solver times and time steps. | |
| virtual void | printStepReport () override |
| Print a step report. | |
| virtual void | preRegrid (const int a_lmin, const int a_oldFinestLevel) override |
| Perform pre-regrid operations. | |
| virtual void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override |
| Time stepper regrid method. | |
| virtual void | postRegrid () override |
| Perform post-regrid operations. | |
Public Member Functions inherited from TimeStepper | |
| TimeStepper () | |
| Default constructor (does nothing) | |
| virtual | ~TimeStepper () |
| Default destructor (does nothing) | |
| TimeStepper (const TimeStepper &)=delete | |
| Disallow copy construction. | |
| TimeStepper & | operator= (const TimeStepper &)=delete |
| Disallow copy assignment. | |
| TimeStepper (TimeStepper &&)=default | |
| Allow move construction. | |
| TimeStepper & | operator= (TimeStepper &&)=default |
| Allow move assignment. | |
| void | setAmr (const RefCountedPtr< AmrMesh > &a_amr) |
| Set AmrMesh. | |
| void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry) |
| Set the computational geometry. | |
| virtual void | prePlot () |
| An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY before writing the plot file. | |
| virtual void | postPlot () |
| An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY after writing the plot file. | |
| virtual Vector< long int > | getCheckpointLoads (const std::string &a_realm, int a_level) const |
| Get computational loads to be checkpointed. | |
| virtual bool | needToRegrid () |
| Function which can have Driver do regrids at arbitrary points in the simulation. | |
| bool | keepGoing () const |
| Query whether the time stepper wants to continue stepping. | |
| virtual bool | loadBalanceThisRealm (const std::string &a_realm) const |
| Load balancing query for a specified realm. If this returns true for a_realm, load balancing routines will be called during regrids. | |
| virtual void | loadBalanceBoxes (Vector< Vector< int > > &a_procs, Vector< Vector< Box > > &a_boxes, const std::string &a_realm, const Vector< DisjointBoxLayout > &a_grids, int a_lmin, int a_finestLevel) |
| Load balance grid boxes for a specified realm. | |
Protected Member Functions | |
| virtual void | parseIntegrator () |
| Parse integrator. | |
| virtual void | parseVerbosity () |
| Parse chattiness. | |
| virtual void | parseProblem () |
| Parse the problem type. | |
| virtual void | advanceEuler (const Real a_dt) |
| Advance using the explicit Euler rule. | |
| virtual void | advanceRK2 (const Real a_dt) |
| Advance using a second-order Runge-Kutta method. | |
| virtual void | advanceRK4 (const Real a_dt) |
| Advance using a fourth order Runge-Kutta method. | |
Protected Attributes | |
| IntegrationAlgorithm | m_algorithm |
| Integration algorithm. | |
| Real | m_dt |
| Time step to use. | |
| std::string | m_realm |
| Realm where solver and m_velocity lives. | |
| phase::which_phase | m_phase |
| Phase (gas/solid) where the solver lives. | |
| RefCountedPtr< MeshODESolver< N > > | m_solver |
| MeshODE solver holding the solution on the AMR hierarchy. | |
| std::function< std::array< Real, N >(const std::array< Real, N > y, Real t)> | m_rhsFunction |
| Right-hand side function \( \mathbf{f}(\mathbf{y}, t) \) evaluated point-wise on the mesh. | |
| std::function< std::array< Real, N >(const RealVect &a_position)> | m_initialData |
| Callable that returns the initial state \( \mathbf{y}_0(\mathbf{x}) \) at a given position. | |
Protected Attributes inherited from TimeStepper | |
| int | m_verbosity |
| Class verbosity. | |
| int | m_timeStep |
| Time step. | |
| Real | m_time |
| TIme. | |
| Real | m_dt |
| Previous time step size. | |
| bool | m_keepGoing |
| If false, Driver will stop the time loop after the current step. | |
| RefCountedPtr< AmrMesh > | m_amr |
| AmrMesh. | |
| RefCountedPtr< ComputationalGeometry > | m_computationalGeometry |
| Computational geometry. | |
TimeStepper for advancing a system of N coupled ODEs on an AMR mesh.
At each time step the right-hand side \( \mathbf{f}(\mathbf{y}, t) \) is evaluated point-wise on the mesh and the ODE \( \dot{\mathbf{y}} = \mathbf{f}(\mathbf{y},t) \) is integrated with the chosen algorithm (Euler, RK2, or RK4). The template parameter N sets the number of solution components stored per cell.
The RHS function and initial data function must be set by the derived application before Driver calls setupSolvers().
Advancement method. Swaps between various kernels.
| [in] | a_dt | Time step to be used for advancement |
Implements TimeStepper.
Advance using the explicit Euler rule.
| [in] | a_dt | Advanced time step |
Advance using a second-order Runge-Kutta method.
| [in] | a_dt | Advanced time step |
Advance using a fourth order Runge-Kutta method.
| [in] | a_dt | Advanced time step |
Allocate storage for solvers and time stepper.
Implements TimeStepper.
Compute a time step.
Implements TimeStepper.
Get the number of plot variables for this time stepper.
This is necessary because Driver, not TimeStepper, is responsible for allocating the necessary memory.
Implements TimeStepper.
|
overridevirtual |
Get plot variable names.
Implements TimeStepper.
Fill problem with initial data.
Implements TimeStepper.
Parse runtime options.
Reimplemented from TimeStepper.
Post checkpoint operations.
Implements TimeStepper.
Perform any post-initialization steps.
Implements TimeStepper.
Perform post-regrid operations.
This includes all operations to be done AFTER interpolating data to new grids.
Implements TimeStepper.
|
overridevirtual |
Perform pre-regrid operations.
| [in] | a_lmin | The coarsest level that changes |
| [in] | a_oldFinestLevel | The finest level before the regrid. |
Implements TimeStepper.
|
inlineoverridevirtual |
Print a step report.
This is called by Driver after time step. The routine can be used to display use information about the simulation progress. Not used by this class.
Implements TimeStepper.
Register realms. Primal is the only realm we need.
Implements TimeStepper.
|
overridevirtual |
Time stepper regrid method.
| [in] | a_lmin | The coarsest level that changed. |
| [in] | a_oldFinestLevel | The finest level before the regrid. |
| [in] | a_newFinestLevel | The finest level after the regrid. |
Implements TimeStepper.
Instantiate the ODE solver.
Implements TimeStepper.
|
overridevirtual |
Synchronize solver times and time steps.
| [in] | a_step | Current time step number. |
| [in] | a_time | Current simulation time in seconds. |
| [in] | a_dt | Time step that was used. |
Implements TimeStepper.
|
overridevirtual |
Write plot data to output holder.
| [in,out] | a_output | Output data holder. |
| [in,out] | a_icomp | Starting component in a_output; incremented on exit. |
| [in] | a_outputRealm | Realm where a_output lives. |
| [in] | a_level | Grid level. |
Implements TimeStepper.