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

Abstract interface for specifying plasma kinetics in the CdrPlasma physics module. More...

#include <CD_CdrPlasmaPhysics.H>

Inheritance diagram for Physics::CdrPlasma::CdrPlasmaPhysics:
Inheritance graph
[legend]

Public Member Functions

 CdrPlasmaPhysics ()
 Default constructor. Does nothing.
 
virtual ~CdrPlasmaPhysics ()
 Destructor. Does nothing.
 
virtual void parseRuntimeOptions ()
 Parse runtime options. Default implementation does nothing.
 
virtual int getNumberOfPlotVariables () const
 Return the number of plot variables provided by this physics class.
 
virtual Vector< std::stringgetPlotVariableNames () const
 Return the names of the extra plot variables.
 
virtual Vector< RealgetPlotVariables (const Vector< Real > &a_cdrDensities, const Vector< RealVect > &a_cdrGradients, const Vector< Real > &a_rteDensities, const RealVect &a_E, const RealVect &a_position, const Real a_dx, const Real a_dt, const Real a_time, const Real a_kappa) const
 Evaluate the extra plot variables at a single grid point.
 
virtual Real computeAlpha (const Real a_E, const RealVect &a_position) const =0
 Compute the Townsend ionization coefficient alpha.
 
virtual Real computeEta (const Real a_E, const RealVect &a_position) const =0
 Compute the Townsend attachment coefficient eta.
 
virtual void advanceReactionNetwork (Vector< Real > &a_cdrSources, Vector< Real > &a_rteSources, const Vector< Real > &a_cdrDensities, const Vector< RealVect > &a_cdrGradients, const Vector< Real > &a_rteDensities, const RealVect &a_E, const RealVect &a_pos, const Real a_dx, const Real a_dt, const Real a_time, const Real a_kappa) const =0
 Advance the reaction network over a time interval and return source terms.
 
virtual Vector< RealVectcomputeCdrDriftVelocities (const Real a_time, const RealVect &a_pos, const RealVect &a_E, const Vector< Real > &a_cdrDensities) const =0
 Compute drift velocities for all CDR species.
 
virtual Vector< RealcomputeCdrDiffusionCoefficients (const Real a_time, const RealVect &a_pos, const RealVect &a_E, const Vector< Real > &a_cdrDensities) const =0
 Compute diffusion coefficients for all CDR species.
 
virtual Vector< RealcomputeCdrElectrodeFluxes (const Real a_time, const RealVect &a_pos, const RealVect &a_normal, const RealVect &a_E, const Vector< Real > &a_cdrDensities, const Vector< Real > &a_cdrVelocities, const Vector< Real > &a_cdrGradients, const Vector< Real > &a_rteFluxes, const Vector< Real > &a_extrapCdrFluxes) const =0
 Compute CDR species fluxes on electrode-gas EB interfaces.
 
virtual Vector< RealcomputeCdrDielectricFluxes (const Real a_time, const RealVect &a_pos, const RealVect &a_normal, const RealVect &a_E, const Vector< Real > &a_cdrDensities, const Vector< Real > &a_cdrVelocities, const Vector< Real > &a_cdrGradients, const Vector< Real > &a_rteFluxes, const Vector< Real > &a_extrapCdrFluxes) const =0
 Compute CDR species fluxes on dielectric-gas EB interfaces.
 
virtual Vector< RealcomputeCdrDomainFluxes (const Real a_time, const RealVect &a_pos, const int a_dir, const Side::LoHiSide a_side, const RealVect &a_E, const Vector< Real > &a_cdrDensities, const Vector< Real > &a_cdrVelocities, const Vector< Real > &a_cdrGradients, const Vector< Real > &a_rteFluxes, const Vector< Real > &a_extrapCdrFluxes) const =0
 Compute CDR species fluxes through computational domain boundaries.
 
virtual Real initialSigma (const Real a_time, const RealVect &a_pos) const =0
 Return the initial surface charge density on dielectric surfaces.
 
const Vector< RefCountedPtr< CdrSpecies > > & getCdrSpecies () const
 Return the list of CDR species.
 
const Vector< RefCountedPtr< RtSpecies > > & getRtSpecies () const
 Return the list of RTE species.
 
int getNumCdrSpecies () const
 Return the number of CDR species.
 
int getNumRtSpecies () const
 Return the number of RTE equations.
 

Protected Attributes

Vector< RefCountedPtr< CdrSpecies > > m_cdrSpecies
 CDR species definitions. Subclasses populate this in their constructor.
 
Vector< RefCountedPtr< RtSpecies > > m_rtSpecies
 RTE species definitions. Subclasses populate this in their constructor.
 
int m_numCdrSpecies
 Number of CDR species.
 
int m_numRtSpecies
 Number of RTE species.
 

Detailed Description

Abstract interface for specifying plasma kinetics in the CdrPlasma physics module.

This class defines the coupling functions required by CdrPlasmaStepper to advance a system of convection-diffusion-reaction (CDR) equations for charged and neutral species together with radiative transfer equations (RTE) for photon densities, all in a self-consistent electric field obtained from Poisson's equation.

Concrete subclasses must implement:

Species are registered by filling m_cdrSpecies and m_rtSpecies in the subclass constructor. The ordering of species in all input/output vectors throughout this interface matches the ordering in those two containers.

Member Function Documentation

◆ advanceReactionNetwork()

virtual void Physics::CdrPlasma::CdrPlasmaPhysics::advanceReactionNetwork ( Vector< Real > &  a_cdrSources,
Vector< Real > &  a_rteSources,
const Vector< Real > &  a_cdrDensities,
const Vector< RealVect > &  a_cdrGradients,
const Vector< Real > &  a_rteDensities,
const RealVect a_E,
const RealVect a_pos,
const Real  a_dx,
const Real  a_dt,
const Real  a_time,
const Real  a_kappa 
) const
pure virtual

Advance the reaction network over a time interval and return source terms.

The advance is assumed to take the form phi^{k+1} = phi^k + S * dt. Implementations may either fill a_cdrSources and a_rteSources directly (explicit rule), or perform a fully implicit sub-step and back out the equivalent source S from the result.

Parameters
[out]a_cdrSourcesCDR source terms (same ordering as m_cdrSpecies).
[out]a_rteSourcesRTE source terms (same ordering as m_rtSpecies).
[in]a_cdrDensitiesCDR species densities at this point.
[in]a_cdrGradientsCDR species density gradients at this point.
[in]a_rteDensitiesRTE photon densities at this point.
[in]a_EElectric field vector at this point.
[in]a_posPhysical position.
[in]a_dxGrid cell spacing.
[in]a_dtTime step size.
[in]a_timeCurrent simulation time.
[in]a_kappaVolume fraction of the grid cell.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeAlpha()

virtual Real Physics::CdrPlasma::CdrPlasmaPhysics::computeAlpha ( const Real  a_E,
const RealVect a_position 
) const
pure virtual

Compute the Townsend ionization coefficient alpha.

Used primarily by cell tagging classes to identify high-ionization regions.

Parameters
[in]a_EElectric field magnitude (V/m).
[in]a_positionPhysical position.
Returns
Townsend ionization coefficient (1/m).

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeCdrDielectricFluxes()

virtual Vector< Real > Physics::CdrPlasma::CdrPlasmaPhysics::computeCdrDielectricFluxes ( const Real  a_time,
const RealVect a_pos,
const RealVect a_normal,
const RealVect a_E,
const Vector< Real > &  a_cdrDensities,
const Vector< Real > &  a_cdrVelocities,
const Vector< Real > &  a_cdrGradients,
const Vector< Real > &  a_rteFluxes,
const Vector< Real > &  a_extrapCdrFluxes 
) const
pure virtual

Compute CDR species fluxes on dielectric-gas EB interfaces.

Used as a boundary condition on dielectric EB cells. A positive flux is directed into the gas phase (outward from the dielectric).

Parameters
[in]a_timeCurrent simulation time.
[in]a_posEB centroid position.
[in]a_normalOutward unit normal pointing into the gas phase.
[in]a_EElectric field at the EB centroid.
[in]a_cdrDensitiesCDR densities at the EB centroid.
[in]a_cdrVelocitiesNormal component of CDR drift velocities at the EB.
[in]a_cdrGradientsNormal gradient of CDR densities at the EB.
[in]a_rteFluxesNormal component of RTE fluxes at the EB.
[in]a_extrapCdrFluxesCDR fluxes extrapolated from the gas-phase interior.
Returns
Boundary fluxes in the same order as m_cdrSpecies.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeCdrDiffusionCoefficients()

virtual Vector< Real > Physics::CdrPlasma::CdrPlasmaPhysics::computeCdrDiffusionCoefficients ( const Real  a_time,
const RealVect a_pos,
const RealVect a_E,
const Vector< Real > &  a_cdrDensities 
) const
pure virtual

Compute diffusion coefficients for all CDR species.

Parameters
[in]a_timeCurrent simulation time.
[in]a_posPhysical position.
[in]a_EElectric field vector.
[in]a_cdrDensitiesCDR species densities.
Returns
Scalar diffusion coefficients in the same order as m_cdrSpecies.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeCdrDomainFluxes()

virtual Vector< Real > Physics::CdrPlasma::CdrPlasmaPhysics::computeCdrDomainFluxes ( const Real  a_time,
const RealVect a_pos,
const int  a_dir,
const Side::LoHiSide  a_side,
const RealVect a_E,
const Vector< Real > &  a_cdrDensities,
const Vector< Real > &  a_cdrVelocities,
const Vector< Real > &  a_cdrGradients,
const Vector< Real > &  a_rteFluxes,
const Vector< Real > &  a_extrapCdrFluxes 
) const
pure virtual

Compute CDR species fluxes through computational domain boundaries.

A positive flux is directed into the domain.

Parameters
[in]a_timeCurrent simulation time.
[in]a_posPosition on the domain face.
[in]a_dirCoordinate direction (0=x, 1=y, 2=z).
[in]a_sideLow or high side of the domain.
[in]a_EElectric field at the domain face.
[in]a_cdrDensitiesCDR densities at the domain face.
[in]a_cdrVelocitiesNormal component of CDR drift velocities at the domain face.
[in]a_cdrGradientsNormal component of CDR density gradients at the domain face.
[in]a_rteFluxesNormal component of RTE fluxes at the domain face.
[in]a_extrapCdrFluxesCDR fluxes extrapolated from the interior.
Returns
Boundary fluxes in the same order as m_cdrSpecies.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeCdrDriftVelocities()

virtual Vector< RealVect > Physics::CdrPlasma::CdrPlasmaPhysics::computeCdrDriftVelocities ( const Real  a_time,
const RealVect a_pos,
const RealVect a_E,
const Vector< Real > &  a_cdrDensities 
) const
pure virtual

Compute drift velocities for all CDR species.

Parameters
[in]a_timeCurrent simulation time.
[in]a_posPhysical position.
[in]a_EElectric field vector.
[in]a_cdrDensitiesCDR species densities.
Returns
Drift velocity vectors in the same order as m_cdrSpecies.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeCdrElectrodeFluxes()

virtual Vector< Real > Physics::CdrPlasma::CdrPlasmaPhysics::computeCdrElectrodeFluxes ( const Real  a_time,
const RealVect a_pos,
const RealVect a_normal,
const RealVect a_E,
const Vector< Real > &  a_cdrDensities,
const Vector< Real > &  a_cdrVelocities,
const Vector< Real > &  a_cdrGradients,
const Vector< Real > &  a_rteFluxes,
const Vector< Real > &  a_extrapCdrFluxes 
) const
pure virtual

Compute CDR species fluxes on electrode-gas EB interfaces.

Used as a boundary condition on electrode EB cells. A positive flux is directed into the gas phase (outward from the electrode).

Parameters
[in]a_timeCurrent simulation time.
[in]a_posEB centroid position.
[in]a_normalOutward unit normal pointing into the gas phase.
[in]a_EElectric field at the EB centroid.
[in]a_cdrDensitiesCDR densities at the EB centroid.
[in]a_cdrVelocitiesNormal component of CDR drift velocities at the EB.
[in]a_cdrGradientsNormal gradient of CDR densities at the EB.
[in]a_rteFluxesNormal component of RTE fluxes at the EB.
[in]a_extrapCdrFluxesCDR fluxes extrapolated from the gas-phase interior.
Returns
Boundary fluxes in the same order as m_cdrSpecies.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeEta()

virtual Real Physics::CdrPlasma::CdrPlasmaPhysics::computeEta ( const Real  a_E,
const RealVect a_position 
) const
pure virtual

Compute the Townsend attachment coefficient eta.

Used primarily by cell tagging classes to identify attachment-dominated regions.

Parameters
[in]a_EElectric field magnitude (V/m).
[in]a_positionPhysical position.
Returns
Townsend attachment coefficient (1/m).

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getCdrSpecies()

const Vector< RefCountedPtr< CdrSpecies > > & Physics::CdrPlasma::CdrPlasmaPhysics::getCdrSpecies ( ) const
inline

Return the list of CDR species.

Returns
Const reference to the CDR species vector.

◆ getNumberOfPlotVariables()

virtual int Physics::CdrPlasma::CdrPlasmaPhysics::getNumberOfPlotVariables ( ) const
inlinevirtual

Return the number of plot variables provided by this physics class.

CdrPlasmaStepper calls this to pre-allocate output storage. The returned value must match the length of the vectors returned by getPlotVariableNames() and getPlotVariables().

Returns
Number of extra plot variables. Default is 0.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getNumCdrSpecies()

int Physics::CdrPlasma::CdrPlasmaPhysics::getNumCdrSpecies ( ) const
inline

Return the number of CDR species.

Returns
Number of CDR species.

◆ getNumRtSpecies()

int Physics::CdrPlasma::CdrPlasmaPhysics::getNumRtSpecies ( ) const
inline

Return the number of RTE equations.

Returns
Number of RTE species.

◆ getPlotVariableNames()

virtual Vector< std::string > Physics::CdrPlasma::CdrPlasmaPhysics::getPlotVariableNames ( ) const
inlinevirtual

Return the names of the extra plot variables.

The length of the returned vector must match getNumberOfPlotVariables(). The ordering must be consistent with getPlotVariables().

Returns
Vector of variable names.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getPlotVariables()

virtual Vector< Real > Physics::CdrPlasma::CdrPlasmaPhysics::getPlotVariables ( const Vector< Real > &  a_cdrDensities,
const Vector< RealVect > &  a_cdrGradients,
const Vector< Real > &  a_rteDensities,
const RealVect a_E,
const RealVect a_position,
const Real  a_dx,
const Real  a_dt,
const Real  a_time,
const Real  a_kappa 
) const
inlinevirtual

Evaluate the extra plot variables at a single grid point.

Called by CdrPlasmaStepper when writing plot files. The length of the returned vector must match getNumberOfPlotVariables().

Parameters
[in]a_cdrDensitiesCDR species densities at this point.
[in]a_cdrGradientsCDR species density gradients at this point.
[in]a_rteDensitiesRTE photon densities at this point.
[in]a_EElectric field vector at this point.
[in]a_positionPhysical position.
[in]a_dxGrid cell spacing.
[in]a_dtTime step used in the last advance.
[in]a_timeCurrent simulation time.
[in]a_kappaVolume fraction of the grid cell.
Returns
Vector of plot variable values.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getRtSpecies()

const Vector< RefCountedPtr< RtSpecies > > & Physics::CdrPlasma::CdrPlasmaPhysics::getRtSpecies ( ) const
inline

Return the list of RTE species.

Returns
Const reference to the RTE species vector.

◆ initialSigma()

virtual Real Physics::CdrPlasma::CdrPlasmaPhysics::initialSigma ( const Real  a_time,
const RealVect a_pos 
) const
pure virtual

Return the initial surface charge density on dielectric surfaces.

Parameters
[in]a_timeCurrent simulation time (typically 0).
[in]a_posPhysical position on the dielectric surface.
Returns
Initial surface charge density (C/m^2 in 3D, C/m in 2D).

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ parseRuntimeOptions()

virtual void Physics::CdrPlasma::CdrPlasmaPhysics::parseRuntimeOptions ( )
inlinevirtual

Parse runtime options. Default implementation does nothing.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.


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