diff --git a/gui/models/data_storage.py b/gui/models/data_storage.py index 8adfa26..9517f92 100644 --- a/gui/models/data_storage.py +++ b/gui/models/data_storage.py @@ -86,6 +86,7 @@ class DataStorage(QObject): } _EXPR_ALIAS_TYPES = { 'cv': 'Candidate (CV)', + 'aux': 'Auxiliary', 'cst': 'Constraint function', 'obj': 'Objective function (J)' } @@ -1491,7 +1492,8 @@ def check_simulation_setup(self): # get expressions validity expr_df = self.expression_table_data expr_valid_check = expr_df['Expression'].apply( - lambda x: is_expression_valid(x, aliases['Alias'].tolist()) + lambda x: is_expression_valid(x, aliases['Alias'].tolist() + expr_df['Alias'].tolist() + ) ) is_name_not_duplicated = pd.concat( @@ -1644,6 +1646,10 @@ def evaluate_expr_data(self, sampled_data: pd.DataFrame, expr_row_values[expr['Alias']] = expr_to_parse.evaluate( row_val_dict) + row_val_dict.update( + {expr['Alias']: expr_row_values[expr['Alias']]} + ) + # append values to expr_df expr_df = expr_df.append(expr_row_values, ignore_index=True) diff --git a/gui/models/sampling.py b/gui/models/sampling.py index 1984195..b893781 100644 --- a/gui/models/sampling.py +++ b/gui/models/sampling.py @@ -442,6 +442,7 @@ def model_function(self, x): expr_to_parse = parser.parse(expr['Expression']) var_list = expr_to_parse.variables() expr_values[expr['Alias']] = expr_to_parse.evaluate(results) + results.update(expr_values) # separate constraints values con_aliases = expr_data.loc[