chombo-discharge
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
Physics::CdrPlasma::CdrPlasmaStreamerTagger Class Reference

Concrete CdrPlasmaFieldTagger that tags cells based on streamer inception criteria. More...

#include <CD_CdrPlasmaStreamerTagger.H>

Inheritance diagram for Physics::CdrPlasma::CdrPlasmaStreamerTagger:
Inheritance graph
[legend]
Collaboration diagram for Physics::CdrPlasma::CdrPlasmaStreamerTagger:
Collaboration graph
[legend]

Public Member Functions

 CdrPlasmaStreamerTagger ()=delete
 Disallowed weak constructor.
 
 CdrPlasmaStreamerTagger (const RefCountedPtr< CdrPlasmaPhysics > &a_physics, const RefCountedPtr< CdrPlasmaStepper > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr, const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
 Full constructor.
 
virtual ~CdrPlasmaStreamerTagger ()
 Destructor.
 
virtual void parseOptions () override
 Parse class options.
 
virtual void parseRuntimeOptions () override
 Parse runtime options.
 
virtual Vector< Realtracer (const RealVect &a_pos, const Real a_time, const Real a_dx, const RealVect &a_electricField, const Real a_minElectricField, const Real a_maxElectricField, const RealVect &a_gradElectricField, const Real a_minGradElectricField, const Real a_maxGradElectricField) const override
 Compute tracer fields.
 
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 override
 Cell-coarsening method.
 
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 override
 Cell-refinement method.
 
- Public Member Functions inherited from Physics::CdrPlasma::CdrPlasmaFieldTagger
 CdrPlasmaFieldTagger ()
 Default constructor. Sets the tagger name.
 
virtual ~CdrPlasmaFieldTagger ()
 Destructor.
 
void computeTracers () const override final
 Compute tracer fields from the electric field on the AMR hierarchy.
 
- Public Member Functions inherited from Physics::CdrPlasma::CdrPlasmaTagger
 CdrPlasmaTagger ()
 Default constructor. Sets default realm and phase.
 
 CdrPlasmaTagger (const RefCountedPtr< CdrPlasmaPhysics > &a_physics, const RefCountedPtr< CdrPlasmaStepper > &a_timeStepper, const RefCountedPtr< AmrMesh > &a_amr, const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
 Full constructor. Leaves the object in a usable state.
 
virtual ~CdrPlasmaTagger ()
 Destructor.
 
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.
 
virtual void prePlot () const noexcept override
 Pre-plot hook. Computes tracer fields so they appear in plot output.
 
virtual void preRegrid () noexcept override
 Pre-regrid hook. Clears tracer field storage before the grid changes.
 
virtual void regrid () override final
 Regrid hook. Reallocates tracer field and gradient storage on the new mesh.
 
virtual bool tagCells (EBAMRTags &a_tags) override final
 Flag cells for refinement and coarsening using the tracer-field approach.
 
virtual int getNumberOfPlotVariables () const override final
 Return the number of plot variables (one per tracer field).
 
virtual Vector< std::stringgetPlotVariableNames () const override final
 Return the names of the tracer field plot variables.
 
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.
 
- Public Member Functions inherited from CellTagger
 CellTagger ()
 Weak constructor (does nothing)
 
virtual ~CellTagger ()
 Destructor (does nothing).
 
virtual int getBuffer () const
 Get tag buffer.
 

Protected Attributes

Real m_coarCurv
 Threshold for coarsening based on curvature.
 
Real m_refiCurv
 Threshold for refinement based on curvature.
 
Real m_refiAlpha
 Threshold for refinement based on Townsend ionization coefficient.
 
Real m_coarAlpha
 Threshold for coarsening based on the Townsend ionization coefficient.
 
int m_maxCoarsenLevel
 Maximum AMR level allowed to be coarsened.
 
- Protected Attributes inherited from Physics::CdrPlasma::CdrPlasmaFieldTagger
EBAMRCellData m_scratch
 Scratch storage for scalar intermediate quantities.
 
EBAMRCellData m_electricField
 Cell-centered electric field vector (SpaceDim components).
 
EBAMRCellData m_gradElectricField
 Cell-centered gradient of the electric field magnitude, i.e., grad(|E|).
 
- Protected Attributes inherited from Physics::CdrPlasma::CdrPlasmaTagger
std::string m_realm
 Realm on which tracer field storage is allocated.
 
phase::which_phase m_phase
 Phase on which tracer field storage is allocated.
 
RefCountedPtr< CdrPlasmaPhysicsm_physics
 Plasma kinetics interface.
 
RefCountedPtr< CdrPlasmaStepperm_timeStepper
 Time stepper providing access to solver data and electric field.
 
RefCountedPtr< AmrMeshm_amr
 AMR mesh for grid iteration, gradient computation, and interpolation.
 
RefCountedPtr< ComputationalGeometrym_computationalGeometry
 Computational geometry providing electrode and dielectric information.
 
int m_numTracers
 Number of scalar tracer fields used for tagging decisions.
 
Vector< EBAMRCellDatam_tracers
 Tracer fields on the AMR hierarchy. Allocated and filled by computeTracers().
 
Vector< EBAMRCellDatam_gradTracers
 Gradients of the tracer fields on the AMR hierarchy.
 
- 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< RealBoxm_tagBoxes
 Boxes that can be used to restrict tagging.
 
std::vector< std::pair< RealBox, int > > m_refBoxes
 Refinement boxes for adding manual refinement.
 

Additional Inherited Members

- Protected Member Functions inherited from Physics::CdrPlasma::CdrPlasmaFieldTagger
virtual void allocateStorage () const
 Allocate transient storage for the electric field, its gradient, and scratch.
 
virtual void deallocateStorage () const
 Release transient storage allocated by allocateStorage().
 
virtual void computeElectricField (EBAMRCellData &a_electricField, EBAMRCellData &a_gradElectricField) const
 Compute the centroid-centered electric field and its gradient magnitude.
 
- Protected Member Functions inherited from Physics::CdrPlasma::CdrPlasmaTagger
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.
 
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.
 
- Protected Member Functions inherited from CellTagger
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.
 

Detailed Description

Concrete CdrPlasmaFieldTagger that tags cells based on streamer inception criteria.

Cells are flagged for refinement if either the ionization criterion alpha(E)*dx exceeds a user-specified threshold m_refiAlpha, or the electric field curvature |grad(|E|)|*dx/|E| exceeds m_refiCurv. Coarsening is the reverse of both criteria. Both thresholds are runtime-configurable via ParmParse.

Constructor & Destructor Documentation

◆ CdrPlasmaStreamerTagger()

CdrPlasmaStreamerTagger::CdrPlasmaStreamerTagger ( const RefCountedPtr< CdrPlasmaPhysics > &  a_physics,
const RefCountedPtr< CdrPlasmaStepper > &  a_timeStepper,
const RefCountedPtr< AmrMesh > &  a_amr,
const RefCountedPtr< ComputationalGeometry > &  a_computationalGeometry 
)

Full constructor.

Parameters
[in]a_physicsReference to CdrPlasmaPhysics.
[in]a_timeStepperReference to the TimeStepper being used.
[in]a_amrReference to AmrMesh.
[in]a_computationalGeometryComputational geometry

Member Function Documentation

◆ coarsenCell()

bool CdrPlasmaStreamerTagger::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
overridevirtual

Cell-coarsening method.

Parameters
[in]a_posPhysical position
[in]a_timeCurrent time
[in]a_dxGrid resolution
[in]a_lvlGrid level
[in]a_tracersTracer fields
[in]a_gradTracersGradient of tracer fields
Returns
Return true if the cell should be coarsened and false otherwise.

Implements Physics::CdrPlasma::CdrPlasmaFieldTagger.

◆ parseOptions()

void CdrPlasmaStreamerTagger::parseOptions ( )
overridevirtual

Parse class options.

Implements Physics::CdrPlasma::CdrPlasmaFieldTagger.

◆ parseRuntimeOptions()

void CdrPlasmaStreamerTagger::parseRuntimeOptions ( )
overridevirtual

Parse runtime options.

Reimplemented from CellTagger.

◆ refineCell()

bool CdrPlasmaStreamerTagger::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
overridevirtual

Cell-refinement method.

Parameters
[in]a_posPhysical position
[in]a_timeCurrent time
[in]a_dxGrid resolution
[in]a_lvlGrid level
[in]a_tracersTracer fields
[in]a_gradTracersGradient of tracer fields
Returns
True if the cell should be refined and false otherwise.

Implements Physics::CdrPlasma::CdrPlasmaFieldTagger.

◆ tracer()

Vector< Real > CdrPlasmaStreamerTagger::tracer ( const RealVect a_pos,
const Real  a_time,
const Real  a_dx,
const RealVect a_electricField,
const Real  a_minElectricField,
const Real  a_maxElectricField,
const RealVect a_gradElectricField,
const Real  a_minGradElectricField,
const Real  a_maxGradElectricField 
) const
overridevirtual

Compute tracer fields.

Parameters
[in]a_posPhysical coordinates
[in]a_timeTime
[in]a_electricFieldElectric field (in SI units)
[in]a_minElectricFieldMinimum value of electric field
[in]a_maxElectricFieldMaximum value of electric field
[in]a_gradElectricFieldGradient of |E|, i.e. grad(|E|)
[in]a_minGradElectricFieldMinimum value of |grad(|E|)| over the AMR hierarchy
[in]a_maxGradElectricFieldMaximum value of |grad(|E|)|
Returns
This should return a Vector of values whose length is equal to the number of tracer fields the subclasses uses.
Parameters
[in]a_dxDescription

Implements Physics::CdrPlasma::CdrPlasmaFieldTagger.


The documentation for this class was generated from the following files: