|
|
virtual void | parseOptions () |
| | Parse class options.
|
| |
|
virtual void | parseIntegrator () |
| | Parse the reactive integrator.
|
| |
|
virtual void | parseJSON () |
| | Parse the JSON file.
|
| |
| virtual void | initializeSigma () |
| | Initialize surface charge.
|
| |
|
virtual void | initializeNeutralSpecies () |
| | Initialize neutral species.
|
| |
| virtual void | initializePlasmaSpecies () |
| | Initialize species.
|
| |
| virtual void | initializePhotonSpecies () |
| | Initialize photon species.
|
| |
|
virtual void | parseMobilities () |
| | Initialize species mobilities.
|
| |
|
virtual void | parseDiffusion () |
| | Initialize species diffusion coefficients.
|
| |
|
virtual void | parseTemperatures () |
| | Initialize species temperatures.
|
| |
|
virtual void | parseAlpha () |
| | Parse the Townsend ionization coefficient.
|
| |
|
virtual void | parseEta () |
| | Parse the Townsend attachment coefficient.
|
| |
|
virtual void | parsePlasmaReactions () |
| | Parse plasma reactions.
|
| |
| virtual InitialDataFunction | parsePlasmaSpeciesInitialData (const json &a_json) const |
| | Generate an initial data function for a given plasma species.
|
| |
| virtual List< PointParticle > | parsePlasmaSpeciesInitialParticles (const json &a_json) const |
| | Generate initial particles for a given plasma species.
|
| |
| virtual std::list< std::tuple< std::string, std::vector< std::string >, std::vector< std::string > > > | parseReactionWildcards (const std::vector< std::string > &a_reactants, const std::vector< std::string > &a_products, const json &a_reaction) |
| | Make a reaction set into a superset. This parses wildcards '@' in reaction string.
|
| |
| virtual void | parseReactionString (std::vector< std::string > &a_reactants, std::vector< std::string > &a_products, const std::string &a_reaction) const |
| | Parses a reaction string into reactangs and products.
|
| |
| virtual void | sanctifyPlasmaReaction (const std::vector< std::string > &a_reactants, const std::vector< std::string > &a_products, const std::string &a_reaction) const |
| | Check if a plasma-reaction makes sense in terms of the species that have been defined.
|
| |
| virtual void | getReactionSpecies (std::list< int > &a_plasmaReactants, std::list< int > &a_neutralReactants, std::list< int > &a_photonReactants, std::list< int > &a_plasmaProducts, std::list< int > &a_neutralProducts, std::list< int > &a_photonProducts, const std::vector< std::string > &a_reactants, const std::vector< std::string > &a_products) const |
| | Get the int-encoding corresponding to species involved in some reaction.
|
| |
| virtual void | parsePlasmaReactionRate (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse reaction rate for plasma reaction.
|
| |
| virtual void | parsePlasmaReactionScaling (const int a_index, const json &a_reactionJSON) |
| | Parse scaling factors for reactions.
|
| |
| virtual void | parsePlasmaReactionPlot (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse reaction plotting.
|
| |
| virtual void | parsePlasmaReactionDescription (const int a_reactionIndex, const json &a_reactionJSON, const std::string &a_wildcard) |
| | Parse plasma reaction descriptions.
|
| |
| virtual void | parsePlasmaReactionSoloviev (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse plasma reaction energy correction.
|
| |
| virtual void | parsePlasmaReactionEnergyLosses (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse plasma reaction energy losses.
|
| |
|
virtual void | parsePhotoReactions () |
| | Parse photo-reactions.
|
| |
| virtual void | parsePhotoReactionScaling (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse scaling for photo-reactions. Includes Helmholtz corrections if doing Helmholtz reconstruction of photoionization profiles.
|
| |
| virtual void | parsePhotoReactionEnergyLosses (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse photo-reaction energy losses.
|
| |
| virtual void | sanityCheckSpecies () const |
| | Do a species sanity check.
|
| |
| virtual void | sanctifyPhotoReaction (const std::vector< std::string > &a_reactants, const std::vector< std::string > &a_products, const std::string &a_reaction) const |
| | Check if a photo-reaction makes sense in terms of the species that have been defined.
|
| |
|
virtual void | parseElectrodeReactions () |
| | Parse secondary emission on electrodes.
|
| |
| virtual void | parseElectrodeReactionRate (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse reaction rate for electrode surface reactions.
|
| |
| virtual void | parseElectrodeReactionScaling (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse electrode reaction scaling for a specific reaction.
|
| |
| virtual void | parseElectrodeReactionEnergyLosses (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse electrode-reaction energy losses.
|
| |
|
virtual void | parseDielectricReactions () |
| | Parse secondary emission on dielectrics.
|
| |
| virtual void | parseDielectricReactionRate (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse reaction rate for dielectric surface reactions.
|
| |
| virtual void | parseDielectricReactionScaling (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse dielectric electrode reaction scaling for a specific reaction.
|
| |
| virtual void | parseDielectricReactionEnergyLosses (const int a_reactionIndex, const json &a_reactionJSON) |
| | Parse dielectric-reaction energy losses.
|
| |
|
virtual void | parseDomainReactions () |
| | Parse secondary emission on domain.
|
| |
| virtual void | parseDomainReactionRate (const int a_reactionIndex, const json &a_reactionJSON, const std::vector< std::string > &a_sides) |
| | Parse reaction rate for domain reactions.
|
| |
| virtual void | parseDomainReactionScaling (const int a_reactionIndex, const json &a_reactionJSON, const std::vector< std::string > &a_sides) |
| | Parse domain reaction scaling for a specific reaction.
|
| |
| virtual void | sanctifySurfaceReaction (const std::vector< std::string > &a_reactants, const std::vector< std::string > &a_products, const std::string &a_reaction) const |
| | Check if a surface-reaction makes sense in terms of the species that have been defined.
|
| |
| virtual std::vector< Real > | computePlasmaSpeciesTemperatures (const RealVect &a_position, const RealVect &a_E, const std::vector< Real > &a_cdrDensities) const |
| | Compute the various plasma species temperatures.
|
| |
| virtual std::vector< Real > | computePlasmaSpeciesEnergies (const RealVect &a_position, const RealVect &a_E, const std::vector< Real > &a_cdrDensities) const |
| | Compute the various plasma species energies. Returns a list of energies in electron-volts. We assume that temperature-energy relations are e = 3/2 * kB * T.
|
| |
| virtual std::vector< Real > | computePlasmaSpeciesMobilities (const RealVect &a_position, const RealVect &a_E, const std::vector< Real > &a_cdrDensities) const |
| | Compute the various plasma species mobilities.
|
| |
| virtual std::vector< Real > | computePlasmaSpeciesDiffusion (const RealVect &a_position, const RealVect &a_E, const std::vector< Real > &a_cdrDensities) const |
| | Compute the various plasma species diffusion coefficients.
|
| |
| virtual Real | computePlasmaReactionRate (const int &a_reactionIndex, const std::vector< Real > &a_cdrDensities, const std::vector< Real > &a_cdrMobilities, const std::vector< Real > &a_cdrDiffusionCoefficients, const std::vector< Real > &a_cdrTemperatures, const std::vector< Real > &a_cdrEnergies, const std::vector< RealVect > &a_cdrGradients, const RealVect &a_pos, const RealVect &a_vectorE, const Real &a_E, const Real &a_Etd, const Real &a_N, const Real &a_alpha, const Real &a_eta, const Real &a_time) const |
| | Compute the reaction rate for a plasma reaction.
|
| |
| bool | isNeutralSpecies (const std::string &a_name) const |
| | Return true if species exists in map and false otherwise.
|
| |
| bool | isPlasmaSpecies (const std::string &a_name) const |
| | Return true if species exists in map and false otherwise.
|
| |
| bool | isPhotonSpecies (const std::string &a_name) const |
| | Return true if species exists in map and false otherwise.
|
| |
| virtual void | addPhotoIonization (std::vector< Real > &a_cdrSources, const std::vector< Real > &a_rteDensities, const RealVect &a_position, const Real a_E, const Real a_dt, const Real a_dx) const |
| | Add photoionization products to transport equations source terms.
|
| |
| virtual void | integrateReactions (std::vector< Real > &a_cdrDensities, std::vector< Real > &a_photonProduction, const std::vector< RealVect > &a_cdrGradients, 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 |
| | Routine for integrating the reactive-only problem using various algorithms.
|
| |
| void | fillSourceTerms (std::vector< Real > &a_cdrSources, std::vector< Real > &a_rteSources, const std::vector< Real > &a_cdrDensities, const std::vector< RealVect > &a_cdrGradients, const RealVect &a_E, const RealVect &a_pos, const Real a_dx, const Real a_time, const Real a_kappa) const |
| | Routine for filling the source terms in the reactive problem.
|
| |
| void | integrateReactionsExplicitEuler (std::vector< Real > &a_cdrDensities, std::vector< Real > &a_photonProduction, const std::vector< RealVect > &a_cdrGradients, 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 |
| | Routine for integrating the reactive-only problem using the explicit Euler rule.
|
| |
| void | integrateReactionsImplicitEuler (std::vector< Real > &a_cdrDensities, std::vector< Real > &a_photonProduction, const std::vector< RealVect > &a_cdrGradients, 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 |
| | Routine for integrating the reactive-only problem using the implicit Euler rule.
|
| |
| void | integrateReactionsExplicitRK2 (std::vector< Real > &a_cdrDensities, std::vector< Real > &a_photonProduction, const std::vector< RealVect > &a_cdrGradients, 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 Real a_tableuAlpha) const |
| | Routine for integrating the reactive-only problem using a second order Runge-Kutta method.
|
| |
| void | integrateReactionsExplicitRK4 (std::vector< Real > &a_cdrDensities, std::vector< Real > &a_photonProduction, const std::vector< RealVect > &a_cdrGradients, 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 |
| | Routine for integrating the reactive-only problem using the foruth order Runge-Kutta method.
|
| |
|
|
bool | m_verbose |
| | Verbose or not.
|
| |
|
bool | m_plotGas |
| | Plot gas pressure, density, and temperature.
|
| |
|
bool | m_plotAlpha |
| | Plot Townsend ionization coefficient.
|
| |
|
bool | m_plotEta |
| | Plot Townsend attachment coefficient.
|
| |
|
bool | m_discretePhotons |
| | Using discrete photons or not.
|
| |
|
bool | m_skipReactions |
| | A flag for skipping reactions completely.
|
| |
|
json | m_json |
| | JSON definition. This is populated when calling parseJSON.
|
| |
|
ReactionIntegrator | m_reactionIntegrator |
| | Reaction integrator.
|
| |
|
std::string | m_jsonFile |
| | Input JSON file name.
|
| |
|
std::vector< json > | m_cdrSpeciesJSON |
| | JSON entries for species in the defined field 'plasma species'.
|
| |
|
std::vector< json > | m_rteSpeciesJSON |
| | JSON entries for species in photon_species.
|
| |
|
std::function< Real(const RealVect a_position, const Real a_time)> | m_initialSigma |
| | Initial surface charge.
|
| |
|
FunctionX | m_gasPressure |
| | Gas pressure (in Pascal).
|
| |
|
FunctionX | m_gasTemperature |
| | Gas temperature (in Kelvin)
|
| |
|
FunctionX | m_gasDensity |
| | Gas number density (in m^(-3))
|
| |
|
Real | m_chemistryDt |
| | Chemistry time step.
|
| |
|
std::vector< FunctionX > | m_neutralSpeciesDensities |
| | Neutral species densities.
|
| |
|
std::vector< std::shared_ptr< NeutralSpeciesJSON > > | m_neutralSpecies |
| | These are the neutral species.
|
| |
|
std::map< std::string, int > | m_neutralSpeciesMap |
| | Map for figuring out which where in m_neutralSpecies a neutral species is found.
|
| |
|
std::map< int, std::string > | m_neutralSpeciesInverseMap |
| | Inverse of m_neutralSpeciesMap.
|
| |
| std::map< std::string, int > | m_cdrSpeciesMap |
| | string-int encoding of the CDr species.
|
| |
| std::map< int, std::string > | m_cdrSpeciesInverseMap |
| | int-string encoding of the CDR species.
|
| |
|
std::map< int, bool > | m_cdrIsEnergySolver |
| | int-bool encoding for determining if a solver is an energy solver.
|
| |
|
std::map< int, bool > | m_cdrHasEnergySolver |
| | int-bool encoding for determining if a CDR solver HAS an associated energy solver.
|
| |
| std::map< int, std::tuple< Real, Real, Real > > | m_cdrEnergyComputation |
| | Parameters for computing the mean energy from energy density and density.
|
| |
| std::map< int, int > | m_cdrTransportEnergyMap |
| | int-int encoding for associating a transport solver with an energy solver.
|
| |
| std::map< int, Real > | m_cdrMasses |
| | Map of the species masses. This is needed for imposing BCs on the energy equations.
|
| |
| std::map< std::string, int > | m_rteSpeciesMap |
| | string-int encoding of the RTE species.
|
| |
| std::map< int, std::string > | m_rteSpeciesInverseMap |
| | int-string encoding of the RTE species.
|
| |
|
LookupMethod | m_alphaLookup |
| | Lookup method for Townsend ionization coefficient.
|
| |
|
LookupMethod | m_etaLookup |
| | Lookup method for Townsend attachment coefficient.
|
| |
|
Real | m_alphaConstant |
| | For when we can use alpha = constant.
|
| |
|
Real | m_etaConstant |
| | For when we can use eta = constant.
|
| |
|
FunctionEN | m_alphaFunctionEN |
| | For when we can put alpha = alpha(E,N) as an analytic function.
|
| |
|
FunctionEN | m_etaFunctionEN |
| | For when we can put eta = eta(E,N) as an analytic function.
|
| |
|
LookupTable1D< Real, 1 > | m_alphaTableEN |
| | For when we can put alpha = table(E,N)
|
| |
|
LookupTable1D< Real, 1 > | m_etaTableEN |
| | For when we can put eta = table(E,N)
|
| |
|
std::map< int, LookupMethod > | m_mobilityLookup |
| | Mobility lookup method for each species.
|
| |
|
std::map< int, Real > | m_mobilityConstants |
| | Map for constant mobilities.
|
| |
|
std::map< int, FunctionEN > | m_mobilityFunctionsEN |
| | Map for function-based mobilities mu = mu(E,N)
|
| |
|
std::map< int, FunctionEX > | m_mobilityFunctionsEX |
| | Map for function-based mobilities mu = mu(E,x)
|
| |
|
std::map< int, LookupTable1D< Real, 1 > > | m_mobilityTablesEN |
| | Map for table-based mobilities. Stored as tables (E/N, mu*N)
|
| |
| std::map< int, LookupTable1D< Real, 1 > > | m_mobilityTablesEnergy |
| | Map for table-based mobilities as function of energy.
|
| |
|
std::map< int, LookupMethod > | m_diffusionLookup |
| | Diffusion lookup method.
|
| |
|
std::map< int, Real > | m_diffusionConstants |
| | Map for constant diffusion coefficients.
|
| |
|
std::map< int, FunctionEN > | m_diffusionFunctionsEN |
| | Map for function-based diffusion coefficients. .
|
| |
| std::map< int, LookupTable1D< Real, 1 > > | m_diffusionTablesEN |
| | Map for table-based diffusion coefficients D = D(E,N).
|
| |
| std::map< int, LookupTable1D< Real, 1 > > | m_diffusionTablesEnergy |
| | Map for table-based diffusion coefficients as function of energy.
|
| |
|
std::map< int, LookupMethod > | m_temperatureLookup |
| | Temperature lookup method.
|
| |
|
std::map< int, FunctionX > | m_temperatureConstants |
| | Constant temperatures.
|
| |
|
std::map< int, LookupTable1D< Real, 1 > > | m_temperatureTablesEN |
| | Temperatures as functions of E/N.
|
| |
|
std::map< int, std::string > | m_plasmaReactionDescriptions |
| | Description of plasma reactions. Only used for I/O.
|
| |
|
std::map< int, LookupMethod > | m_plasmaReactionLookup |
| | Map for figuring out how to look up the rate for a certain plasma reaction.
|
| |
|
std::map< int, Real > | m_plasmaReactionConstants |
| | Constant plasma reaction rates.
|
| |
|
std::map< int, int > | m_plasmaReactionAlphaV |
| | Plasma reaction rates that are alpha*|v|.
|
| |
|
std::map< int, int > | m_plasmaReactionEtaV |
| | Plasma reaction rates that are eta*|v|.
|
| |
| std::map< int, std::pair< int, FunctionT > > | m_plasmaReactionFunctionsT |
| | Maps for functions of the type k = f(T) where T is the temperature of some species.
|
| |
| std::map< int, std::tuple< int, int, FunctionTT > > | m_plasmaReactionFunctionsTT |
| | Maps for functions of the type k = f(T1,T2) where T1 and T2 are the temperatures of some species.
|
| |
|
std::map< int, FunctionEN > | m_plasmaReactionFunctionsEN |
| | Function-based plasma reaction rates.
|
| |
|
std::map< int, LookupTable1D< Real, 1 > > | m_plasmaReactionTablesEN |
| | Map for table-based reaction coefficients, where k = k(E,N).
|
| |
| std::map< int, std::pair< int, LookupTable1D< Real, 1 > > > | m_plasmaReactionTablesEnergy |
| | Map for table-based reaction coefficients where k = k(energy).
|
| |
|
std::map< int, FunctionEX > | m_plasmaReactionEfficiencies |
| | Scaled plasma reactions. These account for e.g. reaction efficiencies, collisional quenching, etc.
|
| |
|
std::vector< CdrPlasmaReactionJSON > | m_plasmaReactions |
| | Plasma reactions.
|
| |
|
std::map< int, bool > | m_plasmaReactionPlot |
| | Plot plasma reaction or not.
|
| |
| std::map< int, std::pair< bool, int > > | m_plasmaReactionSolovievCorrection |
| | Flag for whether or not reaction includes Soloviev energy correction.
|
| |
| std::map< int, std::map< int, std::pair< ReactiveEnergyLoss, Real > > > | m_plasmaReactionEnergyLosses |
| | For mapping reactive energy losses for all reactions.
|
| |
|
std::map< int, bool > | m_plasmaReactionHasEnergyLoss |
| | Associative container for determining if a reaction is associated with an energy loss/gain.
|
| |
|
std::map< int, FunctionEX > | m_photoReactionEfficiencies |
| | Flag for photo-reaction efficiencies. Includes Helmholtz corrections, if present.
|
| |
|
std::map< int, bool > | m_photoReactionUseHelmholtz |
| | Map over the Helmholtz reconstructions.
|
| |
|
std::vector< CdrPlasmaPhotoReactionJSON > | m_photoReactions |
| | Photo-reactions.
|
| |
| std::map< int, std::list< std::pair< int, Real > > > | m_photoReactionEnergyLosses |
| | Associated energy losses for a photo-reaction.
|
| |
|
std::map< int, bool > | m_photoReactionHasEnergyLoss |
| | Associative container for determining if a reaction is associated with an energy loss/gain.
|
| |
|
std::map< int, LookupMethod > | m_electrodeReactionLookup |
| | Lookup method for the electrode surface reaction rates.
|
| |
|
std::map< int, Real > | m_electrodeReactionConstants |
| | Constant electrode reaction rate.
|
| |
|
std::map< int, FunctionEX > | m_electrodeReactionEfficiencies |
| | Electrode reaction effiencies. Used for scaling reactions on electrodes in a "generic" way.
|
| |
|
std::vector< CdrPlasmaSurfaceReactionJSON > | m_electrodeReactions |
| | List of electrode reactions.
|
| |
| std::map< int, std::list< std::pair< int, Real > > > | m_electrodeReactionEnergyLosses |
| | Associated energy losses for a surface reaction on electrodes.
|
| |
|
std::map< int, bool > | m_electrodeReactionHasEnergyLoss |
| | Associative container for determining if a reaction is associated with an energy loss/gain.
|
| |
|
std::map< int, bool > | m_electrodeExtrapBC |
| | A container which determines if we should add the extrapolated flux as an inflow condition.
|
| |
|
std::map< int, LookupMethod > | m_dielectricReactionLookup |
| | Lookup method for the dielectric surface reaction rates.
|
| |
|
std::map< int, Real > | m_dielectricReactionConstants |
| | Constant dielectric reaction rate.
|
| |
|
std::map< int, FunctionEX > | m_dielectricReactionEfficiencies |
| | Dielectric reaction effiencies. Used for scaling reactions on dielectrics in a "generic" way.
|
| |
|
std::vector< CdrPlasmaSurfaceReactionJSON > | m_dielectricReactions |
| | List of dielectric reactions.
|
| |
| std::map< int, std::list< std::pair< int, Real > > > | m_dielectricReactionEnergyLosses |
| | Associated energy losses for a surface reaction on dielectrics.
|
| |
|
std::map< int, bool > | m_dielectricReactionHasEnergyLoss |
| | Associative container for determining if a reaction is associated with an energy loss/gain.
|
| |
|
std::map< int, bool > | m_dielectricExtrapBC |
| | A container which determines if we should add the extrapolated flux as an inflow condition.
|
| |
|
std::map< std::pair< int, Side::LoHiSide >, std::map< int, LookupMethod > > | m_domainReactionLookup |
| | Lookup method for the domain reaction rates. The pair is made up of an int representing direction (0=x, 1=y, 2=z) and a Side::LoHiSide representing side (Side::Lo, Side::Hi)
|
| |
|
std::map< std::pair< int, Side::LoHiSide >, std::map< int, Real > > | m_domainReactionConstants |
| | Constant domain reaction rate. The pair is made up of an int representing direction (0=x, 1=y, 2=z) and a Side::LoHiSide representing side (Side::Lo, Side::Hi)
|
| |
|
std::map< std::pair< int, Side::LoHiSide >, std::map< int, FunctionEX > > | m_domainReactionEfficiencies |
| | Domain reaction effiencies. Used for scaling reactions on domains in a "generic" way. The pair is made up of an int representing direction (0=x, 1=y, 2=z) and a Side::LoHiSide representing side (Side::Lo, Side::Hi)
|
| |
|
std::map< std::pair< int, Side::LoHiSide >, std::vector< CdrPlasmaSurfaceReactionJSON > > | m_domainReactions |
| | List of domain reactions. The pair is made up of an int representing direction (0=x, 1=y, 2=z) and a Side::LoHiSide representing side (Side::Lo, Side::Hi)
|
| |
|
const std::map< char, int > | m_dirCharToInt {{'x', 0}, {'y', 1}, {'z', 2}} |
| | map to translate dir from char to int
|
| |
|
const std::map< std::string, Side::LoHiSide > | m_sideStringToSide {{"lo", Side::Lo}, {"hi", Side::Hi}} |
| | map to translate side from std::string to Side::LoHiSide
|
| |
| std::map< std::tuple< int, Side::LoHiSide, int >, bool > | m_domainExtrapBC |
| | A container which determines if we should add the extrapolated flux as an inflow condition.
|
| |
|
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.
|
| |
CdrPlasmaPhysics implementation that reads plasma chemistry from a JSON input file.
This class parses species definitions, transport coefficients, reaction rates, and boundary fluxes from a structured JSON file. Transport data (drift velocities, diffusion coefficients, ionization and attachment rates) may be specified as analytical expressions or as lookup tables in reduced-field coordinates (E/N). Reactions are parsed symbolically and evaluated at runtime by looping over the parsed reaction network.
The JSON file specifies CDR species, RTE species, neutral species, bulk reactions, photoionization reactions, and surface reactions. Energy-dependent reactions on domain boundaries are not yet supported.