Skip to content
George N. Wong edited this page Oct 14, 2019 · 1 revision

Welcome to the ebhlight wiki!

Please see the README in the main repository for instructions on how to compile and run the code. This wiki is devoted to details about design and implementation.

Control flow

The entry point for ebhlight is the standard int main(...) in core/main.c. This function does the following

  • set up / initialize MPI communicator and initialize openmp state
  • initialize / load fluid and radiation data
    • attempt to start from restart file: check for and restart from file specified on first line of restarts/restart.last
    • otherwise check if init_from_grmhd`` is not No``` in parameter file and attempt to load from specified GRMHD restart file
    • otherwise initialize using specifications in original problem.c and parameter files
  • output "start" diagnostics and write first dump file (if not restarting from restart file)
  • run main loop
    • step everything forward in time by dt
      • step fluid variables by dt/2
      • heat electrons
      • run fixup on fluid variables and electrons
      • perform Coulomb interaction and fixup electrons again
      • update boundaries
      • make superphotons (emission)
      • push all superphotons
      • interact superphotons with fluid
      • update superphoton boundaries
      • step fluid variables by dt
      • heat electrons
      • run fixup on fluid variables and electrons
      • perform Coulomb interaction and fixup electrons again
      • update boundaries
      • apply radiation force onto fluid
      • run fixup on fluid variables
      • apply radiation force onto electrons
      • run fixup on electrons
      • update boundaries
    • update superphoton resolution via global tune_emiss and tune_scatt parameters
    • write outputs (dump files, diagnostics, restart files) based on requested cadence
  • clean up
Clone this wiki locally