diff --git a/moose/materials.py b/moose/materials.py index 0c67f55..71ca266 100644 --- a/moose/materials.py +++ b/moose/materials.py @@ -156,9 +156,9 @@ def __str__(self): string = f'[{self.name}]\n' string += f'type={self.material_type.name}\n' prop_names = ' '.join(self.prop_names) - string += f'prop_names={prop_names}\n' + string += f'prop_names=\'{prop_names}\'\n' prop_values = ' '.join([x.name for x in self.prop_values]) - string += f'prop_values={prop_values}\n' + string += f'prop_values=\'{prop_values}\'\n' if self.block: string += f'block="{self.block}"\n' string += '[]\n' diff --git a/moose/moose.py b/moose/moose.py index f9067e1..7acbaf4 100644 --- a/moose/moose.py +++ b/moose/moose.py @@ -45,6 +45,7 @@ def write(self, filename): file = open(filename,'w') # first the mesh block if self.mesh: file.write(indent(self.mesh.__str__())) + if self.problem: file.write(indent(self.problem.__str__())) if self.global_params: file.write(indent(self.global_params.__str__())) if self.variables: file.write(indent(self.variables.__str__())) if self.aux_variables: file.write(indent(self.aux_variables.__str__())) diff --git a/moose/variables.py b/moose/variables.py index bd7ccfc..68090a8 100644 --- a/moose/variables.py +++ b/moose/variables.py @@ -28,32 +28,37 @@ class Family(IntEnum): SIDE_HIERARCHIC = auto() class Variable(): - def __init__(self, name = "", order = 1, family = 1, block = ""): + def __init__(self, name="", order=None, family=None, block="", initial_condition=""): self.name = name - self.order = Order(order) - self.family = Family(family) + self.order = Order(order) if order is not None else None + self.family = Family(family) if family is not None else None self.block = block + self.initial_condition = initial_condition def __str__(self): string = f'[{self.name}]\n' - string += f'order = {self.order.name}\n' - string += f'family = {self.family.name}\n' + if self.order: + string += f'order = {self.order.name}\n' + if self.family: + string += f'family = {self.family.name}\n' + if self.initial_condition: + string += f'initial_condition = "{self.initial_condition}"\n' if self.block: string += f'block = "{self.block}"\n' - string += f'[]\n' + string += '[]\n' return string - + class AuxVariable(Variable): - def __init__(self, name = "", order = 1, family = 1, block = ""): - super().__init__(name,order,family,block) + def __init__(self, name="", order=None, family=None, block="", initial_condition=""): + super().__init__(name, order, family, block, initial_condition) class Variables(): def __init__(self): self.name = "Variables" self.variables = {} - def add_variable(self, name, order, family, block): - variable = Variable(name=name,order=order,family=family,block=block) + def add_variable(self, name, order=None, family=None, block="", initial_condition=""): + variable = Variable(name=name, order=order, family=family, block=block, initial_condition=initial_condition) if variable.name in self.variables.keys(): print("variable name already in use")