UM-PEPL / HallThruster.jl

An open-source fluid Hall thruster code
Other
16 stars 9 forks source link

Json input and output #72

Closed archermarx closed 1 year ago

archermarx commented 1 year ago

as part of JANUS, we'd like to allow people to call this code from outside of julia, so a standardized JSON input and output would be nice. Here's a sample JSON file:


{
    "design": {
        "thruster_name": "SPT-100",
        "inner_radius": 0.035,
        "outer_radius": 0.05,
        "channel_length": 0.025,
        "magnetic_field_file": "bfield_spt100.csv",
        "wall_material": "BoronNitride",
        "magnetically_shielded": false,
        "anode_potential": 300.0,
        "cathode_potential": 0.0,
        "anode_mass_flow_rate": 5e-6,
        "propellant": "Xenon"
    },

    "simulation": {
        "num_cells": 100,
        "dt_s": 1.0e-8,
        "duration_s": 2e-3,
        "num_save": 1000,
        "cathode_location_m": 0.08,
        "ncharge": 3,
        "flux_function": "global_lax_friedrichs",
        "limiter": "van_leer",
        "reconstruct": true,
        "ion_wall_losses": true,
        "electron_ion_collisions": true,
        "anom_model": "TwoZoneBohm"
    },

    "parameters": {
        "neutral_temp_K": 300.0,
        "neutral_velocity_m_s": 300.0,
        "ion_temp_K": 1000.0,
        "cathode_electron_temp_eV": 3.0,
        "sheath_loss_coefficient": 0.15,
        "inner_outer_transition_length_m": 0.01,
        "anom_model_coeffs": [0.00625, 0.0625]
    }
}

To run the simulation, we would just do:

using HallThruster

solution = HallThruster.run_simulation("config.json")

TODO:

archermarx commented 1 year ago

@goroda Does this look about right for the kind of inputs you'd want?