Skip to content

Added delete methods to parametrics, optimizations and setup classes. #1171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions _unittest/test_11_Setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
3 changes: 3 additions & 0 deletions _unittest/test_20_HFSS.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))"
Expand Down Expand Up @@ -626,13 +627,15 @@ 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")
assert setup2.add_variation("w1", 0.1, 10, 51)
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")
Expand Down
110 changes: 94 additions & 16 deletions pyaedt/modules/DesignXPloration.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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 = []
Expand All @@ -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,
Expand Down
14 changes: 14 additions & 0 deletions pyaedt/modules/SolveSetup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down