EbtelInterface

class synthesizAR.interfaces.ebtel.EbtelInterface(base_config, heating_model, ebtel_dir)[source]

Bases: object

Interface to the Enthalpy-Based Thermal Evolution of Loops (EBTEL) model

Parameters:
  • base_config (dict) – Config dictionary with default parameters for all loops.

  • heating_model (object) – Heating model class for configuring event times and rates

  • config_dir (str) – Path to configuration file directory

  • results_dir (str) – Path to results file directory

Attributes Summary

name

Methods Summary

calculate_ionization_fraction(skeleton, ...)

Solve the time-dependent ionization balance equation for all loops and all elements

compute_nei(element, loop)

Compute NEI populations for a given element and loop

load_results(loop)

Load EBTEL output for a given loop object.

write_to_hdf5(data, loop, element_name, savefile)

Collect and store all NEI populations in a single HDF5 file

Attributes Documentation

name = 'EBTEL'

Methods Documentation

static calculate_ionization_fraction(skeleton, emission_model, **kwargs)[source]

Solve the time-dependent ionization balance equation for all loops and all elements

This method computes the time dependent ion population fractions for each element in the emission model and each loop in the active region and compiles the results to a single HDF5 file. To do this efficiently, it uses the dask.distributed library to take advantage of multiple processes/cores/machines and compute the population fractions in parallel. It returns an asynchronous Future object which holds the state of the submitted tasks.

Parameters:
Returns:

future (Future)

static compute_nei(element, loop)[source]

Compute NEI populations for a given element and loop

load_results(loop)[source]

Load EBTEL output for a given loop object.

Parameters:

loop (synthesizAR.Loop object) –

static write_to_hdf5(data, loop, element_name, savefile)[source]

Collect and store all NEI populations in a single HDF5 file