Thrusters

Predefined thruster models are specified as a Thruster object. The struct has 4 self-explanatory fields: name of type string, geometry of type HallThruster.Geometry1D, magnetic_field of type B (which can be an arbitrary function of z), and shielded which is a Boolean. You can easily add your own thrusters.

SPT-100

For example, the SPT-100 is defined in the following way:

const SPT_100 = Thruster(
    name = "SPT-100",
    geometry = geometry_SPT_100,
    magnetic_field = B_field_SPT_100 $ (0.015, geometry_SPT_100.channel_length),
    shielded = false
)

while the geometry is defined here

const geometry_SPT_100 = Geometry1D(
    inner_radius = 0.0345,
    outer_radius = 0.05,
    channel_length = 0.025
)

and the magnetic field profile is approximated as follows

function B_field_SPT_100(B_max, L_ch, z)
    B = if z < L_ch
        B_max * exp(-0.5 * ((z - L_ch) / (0.011))^2) #for SPT_100
    else
        B_max * exp(-0.5 * ((z - L_ch) / (0.018))^2)
    end
    return B
end

Custom thrusters

You can add your own thruster models by defining the geometry, magnetic field profile and selecting shielded or not. Shielded thrusters are assumed to have lower electron energy losses to the walls, see Wall Loss Models. Note that since HallThruster.jl is a 1D code, the inner_radius and outer_radius merely used for computing the inlet neutral density and thetotal thrust and discharge current computations (from the specific values). Aside from these, they do not majorly effect the simulation results.