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.
|
| |
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 template requirements on the particle type P are: 1) It must contain a function RealVect& position() (derived from BinItem) 2) It must contain a function const Real& weight() const. 3) It must contain a function RealVect& velocity().