Source code for abl.operators

from textwrap import wrap

from snek5000.operators import Operators as _Operators


[docs]class OperatorsABL(_Operators): @staticmethod def _complete_params_with_default(params): """This static method is used to complete the *params.oper* container.""" _Operators._complete_params_with_default(params) params.oper._set_attribs({"coords_x": "", "coords_y": "", "coords_z": ""}) params.oper._record_nek_user_params({"Lx": 5, "Ly": 6, "Lz": 7})
[docs] def info_box(self, comments=""): info = super().info_box(comments) info["comments"] += "Modified by abl.operators.OperatorsABL" grid_info = info["grid_info"] str_nb_elem = "" for ax in "xyz": # eg: params.oper.coords_y coords = getattr(self.params.oper, f"coords_{ax}") # eg: params.oper.ny nax = getattr(self.params.oper, f"n{ax}") if coords: if not isinstance(coords, str): try: coords = " ".join(str(i) for i in coords) except TypeError: raise TypeError( "params.oper.coords_{x,y,z} should be either " "a string or an iterable" ) del grid_info[f"{ax}0 {ax}1 ratio"] # hardcoded coordinates grid_info[f"{ax} coords"] = "\n".join(wrap(coords, 72)) + " " * 4 str_nb_elem += str(nax) + " " else: grid_info.move_to_end(f"{ax}0 {ax}1 ratio") str_nb_elem += str(-nax) + " " grid_info["nelx nely nelz"] = str_nb_elem grid_info.move_to_end("Velocity BCs") if self.params.oper.boundary_scalars: grid_info.move_to_end("Temperature / scalar BCs") return info