12#ifndef CD_ItoKMCTagger_H
13#define CD_ItoKMCTagger_H
19#include <CD_NamespaceHeader.H>
86 const int a_level)
const noexcept override;
247#include <CD_NamespaceFooter.H>
Declaration of a base class for tagging cells across an AMR hierarchy.
Main file for describing Ito-based plasma physics.
Declaration of an abstract class for integrating the Ito-KMC-Poisson equations.
Implementation of CD_ItoKMCTagger.H.
Class for handling spatial operations.
Definition CD_AmrMesh.H:42
Base class for tagging cells across an AMR hierarchy.
Definition CD_CellTagger.H:31
Base class for interaction between Kinetic Monte Carlo and Ito-based plasma solvers.
Definition CD_ItoKMCPhysics.H:82
Class for tagging grid cells using the Ito-KMC-Poisson module. Note that S is the time integrator typ...
Definition CD_ItoKMCTagger.H:30
ItoKMCTagger()
Weak constructor. User MUST subsequently call the define function.
Definition CD_ItoKMCTaggerImplem.H:26
virtual void parseOptions() override=0
Parse class options.
RefCountedPtr< S > m_timeStepper
Time stepper.
Definition CD_ItoKMCTagger.H:161
virtual void setPhase(const phase::which_phase a_phase) noexcept
Set the phase where we do the tagging.
Definition CD_ItoKMCTaggerImplem.H:97
virtual void computeTagFields() const noexcept=0
Compute tagging fields.
virtual bool tagCells(EBAMRTags &a_tags) noexcept override
Tag cells for refinement and coarsening.
Definition CD_ItoKMCTaggerImplem.H:187
virtual Vector< EBAMRCellData > & getTagFields() noexcept
Get tag fields. This is data that live on the primal realm and specified input phase.
Definition CD_ItoKMCTaggerImplem.H:141
virtual ~ItoKMCTagger() noexcept
Destructor.
Definition CD_ItoKMCTaggerImplem.H:51
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.
Definition CD_ItoKMCTaggerImplem.H:271
bool m_plotData
Plot data or not.
Definition CD_ItoKMCTagger.H:141
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 m_isDefined
Defined or not.
Definition CD_ItoKMCTagger.H:136
Vector< EBAMRCellData > m_tagFields
Tagging fields.
Definition CD_ItoKMCTagger.H:176
int m_numTagFields
Number of tagging fields.
Definition CD_ItoKMCTagger.H:171
RefCountedPtr< ItoKMCPhysics > m_physics
Physics implementation.
Definition CD_ItoKMCTagger.H:156
virtual int getNumberOfPlotVariables() const noexcept override
Get number of plot variables that will be written to file (by Driver).
Definition CD_ItoKMCTaggerImplem.H:109
virtual void define(const RefCountedPtr< ItoKMCPhysics > &a_physics, const RefCountedPtr< S > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr) noexcept
Define function.
Definition CD_ItoKMCTaggerImplem.H:56
virtual Vector< std::string > getPlotVariableNames() const noexcept override
Get plot variable names.
Definition CD_ItoKMCTaggerImplem.H:121
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.
RefCountedPtr< AmrMesh > m_amr
AmrMesh. Needed for allocating memory and things like that.
Definition CD_ItoKMCTagger.H:166
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.
Definition CD_ItoKMCTaggerImplem.H:74
phase::which_phase m_phase
Phase where data is allocated.
Definition CD_ItoKMCTagger.H:151
std::string m_realm
Realm where data is allocated.
Definition CD_ItoKMCTagger.H:146
Vector< EBAMRCellData > m_gradTagFields
Gradient of tagging fields.
Definition CD_ItoKMCTagger.H:181
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.
Definition CD_ItoKMCTaggerImplem.H:155
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25
Name containing various physics models for running chombo-discharge code.
Definition CD_AdvectionDiffusion.H:15
phase names
Definition CD_MultiFluidIndexSpace.H:27