HYDRAD Configuration Parameters#
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 |
|
s |
output_interval |
How often results are printed to file |
|
s |
loop_length |
Footpoint-to-footpoint distance of the coronal loop |
|
cm |
loop_inclination |
Angle between loop and surface normal |
|
degree |
footpoint_height |
Length of the chromosphere |
|
cm |
poly_fit_gravity |
Configuration parameters for the piecewise polynomial fit to the gravitational profile |
|
|
poly_fit_magnetic_field |
Configuration parameters for the piecewise polynomial fit to the magnetic field profile |
|
|
logging_frequency |
Frequency (in number of timesteps) that progress is printed to the screen |
|
|
initial_amr_file |
Adaptive mesh file to initialize loop from; if not given, uses the result from the initial conditions code |
|
|
write_file_physical |
Toggle writing |
|
|
write_file_ion_populations |
Toggle writing |
|
|
write_file_hydrogren_level_populations |
Toggle writing |
|
|
write_file_timescales |
Toggle writing |
|
|
write_file_equation_terms |
Toggle writing |
|
|
heat_flux_limiting_coefficient |
See Eq. A15 of BC13 |
|
|
heat_flux_timestep_limit |
Minimum value the heat flux will limit timestep to |
|
s |
use_kinetic_model |
Toggle using the kinetic model for the heat flux |
|
|
minimum_collisional_coupling_timescale |
|
s |
|
force_single_fluid |
If true, force electron and ion quantities to be equal |
|
|
use_openmp |
If true, parallelize over threads with OpenMP. This option is most useful when including a NLTE chromosphere. |
|
|
grid_cells_per_thread |
If using OpenMP parallelization, approximate number of grid cells assigned to each thread |
|
|
open_field |
If true, one footpoint is assumed to not connect to the surface |
|
|
force_symmetry |
|
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\(-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 |
array-like |
|
order |
Order of the polynomial fit |
|
Initial Conditions#
Name |
Description |
Type |
Units |
---|---|---|---|
footpoint_temperature |
Temperature at the loop footpoints |
|
K |
footpoint_density |
Density at the loop footpoints |
|
cm\(^{-3}\) |
heating_location |
Loop coordinate where heating is deposited to get equilibrium solution |
|
cm |
heating_scale_height |
Spatial scale of heating to get equilibrium solution |
|
cm |
isothermal |
If true, initial temperature profile is uniform |
|
|
heating_range_lower_bound |
Lower bound on rate search range |
|
erg cm\(^{-3}\) s\(^{-1}\) |
heating_range_upper_bound |
Upper bound on rate search range |
|
erg cm\(^{-3}\) s\(^{-1}\) |
heating_range_step_size |
Resolution of heating rate search range |
|
|
heating_range_fine_tuning |
|
||
use_poly_fit_gravity |
If true, use polynomial fit to gravitational profile when calculating initial conditions |
|
|
use_poly_fit_magnetic_field |
If true, use polynomial fit to magnetic field profile when calculating initial conditions |
|
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. |
|
beam |
Toggle beam heating model |
|
alfven_wave |
Toggle Alfvèn wave heating model (experimental) |
|
background |
Parameters for configuring the background heating |
|
events |
List of properties for each heating event. |
|
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. |
|
|
location |
Location of the energy deposition |
|
cm |
scale_height |
Spatial scale of the energy deposition |
|
cm |
rate |
Peak heating rate of the Gaussian heating profile |
|
erg cm\(^{-3}\) s\(^{-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 |
|
s |
rise_duration |
The duration it takes to increase from the background heating rate to peak heating rate |
|
s |
decay_duration |
The duration it takes to decrease from peak heating rate back to the background heating rate |
|
s |
total_duration |
The total duration of the heating event. The time profile of the event is trapezoidal in shape. |
|
s |
location |
The location along the loop where the heating event is centered. Must have a value between 0 and the total loop length. |
|
cm |
scale_height |
The spatial width (Gaussian) of the heating event. |
|
cm |
rate |
The peak heating rate of the heating event |
|
erg cm\(^{-3}\) s\(^{-1}\) |
Radiation#
Name |
Description |
Type |
Units |
---|---|---|---|
use_power_law_radiative_losses |
If true, use piecewise power-law to calculate radiative losses |
|
|
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. |
|
|
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 |
|
|
density_dependent_rates |
If true, uses density-dependent ionization/recombination rates from the ADAS database. |
|
|
optically_thick_radiation |
If true, include optically thick lines in radiative losses |
|
|
nlte_chromosphere |
Treat the chromosphere as being in non-local thermodynamic equilibrium. NOTE: This may significantly increase the computation time. |
|
|
minimum_density_limit |
Density floor of the corona. This option is required if |
|
cm\(^{-3}\) |
ranges_dataset |
Temperature and density ranges dataset |
|
|
emissivity_dataset |
Name of emissivity dataset |
|
|
abundance_dataset |
Name of abundance dataset |
|
|
rates_dataset |
Name of ionization/recombination dataset |
|
|
elements_equilibrium |
Elements for which the population fractions will be calculated assuming ionization equilibrium |
|
|
elements_nonequilibrium |
Elements for which the time-dependent, non-equilibrium population fractions will be calculated |
|
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,
elements = ['hydrogen', 'He', 'c', 26]
Solver#
Name |
Description |
Type |
Units |
---|---|---|---|
epsilon |
|
||
safety_radiation |
A multiplicative factor applied to the radiative timescale. Should be strictly greater than 0 and less than or equal to 1. |
|
|
safety_conduction |
A multiplicative factor applied to the conductive timescale. Should be strictly greater than 0 and less than or equal to 1. |
|
|
safety_advection |
A multiplicative factor applied to the advective timescale. Should be strictly greater than 0 and less than or equal to 1. |
|
|
safety_atomic |
A multiplicative factor applied to the atomic timescale. Should be strictly greater than 0 and less than or equal to 1. |
|
|
safety_viscosity |
A multiplicative factor applied to the viscous timescale. Should be strictly greater than 0 and less than or equal to 1. |
|
|
cutoff_ion_fraction |
Population fractions below this value are set to 0 |
|
|
epsilon_d |
Safety factor for ion population solver; see B09 |
|
|
epsilon_r |
Safety factor for ion population solver; see B09 |
|
|
timestep_increase_limit |
Allowed fractional difference (between 0 and 1) between consecutive timesteps |
|
|
relative_viscous_timescale |
|
||
minimum_radiation_temperature |
|
K |
|
zero_over_temperature_interval |
Temperature interval over which the chromospheric radiative losses are set to zero |
|
K |
minimum_temperature |
Minimum allowed temperature in the grid |
|
K |
maximum_optically_thin_density |
|
cm\(^{-3}\) |
|
cutoff_temperature_fraction |
Ratio between cutoff temperature and peak temperature. If set, use the method of JB19 to model the transition region. |
|
Grid#
Name |
Description |
Type |
Units |
---|---|---|---|
adapt |
Toggle using adaptive mesh refinement |
|
|
adapt_every_n_time_steps |
How often to adapt on timestep |
|
|
maximum_cell_width |
The maximum allowed width of any grid cell |
|
cm |
maximum_refinement_level |
The maximum number of times a grid cell can be split; see BC13 |
|
|
minimum_cells |
Minimum allowed number of grid cells. If this is not set explicitly, it is calculated as \(n_{min}=\lceil L/\Delta s_{max}\rceil\), where \(L\) is the loop length and \(\Delta s_{max}\) is the maximum allowed grid cell width. |
|
|
maximum_cells |
Maximum allowed number of grid cells. If this is not set explicitly, \(n_{max}=\lfloor 2^{L_R}n_{min}\rfloor\), where \(L_R\) is the maximum refinement level and \(n_{min}\) is the minimum allowed number of grid cells. |
|
|
minimum_delta_s |
Smallest allowed grid cell width in the initial setup |
|
cm |
maximum_variation |
|
||
refine_on_density |
Use spatial variations in density to adaptively refine the grid |
|
|
refine_on_electron_energy |
Use spatial variations in the electron energy to adaptively refine the grid |
|
|
refine_on_hydrogen_energy |
Use spatial variations in the hydrogen energy to adaptively refine the grid |
|
|
minimum_fractional_difference |
Minimum allowed difference (between 0 and 1) between adjacent cells |
|
|
maximum_fractional_difference |
Maximum allowed difference (between 0 and 1) between adjacent cells |
|
|
linear_restriction |
Use linear interpolation only |
|
|
enforce_conservation |
Check whether energy has been conserved (i.e. correct numerical errors) |
|