Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity field.
More...
|
|
| TracerParticleSolver () |
| | Default constructor.
|
| |
| | TracerParticleSolver (const TracerParticleSolver &a_other)=delete |
| | Disallowed constructor.
|
| |
| | TracerParticleSolver (const TracerParticleSolver &&a_other)=delete |
| | Disallowed move constructor.
|
| |
| | TracerParticleSolver (const RefCountedPtr< AmrMesh > &a_amr, const RefCountedPtr< ComputationalGeometry > &a_compGeom) |
| | Full constructor.
|
| |
| TracerParticleSolver & | operator= (const TracerParticleSolver &a_other)=delete |
| | Disallowed assignment operator.
|
| |
| TracerParticleSolver & | operator= (const TracerParticleSolver &&a_other)=delete |
| | Disallowed move assignment operator.
|
| |
|
virtual | ~TracerParticleSolver () |
| | Destructor.
|
| |
|
virtual void | allocate () |
| | Allocate storage for this solver.
|
| |
|
virtual void | registerOperators () const |
| | Register operators needed for AMR core functionality.
|
| |
| virtual void | setAmr (const RefCountedPtr< AmrMesh > &a_amrMesh) |
| | Set AmrMesh.
|
| |
| virtual void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > &a_compGeom) |
| | Set the computational geometry.
|
| |
| virtual void | setName (const std::string &a_name) noexcept |
| | Set the solver name.
|
| |
| virtual void | setVolumeScale (const bool a_scale) noexcept |
| | Turn on/off volume scaling.
|
| |
| virtual void | setRealm (const std::string &a_realm) |
| | Set the solver realm.
|
| |
| virtual void | setPhase (const phase::which_phase &a_phase) |
| | Set the solver phase.
|
| |
| virtual void | setTime (const int a_step, const Real a_time, const Real a_dt) |
| | Set the time for this solver.
|
| |
| virtual void | setVelocity (const EBAMRCellData &a_velocityField) |
| | Set the tracer particle velocity field.
|
| |
| virtual void | preRegrid (const int a_lbase, const int a_oldFinestLevel) |
| | Perform pre-regrid operations.
|
| |
| virtual void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) |
| | Regrid this solver.
|
| |
|
virtual void | remap () |
| | Remap particles.
|
| |
| virtual void | setDeposition (const DepositionType a_deposition) noexcept |
| | Set deposition method.
|
| |
| virtual void | deposit (EBAMRCellData &a_phi) const noexcept |
| | Deposit particle weight on mesh.
|
| |
| virtual void | interpolateWeight (const EBAMRCellData &a_scalar) noexcept |
| | Interpolate a scalar field onto the particle weight.
|
| |
|
virtual void | interpolateVelocities () |
| | Interpolate particles velocities.
|
| |
|
virtual void | parseOptions () |
| | Parse solver options.
|
| |
|
virtual void | parseRuntimeOptions () |
| | Parse solver run-time options.
|
| |
| virtual void | writePlotFile () |
| | Write plot file.
|
| |
| virtual int | getNumberOfPlotVariables () const |
| | Get the number of plot variables.
|
| |
| virtual Vector< std::string > | getPlotVariableNames () const |
| | Get plot variable names.
|
| |
| virtual void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_comp, const std::string &a_outputRealm, const int a_level) const noexcept |
| | Write plot data.
|
| |
| virtual Real | computeDt () const |
| | Compute dt = dx/max(v_x, v_y, v_z) minimized over all particles.
|
| |
| virtual ParticleContainer< P > & | getParticles () |
| | Get all particles.
|
| |
| virtual const ParticleContainer< P > & | getParticles () const |
| | Get all particles. Const version.
|
| |
| const EBAMRCellData & | getVelocityField () const |
| | Return the velocity field.
|
| |
| virtual DepositionType | getDepositionType () const |
| | Get the deposition type.
|
| |
| virtual CoarseFineDeposition | getCoarseFineDepositionType () const |
| | Get the coarse-fine deposition type.
|
| |
| virtual DepositionType | getInterpolationType () const |
| | Get the interpolation type.
|
| |
|
|
RefCountedPtr< AmrMesh > | m_amr |
| | Handle to AMR mesh.
|
| |
|
RefCountedPtr< ComputationalGeometry > | m_computationalGeometry |
| | Handle to computational geometry.
|
| |
|
DepositionType | m_deposition |
| | Deposition type when depositing particles to grid.
|
| |
|
DepositionType | m_interpolation |
| | Deposition type when interpolating to particles.
|
| |
|
CoarseFineDeposition | m_coarseFineDeposition |
| | Coarse-fine deposition strategy.
|
| |
|
std::string | m_realm |
| | Realm where this solver lives.
|
| |
|
std::string | m_name |
| | Solver name.
|
| |
|
std::string | m_className |
| | Class name.
|
| |
|
phase::which_phase | m_phase |
| | Phase where this solver lives.
|
| |
|
Real | m_dt |
| | Time step.
|
| |
|
Real | m_time |
| | Time.
|
| |
|
int | m_timeStep |
| | Time step.
|
| |
|
int | m_verbosity |
| | Verbosity level.
|
| |
|
bool | m_plotWeight |
| | Hook for adding weight to plot file.
|
| |
|
bool | m_plotVelocity |
| | Hook for adding velocity field to plot file.
|
| |
|
bool | m_volumeScale |
| | Do volumetric scaling when depositing (or not).
|
| |
|
EBAMRCellData | m_velocityField |
| | Mesh-based velocity field. Must be set through setVelocity.
|
| |
|
ParticleContainer< P > | m_particles |
| | Computational particles.
|
| |
template<typename P>
class TracerParticleSolver< P >
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity field.
The user can set the velocity field through public member functions. This class is templated so the user can switch tracer particle implementations.
This is a single-phase solver – i.e. the particles only live on one of the phases. Extensions to multiphase is certainly possible.
The particles are stored Struct-of-Arrays (ParticleContainer). P is the user PAYLOAD type; the position and weight are container-owned columns (not payload members). The template requirements on the payload type P are: 1) It must expose the velocity as SpaceDim scalar payload columns named D_DECL(v_x, v_y, v_z), so the solver can interpolate the mesh velocity field into them and compute the advective time step. 2) It must have a ParticleTraits
specialization listing its columns (including v_x/v_y/v_z).