chombo-discharge
CD_ItoPlasmaAir3LFA.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_ItoPlasmaAir3LFA_H
13 #define CD_ItoPlasmaAir3LFA_H
14 
15 // Our includes
16 #include <CD_ItoPlasmaPhysics.H>
17 #include <CD_LookupTable1D.H>
18 #include <CD_NamespaceHeader.H>
19 
20 namespace Physics {
21  namespace ItoPlasma {
22 
28  {
29  public:
30  class Electron;
31  class Positive;
32  class Negative;
33  class PhotonZ;
34 
39 
43  virtual ~ItoPlasmaAir3LFA();
44 
48  virtual void
49  parseRuntimeOptions() noexcept override;
50 
58  virtual Real
59  computeDt(const RealVect a_E, const RealVect a_pos, const Vector<Real> a_densities) const noexcept override;
60 
65  virtual Real
66  computeAlpha(const RealVect a_E) const override;
67 
74  virtual void
75  updateReactionRates(const RealVect a_E, const Real a_dx, const Real a_kappa) const noexcept override;
76 
83  Vector<Real>
84  computeItoMobilities(const Real a_time, const RealVect a_pos, const RealVect a_E) const noexcept override;
85 
92  Vector<Real>
93  computeItoDiffusion(const Real a_time, const RealVect a_pos, const RealVect a_E) const noexcept override;
94 
113  void
114  injectParticlesEB(Vector<List<ItoParticle>>& a_outgoingParticles,
115  Vector<List<Photon>>& a_outgoingPhotons,
116  const Vector<List<ItoParticle>>& a_incomingParticles,
117  const Vector<List<Photon>>& a_incomingPhotons,
118  const Vector<FPR>& a_newNumParticles,
119  const Vector<FPR>& a_oldNumParticles,
120  const RealVect& a_E,
121  const RealVect& a_cellCenter,
122  const RealVect& a_cellCentroid,
123  const RealVect& a_bndryCentroid,
124  const RealVect& a_bndryNormal,
125  const Real a_bndryArea,
126  const Real a_dx,
127  const Real a_dt,
128  const bool a_isDielectric,
129  const int a_matIndex) const noexcept override;
130 
131  protected:
136 
140  Real m_deltaX;
141 
146 
151 
156 
161 
166 
171 
175  Real m_N;
176 
180  Real m_p;
181 
185  Real m_pq;
186 
190  Real m_T;
191 
195  Real m_O2frac;
196 
200  Real m_N2frac;
201 
206 
210  std::map<std::string, LookupTable1D<2>> m_tables;
211 
215  virtual Real
216  excitationRates(const Real a_E) const;
217 
221  virtual Real
222  sergeyFactor(const Real a_O2frac) const;
223 
229  virtual void
230  addTable(const std::string a_tableName, const std::string a_file) noexcept;
231 
235  virtual void
236  readTables() noexcept;
237 
241  virtual void
242  parseDx() noexcept;
243 
247  virtual void
248  parseTransport() noexcept;
249  };
250 
255  {
256  public:
260  Electron();
261 
265  virtual ~Electron();
266  };
267 
272  {
273  public:
277  Positive();
278 
282  virtual ~Positive();
283  };
284 
286  {
287  public:
291  Negative();
292 
296  virtual ~Negative();
297  };
298 
300  {
301  public:
305  PhotonZ();
306 
310  virtual ~PhotonZ();
311 
316  Real
317  getAbsorptionCoefficient(const RealVect a_pos) const override;
318 
319  protected:
323  Real m_f1;
324 
328  Real m_f2;
329 
333  Real m_K1;
334 
338  Real m_K2;
339  };
340  } // namespace ItoPlasma
341 } // namespace Physics
342 
343 #include <CD_NamespaceFooter.H>
344 
345 #endif
Main file for describing Ito-based plasma physics.
Declaration of a table for looking up coefficients etc.
Class that acts as user interface for parsing initial data and mobility/diffusion kernels into ItoSol...
Definition: CD_ItoSpecies.H:28
Electron species.
Definition: CD_ItoPlasmaAir3LFA.H:255
Definition: CD_ItoPlasmaAir3LFA.H:286
Definition: CD_ItoPlasmaAir3LFA.H:300
Real m_f1
Lower frequency.
Definition: CD_ItoPlasmaAir3LFA.H:323
Real m_K2
K2 factor.
Definition: CD_ItoPlasmaAir3LFA.H:338
Real m_K1
K1 factor.
Definition: CD_ItoPlasmaAir3LFA.H:333
Real m_f2
Upper frequency.
Definition: CD_ItoPlasmaAir3LFA.H:328
Positive ion species.
Definition: CD_ItoPlasmaAir3LFA.H:272
Hard-coded implementation of ItoPlasmaPhysics for simplified discharges in STP air....
Definition: CD_ItoPlasmaAir3LFA.H:28
Real m_deltaX
User-defined parameter for time step restriction.
Definition: CD_ItoPlasmaAir3LFA.H:140
Vector< Real > computeItoMobilities(const Real a_time, const RealVect a_pos, const RealVect a_E) const noexcept override
Compute the Ito solver mobilities.
Definition: CD_ItoPlasmaAir3LFA.cpp:226
Real m_O2frac
O2 content.
Definition: CD_ItoPlasmaAir3LFA.H:195
Real m_p
Gas pressure (SI)
Definition: CD_ItoPlasmaAir3LFA.H:180
virtual ~ItoPlasmaAir3LFA()
Destructor. Does nothing of importance.
Definition: CD_ItoPlasmaAir3LFA.cpp:119
std::map< std::string, LookupTable1D< 2 > > m_tables
Lookup tables holding mobilities, rate coefficients etc.
Definition: CD_ItoPlasmaAir3LFA.H:210
Real m_ionMobility
Ion mobility.
Definition: CD_ItoPlasmaAir3LFA.H:155
void injectParticlesEB(Vector< List< ItoParticle >> &a_outgoingParticles, Vector< List< Photon >> &a_outgoingPhotons, const Vector< List< ItoParticle >> &a_incomingParticles, const Vector< List< Photon >> &a_incomingPhotons, const Vector< FPR > &a_newNumParticles, const Vector< FPR > &a_oldNumParticles, const RealVect &a_E, const RealVect &a_cellCenter, const RealVect &a_cellCentroid, const RealVect &a_bndryCentroid, const RealVect &a_bndryNormal, const Real a_bndryArea, const Real a_dx, const Real a_dt, const bool a_isDielectric, const int a_matIndex) const noexcept override
Resolve particle and photon injection at the EB.
Definition: CD_ItoPlasmaAir3LFA.cpp:252
Real m_photoIonizationFactor
Photo-ionization factor.
Definition: CD_ItoPlasmaAir3LFA.H:205
Vector< Real > computeItoDiffusion(const Real a_time, const RealVect a_pos, const RealVect a_E) const noexcept override
Compute the Ito solver diffusion coefficients.
Definition: CD_ItoPlasmaAir3LFA.cpp:240
Real m_ionImpactEfficiency
Ion impact efficiency.
Definition: CD_ItoPlasmaAir3LFA.H:165
virtual Real excitationRates(const Real a_E) const
Excitation rate for photoionization term.
Definition: CD_ItoPlasmaAir3LFA.cpp:335
virtual void updateReactionRates(const RealVect a_E, const Real a_dx, const Real a_kappa) const noexcept override
Update reaction rates.
Definition: CD_ItoPlasmaAir3LFA.cpp:311
Real m_pq
Quenching pressure (SI)
Definition: CD_ItoPlasmaAir3LFA.H:185
virtual Real sergeyFactor(const Real a_O2frac) const
Sergey factor for photoionization term.
Definition: CD_ItoPlasmaAir3LFA.cpp:350
Real m_T
Gas temperature.
Definition: CD_ItoPlasmaAir3LFA.H:190
Real m_quantumEfficiency
Quantum efficiency.
Definition: CD_ItoPlasmaAir3LFA.H:170
Real m_N
Neutral number density.
Definition: CD_ItoPlasmaAir3LFA.H:175
virtual void parseTransport() noexcept
Parse some auxiliary transport settings.
Definition: CD_ItoPlasmaAir3LFA.cpp:143
ItoPlasmaAir3LFA()
Full constructor. Initializes species and sets up reactions.
Definition: CD_ItoPlasmaAir3LFA.cpp:24
virtual void parseDx() noexcept
Parse the m_dX variable used for time step restriction.
Definition: CD_ItoPlasmaAir3LFA.cpp:133
virtual void parseRuntimeOptions() noexcept override
Parse run-time options.
Definition: CD_ItoPlasmaAir3LFA.cpp:122
virtual Real computeAlpha(const RealVect a_E) const override
Compute Townsend ionization coefficient.
Definition: CD_ItoPlasmaAir3LFA.cpp:218
int m_numRtSpecies
Number of radiative transfer species.
Definition: CD_ItoPlasmaAir3LFA.H:150
int m_numPlasmaSpecies
Number of plasma species.
Definition: CD_ItoPlasmaAir3LFA.H:145
Real m_ionDiffCo
Ion diffusion coefficient.
Definition: CD_ItoPlasmaAir3LFA.H:160
Real m_N2frac
N2 content.
Definition: CD_ItoPlasmaAir3LFA.H:200
virtual Real computeDt(const RealVect a_E, const RealVect a_pos, const Vector< Real > a_densities) const noexcept override
Compute a physics-baseded time step.
Definition: CD_ItoPlasmaAir3LFA.cpp:207
virtual void readTables() noexcept
Read various tabulated data into the lookup tables in this class.
Definition: CD_ItoPlasmaAir3LFA.cpp:165
bool m_extrapBC
Extrapolate BC or not.
Definition: CD_ItoPlasmaAir3LFA.H:135
virtual void addTable(const std::string a_tableName, const std::string a_file) noexcept
Add a table to m_tables.
Definition: CD_ItoPlasmaAir3LFA.cpp:195
Base class for interaction between Kinetic Monte Carlo and Ito-based plasma solvers.
Definition: CD_ItoPlasmaPhysics.H:64
Declaration of a class that defines an interface to radiative transfer solvers, i....
Definition: CD_RtSpecies.H:30
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15