Configuration
The Config
struct contains all of the options you need to run a simulation. On this page, we will explain what options are available and what they do. Note that all arguments must be provided as keywords.
There are four absolutely mandatory arguments. These are:
discharge_voltage
: The difference in potential between the anode and cathode, in Volts. This is used to set the left boundary condition. If the cathode potential is zero, then the anode potential is equal to the discharge voltage.thruster
: This is aThruster
object containing important geometric and magnetic information about the thruster being simulated. See the page about Thrusters for more.domain
: This is a Tuple containing the locations of the left and right boundaries of the simulation domain, in meters. For instance, if your simulation domain starts at z = 0.0 and is 5 cm long, you would writedomain = (0.0, 0.05)
.anode_mass_flow_rate
: The propellant mass flow rate at the anode, in kg/s
Aside from these arguments, all others have default values provided. These are detailed below:
initial_condition
: A function used for initializing the simulation. See the page about Initialization for more information.ncharge
: Number of charge states to simulate. Defaults to1
.propellant
: Propellant gas. Defaults toXenon
. Other options are described on the Propellants page.scheme
: Numerical scheme to employ for integrating the ion equations. This is aHyperbolicScheme
struct with fieldsflux_function
,limiter
, andreconstruct
. Defaults toHyperbolicScheme(flux_function = rusanov, limiter = minmod, reconstruct = false)
. For more information, see Fluxes.cathode_potential
: The potential at the right boundary of the simulation. Defaults to0.0
anode_Te
: The electron temperature at the anode, in eV. Acts as a Dirichlet boundary condition for the energy equation. Defaults to3.0
.cathode_Te
: The electron temperature at the cathode, in eV. Acts as a Dirichlet boundary condition for the energy equation. Defaults to3.0
.wall_loss_model
: How radial losses due to sheaths are computed. Defaults toConstantSheathPotential(sheath_potential=-20.0, inner_loss_coeff = 1.0, outer_loss_coeff = 1.0)
, which is the loss term from LANDMARK case 1. Other wall loss models are described on the Wall Loss Models page.anom_model
: Model for computing the anomalous collision frequency. Defaults toTwoZoneBohm(1/160, 1/16)
. Further details on the Anomalous Transport page.transition_length
: Distance over which the transition between inside and outside the channel is smoothed. Affects wall losses as well as two-zone Bohm-like transport models.conductivity_model
: Model for the perpendicular electron thermal conductivity. Defaults toMitchner()
. Further details can be found on the Electron Thermal Conductivity page.ionization_model
: Model for ionization. Defaults toIonizationLookup()
, which uses a lookup table to compute ionization rate coefficients as a function of electron energy. Other options are described on the Collisions and Reactions page.excitation_model
: Model for excitation reactions. Defaults toExcitationLookup()
, which uses a lookup table to compute excitation rate coefficients as a function of electron energy.. Other models are described on the Collisions and Reactions page.electron_neutral_model
: Model for elastic scattering collisions between electrons and neutral atoms. Defaults toElectronNeutralLookup()
, which uses a lookup table to compute the elastic scattering rate coefficient. Other models are described on the Collisions and Reactions page.electron_ion_collisions
: Whether to include electron-ion collisions. Defaults totrue
. More information on the Collisions and Reactions page.neutral_velocity
: Neutral velocity in m/s. Defaults to300.0
. Note: If this is not set, theneutral_temperature
is used to compute it using a one-sided maxwellian flux approximation.neutral_temperature
: Neutral temperature in Kelvins. Defaults to500.0
.ion_temperature
: Ion temperature in Kelvins. Defaults to 100.0implicit_energy
: The degree to which the energy is solved implicitly.0.0
is a fully-explicit forward Euler,0.5
is Crank-Nicholson, and1.0
is backward Euler. Defaults to1.0
.min_number_density
: Minimum allowable number density for any species. Defaults to1e6
min_electron_temperature
: Minimum allowable electron temperature. Defaults to1.0
.magnetic_field_scale
: Factor by which the magnetic field is increased or decreased compared to the one in the providedThruster
struct. Defaults to1.0
.source_neutrals
: Extra user-provided neutral source term. Can be an arbitrary function, but must take(U, params, i)
as arguments. Defaults toReturns(0.0)
. See User-Provided Source Terms for more information.source_ion_continuity
: Vector of extra source terms for ion continuity, one for each charge state. Defaults tofill(Returns(0.0), ncharge)
. See User-Provided Source Terms for more information.source_ion_momentum
: Vector of extra source terms for ion momentum, one for each charge state. Defaults tofill(Returns(0.0), ncharge)
. See User-Provided Source Terms for more information.source_potential
: Extra source term for potential equation. Defaults toReturns(0.0)
. See User-Provided Source Terms for more information.source_electron_energy
: Extra source term for electron energy equation. Defaults toReturns(0.0)
. See User-Provided Source Terms for more information.LANDMARK
: Whether we are using the LANDMARK physics model. This affects whether certain terms are included in the equations, such as electron and heavy species momentum transfer due to ionization and the form of the electron thermal conductivity. Also affects whether we use an anode sheath model. Defaults tofalse
.ion_wall_losses
: Whether we model ion losses to the walls. Defaults tofalse
.background_pressure
: The pressure of the background neutrals, in Pascals. These background neutrals are injected at the anode to simulate the ingestion of facility neutrals.background_neutral_temperature
: The temperature of the background neutrals, in Kanode_boundary_condition
: Can be either:sheath
or:dirichlet
anom_smoothing_iters
: How many times to smooth the anomalous transport profile. Defaults to zerosolve_plume
: Whether quasi-1D beam expansion should be modelled outside of the channel.apply_thrust_divergence_correction
: Whether the thrust output by HallThruster.jl should include a divergence correction factor of cos(δ)^2electron_plume_loss_scale
: The degree to which radial electron losses are applied in the plume. Defaults to 1. See Wall Loss Models for more information.