Configuration
The Config
struct contains all of the options you need specify the physics, geometry, and numerics of a simulation. On this page, we will explain what options are available and what they do. As in all parts of the code, dimensional quantities are SI unless explicitly noted, but units may be provided using Unitful
or DynamicQuantities
HallThruster.Config
— Typestruct Config{A<:HallThruster.AnomalousTransportModel, TC<:HallThruster.ThermalConductivityModel, W<:HallThruster.WallLossModel, HS<:HallThruster.HyperbolicScheme, IC<:HallThruster.InitialCondition, S_N, S_IC, S_IM, S_E}
Hall thruster configuration struct. Only four mandatory fields: discharge_voltage
, thruster
, anode_mass_flow_rate
, and domain
.
Mandatory Fields
thruster::HallThruster.Thruster
: The thruster to simulate. See Thrusters for more information
domain::Tuple{Float64, Float64}
: The simulation domain, given as (left, right). Dimensions are in meters.
discharge_voltage::Float64
: The potential difference between anode and cathode, in V. Used to set the left boundary condition for electrostatic potential.
anode_mass_flow_rate::Float64
: The mass flow rate of neutral atoms through the anode, in kg/s.Optional fields
ncharge::Int64
: Maximum ion charge state. Default: 1.
propellant::HallThruster.Gas
: AGas
. See Propellants for more. Default:Xenon
.
cathode_coupling_voltage::Float64
: The potential at the right boundary of the simulation. Default:0
anode_boundary_condition::Symbol
: Can be either:sheath
or:dirichlet
. If:sheath
, electron temperature has a Neumann boundary condition at the anode and a self-consistent anode sheath potential is computed. If:dirichlet
, electron temperature at anode is set toanode_Tev
and no sheath potential is modeled. Default::sheath
.
anode_Tev::Float64
: Electron temperature at left boundary (anode) ifanode_boundary_condition == :sheath
. Default: 2.0.
cathode_Tev::Float64
: Electron temperature at right boundary (cathode). Default: 2.0
anom_model::HallThruster.AnomalousTransportModel
: Model for computing the anomalous collision frequency. See Anomalous Transport for more info. Default:TwoZoneBohm(1/160, 1/16)
.
wall_loss_model::HallThruster.WallLossModel
: How radial losses due to sheaths are computed. Other wall models are described on the Wall Loss Models page. Default:WallSheath(BNSiO2, 1.0)
.
conductivity_model::HallThruster.ThermalConductivityModel
: Model for the cross-field electron thermal conductivity. See Electron Thermal Conductivity for more. Default:Mitchner()
electron_ion_collisions::Bool
: Whether to include electron-ion collisions. See Collisions and Reactions for more. Default:true
.
neutral_velocity::Float64
: Neutral velocity in m/s. Default:300.0
, or ifneutral_temperature
is set, that parameter is used to compute the velocity using a one-sided maxwellian flux approximation.
neutral_temperature_K::Float64
: Neutral temperature in Kelvins. Default:500.0
.
ion_temperature_K::Float64
: Ion temperature in Kelvins. Default: 1000.0
ion_wall_losses::Bool
: Whether we model ion losses to the walls. Default:false
.
background_pressure_Torr::Float64
: The pressure of the background neutrals, in Pascals. These background neutrals are injected at the anode to simulate the ingestion of facility neutrals. Default:0.0
background_temperature_K::Float64
: The temperature of the background neutrals, in K. Default:150.0
.
neutral_ingestion_multiplier::Float64
: The factor by which the ingested mass flow rate computed from the background pressure and temperature is multiplied. Default: 1.
solve_plume::Bool
: Whether quasi-1D beam expansion should be modelled outside of the channel. See Quasi-1D plume model for more. Default:false
apply_thrust_divergence_correction::Bool
: Whether the thrust output by HallThruster.jl should include a divergence correction factor ofcos(divergence_angle)
. Default:false
.
electron_plume_loss_scale::Float64
: The degree to which radial electron losses are applied in the plume. See Wall Loss Models for more information. Default: 1.
magnetic_field_scale::Float64
: Factor by which the magnetic field is increased or decreased compared to the one in the providedThruster
struct. Default:1.0
.
transition_length::Float64
: 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. Default:0.1 * thruster.geometry.channel_length
scheme::HallThruster.HyperbolicScheme
: Numerical scheme to employ for integrating the ion equations. This is aHyperbolicScheme
struct with fieldsflux_function
,limiter
, andreconstruct
. See Schemes for more info. Default:HyperbolicScheme(flux_function = rusanov, limiter = van_leer, reconstruct = true)
.
initial_condition::HallThruster.InitialCondition
: AnInitialCondition
; see Initialization for more information. Default:DefaultInitialization()
.
implicit_energy::Float64
: 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. Default:1.0
.
reaction_rate_directories::Vector{String}
: Additional directories in which we should look for rate coefficients. These are searched before the default directory, so replacement rate coefficients for built-in propellants can be provided. Default: String[]
anom_smoothing_iters::Int64
: How many times to smooth the anomalous transport profile. Only useful for transport models that depend on the plasma properties. Default:0
Verification and validation options
These options are used in code benchmarking and verification and are not usually needed by end-users. See Verification and validation for an explanation of how we use these to verify the accuracy of the code.
LANDMARK::Bool
: Whether we are using the physics model from the LANDMARK benchmark. 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. Default:false
.
ionization_model::Symbol
: Model for ionization reactions. Default::Lookup
.
excitation_model::Symbol
: Model for excitation reactions. Default::Lookup
.
electron_neutral_model::Symbol
: Model for elastic scattering collisions between electrons and neutral atoms. Default::Lookup
.
source_neutrals::Any
: Extra user-provided neutral source term. Default:nothing
source_ion_continuity::Any
: Vector of extra source terms for ion continuity, one for each charge state. Default:nothing
.
source_ion_momentum::Any
: Vector of extra source terms for ion momentum, one for each charge state. Default:nothing
.
source_energy::Any
: Extra source term for electron energy equation. Default:nothing
.