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.ConfigType
struct 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: A Gas. 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 to anode_Tev and no sheath potential is modeled. Default: :sheath.
  • anode_Tev::Float64: Electron temperature at left boundary (anode) if anode_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 if neutral_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 of cos(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 provided Thruster 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 a HyperbolicScheme struct with fields flux_function, limiter, and reconstruct. See Schemes for more info. Default: HyperbolicScheme(flux_function = rusanov, limiter = van_leer, reconstruct = true).
  • initial_condition::HallThruster.InitialCondition: An InitialCondition; 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, and 1.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.
source