16#ifndef CD_DischargeInceptionStepper_H
17#define CD_DischargeInceptionStepper_H
27#include <CD_NamespaceHeader.H>
30 namespace DischargeInception {
78 template <
typename P = TracerParticle<2, 3>,
typename F = FieldSolverGMG,
typename C = CdrCTU>
179 writeCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
const override;
190 readCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
override;
204 virtual Vector<std::string>
217 const std::string a_outputRealm,
218 const int a_level)
const override;
223 virtual Vector<std::string>
229 virtual Vector<std::
string>
244 advance(const Real a_dt) override;
273 preRegrid(const
int a_lmin, const
int a_oldFinestLevel) override;
282 regrid(const
int a_lmin, const
int a_oldFinestLevel, const
int a_newFinestLevel) override;
296 setVoltageCurve(const std::function<Real(const Real& a_time)>& a_voltageCurve) noexcept;
303 setRho(const std::function<Real(const RealVect& x)>& a_rho) noexcept;
310 setSigma(const std::function<Real(const RealVect& x)>& a_sigma) noexcept;
317 setIonDensity(const std::function<Real(const RealVect x)>& a_density) noexcept;
324 setIonMobility(const std::function<Real(const Real E)>& a_mobility) noexcept;
331 setIonDiffusion(const std::function<Real(const Real E)>& a_diffCo) noexcept;
338 setAlpha(const std::function<Real(const Real& E, const RealVect& x)>& a_alpha) noexcept;
345 setEta(const std::function<Real(const Real& E, const RealVect& x)>& a_eta) noexcept;
350 virtual const std::function<Real(const Real& E, const RealVect& x)>&
356 virtual const std::function<Real(const Real& E, const RealVect& x)>&
364 setBackgroundRate(const std::function<Real(const Real& E, const RealVect& x)>& a_backgroundRate) noexcept;
372 setDetachmentRate(const std::function<Real(const Real& E, const RealVect& x)>& a_detachmentRate) noexcept;
379 setFieldEmission(const std::function<Real(const Real& E, const RealVect& x)>& a_currentDensity) noexcept;
386 setSecondaryEmission(const std::function<Real(const Real& E, const RealVect& x)>& a_coeff) noexcept;
628 std::vector<std::pair<Real, Real>>
m_maxK;
634 std::vector<std::pair<Real, Real>>
m_maxT;
689 std::vector<std::pair<Real, Real>>
m_Rdot;
915 std::function<Real(const RealVect& x)>
m_rho;
920 std::function<Real(const RealVect& x)>
m_sigma;
940 std::function<Real(const Real& E, const RealVect& x)>
m_alpha;
945 std::function<Real(const Real& E, const RealVect& x)>
m_eta;
1060 computeRdot(const Real& a_voltage) const noexcept;
1112 const Real& a_voltage,
1113 const std::function<Real(const Real E, const RealVect x)>& a_func) const noexcept;
1125 const Real& a_voltage,
1126 const std::function<Real(const Real E, const RealVect x)>& a_func,
1127 const
int a_level) const noexcept;
1140 virtual std::pair<Real, RealVect>
1209 const std::
string a_outputRealm,
1210 const
int a_level) const noexcept;
1222 const std::
string a_outputRealm,
1223 const
int a_level) const noexcept;
1233 particleOutsideGrid(const RealVect& a_pos, const RealVect& a_probLo, const RealVect& a_probHi) const noexcept;
1316 const Real a_voltage) const noexcept;
1337 writeData(LevelData<EBCellFAB>& a_output,
1340 const std::
string a_outputRealm,
1342 const
bool a_interpToCentroids,
1343 const
bool a_interpGhost) const noexcept;
1363#include <CD_NamespaceFooter.H>
Declaration of a class which implements CdrMultigrid using MUSCL for advection.
Declaration of an abstract class for solving scalar convection-diffusion-reaction problems.
Implementation of CD_DischargeInceptionStepper.H.
Mode
For specifying whether the module is run in stationary or transient mode.
Definition CD_DischargeInceptionStepper.H:55
TimeStepRestriction
For specifying how the time step was restricted.
Definition CD_DischargeInceptionStepper.H:64
TransportAlgorithm
Algorithm for negative ion advancement.
Definition CD_DischargeInceptionStepper.H:45
IntegrationAlgorithm
Integration algorithm for the particles.
Definition CD_DischargeInceptionStepper.H:36
Declaration of FieldSolverGMG.
Contains declaration of a base electrostatics solver class.
Declaration of main (abstract) time stepper class.
Declaration of a solver class that advances tracer particles.
Declaration of a tracer particle class.
Base class for solving convection-diffusion-reaction equations.
Definition CD_CdrSolver.H:34
Base class for electrostatic solvers.
Definition CD_FieldSolver.H:32
Class for streamer inception integral evaluations.
Definition CD_DischargeInceptionStepper.H:80
virtual const std::function< Real(const Real &E, const RealVect &x)> & getAlpha() const noexcept
Get ionization coefficient.
Definition CD_DischargeInceptionStepperImplem.H:2034
void parseRuntimeOptions() override
Parse runtime options.
Definition CD_DischargeInceptionStepperImplem.H:387
Vector< EBAMRCellData > m_townsendCriterionPlus
Townsend criterion for starting positive ions.
Definition CD_DischargeInceptionStepper.H:527
RefCountedPtr< FieldSolver > m_fieldSolver
Field solver.
Definition CD_DischargeInceptionStepper.H:429
std::function< Real(const Real &E, const RealVect &x)> m_secondaryEmission
Secondary emission coefficient.
Definition CD_DischargeInceptionStepper.H:965
TimeStepRestriction m_timeStepRestriction
Time step restriction.
Definition CD_DischargeInceptionStepper.H:419
virtual const EBAMRCellData * getElectricField() const noexcept
Get the electric field.
Definition CD_DischargeInceptionStepperImplem.H:5422
RefCountedPtr< TracerParticleSolver< P > > m_tracerParticleSolver
Tracer particle solver.
Definition CD_DischargeInceptionStepper.H:424
void parseMode() noexcept
Parse simulation mode.
Definition CD_DischargeInceptionStepperImplem.H:417
EBAMRCellData m_townsendInceptionVoltageMinu
Computed Townsend inception voltage.
Definition CD_DischargeInceptionStepper.H:575
EBAMRCellData m_detachment
Detachment factor.
Definition CD_DischargeInceptionStepper.H:587
void computeIonVelocity(const Real &a_voltage) noexcept
Set the negative ion velocity. Note.
Definition CD_DischargeInceptionStepperImplem.H:5121
std::vector< std::tuple< Real, Real, RealVect > > m_TPlusValues
Max T value for every voltage.
Definition CD_DischargeInceptionStepper.H:616
virtual void setIonMobility(const std::function< Real(const Real E)> &a_mobility) noexcept
Set the negative ion mobility (field-dependent)
Definition CD_DischargeInceptionStepperImplem.H:1985
bool m_plotPoisson
Plot Poisson solver or not.
Definition CD_DischargeInceptionStepper.H:835
bool m_plotTownsend
Plot the Townsend-criterion for initiatory ions.
Definition CD_DischargeInceptionStepper.H:885
std::function< Real(const RealVect &x)> m_sigma
Surface charge distribution.
Definition CD_DischargeInceptionStepper.H:920
Real m_gradAlphaDx
Space step size relative to alpha/|grad(alpha)|.
Definition CD_DischargeInceptionStepper.H:795
MFAMRCellData m_potentialInho
Electric potential with charges.
Definition CD_DischargeInceptionStepper.H:449
virtual void writeReportStationary() const noexcept
Print report to the terminal.
Definition CD_DischargeInceptionStepperImplem.H:4890
MFAMRCellData m_electricField
Electric field.
Definition CD_DischargeInceptionStepper.H:464
virtual Real advance(const Real a_dt) override
Advancement method. Swaps between various kernels.
Definition CD_DischargeInceptionStepperImplem.H:1572
std::vector< std::pair< Real, Real > > m_criticalArea
Critical area at various time instances.
Definition CD_DischargeInceptionStepper.H:707
Vector< EBAMRCellData > m_inceptionIntegralPlus
Inception integral values.
Definition CD_DischargeInceptionStepper.H:491
virtual void townsendTrackTrapezoidal(const Real &a_voltage) noexcept
Track particles (positive ions) using a trapezoidal rule and check if the collide with a cathode.
Definition CD_DischargeInceptionStepperImplem.H:3329
virtual void seedUniformParticles() noexcept
Distribute particles in every grid cell.
Definition CD_DischargeInceptionStepperImplem.H:2107
virtual void resetTracerParticles() noexcept
Reset particles.
Definition CD_DischargeInceptionStepperImplem.H:3652
virtual void setIonDensity(const std::function< Real(const RealVect x)> &a_density) noexcept
Set the negative ion density.
Definition CD_DischargeInceptionStepperImplem.H:1973
virtual void computeCriticalVolumeStationary() noexcept
Compute the critical volume of the K values for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4432
virtual void postRegrid() override
Perform post-regrid operations.
Definition CD_DischargeInceptionStepperImplem.H:1924
std::function< Real(const Real &E)> m_ionMobility
Negative ion mobility.
Definition CD_DischargeInceptionStepper.H:930
virtual void inceptionIntegrateTrapezoidal(const Real &a_voltage) noexcept
K integral: Add integration parts after particles move.
Definition CD_DischargeInceptionStepperImplem.H:2772
virtual void setBackgroundRate(const std::function< Real(const Real &E, const RealVect &x)> &a_backgroundRate) noexcept
Set the background ionization rate (e.g. from cosmic radiation etc).
Definition CD_DischargeInceptionStepperImplem.H:2048
EBAMRCellData m_gradAlpha
Calculated version of alpha/(|grad(alpha)|) on the mesh.
Definition CD_DischargeInceptionStepper.H:598
Real m_maxKLimit
Maximum K-value that is calculated in stationary mode.
Definition CD_DischargeInceptionStepper.H:730
std::function< Real(const Real &E, const RealVect &x)> m_eta
Attachment coefficient.
Definition CD_DischargeInceptionStepper.H:945
void computeIonDiffusion(const Real &a_voltage) noexcept
Set the negative ion diffusion coefficient.
Definition CD_DischargeInceptionStepperImplem.H:5187
virtual std::pair< Real, RealVect > computeMinimumInceptionVoltage(const EBAMRCellData &a_Uinc) const noexcept
Compute the minimum inception voltage and the starting electron position.
Definition CD_DischargeInceptionStepperImplem.H:4357
Real m_alphaDx
Space step size relative to 1/alpha.
Definition CD_DischargeInceptionStepper.H:785
virtual void computeTownsendCriterionStationary() noexcept
Solve for the Townsend criterion for each particle in each voltage.
Definition CD_DischargeInceptionStepperImplem.H:3029
virtual void synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt) override
Synchronize solver times and time steps.
Definition CD_DischargeInceptionStepperImplem.H:1770
virtual void inceptionIntegrateEuler(const Real &a_voltage) noexcept
Integrate the inception integral using the Euler rule.
Definition CD_DischargeInceptionStepperImplem.H:2600
std::function< Real(const RealVect &x)> m_rho
Space charge distribution.
Definition CD_DischargeInceptionStepper.H:915
std::vector< Real > m_ionizationVolume
Ionization volumes for each voltage.
Definition CD_DischargeInceptionStepper.H:664
std::function< Real(const RealVect &x)> m_initialIonDensity
Negative ion density.
Definition CD_DischargeInceptionStepper.H:925
virtual void computeInceptionVoltageVolume() noexcept
Interpolate between K values to find voltage giving K_inception and store values in m_inceptionVoltag...
Definition CD_DischargeInceptionStepperImplem.H:4096
Real m_epsVoltage
Permitted relative deviation in V(t) when computing voltage-curve based time steps.
Definition CD_DischargeInceptionStepper.H:755
EBAMRCellData m_homogeneousFieldGas
Gas-phase homogeneous field.
Definition CD_DischargeInceptionStepper.H:479
bool m_fullIntegration
Use full reconstruction of critical volume or not.
Definition CD_DischargeInceptionStepper.H:820
std::vector< std::pair< Real, Real > > m_maxK
Max K value for every time step.
Definition CD_DischargeInceptionStepper.H:628
std::string m_realm
Realm where the solver lives.
Definition CD_DischargeInceptionStepper.H:895
virtual Real computeIonizationVolumeTransient(const Real &a_voltage) const noexcept
Compute the ionization volume for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4808
virtual void computeFieldEmission(EBAMRCellData &a_emissionRate, const Real &a_voltage) const noexcept
Compute field emission rates.
Definition CD_DischargeInceptionStepperImplem.H:3950
std::vector< Real > m_criticalAreaPlus
Critical area of K values for each voltage.
Definition CD_DischargeInceptionStepper.H:652
DischargeInceptionStepper(const DischargeInceptionStepper &)=delete
Disallowed constructor.
virtual int getNumberOfPlotVariables() const override
Get the number of plot variables for this time stepper.
Definition CD_DischargeInceptionStepperImplem.H:670
DischargeInceptionStepper(const DischargeInceptionStepper &&)=delete
Disallowed constructor.
virtual Real computeCriticalVolumeTransient() const noexcept
Compute the critical volume of the K values for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4523
DischargeInceptionStepper & operator=(const DischargeInceptionStepper &&)=delete
Disallowed assignment.
Real m_maxPhysDx
Maximum spatial step (physical dimensions)
Definition CD_DischargeInceptionStepper.H:770
void registerOperators() override
Register operators.
Definition CD_DischargeInceptionStepperImplem.H:358
virtual void getMaxValueAndLocation(Real &a_maxVal, RealVect &a_maxPos, const EBAMRCellData &a_data) const noexcept
Get the maximum value and location corresponding to the maximum value in the input data holder.
Definition CD_DischargeInceptionStepperImplem.H:5296
EBAMRCellData m_townsendInceptionVoltagePlus
Computed Townsend inception voltage.
Definition CD_DischargeInceptionStepper.H:569
Vector< EBAMRCellData > m_inceptionIntegralMinu
Inception integral values.
Definition CD_DischargeInceptionStepper.H:497
virtual void evaluateFunction(EBAMRCellData &a_data, const Real &a_voltage, const std::function< Real(const Real E, const RealVect x)> &a_func) const noexcept
Evaluate a function f = f(E, x) in a volume.
Definition CD_DischargeInceptionStepperImplem.H:4009
std::vector< Real > m_voltageSweeps
Voltage sweeps.
Definition CD_DischargeInceptionStepper.H:682
MFAMRCellData m_scratchInho
Scratch storage used during regrids.
Definition CD_DischargeInceptionStepper.H:459
bool m_profile
Profile calculation or not.
Definition CD_DischargeInceptionStepper.H:805
std::function< Real(const Real &E)> m_ionDiffusion
Negative ion diffusion coefficient.
Definition CD_DischargeInceptionStepper.H:935
Real m_relativeDeltaU
Maximum relative voltage increase.
Definition CD_DischargeInceptionStepper.H:719
std::function< Real(const Real &E, const RealVect &x)> m_fieldEmission
Field emission current.
Definition CD_DischargeInceptionStepper.H:960
TransportAlgorithm m_transportAlgorithm
Transport algorithm for advancing negative ions in the transient mode.
Definition CD_DischargeInceptionStepper.H:414
void allocate() override
Allocate storage for solvers and time stepper.
Definition CD_DischargeInceptionStepperImplem.H:171
Real m_minPhysDx
Minimum spatial step (physical dimensions)
Definition CD_DischargeInceptionStepper.H:765
Vector< EBAMRCellData > m_detachmentStationary
Detachment rates.
Definition CD_DischargeInceptionStepper.H:509
EBAMRCellData m_emissionRate
Field emission rates.
Definition CD_DischargeInceptionStepper.H:539
virtual Vector< std::string > getTransientPlotVariableNames() const noexcept
Get plot variable names for transient mode.
Definition CD_DischargeInceptionStepperImplem.H:1008
virtual Mode getMode() const noexcept
Get the solver mode.
Definition CD_DischargeInceptionStepperImplem.H:2100
void parseInceptionAlgorithm() noexcept
Parse the inception algorithm.
Definition CD_DischargeInceptionStepperImplem.H:476
virtual ~DischargeInceptionStepper()
Destructor.
Definition CD_DischargeInceptionStepperImplem.H:111
Real m_firstDt
First time step.
Definition CD_DischargeInceptionStepper.H:740
void postCheckpointSetup() override
Post checkpoint operations.
Definition CD_DischargeInceptionStepper.H:143
bool m_plotInceptionIntegral
If true, plot the K-values.
Definition CD_DischargeInceptionStepper.H:850
void solvePoisson() noexcept
Solve the Poisson equation.
Definition CD_DischargeInceptionStepperImplem.H:249
virtual void setAlpha(const std::function< Real(const Real &E, const RealVect &x)> &a_alpha) noexcept
Set the ionization coefficient.
Definition CD_DischargeInceptionStepperImplem.H:2009
EBAMRCellData m_inceptionVoltageMinu
Computed inception voltage.
Definition CD_DischargeInceptionStepper.H:551
Vector< EBAMRCellData > m_emissionRatesPlus
Field emission rates.
Definition CD_DischargeInceptionStepper.H:515
MFAMRCellData m_potential
Electric potential.
Definition CD_DischargeInceptionStepper.H:439
bool m_plotDetachment
If true, plot electron detachment rate, i.e. dne/dt due to detachment from negative ions.
Definition CD_DischargeInceptionStepper.H:865
Real m_minGridDx
Minimum spatial step (relative to grid resolution)
Definition CD_DischargeInceptionStepper.H:775
virtual void computeInceptionIntegral(EBAMRCellData &a_inceptionIntegral, const Real a_voltage) noexcept
Compute the inception integral for the input voltage.
Definition CD_DischargeInceptionStepperImplem.H:2415
Mode m_mode
Mode.
Definition CD_DischargeInceptionStepper.H:404
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Time stepper regrid method.
Definition CD_DischargeInceptionStepperImplem.H:1861
DischargeInceptionStepper & operator=(const DischargeInceptionStepper &)=delete
Disallowed assignment.
MFAMRCellData m_electricFieldHomo
Electric field without space/surface charge and V = 1 on live electrodes.
Definition CD_DischargeInceptionStepper.H:469
bool m_plotTracer
Plot tracer particle solver or not.
Definition CD_DischargeInceptionStepper.H:840
Real m_deltaK
Maximum targeted increase in K-value.
Definition CD_DischargeInceptionStepper.H:725
bool particleOutsideGrid(const RealVect &a_pos, const RealVect &a_probLo, const RealVect &a_probHi) const noexcept
Check if particle is outside grid boundaries.
Definition CD_DischargeInceptionStepperImplem.H:5081
virtual void writeReportTransient() const noexcept
Print report to the terminal.
Definition CD_DischargeInceptionStepperImplem.H:5001
virtual void rewindTracerParticles() noexcept
Move particles back to their original position.
Definition CD_DischargeInceptionStepperImplem.H:3620
virtual void townsendTrackEuler(const Real &a_voltage) noexcept
Track particles (positive ions) using an Euler rule and check if the collide with a cathode.
Definition CD_DischargeInceptionStepperImplem.H:3216
std::vector< Real > m_RdotMinu
Rate of appearance of first electron (in critical volume)
Definition CD_DischargeInceptionStepper.H:676
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const override
Write plot data to output holder.
Definition CD_DischargeInceptionStepperImplem.H:1073
EBAMRCellData m_streamerInceptionVoltageMinu
Computed streamer inception voltage.
Definition CD_DischargeInceptionStepper.H:563
void superposition(EBAMRCellData &a_sumField, const MFAMRCellData &a_inhomogeneousField, const MFAMRCellData &a_homogeneousField, const Real a_voltage) const noexcept
Calculate the total electric field = inhomogeneous + V * homogeneous.
Definition CD_DischargeInceptionStepperImplem.H:5266
std::vector< std::pair< Real, Real > > m_Rdot
Integral factor for cumulative integration.
Definition CD_DischargeInceptionStepper.H:689
void parseOptions()
Parse options.
Definition CD_DischargeInceptionStepperImplem.H:372
std::vector< std::pair< Real, Real > > m_ionizationVolumeTransient
Ionization volume at various time instances.
Definition CD_DischargeInceptionStepper.H:713
void setupSolvers() override
Instantiate the tracer particle solver.
Definition CD_DischargeInceptionStepperImplem.H:121
std::vector< Real > m_criticalVolumePlus
Critical volumes of K values for each voltage.
Definition CD_DischargeInceptionStepper.H:640
MFAMRCellData m_scratchHomo
Scratch storage used during regrids.
Definition CD_DischargeInceptionStepper.H:454
virtual void setEta(const std::function< Real(const Real &E, const RealVect &x)> &a_eta) noexcept
Set the attachment coefficient.
Definition CD_DischargeInceptionStepperImplem.H:2022
Vector< EBAMRCellData > m_backgroundIonizationStationary
Background ionization rates.
Definition CD_DischargeInceptionStepper.H:503
virtual void writePlotDataTransient(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const noexcept
Write plot data for the 'transient' mode.
Definition CD_DischargeInceptionStepperImplem.H:1315
bool m_plotFieldEmission
If true, plot the field emission.
Definition CD_DischargeInceptionStepper.H:870
IntegrationAlgorithm m_inceptionAlgorithm
Integration algorithm for K-value.
Definition CD_DischargeInceptionStepper.H:409
std::function< Real(const Real &E, const RealVect &x)> m_backgroundRate
Background ionization rate expression.
Definition CD_DischargeInceptionStepper.H:955
EBAMRCellData m_streamerInceptionVoltagePlus
Computed streamer inception voltage.
Definition CD_DischargeInceptionStepper.H:557
virtual Vector< std::string > getStationaryPlotVariableNames() const noexcept
Get plot variable names for stationary mode.
Definition CD_DischargeInceptionStepperImplem.H:863
bool m_plotInceptionVoltage
If true, plot the inception voltage.
Definition CD_DischargeInceptionStepper.H:855
std::string m_outputFile
Output file.
Definition CD_DischargeInceptionStepper.H:905
EBAMRCellData m_inceptionVoltagePlus
Computed inception voltage.
Definition CD_DischargeInceptionStepper.H:545
std::function< Real(const Real &E, const RealVect &x)> m_detachmentRate
Detachment probability for negative ion.
Definition CD_DischargeInceptionStepper.H:950
Real m_townsendGridDx
Space step size used for ion tracking.
Definition CD_DischargeInceptionStepper.H:790
virtual void setDetachmentRate(const std::function< Real(const Real &E, const RealVect &x)> &a_detachmentRate) noexcept
Set the detachment rate for negative ions.
Definition CD_DischargeInceptionStepperImplem.H:2061
virtual void computeTownsendCriterionTransient(const Real &a_voltage) noexcept
Solve for the Townsend criterion for each particle in each voltage.
Definition CD_DischargeInceptionStepperImplem.H:3163
virtual void computeIonizationVolumeStationary() noexcept
Compute the ionization volume for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4710
std::function< Real(const Real a_time)> m_voltageCurve
Time-dependent voltage.
Definition CD_DischargeInceptionStepper.H:890
Vector< EBAMRCellData > m_townsendCriterionMinu
Townsend criterion for starting positive ions.
Definition CD_DischargeInceptionStepper.H:533
phase::which_phase m_phase
Phase (gas/solid) where the solver lives.
Definition CD_DischargeInceptionStepper.H:910
virtual void computeFieldEmissionStationary() noexcept
Compute field emission rates.
Definition CD_DischargeInceptionStepperImplem.H:3850
std::string m_dataOutputFile
output data file
Definition CD_DischargeInceptionStepper.H:900
void parseOutput() noexcept
Parse output settings.
Definition CD_DischargeInceptionStepperImplem.H:462
std::function< Real(const Real &E, const RealVect &x)> m_alpha
Ionization coefficient.
Definition CD_DischargeInceptionStepper.H:940
MFAMRCellData m_potentialHomo
Electric potential without charges.
Definition CD_DischargeInceptionStepper.H:444
EBAMRCellData m_inceptionIntegral
Inception integral values.
Definition CD_DischargeInceptionStepper.H:485
bool m_plotEta
If true, plot eta.
Definition CD_DischargeInceptionStepper.H:880
Vector< EBAMRCellData > m_emissionRatesMinu
Field emission rates.
Definition CD_DischargeInceptionStepper.H:521
bool m_debug
Debug or not.
Definition CD_DischargeInceptionStepper.H:810
virtual void computeInceptionIntegralStationary() noexcept
Solve streamer inception integral for each particle in each voltage and store K values in m_inception...
Definition CD_DischargeInceptionStepperImplem.H:2470
virtual Real computeCriticalAreaTransient() const noexcept
Compute the critical area of the K values for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4659
Real m_maxGridDx
Maximum spatial step (relative to grid resolution)
Definition CD_DischargeInceptionStepper.H:780
virtual Real getCriticalField() const noexcept
Get the breakdown field.
Definition CD_DischargeInceptionStepperImplem.H:5431
virtual Vector< std::string > getPlotVariableNames() const override
Get plot variable names.
Definition CD_DischargeInceptionStepperImplem.H:807
Real m_maxDt
Maximum permitted time step.
Definition CD_DischargeInceptionStepper.H:745
virtual void computeDetachmentStationary() noexcept
Compute the detachment ionization rate for all voltages.
Definition CD_DischargeInceptionStepperImplem.H:3762
bool m_plotField
Plot field.
Definition CD_DischargeInceptionStepper.H:830
virtual void writeData(LevelData< EBCellFAB > &a_output, int &a_comp, const EBAMRCellData &a_data, const std::string a_outputRealm, const int a_level, const bool a_interpToCentroids, const bool a_interpGhost) const noexcept
Write data to output. Convenience function used for IO.
Definition CD_DischargeInceptionStepperImplem.H:5364
void parseVoltages() noexcept
Parse voltage levels.
Definition CD_DischargeInceptionStepperImplem.H:442
EBAMRCellData m_backgroundIonization
Background ionization.
Definition CD_DischargeInceptionStepper.H:593
virtual void interpolateGradAlphaToParticles() noexcept
Interpolate alpha/|grad(alpha)| onto some scratch particle storage.
Definition CD_DischargeInceptionStepperImplem.H:2397
std::vector< std::tuple< Real, Real, RealVect > > m_KPlusValues
Max K value for every voltage.
Definition CD_DischargeInceptionStepper.H:604
std::vector< std::tuple< Real, Real, RealVect > > m_KMinuValues
Max K value for every voltage.
Definition CD_DischargeInceptionStepper.H:610
bool m_plotAlpha
If true, plot alpha.
Definition CD_DischargeInceptionStepper.H:875
virtual void setIonDiffusion(const std::function< Real(const Real E)> &a_diffCo) noexcept
Set the negative ion diffusion coefficient (field-dependent)
Definition CD_DischargeInceptionStepperImplem.H:1997
void postInitialize() override
Perform any post-initialization steps.
Definition CD_DischargeInceptionStepperImplem.H:2315
virtual void setSigma(const std::function< Real(const RealVect &x)> &a_sigma) noexcept
Set surface charge distribution.
Definition CD_DischargeInceptionStepperImplem.H:1961
EBAMRCellData m_townsendCriterion
Townsend criterion.
Definition CD_DischargeInceptionStepper.H:581
void parseTransportAlgorithm() noexcept
Parse the transport algorithm.
Definition CD_DischargeInceptionStepperImplem.H:533
bool m_ionTransport
Ion transport on/off.
Definition CD_DischargeInceptionStepper.H:825
virtual void seedIonizationParticles(const Real a_voltage) noexcept
Add particles to every cell where alpha - eta > 0.0.
Definition CD_DischargeInceptionStepperImplem.H:2184
DischargeInceptionStepper()
Default constructor.
Definition CD_DischargeInceptionStepperImplem.H:37
bool m_plotNegativeIons
Plot negative ions or not.
Definition CD_DischargeInceptionStepper.H:845
MFAMRCellData m_electricFieldInho
Electric field with space/surface charge and V = 0 on all electrodes.
Definition CD_DischargeInceptionStepper.H:474
Real m_cfl
CFL-step for negative ions.
Definition CD_DischargeInceptionStepper.H:735
std::vector< Real > m_criticalAreaMinu
Critical area of K values for each voltage.
Definition CD_DischargeInceptionStepper.H:658
void parsePlotVariables() noexcept
Parse plot variables.
Definition CD_DischargeInceptionStepperImplem.H:573
void initialData() override
Fill problem with initial data.
Definition CD_DischargeInceptionStepperImplem.H:237
virtual const std::function< Real(const Real &E, const RealVect &x)> & getEta() const noexcept
Get attachment coefficient.
Definition CD_DischargeInceptionStepperImplem.H:2041
RefCountedPtr< CdrSolver > m_ionSolver
Negative ion solver.
Definition CD_DischargeInceptionStepper.H:434
virtual void setSecondaryEmission(const std::function< Real(const Real &E, const RealVect &x)> &a_coeff) noexcept
Set the secondary emission coefficient.
Definition CD_DischargeInceptionStepperImplem.H:2087
virtual Real computeDt() override
Compute a time step to be used by Driver.
Definition CD_DischargeInceptionStepperImplem.H:1485
std::vector< std::pair< Real, Real > > m_criticalVolume
Critical volume at various time instances.
Definition CD_DischargeInceptionStepper.H:701
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
Perform pre-regrid operations.
Definition CD_DischargeInceptionStepperImplem.H:1841
virtual void printStepReport() override
Print a step report. Used in transient simulations.
Definition CD_DischargeInceptionStepperImplem.H:1788
virtual void setRho(const std::function< Real(const RealVect &x)> &a_rho) noexcept
Set space charge distribution.
Definition CD_DischargeInceptionStepperImplem.H:1949
virtual void writePlotDataStationary(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const noexcept
Write plot data for the 'stationary' mode.
Definition CD_DischargeInceptionStepperImplem.H:1116
void parseVerbosity() noexcept
Parse class verbosity.
Definition CD_DischargeInceptionStepperImplem.H:402
bool m_evaluateTownsend
Evaluate secondary emission.
Definition CD_DischargeInceptionStepper.H:815
Real m_minDt
Minimum permitted time step.
Definition CD_DischargeInceptionStepper.H:750
bool m_plotBackgroundIonization
If true, plot the background ionization rates.
Definition CD_DischargeInceptionStepper.H:860
void registerRealms() override
Register realms. Primal is the only realm we need.
Definition CD_DischargeInceptionStepperImplem.H:346
Real m_inceptionK
Inception criteria (read from input)
Definition CD_DischargeInceptionStepper.H:800
virtual void computeBackgroundIonizationStationary() noexcept
Compute the background ionization rate for all voltages.
Definition CD_DischargeInceptionStepperImplem.H:3682
virtual void computeInceptionIntegralTransient(const Real &a_voltage) noexcept
Solve streamer inception integral.
Definition CD_DischargeInceptionStepperImplem.H:2565
virtual void setVoltageCurve(const std::function< Real(const Real &a_time)> &a_voltageCurve) noexcept
Set the voltage curve (used for transient mode)
Definition CD_DischargeInceptionStepperImplem.H:1937
virtual void computeCriticalAreaStationary() noexcept
Compute the critical area of the K values for each voltage.
Definition CD_DischargeInceptionStepperImplem.H:4587
std::vector< Real > m_RdotPlus
Rate of appearance of first electron (in critical volume)
Definition CD_DischargeInceptionStepper.H:670
virtual void advanceIons(const Real a_dt) noexcept
Advance negative ions.
Definition CD_DischargeInceptionStepperImplem.H:1684
std::vector< std::pair< Real, Real > > m_inceptionProbability
Cumulative probability of breakdown by time t.
Definition CD_DischargeInceptionStepper.H:695
bool particleInsideEB(const RealVect a_pos) const noexcept
Check if particle is inside electrode.
Definition CD_DischargeInceptionStepperImplem.H:5105
std::vector< std::pair< Real, Real > > m_maxT
Max Townsend value for every time step.
Definition CD_DischargeInceptionStepper.H:634
virtual Real computeRdot(const Real &a_voltage) const noexcept
Compute integral_Vcr(dne/dt * (1 - eta/alpha) dV)
Definition CD_DischargeInceptionStepperImplem.H:3518
virtual void setFieldEmission(const std::function< Real(const Real &E, const RealVect &x)> &a_currentDensity) noexcept
Set the field emission current.
Definition CD_DischargeInceptionStepperImplem.H:2074
std::vector< std::tuple< Real, Real, RealVect > > m_TMinuValues
Max T value for every voltage.
Definition CD_DischargeInceptionStepper.H:622
std::vector< Real > m_criticalVolumeMinu
Critical volumes of K values for each voltage.
Definition CD_DischargeInceptionStepper.H:646
Real m_maxDtGrowth
Maximum permitted time step growth.
Definition CD_DischargeInceptionStepper.H:760
Base class for advancing equations.
Definition CD_TimeStepper.H:30
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
Name containing various physics models for running chombo-discharge code.
Definition CD_AdvectionDiffusion.H:15
phase names
Definition CD_MultiFluidIndexSpace.H:27