|
chombo-discharge
|
TimeStepper for advancing tracer particles in a prescribed velocity field on an AMR mesh. More...
#include <CD_TracerParticleStepper.H>


Public Member Functions | |
| TracerParticleStepper () | |
| Constructor. Does nothing. | |
| TracerParticleStepper (const TracerParticleStepper< P > &a_other)=delete | |
| Copy constructor. Disallowed. | |
| TracerParticleStepper (const TracerParticleStepper< P > &&a_other)=delete | |
| Move constructor. Disallowed. | |
| virtual | ~TracerParticleStepper () |
| Destructor. | |
| TracerParticleStepper & | operator= (const TracerParticleStepper< P > &a_other)=delete |
| Copy assignment operator. Disallowed. | |
| TracerParticleStepper & | operator= (const TracerParticleStepper< P > &&a_other)=delete |
| Move assignment operator. Disallowed. | |
| void | setupSolvers () override |
| Instantiate the tracer particle 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. Not needed for this time stepper. | |
| void | postCheckpointSetup () override |
| Post checkpoint operations. Not needed for this time stepper. | |
| 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. | |
| int | getNumberOfPlotVariables () const override |
| Get number of plot variables for this physics module. | |
| Vector< std::string > | getPlotVariableNames () const override |
| Get plot variable names. | |
| void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string &a_realm, const int a_level) const override |
| Write plot data to output holder. | |
| virtual Real | computeDt () override |
| Compute a time step to be used by Driver. | |
| 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 | initialParticles () |
| Fill initial particles. | |
| virtual void | setVelocity () |
| Set the velocity on the mesh. | |
| virtual void | parseIntegrator () |
| Parse integration algorithm from input script. | |
| virtual void | parseVelocityField () |
| Parse velocity field. | |
| virtual void | parseInitialConditions () |
| Parse initial conditions. | |
| virtual void | advanceParticlesEuler (const Real a_dt) |
| Advance particles using explicit Euler rule. | |
| virtual void | advanceParticlesRK2 (const Real a_dt) |
| Advance particles using second order Runge-Kutta. | |
| virtual void | advanceParticlesRK4 (const Real a_dt) |
| Advance particles using fourth order Runge-Kutta. | |
Protected Attributes | |
| IntegrationAlgorithm | m_algorithm |
| Integration algorithm. | |
| VelocityField | m_velocityField |
| Velocity field type. | |
| std::string | m_realm |
| Realm where solver and m_velocity lives. | |
| phase::which_phase | m_phase |
| Phase (gas/solid) where the solver lives. | |
| RefCountedPtr< TracerParticleSolver< P > > | m_solver |
| Tracer particle solver holding particle positions and weights on the AMR hierarchy. | |
| EBAMRCellData | m_velocity |
| Cell-centred velocity field used to advect particles. | |
| Real | m_cfl |
| CFL number used to compute the advective time step. | |
| size_t | m_numInitialParticles |
| Number of particles placed uniformly at initialization. | |
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 tracer particles in a prescribed velocity field on an AMR mesh.
The template parameter P is the concrete particle type. It must satisfy the same requirements as TracerParticleSolver and additionally expose templated accessors of the form RealVect& P::vector<size_t>() for storing intermediate Runge-Kutta stage positions. TracerParticle<0, M> with M >= 4 is the canonical choice.
A built-in velocity field (diagonal or rotational) is set via the input script; user applications can override setVelocity() to supply an arbitrary field.
|
delete |
Copy constructor. Disallowed.
| [in] | a_other | Other |
|
delete |
Move constructor. Disallowed.
| [in] | a_other | Other |
Advancement method. Swaps between various kernels.
| [in] | a_dt | Time step to be used for advancement |
Implements TimeStepper.
Advance particles using explicit Euler rule.
| [in] | a_dt | Advanced time step |
Advance particles using second order Runge-Kutta.
| [in] | a_dt | Advanced time step |
Advance particles using fourth order Runge-Kutta.
| [in] | a_dt | Advanced time step |
Allocate storage for solvers and time stepper.
Implements TimeStepper.
Compute a time step to be used by Driver.
Implements TimeStepper.
|
inlineoverridevirtual |
Get number of plot variables for this physics module.
Implements TimeStepper.
|
inlineoverridevirtual |
Fill problem with initial data.
Implements TimeStepper.
|
delete |
Move assignment operator. Disallowed.
| [in] | a_other | Other |
|
delete |
Copy assignment operator. Disallowed.
| [in] | a_other | Other |
Parse runtime options.
Reimplemented from TimeStepper.
|
inlineoverridevirtual |
Post checkpoint operations. Not needed for this time stepper.
Implements TimeStepper.
|
inlineoverridevirtual |
Perform any post-initialization steps. Not needed for this time stepper.
Implements TimeStepper.
Perform post-regrid operations.
This includes all operations to be done AFTER interpolating data to new grids.
Implements TimeStepper.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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 tracer particle solver.
Implements TimeStepper.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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_realm | Realm where a_output lives. |
| [in] | a_level | Grid level. |
Implements TimeStepper.