Skip to content

Commit

Permalink
Merge branch 'main' into feat/issue_5806
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuelopez-ansys authored Feb 21, 2025
2 parents 08a45fc + 9f5d8a8 commit 3da706a
Show file tree
Hide file tree
Showing 20 changed files with 418 additions and 300 deletions.
498 changes: 299 additions & 199 deletions src/ansys/aedt/core/application/analysis.py

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/ansys/aedt/core/application/design.py
Original file line number Diff line number Diff line change
Expand Up @@ -1551,7 +1551,8 @@ def export_profile(self, setup, variation="", output_file=None):
output_file = os.path.join(self.working_directory, generate_unique_name("Profile") + ".prof")
if not variation:
val_str = []
for el, val in self.available_variations.nominal_w_values_dict.items():
nominal_variation = self.available_variations.get_independent_nominal_values()
for el, val in nominal_variation.items():
val_str.append(f"{el}={val}")
if self.design_type == "HFSS 3D Layout Design":
variation = " ".join(val_str)
Expand Down
20 changes: 7 additions & 13 deletions src/ansys/aedt/core/hfss.py
Original file line number Diff line number Diff line change
Expand Up @@ -1720,7 +1720,8 @@ def create_sbr_linked_antenna(
if not setup:
setup = assignment.nominal_adaptive
params = {}
pars = assignment.available_variations.nominal_w_values_dict
pars = assignment.available_variations.get_independent_nominal_values()

for el in pars:
params[el] = pars[el]
native_props = dict(
Expand Down Expand Up @@ -5851,7 +5852,7 @@ def get_antenna_data(
from ansys.aedt.core.visualization.post.farfield_exporter import FfdSolutionDataExporter

if not variations:
variations = self.available_variations.nominal_w_values_dict_w_dependent
variations = self.available_variations.get_independent_nominal_values()
if not setup:
setup = self.nominal_adaptive

Expand Down Expand Up @@ -5970,7 +5971,7 @@ def get_rcs_data(
from ansys.aedt.core.visualization.post.rcs_exporter import MonostaticRCSExporter

if not variations:
variations = self.available_variations.nominal_w_values_dict_w_dependent
variations = self.available_variations.get_independent_nominal_values()
if not setup:
setup = self.nominal_adaptive

Expand Down Expand Up @@ -7031,12 +7032,8 @@ def export_element_pattern(
>>> oModule.ExportElementPatternToFile
"""
self.logger.info("Exporting embedded element patterns...")
var = []
if variations:
for k, v in variations.items():
var.append(f"{k}='{v}'")
variation = " ".join(var)

variation = self.available_variations.variation_string(variations)
command = [
"ExportFileName:=",
os.path.join(output_dir, element_name + ".ffd"),
Expand Down Expand Up @@ -7109,11 +7106,8 @@ def export_antenna_metadata(
>>> oModule.ExportMetadata
"""
self.logger.info("Exporting antenna metadata...")
var = []
if variations:
for k, v in variations.items():
var.append(f"{k}='{v}'")
variation = " ".join(var)

variation = self.available_variations.variation_string(variations)

command = [
"SolutionName:=",
Expand Down
10 changes: 5 additions & 5 deletions src/ansys/aedt/core/icepak.py
Original file line number Diff line number Diff line change
Expand Up @@ -1796,8 +1796,9 @@ def assign_em_losses(
intr = []

argparam = {}
for el in self.available_variations.nominal_w_values_dict:
argparam[el] = self.available_variations.nominal_w_values_dict[el]
nominal_variation = self.available_variations.get_independent_nominal_values()
for key, value in nominal_variation.items():
argparam[key] = value

if parameters and isinstance(parameters, list):
for el in parameters:
Expand All @@ -1816,11 +1817,10 @@ def assign_em_losses(
"ForceSourceToSolve": True,
"PreservePartnerSoln": True,
"PathRelativeTo": "TargetProject",
"Intrinsics": intr,
"SurfaceOnly": surfaces,
}

props["Intrinsics"] = intr
props["SurfaceOnly"] = surfaces

name = generate_unique_name("EMLoss")
bound = self._create_boundary(name, props, "EMLoss")
return bound
Expand Down
13 changes: 9 additions & 4 deletions src/ansys/aedt/core/mechanical.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,8 +247,11 @@ def assign_em_losses(
intr = []

argparam = {}
for el in self.available_variations.nominal_w_values_dict:
argparam[el] = self.available_variations.nominal_w_values_dict[el]

variations = self.available_variations.get_independent_nominal_values()

for key, value in variations.items():
argparam[key] = value

for el in parameters:
argparam[el] = el
Expand Down Expand Up @@ -339,8 +342,10 @@ def assign_thermal_map(
else:
all_objects = assignment[:]
argparam = {}
for el in self.available_variations.nominal_w_values_dict:
argparam[el] = self.available_variations.nominal_w_values_dict[el]

variations = self.available_variations.get_independent_nominal_values()
for key, value in variations.items():
argparam[key] = value

for el in parameters:
argparam[el] = el
Expand Down
29 changes: 17 additions & 12 deletions src/ansys/aedt/core/modules/solve_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ def get_solution_data(
>>> aedtapp = Hfss()
>>> aedtapp.post.create_report("dB(S(1,1))")
>>> variations = aedtapp.available_variations.nominal_w_values_dict
>>> variations = aedtapp.available_variations.nominal_values
>>> variations["Theta"] = ["All"]
>>> variations["Phi"] = ["All"]
>>> variations["Freq"] = ["30GHz"]
Expand Down Expand Up @@ -520,7 +520,7 @@ def create_report(
>>> aedtapp = Circuit()
>>> aedtapp.post.create_report("dB(S(1,1))")
>>> variations = aedtapp.available_variations.nominal_w_values_dict
>>> variations = aedtapp.available_variations.nominal_values
>>> aedtapp.post.setups[0].create_report("dB(S(1,1))",variations=variations,primary_sweep_variable="Freq")
>>> aedtapp.post.create_report("S(1,1)",variations=variations,plot_type="Smith Chart")
Expand Down Expand Up @@ -876,7 +876,7 @@ def add_mesh_link(
If ``None``, the default value is taken from the nominal adaptive solution.
parameters : dict, optional
Dictionary of the "mapping" variables from the source design.
If ``None``, the default is `appname.available_variations.nominal_w_values_dict`.
If ``None``, the default is `appname.available_variations.nominal_values`.
project : str, optional
Name of the project with the design. The default is ``"This Project*"``.
However, you can supply the full path and name to another project.
Expand Down Expand Up @@ -949,16 +949,20 @@ def add_mesh_link(
raise ValueError("Setup does not exist in current design.")
# parameters
meshlinks["Params"] = {}

nominal_values = self.p_app.available_variations.get_independent_nominal_values()

if parameters is None:
parameters = self.p_app.available_variations.nominal_w_values_dict
parameters = nominal_values
for el in parameters:
meshlinks["Params"][el] = el
else:
for el in parameters:
if el in list(self._app.available_variations.nominal_w_values_dict.keys()):
if el in list(nominal_values.keys()):
meshlinks["Params"][el] = el
else:
meshlinks["Params"][el] = parameters[el]

meshlinks["ForceSourceToSolve"] = force_source_to_solve
meshlinks["PreservePartnerSoln"] = preserve_partner_solution
meshlinks["ApplyMeshOp"] = apply_mesh_operations
Expand All @@ -974,17 +978,18 @@ def add_mesh_link(
def _parse_link_parameters(self, map_variables_by_name, parameters):
# parameters
params = {}
nominal_values = self.p_app.available_variations.get_independent_nominal_values()
if map_variables_by_name:
parameters = self.p_app.available_variations.nominal_w_values_dict
parameters = nominal_values
for k, v in parameters.items():
params[k] = k
elif parameters is None:
parameters = self.p_app.available_variations.nominal_w_values_dict
parameters = nominal_values
for k, v in parameters.items():
params[k] = v
else:
for k, v in parameters.items():
if k in list(self._app.available_variations.nominal_w_values_dict.keys()):
if k in list(nominal_values.keys()):
params[k] = v
else:
params[k] = parameters[v]
Expand Down Expand Up @@ -1047,7 +1052,7 @@ def start_continue_from_previous_setup(
parameters : dict, optional
Dictionary of the parameters. This parameter is not considered if
``map_variables_by_name=True``. If ``None``, the default is
``appname.available_variations.nominal_w_values_dict``.
``appname.available_variations.nominal_values``.
project : str, optional
Name of the project with the design. The default is ``"This Project*"``.
However, you can supply the full path and name to another project.
Expand Down Expand Up @@ -2866,7 +2871,7 @@ def create_single_point_sweep(
sweepdata.props["SMatrixOnlySolveMode"] = "Auto"
if add_subranges:
for f, s in zip(freq, save_single_field):
sweepdata.add_subrange(rangetype="SinglePoints", start=f, unit=unit, save_single_fields=s)
sweepdata.add_subrange(range_type="SinglePoints", start=f, unit=unit, save_single_fields=s)
sweepdata.update()
self._app.logger.info(f"Single point sweep {name} has been correctly created")
return sweepdata
Expand Down Expand Up @@ -4228,7 +4233,7 @@ def create_single_point_sweep(
sweepdata.props["SMatrixOnlySolveMode"] = "Auto"
if add_subranges:
for f, s in zip(freq, save_single_field):
sweepdata.add_subrange(rangetype="SinglePoints", start=f, unit=unit, save_single_fields=s)
sweepdata.add_subrange(range_type="SinglePoints", start=f, unit=unit, save_single_fields=s)
sweepdata.update()
self._app.logger.info(f"Single point sweep {name} has been correctly created")
return sweepdata
Expand Down Expand Up @@ -4434,7 +4439,7 @@ def start_continue_from_previous_setup(
parameters : dict, optional
Dictionary of the parameters. This argument is not considered if
``map_variables_by_name=True``. If ``None``, the default is
``appname.available_variations.nominal_w_values_dict``.
``appname.available_variations.nominal_values``.
project : str, optional
Name of the project with the design. The default is ``"This Project*"``.
However, you can supply the full path and name to another project.
Expand Down
21 changes: 9 additions & 12 deletions src/ansys/aedt/core/q3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -566,15 +566,13 @@ def export_matrix_data(
return False

if variations is None:
if not self.available_variations.nominal_w_values_dict:
nominal_values = self.available_variations.get_independent_nominal_values()
if not nominal_values:
variations = ""
else:
variations_list = []
for x in range(0, len(self.available_variations.nominal_w_values_dict)):
variation = (
f"{list(self.available_variations.nominal_w_values_dict.keys())[x]}="
f"'{list(self.available_variations.nominal_w_values_dict.values())[x]}'"
)
for x in range(0, len(nominal_values)):
variation = f"{list(nominal_values.keys())[x]}=" f"'{list(nominal_values.values())[x]}'"
variations_list.append(variation)
variations = ",".join(variations_list)

Expand Down Expand Up @@ -958,15 +956,14 @@ def export_equivalent_circuit(
analysis_setup = setup + " : " + sweep.replace(" ", "")

if variations is None:
if not self.available_variations.nominal_w_values_dict:
nominal_values = self.available_variations.get_independent_nominal_values()

if not nominal_values:
variations = ""
else:
variations_list = []
for x in range(0, len(self.available_variations.nominal_w_values_dict)):
variation = (
f"{list(self.available_variations.nominal_w_values_dict.keys())[x]}="
f"'{list(self.available_variations.nominal_w_values_dict.values())[x]}'"
)
for x in range(0, len(nominal_values)):
variation = f"{list(nominal_values.keys())[x]}=" f"'{list(nominal_values.values())[x]}'"
variations_list.append(variation)
variations = ",".join(variations_list)
else:
Expand Down
4 changes: 3 additions & 1 deletion src/ansys/aedt/core/twinbuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,9 @@ def add_q3d_dynamic_component(
raise ValueError("Invalid matrix name.")
if not component_name:
component_name = generate_unique_name("SimpQ3DData")
var = app.available_variations.nominal_w_values_dict

var = app.available_variations.get_independent_nominal_values()

props = ["NAME:Properties"]
for k, v in var.items():
props.append("paramProp:=")
Expand Down
14 changes: 7 additions & 7 deletions src/ansys/aedt/core/visualization/post/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ def _get_report_inputs(
else:
families_input[primary_sweep_variable] = [variations[primary_sweep_variable]]
if not variations:
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()
for el in list(variations.keys()):
if el == primary_sweep_variable:
continue
Expand Down Expand Up @@ -1188,7 +1188,7 @@ def create_report(
>>> from ansys.aedt.core import Hfss
>>> hfss = Hfss()
>>> hfss.post.create_report("dB(S(1,1))")
>>> variations = hfss.available_variations.nominal_w_values_dict
>>> variations = hfss.available_variations.nominal_values
>>> variations["Theta"] = ["All"]
>>> variations["Phi"] = ["All"]
>>> variations["Freq"] = ["30GHz"]
Expand Down Expand Up @@ -1267,13 +1267,13 @@ def create_report(
report.expressions = expressions
report.domain = domain
if not variations and domain == "Sweep":
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()
if variations:
variations["Freq"] = "All"
else:
variations = {"Freq": ["All"]}
elif not variations and domain != "Sweep":
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()
report.variations = variations
if primary_sweep_variable:
report.primary_sweep = primary_sweep_variable
Expand Down Expand Up @@ -1430,7 +1430,7 @@ def get_solution_data(
>>> from ansys.aedt.core import Hfss
>>> hfss = Hfss()
>>> hfss.post.create_report("dB(S(1,1))")
>>> variations = hfss.available_variations.nominal_w_values_dict
>>> variations = hfss.available_variations.nominal_values
>>> variations["Theta"] = ["All"]
>>> variations["Phi"] = ["All"]
>>> variations["Freq"] = ["30GHz"]
Expand Down Expand Up @@ -1519,13 +1519,13 @@ def get_solution_data(
if primary_sweep_variable:
report.primary_sweep = primary_sweep_variable
if not variations and domain == "Sweep":
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()
if variations:
variations["Freq"] = "All"
else:
variations = {"Freq": ["All"]}
elif not variations and domain != "Sweep":
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()
report.variations = variations
report.sub_design_id = subdesign_id
report.point_number = polyline_points
Expand Down
7 changes: 2 additions & 5 deletions src/ansys/aedt/core/visualization/post/farfield_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def __init__(
self.setup_name = setup_name

if not variations:
variations = app.available_variations.nominal_w_values_dict_w_dependent
variations = app.available_variations.get_independent_nominal_values()
else:
# Set variation to Nominal
for var_name, var_value in variations.items():
Expand Down Expand Up @@ -236,11 +236,8 @@ def export_farfield(self):
self.__model_info["lattice_vector"] = component_array.lattice_vector()

# Create PyAEDT Metadata
var = []
if self.variations:
for k, v in self.variations.items():
var.append(f"{k}='{v}'")
variation = " ".join(var)
variation = self.__app.available_variations.variation_string(self.variations)
else:
variation = self.__app.odesign.GetNominalVariation()

Expand Down
8 changes: 4 additions & 4 deletions src/ansys/aedt/core/visualization/post/post_common_3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ def get_scalar_field_value(
self.ofieldsreporter.CalcOp(scalar_function)

if not variations:
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()

variation = []
for el, value in variations.items():
Expand Down Expand Up @@ -621,7 +621,7 @@ def export_field_file_on_grid(
--------
>>> from ansys.aedt.core import Hfss
>>> hfss = Hfss()
>>> var = hfss.available_variations.nominal_w_values
>>> var = hfss.available_variations.nominal_values
>>> setup = "Setup1 : LastAdaptive"
>>> path = "Field.fld"
>>> hfss.post.export_field_file_on_grid("E",setup,var,path,'Cartesian',[0, 0, 0],intrinsics="8GHz")
Expand Down Expand Up @@ -676,7 +676,7 @@ def export_field_file_on_grid(
return False

if not variations:
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()

variation = []
for el, value in variations.items():
Expand Down Expand Up @@ -844,7 +844,7 @@ def export_field_file(
self.ofieldsreporter.CopyNamedExprToStack(quantity)

if not variations:
variations = self._app.available_variations.nominal_w_values_dict
variations = self._app.available_variations.get_independent_nominal_values()

variation = []
for el, value in variations.items():
Expand Down
Loading

0 comments on commit 3da706a

Please sign in to comment.