diff --git a/machine_design/designs/computation.py b/machine_design/designs/computation.py index 950ef8a..179f643 100644 --- a/machine_design/designs/computation.py +++ b/machine_design/designs/computation.py @@ -10,6 +10,7 @@ class ComputationBase(ABC): def __init__(self, geometry: GeometryBase) -> None: self.geometry = geometry self.setup_name = "Setup1" + self.rotor_mesh = None self.set_oper_params() self.set_solution_expressions() self.set_output_vars() @@ -88,7 +89,7 @@ def compute(self, m2d: Maxwell2d, rotor_id, *args, NUM_CORES: int = 1): assert m2d.mesh is not None assert m2d.post is not None - m2d.mesh.assign_length_mesh( + self.rotor_mesh = m2d.mesh.assign_length_mesh( assignment=rotor_id, inside_selection=True, maximum_length=3, @@ -113,3 +114,8 @@ def compute(self, m2d: Maxwell2d, rotor_id, *args, NUM_CORES: int = 1): m2d.odesign.DeleteFullVariation("All", False) return result + + def delete_rotor_mesh(self) -> None: + if self.rotor_mesh is not None: + self.rotor_mesh.delete() + self.rotor_mesh = None diff --git a/machine_design/designs/design.py b/machine_design/designs/design.py index 3ec1bff..a16b5c4 100644 --- a/machine_design/designs/design.py +++ b/machine_design/designs/design.py @@ -41,6 +41,7 @@ def add_rotor_barrier(self, barrier_points, segment_type=None) -> None: self.geometry.add_rotor_barrier(self.m2d, barrier_points, segment_type) def delete_rotor(self) -> None: + self.computation.delete_rotor_mesh() self.geometry.delete_rotor(self.m2d) def compute(self, *args, NUM_CORES: int = 1):