chombo-discharge
|
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>
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. | |
Abstract base class for specifying plasma kinetics. This is the base class used by CdrPlasmaStepper when advancing the minimal plasma model.
|
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.
[out] | a_cdrSources | Source terms for CDR equations. |
[out] | a_rteSources | Source terms for RTE equations. |
[in] | a_cdrDensities | Grid-based density for particle species. |
[in] | a_cdrGradients | Grid-based gradients for particle species. |
[in] | a_rteDensities | Grid-based densities for photons. |
[in] | a_E | Electric field. |
[in] | a_pos | Position in space. |
[in] | a_dx | Grid resolution. |
[in] | a_dt | Advanced time. |
[in] | a_time | Current time. |
[in] | a_kappa | Grid cell unit volume. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute alpha. Should return Townsend ionization coefficient.
This function is mostly used for the cell tagging classes
[in] | a_E | Electric field. |
[in] | a_position | Physical coordinates |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute CDR fluxes on dielectric-gas interfaces. This is used as a boundary condition in the CDR equations.
[in] | a_time | Time |
[in] | a_pos | Position |
[in] | a_normal | Normal vector. This points into the gas phase. |
[in] | a_E | Electric field |
[in] | a_cdrDensities | CDR densities (on the EB) |
[in] | a_cdrVelocities | Normal component of CDR velocities (on the EB). |
[in] | a_cdrGradients | Normal gradients of cdr densities |
[in] | a_rteFluxes | RTE fluxes (normal component only) |
[in] | a_extrapCdrFluxes | Extrapolated fluxes from the gas side. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute diffusion coefficients for the CDR equations.
[in] | a_time | Time |
[in] | a_pos | Position |
[in] | a_E | Electric field |
[in] | a_cdrDensities | CDR densities |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute CDR fluxes through domain sides. This is used as a boundary condition in the CDR equations.
[in] | a_time | Time |
[in] | a_pos | Position |
[in] | a_dir | Direction (0 = x, 1=y etc) |
[in] | a_side | Side (low or high side) |
[in] | a_E | Electric field |
[in] | a_cdrDensities | CDR densities. |
[in] | a_cdrVelocities | CDR velocities (normal component only). |
[in] | a_cdrGradients | CDR gradients (normal component only) |
[in] | a_rteFluxes | RTE fluxes (normal component only) |
[in] | a_extrapCdrFluxes | Extrapolated fluxes from the gas side. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute velocities for the CDR equations.
[in] | a_time | Time |
[in] | a_pos | Position |
[in] | a_E | Electric field |
[in] | a_cdrDensities | CDR densities |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute CDR fluxes on electrode-gas interfaces. This is used as a boundary condition in the CDR equations.
[in] | a_time | Time |
[in] | a_pos | Position |
[in] | a_normal | Boundary normal vector. This points into the gas phase. |
[in] | a_E | Electric field |
[in] | a_cdrVelocities | CDR velocities. Normal component only. |
[in] | a_cdrDensities | CDR densities. |
[in] | a_cdrGradients | Normal gradients of cdr densities |
[in] | a_rteFluxes | RTE fluxes (normal component only) |
[in] | a_extrapCdrFluxes | Extrapolated fluxes from the gas side. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute eta. Should return Townsend attachment coefficient.
This function is mostly used for the cell tagging classes
[in] | a_E | Electric field. |
[in] | a_position | Physical coordinates |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
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.
|
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.
|
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().
[in] | a_cdrDensities | Grid-based density for particle species. |
[in] | a_cdrGradients | Grid-based gradients for particle species. |
[in] | a_rteDensities | Grid-based densities for photons. |
[in] | a_E | Electric field. |
[in] | a_pos | Position in space. |
[in] | a_dx | Grid resolution. |
[in] | a_dt | Advanced time. |
[in] | a_time | Current time. |
[in] | a_kappa | Grid cell unit volume. |
Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Set the initial surface charge.
[in] | a_time | Time |
[in] | a_pos | Position |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.