Abstract CellTagger for the Ito-KMC-Poisson physics module.
More...
#include <CD_ItoKMCTagger.H>
|
|
| ItoKMCTagger () |
| | Weak constructor. User MUST subsequently call the define function.
|
| |
| | ItoKMCTagger (const RefCountedPtr< ItoKMCPhysics > &a_physics, const RefCountedPtr< S > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr) noexcept |
| | Full constructor.
|
| |
|
virtual | ~ItoKMCTagger () noexcept |
| | Destructor.
|
| |
| virtual void | define (const RefCountedPtr< ItoKMCPhysics > &a_physics, const RefCountedPtr< S > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr) noexcept |
| | Define function.
|
| |
| virtual int | getNumberOfPlotVariables () const noexcept override |
| | Get number of plot variables that will be written to file (by Driver).
|
| |
| virtual Vector< std::string > | getPlotVariableNames () const noexcept override |
| | Get plot variable names.
|
| |
| virtual void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string &a_outputRealm, const int a_level) const noexcept override |
| | Write plot data.
|
| |
| virtual void | computeTagFields () const noexcept=0 |
| | Compute tagging fields.
|
| |
| virtual void | parseOptions () override=0 |
| | Parse class options.
|
| |
| virtual void | parseRuntimeOptions () override=0 |
| | Parse run-time configurable class options.
|
| |
| virtual void | regrid () noexcept override |
| | Regrid this class. Note that there is no preRegrid method.
|
| |
| virtual bool | tagCells (EBAMRTags &a_tags) noexcept override |
| | Tag cells for refinement and coarsening.
|
| |
| virtual void | setPhase (const phase::which_phase a_phase) noexcept |
| | Set the phase where we do the tagging.
|
| |
| virtual Vector< EBAMRCellData > & | getTagFields () noexcept |
| | Get the tagging fields (mutable reference).
|
| |
|
| CellTagger () |
| | Weak constructor (does nothing)
|
| |
|
virtual | ~CellTagger () |
| | Destructor (does nothing).
|
| |
| virtual void | preRegrid () noexcept |
| | Pre-regrid function for cell-tagger.
|
| |
| virtual void | prePlot () const noexcept |
| | Perform pre-plotting operations (if necessary)
|
| |
| virtual int | getBuffer () const |
| | Get tag buffer.
|
| |
|
| virtual void | tagCellsBox (DenseIntVectSet &a_refinedCells, DenseIntVectSet &a_coarsenedCells, const Vector< EBCellFAB * > &a_tagFields, const Vector< EBCellFAB * > &a_gradTagFields, const int a_lvl, const DataIndex a_dit, const Box a_box, const EBISBox &a_ebisbox, const Real a_time, const Real a_dx, const RealVect a_probLo) const noexcept |
| | Per-box refinement tagging routine.
|
| |
| virtual bool | coarsenCell (const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tagFields, const Vector< RealVect > &a_gradTagFields) const noexcept=0 |
| | Determine if a particular cell should be coarsened or not.
|
| |
| virtual bool | refineCell (const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tagFields, const Vector< RealVect > &a_gradTagFields) const noexcept=0 |
| | Determine if a particular cell should be refined or not.
|
| |
| bool | insideTagBox (const RealVect &a_pos) const |
| | Check if a point is inside a tagging box.
|
| |
| int | getManualRefinementLevel (const RealVect &a_pos) const |
| | Get the specified level for this position when doing manual refinement.
|
| |
| virtual void | parseTagBoxes () |
| | Parse boxes.
|
| |
|
virtual void | parseRefinementBoxes () |
| | Parse refinement boxes.
|
| |
| virtual void | parseBuffer () |
| | Parse refinement buffer.
|
| |
| virtual void | parseVerbosity () |
| | Parse the verbosity from the input file or command line.
|
| |
|
|
bool | m_isDefined |
| | Defined or not.
|
| |
|
bool | m_plotData |
| | Plot data or not.
|
| |
|
std::string | m_realm |
| | Realm where data is allocated.
|
| |
|
phase::which_phase | m_phase |
| | Phase where data is allocated.
|
| |
|
RefCountedPtr< ItoKMCPhysics > | m_physics |
| | Physics implementation.
|
| |
|
RefCountedPtr< S > | m_timeStepper |
| | Time stepper.
|
| |
|
RefCountedPtr< AmrMesh > | m_amr |
| | AmrMesh. Needed for allocating memory and things like that.
|
| |
|
int | m_numTagFields |
| | Number of tagging fields.
|
| |
|
Vector< EBAMRCellData > | m_tagFields |
| | Tagging fields.
|
| |
|
Vector< EBAMRCellData > | m_gradTagFields |
| | Gradient of tagging fields.
|
| |
|
std::string | m_name |
| | Cell tagger class name (default is CellTagger).
|
| |
|
int | m_verbosity |
| | Class verbosity.
|
| |
|
int | m_buffer |
| | Tag buffer. Grow tags by this amount (finest level only)
|
| |
|
Vector< RealBox > | m_tagBoxes |
| | Boxes that can be used to restrict tagging.
|
| |
|
std::vector< std::pair< RealBox, int > > | m_refBoxes |
| | Refinement boxes for adding manual refinement.
|
| |
template<typename S>
class Physics::ItoKMC::ItoKMCTagger< S >
Abstract CellTagger for the Ito-KMC-Poisson physics module.
The template parameter S is the concrete ItoKMCStepper type. Subclasses implement computeTagFields(), refineCell(), and coarsenCell() to define the refinement criterion. Tag fields are computed on the Primal realm and live on the phase set by setPhase().
◆ ItoKMCTagger()
template<typename S >
| ItoKMCTagger::ItoKMCTagger |
( |
const RefCountedPtr< ItoKMCPhysics > & |
a_physics, |
|
|
const RefCountedPtr< S > & |
a_timeStepper, |
|
|
const RefCountedPtr< AmrMesh > & |
a_amr |
|
) |
| |
|
noexcept |
Full constructor.
- Parameters
-
| [in] | a_physics | Physics implementation. |
| [in] | a_timeStepper | Time integrator. |
| [in] | a_amr | Reference to AmrMesh |
◆ coarsenCell()
template<typename S >
| virtual bool Physics::ItoKMC::ItoKMCTagger< S >::coarsenCell |
( |
const RealVect & |
a_pos, |
|
|
const Real |
a_time, |
|
|
const Real |
a_dx, |
|
|
const int |
a_lvl, |
|
|
const Vector< Real > & |
a_tagFields, |
|
|
const Vector< RealVect > & |
a_gradTagFields |
|
) |
| const |
|
protectedpure virtualnoexcept |
◆ computeTagFields()
◆ define()
template<typename S >
| void ItoKMCTagger::define |
( |
const RefCountedPtr< ItoKMCPhysics > & |
a_physics, |
|
|
const RefCountedPtr< S > & |
a_timeStepper, |
|
|
const RefCountedPtr< AmrMesh > & |
a_amr |
|
) |
| |
|
virtualnoexcept |
Define function.
- Parameters
-
| [in] | a_physics | Physics implementation. |
| [in] | a_timeStepper | Time integrator. |
| [in] | a_amr | Reference to AmrMesh |
◆ getNumberOfPlotVariables()
template<typename S >
| int ItoKMCTagger::getNumberOfPlotVariables |
( |
| ) |
const |
|
overridevirtualnoexcept |
Get number of plot variables that will be written to file (by Driver).
- Returns
- Returns number of plot variables that Driver will write to plot files.
Reimplemented from CellTagger.
◆ getPlotVariableNames()
template<typename S >
| Vector< std::string > ItoKMCTagger::getPlotVariableNames |
( |
| ) |
const |
|
overridevirtualnoexcept |
Get plot variable names.
- Returns
- Vector of variable name strings for the tag fields.
Reimplemented from CellTagger.
◆ getTagFields()
template<typename S >
| Vector< EBAMRCellData > & ItoKMCTagger::getTagFields |
( |
| ) |
|
|
virtualnoexcept |
Get the tagging fields (mutable reference).
- Returns
- Reference to the vector of cell-centred tagging fields on the Primal realm.
◆ parseOptions()
◆ parseRuntimeOptions()
◆ refineCell()
template<typename S >
| virtual bool Physics::ItoKMC::ItoKMCTagger< S >::refineCell |
( |
const RealVect & |
a_pos, |
|
|
const Real |
a_time, |
|
|
const Real |
a_dx, |
|
|
const int |
a_lvl, |
|
|
const Vector< Real > & |
a_tagFields, |
|
|
const Vector< RealVect > & |
a_gradTagFields |
|
) |
| const |
|
protectedpure virtualnoexcept |
◆ regrid()
template<typename S >
| void ItoKMCTagger::regrid |
( |
| ) |
|
|
overridevirtualnoexcept |
Regrid this class. Note that there is no preRegrid method.
Implements CellTagger.
◆ setPhase()
Set the phase where we do the tagging.
- Parameters
-
◆ tagCells()
template<typename S >
| bool ItoKMCTagger::tagCells |
( |
EBAMRTags & |
a_tags | ) |
|
|
overridevirtualnoexcept |
Tag cells for refinement and coarsening.
- Parameters
-
| [in,out] | a_tags | Cell tags that become the new grids. |
- Returns
- Return value
Implements CellTagger.
◆ tagCellsBox()
template<typename S >
| void ItoKMCTagger::tagCellsBox |
( |
DenseIntVectSet & |
a_refinedCells, |
|
|
DenseIntVectSet & |
a_coarsenedCells, |
|
|
const Vector< EBCellFAB * > & |
a_tagFields, |
|
|
const Vector< EBCellFAB * > & |
a_gradTagFields, |
|
|
const int |
a_lvl, |
|
|
const DataIndex |
a_dit, |
|
|
const Box |
a_box, |
|
|
const EBISBox & |
a_ebisbox, |
|
|
const Real |
a_time, |
|
|
const Real |
a_dx, |
|
|
const RealVect |
a_probLo |
|
) |
| const |
|
protectedvirtualnoexcept |
Per-box refinement tagging routine.
- Parameters
-
| [out] | a_refinedCells | Cells to be refined |
| [out] | a_coarsenedCells | Cells to be coarsened |
| [in] | a_tagFields | Tagging fields |
| [in] | a_gradTagFields | Gradient of tagging fields |
| [in] | a_lvl | Grid level |
| [in] | a_dit | Grid index |
| [in] | a_box | Cell-centered box |
| [in] | a_ebisbox | EBIS box |
| [in] | a_time | Current time |
| [in] | a_dx | Grid resolution |
| [in] | a_probLo | Lower-left corner of physical domain |
◆ writePlotData()
template<typename S >
| void ItoKMCTagger::writePlotData |
( |
LevelData< EBCellFAB > & |
a_output, |
|
|
int & |
a_icomp, |
|
|
const std::string & |
a_outputRealm, |
|
|
const int |
a_level |
|
) |
| const |
|
overridevirtualnoexcept |
Write plot data.
- Parameters
-
| [in,out] | a_output | Output data holder |
| [in,out] | a_icomp | Starting variable in a_output where we begin appending data. |
| [in] | a_level | Grid level |
| [in] | a_outputRealm | Description |
Reimplemented from CellTagger.
The documentation for this class was generated from the following files: