chombo-discharge
Public Member Functions | Protected Attributes | List of all members
Physics::CdrPlasma::CdrPlasmaPhysics Class Referenceabstract

Abstract base class for specifying plasma kinetics. This is the base class used by CdrPlasmaStepper when advancing the minimal plasma model. More...

#include <CD_CdrPlasmaPhysics.H>

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

Public Member Functions

 CdrPlasmaPhysics ()
 Default constructor. Does nothing.
 
virtual ~CdrPlasmaPhysics ()
 Base destructor. Does nothing.
 
virtual void parseRuntimeOptions ()
 Parse run-time options.
 
virtual int getNumberOfPlotVariables () const
 Get number of plot variables for this physics class. More...
 
virtual Vector< std::string > getPlotVariableNames () const
 Get plot variable names. The. More...
 
virtual Vector< Real > 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
 Provide plot variables. This is used by CdrPlasmaStepper when writing plot files. More...
 
virtual Real computeAlpha (const Real a_E, const RealVect a_position) const =0
 Compute alpha. Should return Townsend ionization coefficient. More...
 
virtual Real computeEta (const Real a_E, const RealVect a_position) const =0
 Compute eta. Should return Townsend attachment coefficient. More...
 
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
 Routine intended for advancing a reaction network over a time a_dt. More...
 
virtual Vector< RealVect > computeCdrDriftVelocities (const Real a_time, const RealVect a_pos, const RealVect a_E, const Vector< Real > a_cdrDensities) const =0
 Compute velocities for the CDR equations. More...
 
virtual Vector< Real > computeCdrDiffusionCoefficients (const Real a_time, const RealVect a_pos, const RealVect a_E, const Vector< Real > a_cdrDensities) const =0
 Compute diffusion coefficients for the CDR equations. More...
 
virtual Vector< Real > 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 =0
 Compute CDR fluxes on electrode-gas interfaces. This is used as a boundary condition in the CDR equations. More...
 
virtual Vector< Real > 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 =0
 Compute CDR fluxes on dielectric-gas interfaces. This is used as a boundary condition in the CDR equations. More...
 
virtual Vector< Real > 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 =0
 Compute CDR fluxes through domain sides. This is used as a boundary condition in the CDR equations. More...
 
virtual Real initialSigma (const Real a_time, const RealVect a_pos) const =0
 Set the initial surface charge. More...
 
const Vector< RefCountedPtr< CdrSpecies > > & getCdrSpecies () const
 Get all CDR species.
 
const Vector< RefCountedPtr< RtSpecies > > & getRtSpecies () const
 Get all RTE species.
 
int getNumCdrSpecies () const
 Return number of CDR species that we solve for.
 
int getNumRtSpecies () const
 Return number of RTE equations that we solve for.
 

Protected Attributes

Vector< RefCountedPtr< CdrSpecies > > m_cdrSpecies
 List of species.
 
Vector< RefCountedPtr< RtSpecies > > m_rtSpecies
 List of optical transitions between species.
 
int m_numCdrSpecies
 Number of species.
 
int m_numRtSpecies
 Number of RTE species.
 

Detailed Description

Abstract base class for specifying plasma kinetics. This is the base class used by CdrPlasmaStepper when advancing the minimal plasma model.

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

Routine intended for advancing a reaction network over a time a_dt.

This routine assumes that the subsequent advance is in the form phi^(k+1) = phi^k + S*a_dt. Thus, this routine exists such that users can EITHER fill a_cdrSources and a_rteSources directly with an explicit rule, OR they can perform a fully implicit advance within this routine and set S from that.

Parameters
[out]a_cdrSourcesSource terms for CDR equations.
[out]a_rteSourcesSource terms for RTE equations.
[in]a_cdrDensitiesGrid-based density for particle species.
[in]a_cdrGradientsGrid-based gradients for particle species.
[in]a_rteDensitiesGrid-based densities for photons.
[in]a_EElectric field.
[in]a_posPosition in space.
[in]a_dxGrid resolution.
[in]a_dtAdvanced time.
[in]a_timeCurrent time.
[in]a_kappaGrid cell unit volume.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeAlpha()

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

Compute alpha. Should return Townsend ionization coefficient.

This function is mostly used for the cell tagging classes

Parameters
[in]a_EElectric field.
[in]a_positionPhysical coordinates

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 fluxes on dielectric-gas interfaces. This is used as a boundary condition in the CDR equations.

Parameters
[in]a_timeTime
[in]a_posPosition
[in]a_normalNormal vector. This points into the gas phase.
[in]a_EElectric field
[in]a_cdrDensitiesCDR densities (on the EB)
[in]a_cdrVelocitiesNormal component of CDR velocities (on the EB).
[in]a_cdrGradientsNormal gradients of cdr densities
[in]a_rteFluxesRTE fluxes (normal component only)
[in]a_extrapCdrFluxesExtrapolated fluxes from the gas side.
Returns
Returns the flux on a dielectric interface cell. The vector ordering must be the same as m_cdrSpecies.
Note
A positive flux is a flux INTO the domain.

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 the CDR equations.

Parameters
[in]a_timeTime
[in]a_posPosition
[in]a_EElectric field
[in]a_cdrDensitiesCDR densities
Returns
Returns the diffusion coefficients for each CDR species. The vector ordering is the same 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 fluxes through domain sides. This is used as a boundary condition in the CDR equations.

Parameters
[in]a_timeTime
[in]a_posPosition
[in]a_dirDirection (0 = x, 1=y etc)
[in]a_sideSide (low or high side)
[in]a_EElectric field
[in]a_cdrDensitiesCDR densities.
[in]a_cdrVelocitiesCDR velocities (normal component only).
[in]a_cdrGradientsCDR gradients (normal component only)
[in]a_rteFluxesRTE fluxes (normal component only)
[in]a_extrapCdrFluxesExtrapolated fluxes from the gas side.
Note
A positive flux is a flux INTO the domain.

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 velocities for the CDR equations.

Parameters
[in]a_timeTime
[in]a_posPosition
[in]a_EElectric field
[in]a_cdrDensitiesCDR densities
Returns
Returns the drift velocities for each CDR species. The vector ordering is the same 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 fluxes on electrode-gas interfaces. This is used as a boundary condition in the CDR equations.

Parameters
[in]a_timeTime
[in]a_posPosition
[in]a_normalBoundary normal vector. This points into the gas phase.
[in]a_EElectric field
[in]a_cdrVelocitiesCDR velocities. Normal component only.
[in]a_cdrDensitiesCDR densities.
[in]a_cdrGradientsNormal gradients of cdr densities
[in]a_rteFluxesRTE fluxes (normal component only)
[in]a_extrapCdrFluxesExtrapolated fluxes from the gas side.
Returns
Returns the flux on an electrode interface cell. The vector ordering must be the same as m_cdrSpecies.
Note
A positive flux is a flux INTO the domain.

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ computeEta()

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

Compute eta. Should return Townsend attachment coefficient.

This function is mostly used for the cell tagging classes

Parameters
[in]a_EElectric field.
[in]a_positionPhysical coordinates

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getNumberOfPlotVariables()

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

Get number of plot variables for this physics class.

This is used by CdrPlasmaStepper for pre-allocating data that will be put in a plot file. When overriding this method then this routine should return the number of plot variables that will be plotted. The returned number should thus be the same as the vectors that are returned from getPlotVariableNames and getPlotVariables.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ getPlotVariableNames()

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

Get plot variable names. The.

This function will return the plot variable names that CdrPlasmaPhysics will plot. The length of the returned vector must be the same as the returned value from getNumberOfPlotVariables. Note that the names/positions between this routine and getPlotVariables should be consistent.

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

Provide plot variables. This is used by CdrPlasmaStepper when writing plot files.

The length of the returned vector should be the same as the returned value from getNumberOfPlotVariables. The names for the returned variables are given by the returned vector in getPlotVariableNames().

Parameters
[in]a_cdrDensitiesGrid-based density for particle species.
[in]a_cdrGradientsGrid-based gradients for particle species.
[in]a_rteDensitiesGrid-based densities for photons.
[in]a_EElectric field.
[in]a_posPosition in space.
[in]a_dxGrid resolution.
[in]a_dtAdvanced time.
[in]a_timeCurrent time.
[in]a_kappaGrid cell unit volume.

Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.

◆ initialSigma()

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

Set the initial surface charge.

Parameters
[in]a_timeTime
[in]a_posPosition

Implemented in Physics::CdrPlasma::CdrPlasmaJSON.


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