|
chombo-discharge
|
Lightweight tagging class. Only tags cells based on the electric field. More...
#include <CD_ItoKMCFieldTagger.H>


Public Member Functions | |
| ItoKMCFieldTagger () noexcept | |
| Weak constructor. User MUST subsequently call define. | |
| virtual | ~ItoKMCFieldTagger () noexcept |
| Destructor. | |
| virtual void | computeTagFields () const noexcept override |
| Compute tagging fields. | |
| virtual void | parseOptions () override=0 |
| Parse options. | |
| virtual void | parseRuntimeOptions () override=0 |
| Parse run-time configurable options. | |
Public Member Functions inherited from Physics::ItoKMC::ItoKMCTagger< S > | |
| 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 | 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 tag fields. This is data that live on the primal realm and specified input phase. | |
Public Member Functions inherited from CellTagger | |
| 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. | |
Protected Attributes | |
| EBAMRCellData | m_scratch |
| Scratch storage. | |
| EBAMRCellData | m_E |
| Storage for the electric field E. | |
| EBAMRCellData | m_gradE |
| Storage for grad(|E|) | |
Protected Attributes inherited from Physics::ItoKMC::ItoKMCTagger< S > | |
| 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. | |
Protected Attributes inherited from CellTagger | |
| 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. | |
Lightweight tagging class. Only tags cells based on the electric field.
This class fetches the point-wise electric field. The class is pure, so users must still implement the actual tagging criterion themselves. However, this class at the very least exposes the per-cell refinement/coarsening in terms of the electric field only.
|
overrideprotectedpure virtualnoexcept |
Determine if a particular cell should be coarsened or not.
| [in] | a_pos | Physical position. |
| [in] | a_time | Current time |
| [in] | a_dx | Grid resolution |
| [in] | a_lvl | Grid level |
| [in] | a_tagFields | Cell tagging fields |
| [in] | a_gradTagFields | Gradient of cell tagging fields |
Implements Physics::ItoKMC::ItoKMCTagger< S >.
Implemented in Physics::ItoKMC::ItoKMCStreamerTagger< S >.
|
protectedvirtualnoexcept |
Compute electric field.
| [out] | a_E | Electric field |
| [out] | a_gradE | Electric field gradient, i.e. grad(|E|) |
Compute tagging fields.
Implements Physics::ItoKMC::ItoKMCTagger< S >.
|
protectedpure virtualnoexcept |
Compute tracer field.
| [in] | a_pos | Physical coordinates |
| [in] | a_time | Current time |
| [in] | a_dx | Grid resolution |
| [in] | a_E | Electric field |
| [in] | a_minE | Lowest electric field in domain |
| [in] | a_maxE | Highest electric field in domain |
| [in] | a_gradE | Electric field gradient, i.e. grad(|E|) |
| [in] | a_minGradE | Lowest electric field gradient in domain |
| [in] | a_maxGradE | Highest electric field gradient in domain |
Implemented in Physics::ItoKMC::ItoKMCStreamerTagger< S >.
|
overridepure virtual |
Parse options.
Implements Physics::ItoKMC::ItoKMCTagger< S >.
Implemented in Physics::ItoKMC::ItoKMCStreamerTagger< S >.
|
overridepure virtual |
Parse run-time configurable options.
Implements Physics::ItoKMC::ItoKMCTagger< S >.
Implemented in Physics::ItoKMC::ItoKMCStreamerTagger< S >.
|
overrideprotectedpure virtualnoexcept |
Determine if a particular cell should be refined or not.
| [in] | a_pos | Physical position. |
| [in] | a_time | Current time |
| [in] | a_dx | Grid resolution |
| [in] | a_lvl | Grid level |
| [in] | a_tagFields | Cell tagging fields |
| [in] | a_gradTagFields | Gradient of cell tagging fields |
Implements Physics::ItoKMC::ItoKMCTagger< S >.
Implemented in Physics::ItoKMC::ItoKMCStreamerTagger< S >.