Source code for aurora.default_nml

# MIT License
#
# Copyright (c) 2021 Francesco Sciortino
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import numpy as np


[docs]def load_default_namelist(): """Load default namelist. Users should modify and complement this for a successful forward-model run. """ namelist = { "imp": "Ca", "main_element": "D", # background # -------------------- "source_rate": 1e21, "source_type": "const", # explicit source: "explicit_source_vals": None, # provide 2D array on explicit_source_time and explicit_source_rhop grids "explicit_source_time": None, "explicit_source_rhop": None, # other options to specify source: "source_width_in": 0.0, # exponential ionization decay from wall boundary if widths both = 0 "source_width_out": 0.0, "imp_source_energy_eV": 3.0, # only needed if source_width_in=source_width_out=0.0 "prompt_redep_flag": False, "source_file": None, # required if source_type='file' "source_cm_out_lcfs": 1.0, # source distance in cm from LCFS # LBO synthetic model, only used if source_type='synth_LBO' "LBO": {"n_particles": 1e18, "t_fall": 0.3, "t_rise": 0.05, "t_start": 0.01}, # -------------------- # time grid specifications "timing": { "dt_increase": np.array([1.005, 1.0]), "dt_start": np.array([1e-5, 0.001]), "steps_per_cycle": np.array([1, 1]), "times": np.array([0.0, 0.1]), }, # -------------------- # radial grid "bound_sep": 2.0, "lim_sep": 1.0, "clen_divertor": 17.0, "clen_limiter": 0.5, "dr_0": 0.3, "dr_1": 0.05, "K": 6.0, "SOL_decay": 0.05, # ------------------- "saw_model": { "saw_flag": False, "rmix": 1000.0, "times": [ 1.0, ], "crash_width": 1.0, }, # -------------------- # edge/recycling "recycling_flag": False, "wall_recycling": 0.0, "tau_div_SOL_ms": 50.0, # ms "tau_pump_ms": 500.0, # ms "tau_rcl_ret_ms": 50.0, # ms "SOL_mach": 0.1, # -------------------- # kinetic profiles "kin_profs": { "ne": {"fun": "interpa", "times": [1.0]}, "Te": {"fun": "interp", "times": [1.0], "decay": [1.0]}, "Ti": {"fun": "interp", "times": [1.0], "decay": [1.0]}, "n0": {"fun": "interpa", "times": [1.0]}, }, # and NBI CXR rates "nbi_cxr": {"rhop": None, "vals": None}, # time indpt profiles; (rhop,nZ) # ---------------- # charge exchange flags "cxr_flag": False, "nbi_cxr_flag": False, # ----------------- # misc "device": "CMOD", "shot": 99999, "time": 1250, # in ms, for equilibrium # atomic data (ADF11) "acd": None, # use default "scd": None, # use default "ccd": None, # use default "superstages": [], } return namelist
if __name__ == "__main__": # print default namelist for documentation nml = load_default_namelist() for key in nml: if isinstance(nml[key], dict): for key2 in nml[key]: print(f' * - `{key}["{key2}"]`') print(f" - {nml[key][key2]}") print(" -") else: print(f" * - `{key}`") print(f" - {nml[key]}") print(" -")