Skip to content

Commit 5d1af23

Browse files
maxcapodi78maxcapodi78
authored andcommitted
when get_solution_data method is used the user can pass a list of variations with values or a dict. There was an issue when list was passed that is now fixed
1 parent 3e31200 commit 5d1af23

File tree

1 file changed

+35
-82
lines changed

1 file changed

+35
-82
lines changed

pyaedt/modules/PostProcessor.py

Lines changed: 35 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -611,12 +611,11 @@ def _init_solutions_data(self):
611611
self.solutions_data_imag = self._solution_data_imag()
612612
self.solutions_data_mag = {}
613613
self.units_data = {}
614-
for expression in self.expressions:
615-
if len(self._original_data) > 1:
616-
for data in self._original_data:
617-
for v in data.GetDesignVariableNames():
618-
if v not in self._sweeps_names:
619-
self._sweeps_names.append(v)
614+
if len(self._original_data) > 1:
615+
for data in self._original_data:
616+
for v in data.GetDesignVariableNames():
617+
if v not in self._sweeps_names:
618+
self._sweeps_names.append(v)
620619
for expr in self.expressions:
621620
self.solutions_data_mag[expr] = {}
622621
self.units_data[expr] = self.nominal_variation.GetDataUnits(expr)
@@ -664,39 +663,6 @@ def _quantity(self, unit):
664663
@pyaedt_function_handler()
665664
def _solution_data_real(self):
666665
""" """
667-
# sols_data = {}
668-
# for expression in self.expressions:
669-
# combinations = []
670-
# if len(self._original_data) == 1:
671-
# solution = list(self.nominal_variation.GetRealDataValues(expression, False))
672-
# else:
673-
# solution = []
674-
# for data in self._original_data:
675-
# for v in data.GetDesignVariableNames():
676-
# if v not in self._sweeps_names:
677-
# self._sweeps[v] = []
678-
# self._sweeps_names.append(v)
679-
# self.nominal_sweeps[v] = data.GetDesignVariableValue(v)
680-
# self.units_sweeps[v] = data.GetDesignVariableUnits(v)
681-
# comb = []
682-
# for v in reversed(data.GetDesignVariableNames()):
683-
# if data.GetDesignVariableValue(v) not in self._sweeps[v]:
684-
# self._sweeps[v].append(data.GetDesignVariableValue(v))
685-
# comb.append(data.GetDesignVariableValue(v))
686-
# combinations.append(comb)
687-
# solution.extend(list(data.GetRealDataValues(expression, False)))
688-
# values = []
689-
# for el in reversed(self._sweeps_names):
690-
# values.append(self.sweeps[el])
691-
#
692-
# solution_Data = {}
693-
# i = 0
694-
# for t in itertools.product(*values):
695-
# if not combinations or (combinations and list(t[: len(combinations[0])]) in combinations):
696-
# solution_Data[t] = solution[i]
697-
# i += 1
698-
# sols_data[expression] = solution_Data
699-
# return sols_data
700666
sols_data = {}
701667
for expression in self.expressions:
702668
combinations = []
@@ -753,13 +719,12 @@ def _solution_data_imag(self):
753719
solution.extend(list(data.GetImagDataValues(expression, False)))
754720
else:
755721
solution = None
756-
for data in self._original_data:
757-
comb = []
758-
for v in reversed(data.GetDesignVariableNames()):
759-
if data.GetDesignVariableValue(v) not in self._sweeps[v]:
760-
self._sweeps[v].append(data.GetDesignVariableValue(v))
761-
comb.append(data.GetDesignVariableValue(v))
762-
combinations.append(comb)
722+
if len(self._original_data) > 1:
723+
for data in self._original_data:
724+
comb = []
725+
for v in reversed(data.GetDesignVariableNames()):
726+
comb.append(data.GetDesignVariableValue(v))
727+
combinations.append(comb)
763728
values = []
764729
for el in reversed(self._sweeps_names):
765730
values.append(self.sweeps[el])
@@ -847,19 +812,15 @@ def data_magnitude(self, expression=None, convert_to_SI=False):
847812
for it in self.nominal_sweeps:
848813
temp.append(self.nominal_sweeps[it])
849814
temp = list(reversed(temp))
850-
try:
851-
solution_Data = self.solutions_data_mag[expression]
852-
sol = []
853-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
854-
for el in self.sweeps[self.primary_sweep]:
855-
temp[position] = el
815+
solution_Data = self.solutions_data_mag[expression]
816+
sol = []
817+
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
818+
for el in self.sweeps[self.primary_sweep]:
819+
temp[position] = el
820+
try:
856821
sol.append(solution_Data[tuple(temp)])
857-
except:
858-
sol = []
859-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
860-
for el in self.sweeps[self.primary_sweep]:
861-
temp[position] = el
862-
sol.append(0)
822+
except KeyError:
823+
sol.append(1e-15)
863824
if convert_to_SI and self._quantity(self.units_data[expression]):
864825
sol = self._convert_list_to_SI(
865826
sol, self._quantity(self.units_data[expression]), self.units_data[expression]
@@ -1012,19 +973,15 @@ def data_real(self, expression=None, convert_to_SI=False):
1012973
for it in self.nominal_sweeps:
1013974
temp.append(self.nominal_sweeps[it])
1014975
temp = list(reversed(temp))
1015-
try:
1016-
solution_Data = self.solutions_data_real[expression]
1017-
sol = []
1018-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
1019-
for el in self.sweeps[self.primary_sweep]:
1020-
temp[position] = el
976+
solution_Data = self.solutions_data_real[expression]
977+
sol = []
978+
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
979+
for el in self.sweeps[self.primary_sweep]:
980+
temp[position] = el
981+
try:
1021982
sol.append(solution_Data[tuple(temp)])
1022-
except:
1023-
sol = []
1024-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
1025-
for el in self.sweeps[self.primary_sweep]:
1026-
temp[position] = el
1027-
sol.append(0)
983+
except KeyError:
984+
sol.append(1e-15)
1028985
if convert_to_SI and self._quantity(self.units_data[expression]):
1029986
sol = self._convert_list_to_SI(
1030987
sol, self._quantity(self.units_data[expression]), self.units_data[expression]
@@ -1055,19 +1012,15 @@ def data_imag(self, expression=None, convert_to_SI=False):
10551012
for it in self.nominal_sweeps:
10561013
temp.append(self.nominal_sweeps[it])
10571014
temp = list(reversed(temp))
1058-
try:
1059-
solution_Data = self.solutions_data_imag[expression]
1060-
sol = []
1061-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
1062-
for el in self.sweeps[self.primary_sweep]:
1063-
temp[position] = el
1015+
solution_Data = self.solutions_data_imag[expression]
1016+
sol = []
1017+
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
1018+
for el in self.sweeps[self.primary_sweep]:
1019+
temp[position] = el
1020+
try:
10641021
sol.append(solution_Data[tuple(temp)])
1065-
except:
1066-
sol = []
1067-
position = list(reversed(self._sweeps_names)).index(self.primary_sweep)
1068-
for el in self.sweeps[self.primary_sweep]:
1069-
temp[position] = el
1070-
sol.append(0)
1022+
except KeyError:
1023+
sol.append(1e-15)
10711024
if convert_to_SI and self._quantity(self.units_data[expression]):
10721025
sol = self._convert_list_to_SI(
10731026
sol, self._quantity(self.units_data[expression]), self.units_data[expression]

0 commit comments

Comments
 (0)