Plasma API
Low-temperature plasma chemistry lives in the Arrhenius.Plasma submodule: the electron energy distribution (EEDF) model and solver, the plasma state, and plasma reactors.
Arrhenius.Plasma.EEDFModel — Type
EEDFModelFixed electron-energy grid and collision cross-section tables. Construct a model with read_eedf_model; energies are eV and cross sections are m².
Arrhenius.Plasma.EEDFResult — Type
EEDFResultElectron-energy distribution on edges and centers (eV), electron mobility (m²/(V·s)), and convergence diagnostics. The center distribution satisfies ∫√ε f(ε)dε = 1; edge values are interpolated with endpoint holding and are not renormalized. errors and deltas record the iteration history.
Arrhenius.Plasma.EEDFState — Type
EEDFState(model; T, P, mole_fractions, molecular_weights, reduced_field, frequency=0, number_density=nothing)Gas conditions for a temporal two-term electron-energy calculation. Temperature is K, pressure Pa, molecular weights kg/kmol, reduced electric field V·m², and frequency Hz. Dictionaries are keyed by collision-target names. Mole fractions are normalized over participating targets; additional species are ignored. number_density is the total gas number density in m⁻³. It defaults to P/(kB*T); supply the actual density for a two-temperature or non-ideal gas.
Arrhenius.Plasma.PlasmaEnergyReactor — Type
PlasmaEnergyReactor(state; volume=1.0)A closed, constant-pressure Boltzmann-plasma reactor. Its state is [mass, total_enthalpy, mass_fractions...]; electron temperature and the electric field/EEDF are held fixed between explicit update_eedf! calls on the prepared RHS.
Arrhenius.Plasma.PlasmaMechanism — Type
PlasmaMechanism(path; phase=nothing, data_paths=String[], atomic_weights=Dict())Read an ideal plasma mechanism directly from Cantera-style YAML. Imported species files are searched beside the mechanism and in data_paths. Supports isotropic rates and Boltzmann two-term distributions. Boltzmann phases also support imported gas thermodynamics, reversible Arrhenius reactions, falloff and Chebyshev rates. Reaction orders are nonnegative integers. Rates use kmol, m, s, K and J; electron energies are in eV.
Arrhenius.Plasma.PlasmaReactor — Type
PlasmaReactor(state)A homogeneous constant-pressure reactor with fixed gas and electron temperatures. Snapshots the supplied state; later state setters do not modify this reactor. The ODE state contains species mass fractions only. Chemical energy evolution, electric-field coupling and evolving EEDF are not part of this isothermal model.
Arrhenius.Plasma.PlasmaState — Type
PlasmaState(mechanism; temperature, pressure, mole_fractions, mass_fractions,
mean_electron_energy)An ideal plasma state with a separate electron temperature. Defaults come from its YAML phase; specify at most one composition. Input fractions are normalized. Temperatures are K, pressure Pa, density kg/m³ and mean electron energy eV. Use set_mean_electron_energy! to change electron energy at fixed density.
Arrhenius.Plasma.TwoTermOptions — Type
TwoTermOptions(; delta0=1e14, max_iterations=200, factor=4., rtol=1e-5,
initial_kTe=2., positivity_floor=1e-300, low_field_threshold=1e-21)Iteration controls for solve_eedf. initial_kTe is eV and the field threshold is V·m². The positivity floor regularizes logarithmic slopes only.
Arrhenius.Plasma._PlasmaThermoRateWorkspace — Type
Reusable storage for signed thermal-plasma source evaluations.
Arrhenius.Plasma._eedf_simpson — Method
Cantera-compatible composite Simpson quadrature on a strictly increasing grid.
Arrhenius.Plasma.plasma_properties — Method
Return independent composition arrays and the two-temperature ideal-plasma properties.
Arrhenius.Plasma.plasma_rates — Method
Return native rate coefficients, progress/production rates and isotropic EEDF at a state.
Arrhenius.Plasma.plasma_thermodynamics — Method
plasma_thermodynamics(state)Return partial molar enthalpies (J/kmol), heat capacities (J/kmol/K), reference entropies (J/kmol/K), and mixture mass-specific enthalpy and heat capacity. Heavy species use the gas temperature; electrons use the stored electron temperature. The mixture heat capacity includes each species' heat capacity.
Arrhenius.Plasma.read_eedf_model — Method
read_eedf_model(path; phase=nothing, data_paths=String[]) -> EEDFModelRead electron-collision cross sections from a Cantera-style plasma YAML file. Only Boltzmann-two-term EEDF definitions are supported. Collision reaction sections are resolved from the selected phase, including <file>/reactions imports searched through data_paths. Root-level electron-collisions entries require an explicit kind. Reaction kinds use an explicit kind when present; otherwise they are inferred from selected species composition and product charge. For reaction entries, zero thresholds are inferred from the first positive tabulated energy only for excitation, ionization, and attachment collisions. The selector-free electron-collisions layout keeps its legacy Electron identity and explicit root thresholds without resolving thermodynamic imports.
Arrhenius.Plasma.set_mean_electron_energy! — Method
Change electron energy in eV, retaining gas temperature, composition and density.
Arrhenius.Plasma.set_plasma_enthalpy! — Method
set_plasma_enthalpy!(state, enthalpy; pressure, rtol=1e-12, maxiter=500)Set mass-specific enthalpy in J/kg and pressure in Pa by solving for gas temperature. Retain composition, electron energy, electric field, EEDF and mobility. A failed inversion leaves the state unchanged.
Arrhenius.Plasma.set_plasma_state! — Method
set_plasma_state!(state; temperature, pressure, mole_fractions, mass_fractions)Set gas temperature, pressure and optionally composition while retaining electron energy. The density follows the two-temperature equation of state. With no composition argument the current mass fractions are retained.
Arrhenius.Plasma.set_reduced_electric_field! — Method
set_reduced_electric_field!(state, reduced_field)Set E/N in V·m² using the current total number density. The absolute electric field is retained across subsequent gas-state changes. This does not update the electron distribution or its cached mobility; call update_eedf! afterward.
Arrhenius.Plasma.solve_eedf — Method
solve_eedf(model, state; options=TwoTermOptions(), initial=nothing)Solve the fixed-grid temporal two-term EEDF problem. Molecular weights in state are kg/kmol and reduced_field is in V*m^2. Pass a previous EEDFResult as initial to continue from its center distribution on the same grid. The input is copied. At or below options.low_field_threshold, the calculation always starts from the gas-temperature Maxwellian.
Arrhenius.Plasma.update_eedf! — Method
Refresh the accepted-state EEDF and cached collision rate coefficients.
Arrhenius.Plasma.update_eedf! — Method
update_eedf!(state; options=TwoTermOptions())Solve the Boltzmann distribution at the current gas state and electric field, continuing from the previous distribution when appropriate. Cache the result and mobility without changing the independently stored electron temperature.