chombo-discharge
Loading...
Searching...
No Matches
CD_CdrPlasmaPhysics.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_CDRPLASMAPHYSICS_H
14#define CD_CDRPLASMAPHYSICS_H
15
16// Chombo includes
17#include <RealVect.H>
18#include <RefCountedPtr.H>
19#include <LoHiSide.H>
20
21// Our includes
22#include <CD_CdrSpecies.H>
23#include <CD_RtSpecies.H>
24#include <CD_NamespaceHeader.H>
25
26namespace Physics {
27 namespace CdrPlasma {
28
52 {
53 public:
59
64 {}
65
69 virtual void
71
78 virtual int
80 {
81 return 0;
82 }
83
90 virtual Vector<std::string>
92 {
93 return Vector<std::string>(this->getNumberOfPlotVariables(), std::string("empty data"));
94 }
95
111 virtual Vector<Real>
112 getPlotVariables(const Vector<Real>& a_cdrDensities,
113 const Vector<RealVect>& a_cdrGradients,
114 const Vector<Real>& a_rteDensities,
115 const RealVect& a_E,
116 const RealVect& a_position,
117 const Real a_dx,
118 const Real a_dt,
119 const Real a_time,
120 const Real a_kappa) const
121 {
122 return Vector<Real>(this->getNumberOfPlotVariables(), 1.0);
123 }
124
132 virtual Real
133 computeAlpha(const Real a_E, const RealVect& a_position) const = 0;
134
142 virtual Real
143 computeEta(const Real a_E, const RealVect& a_position) const = 0;
144
162 virtual void
163 advanceReactionNetwork(Vector<Real>& a_cdrSources,
164 Vector<Real>& a_rteSources,
165 const Vector<Real>& a_cdrDensities,
166 const Vector<RealVect>& a_cdrGradients,
167 const Vector<Real>& a_rteDensities,
168 const RealVect& a_E,
169 const RealVect& a_pos,
170 const Real a_dx,
171 const Real a_dt,
172 const Real a_time,
173 const Real a_kappa) const = 0;
174
183 virtual Vector<RealVect>
184 computeCdrDriftVelocities(const Real a_time,
185 const RealVect& a_pos,
186 const RealVect& a_E,
187 const Vector<Real>& a_cdrDensities) const = 0;
188
197 virtual Vector<Real>
199 const RealVect& a_pos,
200 const RealVect& a_E,
201 const Vector<Real>& a_cdrDensities) const = 0;
202
218 virtual Vector<Real>
219 computeCdrElectrodeFluxes(const Real a_time,
220 const RealVect& a_pos,
221 const RealVect& a_normal,
222 const RealVect& a_E,
223 const Vector<Real>& a_cdrDensities,
224 const Vector<Real>& a_cdrVelocities,
225 const Vector<Real>& a_cdrGradients,
226 const Vector<Real>& a_rteFluxes,
227 const Vector<Real>& a_extrapCdrFluxes) const = 0;
228
244 virtual Vector<Real>
245 computeCdrDielectricFluxes(const Real a_time,
246 const RealVect& a_pos,
247 const RealVect& a_normal,
248 const RealVect& a_E,
249 const Vector<Real>& a_cdrDensities,
250 const Vector<Real>& a_cdrVelocities,
251 const Vector<Real>& a_cdrGradients,
252 const Vector<Real>& a_rteFluxes,
253 const Vector<Real>& a_extrapCdrFluxes) const = 0;
254
270 virtual Vector<Real>
271 computeCdrDomainFluxes(const Real a_time,
272 const RealVect& a_pos,
273 const int a_dir,
274 const Side::LoHiSide a_side,
275 const RealVect& a_E,
276 const Vector<Real>& a_cdrDensities,
277 const Vector<Real>& a_cdrVelocities,
278 const Vector<Real>& a_cdrGradients,
279 const Vector<Real>& a_rteFluxes,
280 const Vector<Real>& a_extrapCdrFluxes) const = 0;
281
288 virtual Real
289 initialSigma(const Real a_time, const RealVect& a_pos) const = 0;
290
295 const Vector<RefCountedPtr<CdrSpecies>>&
297 {
298 return m_cdrSpecies;
299 }
300
305 const Vector<RefCountedPtr<RtSpecies>>&
307 {
308 return m_rtSpecies;
309 }
310
315 int
317 {
318 return m_cdrSpecies.size();
319 }
320
325 int
327 {
328 return m_rtSpecies.size();
329 }
330
331 protected:
335 Vector<RefCountedPtr<CdrSpecies>> m_cdrSpecies;
336
340 Vector<RefCountedPtr<RtSpecies>> m_rtSpecies;
341
346
351 };
352 } // namespace CdrPlasma
353} // namespace Physics
354
355#include <CD_NamespaceFooter.H>
356
357#endif
Declaration of a class that passes information into CdrSolver (e.g., initial conditions).
Declaration of a class which supplies a user interface to radiative transfer code.
Abstract interface for specifying plasma kinetics in the CdrPlasma physics module.
Definition CD_CdrPlasmaPhysics.H:52
virtual ~CdrPlasmaPhysics()
Destructor. Does nothing.
Definition CD_CdrPlasmaPhysics.H:63
virtual int getNumberOfPlotVariables() const
Return the number of plot variables provided by this physics class.
Definition CD_CdrPlasmaPhysics.H:79
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.
const Vector< RefCountedPtr< CdrSpecies > > & getCdrSpecies() const
Return the list of CDR species.
Definition CD_CdrPlasmaPhysics.H:296
int m_numRtSpecies
Number of RTE species.
Definition CD_CdrPlasmaPhysics.H:350
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 > 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 > 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.
Definition CD_CdrPlasmaPhysics.H:112
virtual Real computeEta(const Real a_E, const RealVect &a_position) const =0
Compute the Townsend attachment coefficient eta.
int getNumCdrSpecies() const
Return the number of CDR species.
Definition CD_CdrPlasmaPhysics.H:316
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 void parseRuntimeOptions()
Parse runtime options. Default implementation does nothing.
Definition CD_CdrPlasmaPhysics.H:70
CdrPlasmaPhysics()
Default constructor. Does nothing.
Definition CD_CdrPlasmaPhysics.H:57
int getNumRtSpecies() const
Return the number of RTE equations.
Definition CD_CdrPlasmaPhysics.H:326
Vector< RefCountedPtr< CdrSpecies > > m_cdrSpecies
CDR species definitions. Subclasses populate this in their constructor.
Definition CD_CdrPlasmaPhysics.H:335
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.
Vector< RefCountedPtr< RtSpecies > > m_rtSpecies
RTE species definitions. Subclasses populate this in their constructor.
Definition CD_CdrPlasmaPhysics.H:340
const Vector< RefCountedPtr< RtSpecies > > & getRtSpecies() const
Return the list of RTE species.
Definition CD_CdrPlasmaPhysics.H:306
virtual Real computeAlpha(const Real a_E, const RealVect &a_position) const =0
Compute the Townsend ionization coefficient alpha.
int m_numCdrSpecies
Number of CDR species.
Definition CD_CdrPlasmaPhysics.H:345
virtual Vector< std::string > getPlotVariableNames() const
Return the names of the extra plot variables.
Definition CD_CdrPlasmaPhysics.H:91
virtual Real initialSigma(const Real a_time, const RealVect &a_pos) const =0
Return the initial surface charge density on dielectric surfaces.
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.
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16