Skip to content

Commit 6304817

Browse files
authored
Refactored DesignXPloration.py classes to support vaiables customization (#1003)
* Release new version with examples update * Refactored DesignXPloration.py classes to support vaiables customization * Refactored DesignXPloration.py classes to support vaiables customization * Refactored DesignXPloration.py classes to support vaiables customization * renamed set_variable to add_variation to be coherent with Parametrics Co-authored-by: maxcapodi78 <Shark78>
1 parent 0ce89d7 commit 6304817

File tree

5 files changed

+160
-54
lines changed

5 files changed

+160
-54
lines changed

_unittest/test_20_HFSS.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ def test_24_create_curvilinear(self):
568568
def test_25_create_parametrics(self):
569569
self.aedtapp["w1"] = "10mm"
570570
self.aedtapp["w2"] = "2mm"
571-
setup1 = self.aedtapp.parametrics.add({"w1": "LIN 0.1mm 20mm 0.2mm"})
571+
setup1 = self.aedtapp.parametrics.add("w1", 0.1, 20, 0.2, "LinearStep")
572572
assert setup1
573573
assert setup1.add_variation("w2", "0.1mm", 10, 11)
574574
assert setup1.add_calculation(
@@ -619,27 +619,33 @@ def test_26_create_optimization(self):
619619

620620
def test_27_create_doe(self):
621621
setup2 = self.aedtapp.optimizations.add("db(S(1,1))", ranges={"Freq": "2.5GHz"}, optim_type="DXDOE")
622+
assert setup2.add_variation("w1", 0.1, 10, 51)
622623
assert setup2
623624
assert setup2.add_goal(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
624625
assert setup2.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.5GHz"})
625626

626627
def test_28A_create_dx(self):
627628
setup2 = self.aedtapp.optimizations.add(None, {"w1": "1mm", "w2": "2mm"}, optim_type="optiSLang")
629+
assert setup2.add_variation("w1", 0.1, 10, 51)
630+
assert not setup2.add_variation("w3", 0.1, 10, 51)
628631
assert setup2
629632
assert setup2.add_goal(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
630633

631634
def test_28B_create_dx(self):
632635
setup2 = self.aedtapp.optimizations.add(None, {"w1": "1mm", "w2": "2mm"}, optim_type="DesignExplorer")
636+
assert setup2.add_variation("w1", 0.1, 10, 51)
633637
assert setup2
634638
assert setup2.add_goal(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
635639

636640
def test_29_create_sensitivity(self):
637641
setup2 = self.aedtapp.optimizations.add("db(S(1,1))", ranges={"Freq": "2.5GHz"}, optim_type="Sensitivity")
642+
assert setup2.add_variation("w1", 0.1, 10, 51)
638643
assert setup2
639644
assert setup2.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
640645

641646
def test_29_create_statistical(self):
642647
setup2 = self.aedtapp.optimizations.add("db(S(1,1))", ranges={"Freq": "2.5GHz"}, optim_type="Statistical")
648+
assert setup2.add_variation("w1", 0.1, 10, 0.1, "LinearStep")
643649
assert setup2
644650
assert setup2.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
645651

examples/01-Modeling-Setup/Optimetrics.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6363
# This example creates a simple parametrics analysis with output calculations.
6464

65-
sweep = hfss.parametrics.add({"w2": "LIN 90mm 200mm 5mm"})
65+
sweep = hfss.parametrics.add("w2", 90, 200, 5)
6666
sweep.add_variation("w1", 0.1, 2, 10)
6767
sweep.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.5GHz"})
6868
sweep.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
@@ -75,6 +75,7 @@
7575
# This example creates a sensitivity analysis with output calculations.
7676

7777
sweep2 = hfss.optimizations.add(calculation="dB(S(1,1))", ranges={"Freq": "2.5GHz"}, optim_type="Sensitivity")
78+
sweep2.add_variation("w1", 0.1, 3, 0.5)
7879
sweep2.add_calculation(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
7980

8081
###############################################################################
@@ -85,6 +86,7 @@
8586
# This example creates an optimization based on goals and calculations.
8687

8788
sweep3 = hfss.optimizations.add(calculation="dB(S(1,1))", ranges={"Freq": "2.5GHz"})
89+
8890
sweep3.add_goal(calculation="dB(S(1,1))", ranges={"Freq": "2.6GHz"})
8991
sweep3.add_goal(calculation="dB(S(1,1))", ranges={"Freq": ("2.6GHz", "5GHz")})
9092
sweep3.add_goal(

examples/02-Maxwell/Maxwell3DTeam3.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
################################################################################
110110
# Add a linear parametric sweep for the two coil positions
111111
sweepname = "CoilSweep"
112-
param = M3D.parametrics.add({"Coil_Position": "LIN -20mm 0mm 20mm"}, parametricname=sweepname)
112+
param = M3D.parametrics.add("Coil_Position", -20, 0, 20, "LinearStep", parametricname=sweepname)
113113
param.props["ProdOptiSetupDataV2"]["SaveFields"] = True
114114
param.props["ProdOptiSetupDataV2"]["CopyMesh"] = False
115115
param.props["ProdOptiSetupDataV2"]["SolveWithCopiedMeshOnly"] = True

pyaedt/hfss.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4282,7 +4282,9 @@ def _create_sbr_doppler_sweep(self, setupname, time_var, tstart, tstop, tsweep,
42824282
time_sweep = self.modeler._arg_with_dim(tsweep, "s")
42834283
time_stop = self.modeler._arg_with_dim(tstop, "s")
42844284
sweep_range = "LIN {} {} {}".format(time_start, time_stop, time_sweep)
4285-
return self.parametrics.add({time_var: sweep_range}, setupname, parametricname=parametric_name)
4285+
return self.parametrics.add(
4286+
time_var, tstart, time_stop, tsweep, "LinearStep", setupname, parametricname=parametric_name
4287+
)
42864288

42874289
@pyaedt_function_handler()
42884290
def create_sbr_chirp_i_doppler_setup(

0 commit comments

Comments
 (0)