HARD YAML Input Files

HARD uses YAML files as input to describe the different problems and their configurations. These files can be found in the configs directory at the root. A subdirectory ci_configs is used to run the regression tests in the CI and should not be altered.

Unless specified, the units are in CGS.

Here are details on each parts of the yaml files:

problem
This is the string that is picked up by the init.hh file to configure the problem. For now these options are available:
  • sod

  • rankine-hugoniot

  • leblanc

  • acoustic-wave

  • kh-test

  • heating_and_cooling

  • sedov

  • implosion

  • rad-rh

  • lw-implosion

Physics quantities

Input that represent physical quantities: gamma, kappa, mean_molecular_weight

eos
Define which EOS to be used from Singularity EOS
  • ideal

  • spiner (tabulated EOS, not tested)

  • gruneisen (not tested)

time and steps
These variables handle the time and timestep of the simulation:
  • t0, start time for the simulation

  • tf, final time for the simulation (not supported for Legion backend)

  • cfl, Courant–Friedrichs–Lewy coefficient

  • max_dt, Maximum dt to be used in the simulation

  • max_steps, Maximum number of iterations to run the simulation for

logging and output
  • log_frequency, Set the frequency of iterations outputted on the terminal

  • output_frequency, Set the frequency of the output files

color_distribution

An array representing how many colors per dimensions to assign.

levels

This is an array representing the grid size as a power of two per dimension. As an example [8,8,4] would mean a grid of 2^8 * 2^8 * 2^4. If the code runs with the -d command line option, the extra dimensions are ignored.

lowest_level

This defines the lowest level of resolution for the Geometric Multigrid. All dimensions decrease levels at the same rate, so the lowest resolution corresponds to whichever has one dimension arriving to the lowest level first

coords

Coordinates of the lowest and highest points of the domain. We set two array per dimensions as, for example, a square: - [0.0, 0.0, 0.0] - [1.0, 1.0, 1.0]

boundaries
The boundaries are defined per dimensions xlow, xhigh, ylow, yhigh, zlow, and zhigh For each several options are possible:
  • periodic

  • flow

  • reflecting

  • dirichlet

catalyst
All these options are needed under catalyst to specify the location of the script and the paraview library.
  • script, path to the python script that interface the output data and catalyst. An example is provided in tools/gridwriter.py

  • implementation, only value for now is paraview

  • implementation_directory, path to the catalyst library compiled using the implementation. Something like libcatalyst_paraview.so

Some problems have specific input information. These are all defined under the problem_parameters group.

  • acoustic_wave:

    • problem_parameters, a list containing:
      • r0, the equilibrium density

      • p0, the equilibrium pressure

      • amplitude, the perturbation amplitudes

      • scale, the inverse of the wave number

  • heating_and_cooling:

    • problem_parameters, a list containing:
      • fluid_mass_density

      • fluid_temperature

      • radiation_temperature

  • implosion:

    • problem_parameters, a list containing:
      • fluid_mass_density

      • fluid_temperature

      • radiation_temperature

  • sedov:

    • problem_parameters, a list containing:
      • hotspot_position, an array of the position of the hotspot

      • hotspot_radius, the radius of the hotspot

      • E_0, the initial energy injected at the hotspot in Ergs

The other tests have setting hardcoded in their initialization files. They can be found in app/tasks/initial_data/.