|
chombo-discharge
|
Abstract interface for specifying plasma kinetics in the CdrPlasma physics module. More...
#include <CD_CdrPlasmaPhysics.H>

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::string > | getPlotVariableNames () const |
| Return the names of the extra plot variables. | |
| 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 |
| 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< RealVect > | computeCdrDriftVelocities (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< 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 all CDR species. | |
| 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 species fluxes on electrode-gas EB interfaces. | |
| 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 species fluxes on dielectric-gas EB interfaces. | |
| 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 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. | |
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.
|
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.
| [out] | a_cdrSources | CDR source terms (same ordering as m_cdrSpecies). |
| [out] | a_rteSources | RTE source terms (same ordering as m_rtSpecies). |
| [in] | a_cdrDensities | CDR species densities at this point. |
| [in] | a_cdrGradients | CDR species density gradients at this point. |
| [in] | a_rteDensities | RTE photon densities at this point. |
| [in] | a_E | Electric field vector at this point. |
| [in] | a_pos | Physical position. |
| [in] | a_dx | Grid cell spacing. |
| [in] | a_dt | Time step size. |
| [in] | a_time | Current simulation time. |
| [in] | a_kappa | Volume fraction of the grid cell. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute the Townsend ionization coefficient alpha.
Used primarily by cell tagging classes to identify high-ionization regions.
| [in] | a_E | Electric field magnitude (V/m). |
| [in] | a_position | Physical position. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
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).
| [in] | a_time | Current simulation time. |
| [in] | a_pos | EB centroid position. |
| [in] | a_normal | Outward unit normal pointing into the gas phase. |
| [in] | a_E | Electric field at the EB centroid. |
| [in] | a_cdrDensities | CDR densities at the EB centroid. |
| [in] | a_cdrVelocities | Normal component of CDR drift velocities at the EB. |
| [in] | a_cdrGradients | Normal gradient of CDR densities at the EB. |
| [in] | a_rteFluxes | Normal component of RTE fluxes at the EB. |
| [in] | a_extrapCdrFluxes | CDR fluxes extrapolated from the gas-phase interior. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute diffusion coefficients for all CDR species.
| [in] | a_time | Current simulation time. |
| [in] | a_pos | Physical position. |
| [in] | a_E | Electric field vector. |
| [in] | a_cdrDensities | CDR species densities. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute CDR species fluxes through computational domain boundaries.
A positive flux is directed into the domain.
| [in] | a_time | Current simulation time. |
| [in] | a_pos | Position on the domain face. |
| [in] | a_dir | Coordinate direction (0=x, 1=y, 2=z). |
| [in] | a_side | Low or high side of the domain. |
| [in] | a_E | Electric field at the domain face. |
| [in] | a_cdrDensities | CDR densities at the domain face. |
| [in] | a_cdrVelocities | Normal component of CDR drift velocities at the domain face. |
| [in] | a_cdrGradients | Normal component of CDR density gradients at the domain face. |
| [in] | a_rteFluxes | Normal component of RTE fluxes at the domain face. |
| [in] | a_extrapCdrFluxes | CDR fluxes extrapolated from the interior. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute drift velocities for all CDR species.
| [in] | a_time | Current simulation time. |
| [in] | a_pos | Physical position. |
| [in] | a_E | Electric field vector. |
| [in] | a_cdrDensities | CDR species densities. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
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).
| [in] | a_time | Current simulation time. |
| [in] | a_pos | EB centroid position. |
| [in] | a_normal | Outward unit normal pointing into the gas phase. |
| [in] | a_E | Electric field at the EB centroid. |
| [in] | a_cdrDensities | CDR densities at the EB centroid. |
| [in] | a_cdrVelocities | Normal component of CDR drift velocities at the EB. |
| [in] | a_cdrGradients | Normal gradient of CDR densities at the EB. |
| [in] | a_rteFluxes | Normal component of RTE fluxes at the EB. |
| [in] | a_extrapCdrFluxes | CDR fluxes extrapolated from the gas-phase interior. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
pure virtual |
Compute the Townsend attachment coefficient eta.
Used primarily by cell tagging classes to identify attachment-dominated regions.
| [in] | a_E | Electric field magnitude (V/m). |
| [in] | a_position | Physical position. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
inline |
Return the list of CDR species.
|
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().
Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
inline |
Return the number of CDR species.
|
inline |
Return the number of RTE equations.
|
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().
Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
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().
| [in] | a_cdrDensities | CDR species densities at this point. |
| [in] | a_cdrGradients | CDR species density gradients at this point. |
| [in] | a_rteDensities | RTE photon densities at this point. |
| [in] | a_E | Electric field vector at this point. |
| [in] | a_position | Physical position. |
| [in] | a_dx | Grid cell spacing. |
| [in] | a_dt | Time step used in the last advance. |
| [in] | a_time | Current simulation time. |
| [in] | a_kappa | Volume fraction of the grid cell. |
Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
inline |
Return the list of RTE species.
|
pure virtual |
Return the initial surface charge density on dielectric surfaces.
| [in] | a_time | Current simulation time (typically 0). |
| [in] | a_pos | Physical position on the dielectric surface. |
Implemented in Physics::CdrPlasma::CdrPlasmaJSON.
|
inlinevirtual |
Parse runtime options. Default implementation does nothing.
Reimplemented in Physics::CdrPlasma::CdrPlasmaJSON.