Source code for torx.equilibrium.initialize_equi_from_params_m

"""Functionality to initialize equilibria from parameter files."""
from pathlib import Path
from torx.equilibrium.check_equilibrium_m import check_equilibrium
from torx.equilibrium.numerical_m import NumericalEquilibrium
from torx.equilibrium.slab_m import SlabEquilibrium
from torx.equilibrium.circular_m import CircularEquilibrium
from torx.equilibrium.circular_toroidal_m import CircularToroidalEquilibrium
from torx.equilibrium.salpha_m import SalphaEquilibrium
from torx.equilibrium.dommaschk_m import DommaschkEquilibrium
from torx.equilibrium.flare_m import FlareEquilibrium
from torx.autodoc_decorators_m import autodoc_function

[docs] @autodoc_function def initialize_equi_from_params(filepath: Path, params: dict): """Initialize the equilibrium from a given filepath and parameter file.""" equi_type = check_equilibrium(params) if equi_type == "SLAB": return SlabEquilibrium(**params["equi_slab_params"]) elif equi_type == "CIRCULAR": return CircularEquilibrium(**params["equi_circular_params"]) elif equi_type == "CIRCULAR_TOROIDAL": return CircularToroidalEquilibrium(**params["equi_circular_toroidal_params"]) elif equi_type == "SALPHA": return SalphaEquilibrium(**params["equi_salpha_params"]) elif equi_type == "DOMMASCHK": return DommaschkEquilibrium( filepath=filepath, **params["params_equi_dommaschk"], **params["params_equi_dommaschk_fitting_coef"] ) elif equi_type == "NUMERICAL": return NumericalEquilibrium.initialize_from_params(filepath, params) elif equi_type =="FLARE": flare_params = {} for k in params.keys(): if "flare" in k: flare_params = flare_params | params[k] flare_params = flare_params | params["params_mesh"] return FlareEquilibrium(filepath=filepath, **flare_params) else: raise NotImplementedError(f"No quick initialization available for {equi_type}")