Source code for fluidsimfoam.foam_input_files.constant_files

"""Helper to create constant files"""

from copy import deepcopy

from fluidsimfoam.foam_input_files import (
    DimensionSet,
    FileHelper,
    FoamInputFile,
    _as_py_name,
    _complete_params_dict,
    _update_dict_with_params,
)


[docs]class ConstantFileHelper(FileHelper): def __init__( self, file_name: str, default: dict, default_dimension: str = False, dimensions: dict = None, comments: dict = None, doc: str = None, cls: str = "dictionary", dimension=None, ): self.file_name = file_name self.default = default self.default_dimension = default_dimension self.dimensions = dimensions self.comments = comments self.doc = doc self.cls = cls self.dimension = dimension self.name_params_child = _as_py_name( self.file_name.replace("Properties", "") )
[docs] def complete_params(self, params): try: constant_params = params["constant"] except AttributeError: constant_params = params._set_child("constant") _complete_params_dict( constant_params, self.name_params_child, self.default, self.doc )
[docs] def make_tree(self, params): tree = FoamInputFile( info={ "version": 2.0, "format": "ascii", "class": self.cls, "location": '"constant"', "object": self.file_name, }, comments=self.comments, ) if self.dimension is not None: tree.set_child("dimensions", DimensionSet(self.dimension)) params_file = params.constant[self.name_params_child] default = deepcopy(self.default) _update_dict_with_params(default, params_file) tree.init_from_py_objects( default, dimensions=self.dimensions, default_dimension=self.default_dimension, comments=self.comments, ) return tree