13#ifndef CD_TRACERPARTICLESTEPPER_H
14#define CD_TRACERPARTICLESTEPPER_H
21#include <CD_NamespaceHeader.H>
158 writeCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
const override;
168 readCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
override;
195 const std::string& a_realm,
196 const int a_level)
const override;
211 advance(
const Real a_dt)
override;
237 preRegrid(
const int a_lmin,
const int a_oldFinestLevel)
override;
246 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel)
override;
350#include <CD_NamespaceFooter.H>
Declaration of main (abstract) time stepper class.
Documentation of Physics/TracerParticle namespace.
Declaration of a solver class that advances tracer particles.
Implementation of CD_TracerParticleStepper.H.
SoA payload for tracer particles (velocity + Runge-Kutta stage scratch)
TimeStepper for advancing tracer particles in a prescribed velocity field on an AMR mesh.
Definition CD_TracerParticleStepper.H:56
std::string m_realm
Realm where solver and m_velocity lives.
Definition CD_TracerParticleStepper.H:269
void registerRealms() override
Register realms. Primal is the only realm we need.
Definition CD_TracerParticleStepperImplem.H:95
virtual void parseInitialConditions()
Parse initial conditions.
Definition CD_TracerParticleStepperImplem.H:202
TracerParticleStepper(const TracerParticleStepper< P > &a_other)=delete
Copy constructor. Disallowed.
RefCountedPtr< TracerParticleSolver< P > > m_solver
Tracer particle solver holding particle positions and weights on the AMR hierarchy.
Definition CD_TracerParticleStepper.H:279
void parseRuntimeOptions() override
Parse runtime options.
Definition CD_TracerParticleStepperImplem.H:133
void initialData() override
Fill problem with initial data.
Definition CD_TracerParticleStepperImplem.H:79
void registerOperators() override
Register operators.
Definition CD_TracerParticleStepperImplem.H:107
virtual Real computeDt() override
Compute a time step to be used by Driver.
Definition CD_TracerParticleStepperImplem.H:289
phase::which_phase m_phase
Phase (gas/solid) where the solver lives.
Definition CD_TracerParticleStepper.H:274
EBAMRCellData m_velocity
Cell-centred velocity field used to advect particles.
Definition CD_TracerParticleStepper.H:284
int getNumberOfPlotVariables() const override
Get number of plot variables for this physics module.
Definition CD_TracerParticleStepperImplem.H:247
virtual void advanceParticlesEuler(const Real a_dt)
Advance particles using explicit Euler rule.
Definition CD_TracerParticleStepperImplem.H:480
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
Perform pre-regrid operations.
Definition CD_TracerParticleStepperImplem.H:350
void allocate() override
Allocate storage for solvers and time stepper.
Definition CD_TracerParticleStepperImplem.H:66
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.
Definition CD_TracerParticleStepperImplem.H:271
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Time stepper regrid method.
Definition CD_TracerParticleStepperImplem.H:362
virtual Real advance(const Real a_dt) override
Advancement method. Swaps between various kernels.
Definition CD_TracerParticleStepperImplem.H:301
VelocityField m_velocityField
Velocity field type.
Definition CD_TracerParticleStepper.H:264
TracerParticleStepper(const TracerParticleStepper< P > &&a_other)=delete
Move constructor. Disallowed.
size_t m_numInitialParticles
Number of particles placed uniformly at initialization.
Definition CD_TracerParticleStepper.H:294
void postCheckpointSetup() override
Post checkpoint operations. Not needed for this time stepper.
Definition CD_TracerParticleStepper.H:123
void parseOptions()
Parse options.
Definition CD_TracerParticleStepperImplem.H:119
virtual void synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt) override
Synchronize solver times and time steps.
Definition CD_TracerParticleStepperImplem.H:334
void postInitialize() override
Perform any post-initialization steps. Not needed for this time stepper.
Definition CD_TracerParticleStepper.H:116
TracerParticleStepper & operator=(const TracerParticleStepper< P > &a_other)=delete
Copy assignment operator. Disallowed.
virtual void advanceParticlesRK2(const Real a_dt)
Advance particles using second order Runge-Kutta.
Definition CD_TracerParticleStepperImplem.H:523
Real m_cfl
CFL number used to compute the advective time step.
Definition CD_TracerParticleStepper.H:289
void setupSolvers() override
Instantiate the tracer particle solver.
Definition CD_TracerParticleStepperImplem.H:50
virtual void printStepReport() override
Print a step report.
Definition CD_TracerParticleStepper.H:228
virtual ~TracerParticleStepper()
Destructor.
Definition CD_TracerParticleStepperImplem.H:40
virtual void advanceParticlesRK4(const Real a_dt)
Advance particles using fourth order Runge-Kutta.
Definition CD_TracerParticleStepperImplem.H:608
Vector< std::string > getPlotVariableNames() const override
Get plot variable names.
Definition CD_TracerParticleStepperImplem.H:259
IntegrationAlgorithm m_algorithm
Integration algorithm.
Definition CD_TracerParticleStepper.H:259
virtual void parseVelocityField()
Parse velocity field.
Definition CD_TracerParticleStepperImplem.H:177
virtual void parseIntegrator()
Parse integration algorithm from input script.
Definition CD_TracerParticleStepperImplem.H:147
virtual void postRegrid() override
Perform post-regrid operations.
Definition CD_TracerParticleStepperImplem.H:379
virtual void initialParticles()
Fill initial particles.
Definition CD_TracerParticleStepperImplem.H:434
TracerParticleStepper()
Constructor. Does nothing.
Definition CD_TracerParticleStepperImplem.H:29
virtual void setVelocity()
Set the velocity on the mesh.
Definition CD_TracerParticleStepperImplem.H:393
TracerParticleStepper & operator=(const TracerParticleStepper< P > &&a_other)=delete
Move assignment operator. Disallowed.
Base class for advancing equations.
Definition CD_TimeStepper.H:32
IntegrationAlgorithm
Integration algorithms available for advancing tracer particles.
Definition CD_TracerParticleStepper.H:30
@ Euler
Explicit forward Euler (first order).
@ RK2
Explicit second-order Runge-Kutta (Heun's method).
@ RK4
Explicit classical fourth-order Runge-Kutta.
VelocityField
Predefined velocity fields available for testing.
Definition CD_TracerParticleStepper.H:40
@ Rotational
Solid-body rotation velocity field.
@ Diagonal
Uniform diagonal translation velocity.
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38
SoA payload for tracer particles: interpolated velocity plus Runge-Kutta stage scratch.
Definition CD_TracerParticle.H:28