diff --git a/_unittest/test_11_Setup.py b/_unittest/test_11_Setup.py index ba896221c8a..2232cd0a92e 100644 --- a/_unittest/test_11_Setup.py +++ b/_unittest/test_11_Setup.py @@ -67,3 +67,11 @@ def test_03_non_valid_setup(self): assert not setup1.enable_adaptive_setup_broadband(1, 2.5, 10, 0.01) assert not setup1.enable_adaptive_setup_single(3.5) self.aedtapp.solution_type = sol + + def test_04_delete_setup(self): + self.aedtapp.duplicate_design("delete_setups") + setup1 = self.aedtapp.create_setup("My_HFSS_Setup2", self.aedtapp.SETUPS.HFSSDrivenAuto) + assert len(self.aedtapp.setups) == 1 + assert setup1.delete() + assert len(self.aedtapp.setups) == 0 + assert not self.aedtapp.get_setups() diff --git a/_unittest/test_20_HFSS.py b/_unittest/test_20_HFSS.py index 157af649457..b7e5f95254d 100644 --- a/_unittest/test_20_HFSS.py +++ b/_unittest/test_20_HFSS.py @@ -597,6 +597,7 @@ def test_25_create_parametrics(self): ) oo = self.aedtapp.get_oo_object(self.aedtapp.odesign, r"Optimetrics\ParametricsfromFile") assert oo + assert self.aedtapp.parametrics.delete("ParametricsfromFile") def test_26_create_optimization(self): calculation = "db(S(Cir1,Cir1))" @@ -626,6 +627,7 @@ def test_26_create_optimization(self): if "NAME:Ranges" in el: break assert "rd" in el[2] + assert self.aedtapp.optimizations.delete(setup2.name) def test_27_create_doe(self): setup2 = self.aedtapp.optimizations.add("db(S(1,1))", ranges={"Freq": "2.5GHz"}, optim_type="DXDOE") @@ -633,6 +635,7 @@ def test_27_create_doe(self): assert setup2 assert setup2.add_goal(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"}) assert setup2.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.5GHz"}) + assert setup2.delete() def test_28A_create_dx(self): setup2 = self.aedtapp.optimizations.add(None, {"w1": "1mm", "w2": "2mm"}, optim_type="optiSLang") diff --git a/pyaedt/modules/DesignXPloration.py b/pyaedt/modules/DesignXPloration.py index 32b1a008177..b806da8ceb0 100644 --- a/pyaedt/modules/DesignXPloration.py +++ b/pyaedt/modules/DesignXPloration.py @@ -479,6 +479,25 @@ class SetupOpti(CommonOptimetrics, object): def __init__(self, app, name, dictinputs=None, optim_type="OptiDesignExplorer"): CommonOptimetrics.__init__(self, app, name, dictinputs=dictinputs, optimtype=optim_type) + @pyaedt_function_handler() + def delete(self): + """Delete a defined Optimetrics Setup. + + Parameters + ---------- + setup_name : str + Name of optimetrics setup to delete. + + Returns + ------- + bool + `True` if setup is deleted. `False` if it failed. + """ + + self.omodule.DeleteSetups([self.name]) + self._app.optimizations.setups.remove(self) + return True + @pyaedt_function_handler() def add_calculation( self, @@ -701,6 +720,25 @@ def __init__(self, p_app, name, dictinputs=None, optim_type="OptiParametric"): CommonOptimetrics.__init__(self, p_app, name, dictinputs=dictinputs, optimtype=optim_type) pass + @pyaedt_function_handler() + def delete(self): + """Delete a defined Optimetrics Setup. + + Parameters + ---------- + setup_name : str + Name of optimetrics setup to delete. + + Returns + ------- + bool + `True` if setup is deleted. `False` if it failed. + """ + + self.omodule.DeleteSetups([self.name]) + self._app.parametrics.setups.remove(self) + return True + @pyaedt_function_handler() def add_variation(self, sweep_var, start_point, end_point, step=100, unit=None, variation_type="LinearCount"): """Add a variation to an existing parametric setup. @@ -929,6 +967,26 @@ def add( self.setups.append(setup) return setup + @pyaedt_function_handler() + def delete(self, setup_name): + """Delete a defined Parametric Setup. + + Parameters + ---------- + setup_name : str + Name of parametric setup to delete. + + Returns + ------- + bool + `True` if setup is deleted. `False` if it failed. + """ + for el in self.setups: + if el.name == setup_name: + el.delete() + return True + return False + @pyaedt_function_handler() def add_from_file(self, filename, parametricname=None): """Add a Parametric Setup from a csv file. @@ -964,22 +1022,6 @@ class OptimizationSetups(object): >>> optimization_setup = app.optimizations """ - @property - def p_app(self): - """Parent.""" - return self._app - - @property - def optimodule(self): - """Optimetrics module. - - Returns - ------- - :class:`Optimetrics` - - """ - return self._app.ooptimetrics - def __init__(self, p_app): self._app = p_app self.setups = [] @@ -999,6 +1041,42 @@ def __init__(self, p_app): except: pass + @property + def p_app(self): + """Parent.""" + return self._app + + @property + def optimodule(self): + """Optimetrics module. + + Returns + ------- + :class:`Optimetrics` + + """ + return self._app.ooptimetrics + + @pyaedt_function_handler() + def delete(self, setup_name): + """Delete a defined Optimetrics Setup. + + Parameters + ---------- + setup_name : str + Name of optimetrics setup to delete. + + Returns + ------- + bool + `True` if setup is deleted. `False` if it failed. + """ + for el in self.setups: + if el.name == setup_name: + el.delete() + return True + return False + @pyaedt_function_handler() def add( self, diff --git a/pyaedt/modules/SolveSetup.py b/pyaedt/modules/SolveSetup.py index 069fd2f7518..626267e3a5f 100644 --- a/pyaedt/modules/SolveSetup.py +++ b/pyaedt/modules/SolveSetup.py @@ -157,6 +157,20 @@ def update(self, update_dictionary=None): self.omodule.EditSetup(self.name, arg) return True + @pyaedt_function_handler() + def delete(self): + """Delete actual Setup. + + Returns + ------- + bool + `True` if setup is deleted. `False` if it failed. + """ + + self.omodule.DeleteSetups([self.name]) + self._app.setups.remove(self) + return True + @pyaedt_function_handler() def _expression_cache( self,