|
chombo-discharge
|
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity field. More...
#include <CD_TracerParticleSolver.H>

Public Member Functions | |
| 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 contructor. | |
| 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 |
| Write checkpoint data into HDF5 file. @paramo[out] a_handle HDF5 file. | |
| 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. | |
Protected Member Functions | |
| void | parseDeposition () |
| Parse deposition method. | |
| void | parsePlotVariables () |
| Parse plot variables. | |
| void | parseVerbosity () |
| Parse solver verbosity. | |
| template<class T , class Ret , Ret(T::*)() const MemberFunc> | |
| void | depositParticles (EBAMRCellData &a_phi, const ParticleContainer< T > &a_particles, const DepositionType a_baseDeposition, const CoarseFineDeposition a_coarseFineDeposition) const noexcept |
| Generic particle deposition method for putting a scalar field onto the mesh. | |
| virtual void | writeData (LevelData< EBCellFAB > &a_output, int &a_comp, const EBAMRCellData &a_data, const std::string a_outputRealm, const int a_level, const bool a_interpToCentroids, const bool a_interpGhost) const noexcept |
| Write data to output. Convenience function. | |
Protected Attributes | |
| 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. | |
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().
|
delete |
Disallowed constructor.
| [in] | a_other | Other solver. |
|
delete |
Disallowed move constructor.
| [in] | a_other | Other solver. |
|
inline |
Full contructor.
| [in] | a_amr | Handle to AmrMesh. |
| [in] | a_compGeom | Computational geometry. |
|
virtual |
Write checkpoint data into HDF5 file. @paramo[out] a_handle HDF5 file.
| [in] | a_level | Grid level |
Read checkpoint data from HDF5 file.
| [in] | a_handle | HDF5 handle. |
| [in] | const | int a_level Grid level |
Compute dt = dx/max(v_x,v_y, v_z) minimized over all particles
|
inlinevirtualnoexcept |
Deposit particle weight on mesh.
| [out] | a_phi | Deposited weight. |
|
protectednoexcept |
Generic particle deposition method for putting a scalar field onto the mesh.
| [out] | a_phi | Deposited quantity. |
| [out] | a_particles | Particles to be deposited. |
| [in] | a_baseDeposition | Base deposition method. |
| [in] | a_coarseFineDeposition | Coarse-fine deposition strategy. |
|
inlinevirtual |
Get the number of plot variables.
|
inlinevirtual |
Get all particles.
|
inlinevirtual |
Get all particles. Const version.
|
inlinevirtual |
Get plot variable names.
|
inline |
Return the velocity field.
|
delete |
Disallowed move assignment operator.
| [in] | a_other | Other solver. |
|
delete |
Disallowed assignment operator.
| [in] | a_other | Other solver. |
|
inlinevirtual |
Perform pre-regrid operations.
| [in] | a_lbase | Coarsest level that changed during regrid. |
| [in] | a_oldFinestLevel | Finest grid level before the regrid operation. |
|
inlinevirtual |
Regrid this solver.
| [in] | a_lmin | Coarsest level where grids did not change. |
| [in] | a_oldFinestLevel | Finest AMR level before the regrid. |
| [in] | a_newFinestLevel | Finest AMR level after the regrid. |
|
inlinevirtual |
|
inlinevirtual |
Set the computational geometry.
| [in] | a_compGeom | Computational geometry |
|
inlinevirtualnoexcept |
Set deposition method.
| [in] | a_deposition | Deposition method |
|
inlinevirtualnoexcept |
Set the solver name.
| [in] | a_name | Solver name |
|
inlinevirtual |
Set the solver phase.
| [in] | a_phase | Phase |
|
inlinevirtual |
Set the solver realm.
| [in] | a_realm | Realm name. |
|
virtual |
Set the time for this solver.
| [in] | a_step | Time step number |
| [in] | a_time | Time (in seconds) |
| [in] | a_dt | Time step increment |
|
inlinevirtual |
Set the tracer particle velocity field.
| [in] | a_velocityField | Velocity field. |
|
inlinevirtualnoexcept |
Turn on/off volume scaling.
| [in] | a_scale | Volume scale or not. |
|
protectedvirtualnoexcept |
Write data to output. Convenience function.
| [in,out] | a_output | Output data holder. |
| [in,out] | a_icomp | Starting component where this solver begins writing the output. |
| [in] | a_data | Data to write. |
| [in] | a_outputRealm | Realm where a_output belongs |
| [in] | a_level | Grid level |
| [in] | a_interpToCentroids | If true, a_data will be interpolated to cell centroids before writing to a_output. |
| [in] | a_interpGhost | If true, interpolate ghost cells |
|
inlinevirtualnoexcept |
Write plot data.
| [in,out] | a_output | Output data holder. |
| [in,out] | a_icomp | Starting component where this solver begins writing the output. |
| [in] | a_outputRealm | Realm where a_output belongs |
| [in] | a_level | Grid level |
|
inlinevirtual |
Write plot file.
The name of the plot file is m_name.stepXXXXX.DIM.hdf5