Source code for torx.specializations.grillix.initialize_multigrid_m
"""Allows interfacing the PARALLAX multigrid from GRILLIX data."""
from pathlib import Path
from warnings import warn
import torx
from torx.fileio import filepath_resolver
from torx.normalization import Normalization
from torx.autodoc_decorators_m import autodoc_function
[docs]
@autodoc_function
def initialize_grillix_multigrid(
filepath: Path,
load_all_levels: bool = True,
) -> torx.grid.Multigrid2D:
"""
Initialize a multigrid object stored in GRILLIX format.
Parameters
----------
filepath: pathlib.Path
Path to the GRILLIX directory
load_all_levels: bool, optional
Default is True.
Returns
-------
multigrid: torx.grid.Multigrid2D
TorX interpreted version of a PARALLAX multigrid.
"""
try:
norm = Normalization.initialize_from_normalization_file(
filepath_resolver(filepath, "physical_parameters.nml")
)
R0 = norm.R0
except FileNotFoundError:
warn(
"physical_parameters.nml not found. Normalization will not be useable. "\
"Returning the multigrid in units of meter."
)
norm = Normalization(dict())
R0 = torx.Quantity(1, "m")
multigrid_file = filepath_resolver(filepath, "multigrid.nc")
multigrid = torx.grid.Multigrid2D(
multigrid_file,
multigrid_group = "",
load_all_levels = load_all_levels,
R0 = R0
)
return multigrid