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, IC<:HallThruster.InitialCondition, S_HS, 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.
  • propellants::Vector{HallThruster.Propellant}: The propellants to be used. See Propellants for more.


    Optional fields


  • 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.
  • 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
  • reconstruct::Bool: Whether to employ gradient reconstruction
  • 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_heavy_species::Any: Extra source term for heavy species. Default: nothing
  • source_energy::Any: Extra source term for electron energy equation. Default: nothing.
source