Source code for fluidsimfoam.foam_input_files.fv_schemes

"""Helper to create fvSchemes files

"""

from inflection import underscore

from fluidsimfoam.foam_input_files import FileHelper, FoamInputFile
from fluidsimfoam.foam_input_files.util import as_dict


[docs]class FvSchemesHelper(FileHelper): keys = ["ddt", "grad", "div", "laplacian", "interpolation", "snGrad"] def __init__( self, ddt=None, grad=None, div=None, laplacian=None, interpolation=None, sn_grad=None, ): for key in self.keys: loc = locals() arg_name = underscore(key) if loc[arg_name] is None: loc[arg_name] = {} data = as_dict(loc[arg_name]) setattr(self, arg_name, data) self.other_dict = {}
[docs] def complete_params(self, params): fv_schemes = params._set_child("fv_schemes", doc="""TODO""") for key in self.keys: name = underscore(key) fv_schemes._set_child(name, attribs=getattr(self, name)) for key, value in self.other_dict.items(): name = underscore(key) fv_schemes._set_child(name, attribs=value)
[docs] def make_tree(self, params): tree = FoamInputFile( info={ "version": 2.0, "format": "ascii", "class": "dictionary", "object": "fvSchemes", } ) def set_child(key, name=None): if name is None: name = key + "Schemes" params_key = params.fv_schemes[underscore(key)] attribs = {k: params_key[k] for k in params_key._key_attribs} attribs = {k: v for k, v in attribs.items() if v is not False} tree.set_child(name, attribs) for key in self.keys: set_child(key) for key in self.other_dict: set_child(key, name=key) return tree
[docs] def add_dict(self, name, data): self.other_dict[name] = data