Source code for damask._loadcasegrid

# SPDX-License-Identifier: AGPL-3.0-or-later
from typing import Any

from . import YAML
from ._typehints import FileHandleText
from ._yaml import MaskedMatrixDumper


[docs] class LoadcaseGrid(YAML): """Load case for grid solver.""" def __init__(self, config: str | dict[str, Any] | None = None, *, solver: dict[str, str] | None = None, loadstep: list[dict[str, Any]] | None = None): """ New grid solver load case. Parameters ---------- config : dict or str, optional Grid solver load case. String needs to be valid YAML. solver : dict, optional Solver configuration. Defaults to an empty dict if 'config' is not given. loadstep : list of dict, optional Load step configuration. Defaults to an empty list if 'config' is not given. """ kwargs: dict[str,dict[str,str] | list[dict[str,Any]]] = {} default: list | dict for arg,value,default in [('solver',solver,{}),('loadstep',loadstep,[])]: # type: ignore[assignment] if value is not None: kwargs[arg] = value elif config is None: kwargs[arg] = default super().__init__(config,**kwargs)
[docs] def save(self, fname: FileHandleText, **kwargs): """ Save to YAML file. Parameters ---------- fname : file, str, or pathlib.Path Filename or file to write. **kwargs : dict Keyword arguments parsed to yaml.dump. """ if 'Dumper' not in kwargs: kwargs['Dumper'] = MaskedMatrixDumper super().save(fname=fname,**kwargs)