13#ifndef CD_CDRPLASMATAGGER_H
14#define CD_CDRPLASMATAGGER_H
19#include <CD_NamespaceHeader.H>
52 const RefCountedPtr<CdrPlasmaStepper>& a_timeStepper,
53 const RefCountedPtr<AmrMesh>& a_amr,
54 const RefCountedPtr<ComputationalGeometry>& a_computationalGeometry);
69 define(
const RefCountedPtr<CdrPlasmaPhysics>& a_physics,
70 const RefCountedPtr<CdrPlasmaStepper>& a_timeStepper,
71 const RefCountedPtr<AmrMesh>& a_amr,
72 const RefCountedPtr<ComputationalGeometry>& a_computationalGeometry);
91 prePlot() const noexcept override;
126 virtual Vector<std::
string>
139 const std::
string& a_outputRealm,
140 const
int a_level) const override final;
203 const Vector<EBCellFAB*>& a_tracers,
204 const Vector<EBCellFAB*>& a_gradTracers,
206 const DataIndex& a_dit,
208 const EBISBox& a_ebisbox,
211 const RealVect& a_probLo);
228 const Vector<EBCellFAB*>& a_tracers,
229 const Vector<EBCellFAB*>& a_gradTracers,
231 const DataIndex& a_dit,
233 const EBISBox& a_ebisbox,
236 const RealVect& a_probLo);
253 const Vector<Real>& a_tracers,
254 const Vector<RealVect>& a_gradTracers) const = 0;
271 const Vector<Real>& a_tracers,
272 const Vector<RealVect>& a_gradTracers) const = 0;
277#include <CD_NamespaceFooter.H>
Declaration of Physics::CdrPlasma::CdrPlasmaStepper, the abstract base class for CDR plasma time step...
Declaration of a base class for tagging cells across an AMR hierarchy.
Class for handling spatial operations.
Definition CD_AmrMesh.H:43
Base class for tagging cells across an AMR hierarchy.
Definition CD_CellTagger.H:32
Abstract base class for geometries.
Definition CD_ComputationalGeometry.H:37
Abstract interface for specifying plasma kinetics in the CdrPlasma physics module.
Definition CD_CdrPlasmaPhysics.H:52
Abstract base class for advancing the coupled CDR plasma equations in time.
Definition CD_CdrPlasmaStepper.H:46
Abstract CellTagger base class for the CDR plasma physics module.
Definition CD_CdrPlasmaTagger.H:37
virtual void regrid() override final
Regrid hook. Reallocates tracer field and gradient storage on the new mesh.
Definition CD_CdrPlasmaTagger.cpp:106
virtual bool refineCell(const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tracers, const Vector< RealVect > &a_gradTracers) const =0
Decide whether a single cell should be refined. Must be implemented by subclasses.
RefCountedPtr< CdrPlasmaPhysics > m_physics
Plasma kinetics interface.
Definition CD_CdrPlasmaTagger.H:156
RefCountedPtr< CdrPlasmaStepper > m_timeStepper
Time stepper providing access to solver data and electric field.
Definition CD_CdrPlasmaTagger.H:161
virtual void computeTracers() const =0
Compute tracer fields on the AMR hierarchy. Must be implemented by subclasses.
virtual Vector< std::string > getPlotVariableNames() const override final
Return the names of the tracer field plot variables.
Definition CD_CdrPlasmaTagger.cpp:139
Vector< EBAMRCellData > m_gradTracers
Gradients of the tracer fields on the AMR hierarchy.
Definition CD_CdrPlasmaTagger.H:186
virtual void refineCellsBox(DenseIntVectSet &a_refinedCells, const Vector< EBCellFAB * > &a_tracers, const Vector< EBCellFAB * > &a_gradTracers, 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)
Flag cells for refinement within a single grid patch.
Definition CD_CdrPlasmaTagger.cpp:269
virtual bool tagCells(EBAMRTags &a_tags) override final
Flag cells for refinement and coarsening using the tracer-field approach.
Definition CD_CdrPlasmaTagger.cpp:186
Vector< EBAMRCellData > m_tracers
Tracer fields on the AMR hierarchy. Allocated and filled by computeTracers().
Definition CD_CdrPlasmaTagger.H:181
std::string m_realm
Realm on which tracer field storage is allocated.
Definition CD_CdrPlasmaTagger.H:146
virtual bool coarsenCell(const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tracers, const Vector< RealVect > &a_gradTracers) const =0
Decide whether a single cell should be coarsened. Must be implemented by subclasses.
RefCountedPtr< AmrMesh > m_amr
AMR mesh for grid iteration, gradient computation, and interpolation.
Definition CD_CdrPlasmaTagger.H:166
CdrPlasmaTagger()
Default constructor. Sets default realm and phase.
Definition CD_CdrPlasmaTagger.cpp:26
int m_numTracers
Number of scalar tracer fields used for tagging decisions.
Definition CD_CdrPlasmaTagger.H:176
void define(const RefCountedPtr< CdrPlasmaPhysics > &a_physics, const RefCountedPtr< CdrPlasmaStepper > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr, const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Define function. Leaves the object in a usable state.
Definition CD_CdrPlasmaTagger.cpp:62
virtual int getNumberOfPlotVariables() const override final
Return the number of plot variables (one per tracer field).
Definition CD_CdrPlasmaTagger.cpp:128
virtual ~CdrPlasmaTagger()
Destructor.
Definition CD_CdrPlasmaTagger.cpp:53
RefCountedPtr< ComputationalGeometry > m_computationalGeometry
Computational geometry providing electrode and dielectric information.
Definition CD_CdrPlasmaTagger.H:171
virtual void parseOptions() override=0
Parse class options from ParmParse. Must be implemented by subclasses.
virtual void coarsenCellsBox(DenseIntVectSet &a_coarsenedCells, const Vector< EBCellFAB * > &a_tracers, const Vector< EBCellFAB * > &a_gradTracers, 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)
Flag cells for coarsening within a single grid patch.
Definition CD_CdrPlasmaTagger.cpp:353
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string &a_outputRealm, const int a_level) const override final
Write tracer field data into the output holder.
Definition CD_CdrPlasmaTagger.cpp:156
virtual void prePlot() const noexcept override
Pre-plot hook. Computes tracer fields so they appear in plot output.
Definition CD_CdrPlasmaTagger.cpp:81
phase::which_phase m_phase
Phase on which tracer field storage is allocated.
Definition CD_CdrPlasmaTagger.H:151
virtual void preRegrid() noexcept override
Pre-regrid hook. Clears tracer field storage before the grid changes.
Definition CD_CdrPlasmaTagger.cpp:92
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16
Phase names namespace.
Definition CD_MultiFluidIndexSpace.H:28