pylbo.gimli.amrvac

Classes

Amrvac

Class to prepare Legolas data for use in MPI-AMRVAC (https://amrvac.org).

Module Contents

class pylbo.gimli.amrvac.Amrvac(config)

Class to prepare Legolas data for use in MPI-AMRVAC (https://amrvac.org).

Parameters:

config (dict) – The configuration dictionary detailing which Legolas file and selection of eigenmodes to use.

config
_validate_config()

Validates the presence and value of physics_type in the configuration dictionary.

Raises:
_validate_datfile()

Validates whether a valid Legolas data file was specified in the configuration. Further checks whether all necessary parameters are present in the configuration to prepare Legolas data for use with MPI-AMRVAC.

Raises:
  • AssertionError – If the length of weights is not equal to the number of eigenvalues or if the elements of the weights do not add up to 1; if ef_factor does not have modulus 1; if norm_range does not have length 2; if norm_range’s first element is larger than the second.

  • KeyError – If no datfile is specified; if no initial guess for the eigenvalue is specified.

  • TypeError – If ev_guess is not a single float/complex number or a list/NumPy array of float/complex numbers; if ev_time for the eigenvalue is not a float or an integer; if weights is not a list or NumPy array; if ef_factor is not a list with length equal to the number of eigenvalues, or an integer, float, or complex number; if quantity is not a string; if percentage is not a float; if norm_range is not a NumPy array.

  • ValueError – If quantity is not in the list of equilibrium quantities.

  • Exception – If the datfile is invalid.

_get_combined_perturbation(ef)

Takes Legolas’s perturbations of different eigenvalues and adds them up to a single perturbation.

Parameters:

ef (str) – The eigenfunction to combine.

Returns:

The combined perturbation.

Return type:

np.ndarray

_get_total_perturbation(ef_type)

Combines the perturbations of different eigenvalues into a single perturbation. Derives the pressure perturbation from the density and temperature perturbations.

Parameters:

ef_type (str) – The eigenfunction to calculate.

Returns:

The total perturbation.

Return type:

np.ndarray

_get_normalisation()

Normalises the perturbation of the specified quantity by the maximum background value.

Returns:

The normalisation factor.

Return type:

float

prepare_legolas_data(loc=None)

Prepares a file (.ldat) from the Legolas data for use with MPI-AMRVAC.

Parameters:

loc (str, PathLike) – Path to the directory where the .ldat file will be stored. Default is the current directory.

Raises:

ValueError – If the datfile is invalid.

Examples

>>> from pylbo.gimli import Amrvac
>>> amrvac_config = {
>>>     "datfile": "./datfile.dat",
>>>     "physics_type": "mhd",
>>>     "ev_guess": [-0.1, 0.1],
>>>     "ev_time": 0,
>>>     "percentage": 0.01,
>>>     "quantity": "rho0"
>>> }
>>> amrvac = gimli.Amrvac(amrvac_config)
>>> amrvac.prepare_legolas_data()