.. NOTE: This file should not be edited directly! It is autogenerated in conf.py based on the information in config_tables.yml. If you need to edit the information in the config tables, please do so in the config_tables.yml file. Changes to this file will not persist after each docs build. .. _pydrad-hydrad-configuration: HYDRAD Configuration ==================== The tables below give an exhaustive list of all of the different HYDRAD configuration options. If the units are listed, the input must have units that can be converted to the listed unit with the `Astropy units module `__, e.g. ``loop_length`` can be input in Mm. General -------- ====================================== =========================================================================================================================================== ========= ====== Name Description Type Units ====================================== =========================================================================================================================================== ========= ====== total_time Total duration of the simulation ``float`` s output_interval How often results are printed to file ``float`` s loop_length Footpoint-to-footpoint distance of the coronal loop ``float`` cm loop_inclination Angle between loop and surface normal ``float`` degree footpoint_height Length of the chromosphere ``float`` cm poly_fit_gravity Configuration parameters for the piecewise polynomial fit to the gravitational profile ``dict`` poly_fit_magnetic_field Configuration parameters for the piecewise polynomial fit to the magnetic field profile ``dict`` logging_frequency Frequency (in number of timesteps) that progress is printed to the screen ``int`` initial_amr_file Adaptive mesh file to initialize loop from; if not given, uses the result from the initial conditions code ``str`` write_file_physical Toggle writing ``.phy`` solutions file ``bool`` write_file_ion_populations Toggle writing ``.ine`` file ``bool`` write_file_hydrogren_level_populations Toggle writing ``.hstate`` file ``bool`` write_file_timescales Toggle writing ``.scl`` file ``bool`` write_file_equation_terms Toggle writing ``.trm`` file ``bool`` heat_flux_limiting_coefficient See Eq. A15 of `BC13 `__ ``float`` heat_flux_timestep_limit Minimum value the heat flux will limit timestep to ``float`` s use_kinetic_model Toggle using the kinetic model for the heat flux ``bool`` minimum_collisional_coupling_timescale ``float`` s force_single_fluid If true, force electron and ion quantities to be equal ``bool`` use_openmp If true, parallelize over threads with `OpenMP `__. This option is most useful when including a NLTE chromosphere. ``bool`` grid_cells_per_thread If using OpenMP parallelization, approximate number of grid cells assigned to each thread ``int`` open_field If true, one footpoint is assumed to not connect to the surface ``bool`` force_symmetry ``bool`` ====================================== =========================================================================================================================================== ========= ====== The ``poly_fit_gravity`` and ``poly_fit_magnetic_field`` entries are both dictionaries and must contain the following keys, ======= ========================================================================================================================================================================== ========== ===================== Name Description Type Units ======= ========================================================================================================================================================================== ========== ===================== x Spatial coordinate of the profile array-like cm y Profile, either gravity or magnetic field array-like cm s\ :math:`-2` or G domains Left and right edges, in normalized spatial coordinates, over which to perform the fit. If fitting a single polynomial over the entire domain, this can just be ``[0,1]``. array-like order Order of the polynomial fit ``int`` ======= ========================================================================================================================================================================== ========== ===================== Initial Conditions ------------------ =========================== ========================================================================================= ========= ====================================== Name Description Type Units =========================== ========================================================================================= ========= ====================================== footpoint_temperature Temperature at the loop footpoints ``float`` K footpoint_density Density at the loop footpoints ``float`` cm\ :math:`^{-3}` heating_location Loop coordinate where heating is deposited to get equilibrium solution ``float`` cm heating_scale_height Spatial scale of heating to get equilibrium solution ``float`` cm isothermal If true, initial temperature profile is uniform ``bool`` heating_range_lower_bound Lower bound on rate search range ``float`` erg cm\ :math:`^{-3}` s\ :math:`^{-1}` heating_range_upper_bound Upper bound on rate search range ``float`` erg cm\ :math:`^{-3}` s\ :math:`^{-1}` heating_range_step_size Resolution of heating rate search range ``float`` heating_range_fine_tuning ``float`` use_poly_fit_gravity If true, use polynomial fit to gravitational profile when calculating initial conditions ``bool`` use_poly_fit_magnetic_field If true, use polynomial fit to magnetic field profile when calculating initial conditions ``bool`` =========================== ========================================================================================= ========= ====================================== Heating -------- ================ ===================================================================================================================================================== ========= Name Description Type ================ ===================================================================================================================================================== ========= electron_heating Fraction of energy partitioned to the electrons. If 1, all of the heat is deposited in the electrons. If 0, all of the heat is deposited in the ions. ``float`` beam Toggle beam heating model ``bool`` alfven_wave Toggle Alfvèn wave heating model (experimental) ``bool`` background Parameters for configuring the background heating ``dict`` events List of properties for each heating event. ``list`` ================ ===================================================================================================================================================== ========= The ``background`` entry can have the following keys. If ``use_initial_conditions`` is set to ``True``, none of the other keys need be included ====================== ======================================================================================================================================================================== ========= ====================================== Name Description Type Units ====================== ======================================================================================================================================================================== ========= ====================================== use_initial_conditions If true, use the heating parameters from the initial conditions and the computed equilibrium heating rate; if true, all other background heating parameters are ignored. ``bool`` location Location of the energy deposition ``float`` cm scale_height Spatial scale of the energy deposition ``float`` cm rate Peak heating rate of the Gaussian heating profile ``float`` erg cm\ :math:`^{-3}` s\ :math:`^{-1}` ====================== ======================================================================================================================================================================== ========= ====================================== Each entry in the ``events`` list should be a dictionary with the following seven keys (and appropriate units) corresponding to each heating event. If the list is empty, it is assumed that the loop is not subject to any heating events. ============== ======================================================================================================================== ========= ====================================== Name Description Type Units ============== ======================================================================================================================== ========= ====================================== time_start The starting time in the simulation of a given heating event ``float`` s rise_duration The duration it takes to increase from the background heating rate to peak heating rate ``float`` s decay_duration The duration it takes to decrease from peak heating rate back to the background heating rate ``float`` s total_duration The total duration of the heating event. The time profile of the event is trapezoidal in shape. ``float`` s location The location along the loop where the heating event is centered. Must have a value between 0 and the total loop length. ``float`` cm scale_height The spatial width (Gaussian) of the heating event. ``float`` cm rate The peak heating rate of the heating event ``float`` erg cm\ :math:`^{-3}` s\ :math:`^{-1}` ============== ======================================================================================================================== ========= ====================================== Radiation --------- ================================ ====================================================================================================================================================================================================================================================================================================================================================== ========= ================= Name Description Type Units ================================ ====================================================================================================================================================================================================================================================================================================================================================== ========= ================= use_power_law_radiative_losses If true, use piecewise power-law to calculate radiative losses ``bool`` lookup_table Path (relative to the root of the HYDRAD directory) to lookup table for radiative losses. Ignored unless use_power_law_radiative_losses is also set. ``str`` decouple_ionization_state_solver If true, the non-equilibrium population fractions are not fed back into the radiative loss calculation. This option will be ignored unless a list of elements is also passed to ``elements_nonequilibrium``. If ``use_power_law_radiative_losses`` is false, the equilibrium population fractions will be used to calculate the radiative losses. ``bool`` density_dependent_rates If true, uses density-dependent ionization/recombination rates from the ADAS database. ``bool`` optically_thick_radiation If true, include optically thick lines in radiative losses ``bool`` nlte_chromosphere Treat the chromosphere as being in non-local thermodynamic equilibrium. **NOTE: This may significantly increase the computation time.** ``bool`` minimum_density_limit Density floor of the corona. This option is required if ``nlte_chromosphere`` is true. ``float`` cm\ :math:`^{-3}` ranges_dataset Temperature and density ranges dataset ``str`` emissivity_dataset Name of emissivity dataset ``str`` abundance_dataset Name of abundance dataset ``str`` rates_dataset Name of ionization/recombination dataset ``str`` elements_equilibrium Elements for which the population fractions will be calculated assuming ionization equilibrium ``list`` elements_nonequilibrium Elements for which the time-dependent, non-equilibrium population fractions will be calculated ``list`` ================================ ====================================================================================================================================================================================================================================================================================================================================================== ========= ================= In the lists of equilibrium and non-equilibrium elements, each entry can either be the atomic symbol, number, or the element name. As an example, each entry in the list below (which includes hydrogen, helium, carbon, and iron) is a valid element identifier, .. code:: python elements = ['hydrogen', 'He', 'c', 26] Solver ------- ============================== ==================================================================================================================================================================================================== ========= ================= Name Description Type Units ============================== ==================================================================================================================================================================================================== ========= ================= epsilon ``float`` safety_radiation A multiplicative factor applied to the radiative timescale. Should be strictly greater than 0 and less than or equal to 1. ``float`` safety_conduction A multiplicative factor applied to the conductive timescale. Should be strictly greater than 0 and less than or equal to 1. ``float`` safety_advection A multiplicative factor applied to the advective timescale. Should be strictly greater than 0 and less than or equal to 1. ``float`` safety_atomic A multiplicative factor applied to the atomic timescale. Should be strictly greater than 0 and less than or equal to 1. ``float`` safety_viscosity A multiplicative factor applied to the viscous timescale. Should be strictly greater than 0 and less than or equal to 1. ``float`` cutoff_ion_fraction Population fractions below this value are set to 0 ``float`` epsilon_d Safety factor for ion population solver; see `B09 `__ ``float`` epsilon_r Safety factor for ion population solver; see `B09 `__ ``float`` timestep_increase_limit Allowed fractional difference (between 0 and 1) between consecutive timesteps ``float`` relative_viscous_timescale ``float`` minimum_radiation_temperature ``float`` K zero_over_temperature_interval Temperature interval over which the chromospheric radiative losses are set to zero ``float`` K minimum_temperature Minimum allowed temperature in the grid ``float`` K maximum_optically_thin_density ``float`` cm\ :math:`^{-3}` cutoff_temperature_fraction Ratio between cutoff temperature and peak temperature. If set, use the method of `JB19 `__ to model the transition region. ``float`` ============================== ==================================================================================================================================================================================================== ========= ================= Grid ----- ============================= ============================================================================================================================================================================================================================================= ========= ===== Name Description Type Units ============================= ============================================================================================================================================================================================================================================= ========= ===== adapt Toggle using adaptive mesh refinement ``bool`` adapt_every_n_time_steps How often to adapt on timestep ``int`` maximum_cell_width The maximum allowed width of any grid cell ``float`` cm maximum_refinement_level The maximum number of times a grid cell can be split; see `BC13 `__ ``int`` minimum_cells Minimum allowed number of grid cells. If this is not set explicitly, it is calculated as :math:`n_{min}=\lceil L/\Delta s_{max}\rceil`, where :math:`L` is the loop length and :math:`\Delta s_{max}` is the maximum allowed grid cell width. ``int`` maximum_cells Maximum allowed number of grid cells. If this is not set explicitly, :math:`n_{max}=\lfloor 2^{L_R}n_{min}\rfloor`, where :math:`L_R` is the maximum refinement level and :math:`n_{min}` is the minimum allowed number of grid cells. ``int`` minimum_delta_s Smallest allowed grid cell width in the initial setup ``float`` cm maximum_variation ``float`` refine_on_density Use spatial variations in density to adaptively refine the grid ``bool`` refine_on_electron_energy Use spatial variations in the electron energy to adaptively refine the grid ``bool`` refine_on_hydrogen_energy Use spatial variations in the hydrogen energy to adaptively refine the grid ``bool`` minimum_fractional_difference Minimum allowed difference (between 0 and 1) between adjacent cells ``float`` maximum_fractional_difference Maximum allowed difference (between 0 and 1) between adjacent cells ``float`` linear_restriction Use linear interpolation only ``bool`` enforce_conservation Check whether energy has been conserved (i.e. correct numerical errors) ``bool`` ============================= ============================================================================================================================================================================================================================================= ========= =====