Skip to content

Commit

Permalink
Merge pull request #12989 from KratosMultiphysics/optapp/execution_po…
Browse files Browse the repository at this point in the history
…licies/output_integration_point_data

[OptApp] Add integration point output
  • Loading branch information
sunethwarna authored Jan 8, 2025
2 parents ae48108 + 0013284 commit 7da0f26
Showing 1 changed file with 22 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ def __init__(self, name: str, model: Kratos.Model, parameters: Kratos.Parameters
"analysis_type" : "",
"analysis_settings": {},
"analysis_output_settings": {
"nodal_solution_step_data_variables" : [],
"nodal_data_value_variables" : [],
"element_data_value_variables" : [],
"element_properties_value_variables" : [],
"condition_data_value_variables" : [],
"condition_properties_value_variables": []
"nodal_solution_step_data_variables" : [],
"nodal_data_value_variables" : [],
"element_data_value_variables" : [],
"element_properties_value_variables" : [],
"element_integration_point_value_variables" : [],
"condition_data_value_variables" : [],
"condition_properties_value_variables" : [],
"condition_integration_point_value_variables": []
}
}""")
self.model = model
Expand All @@ -59,8 +61,10 @@ def __init__(self, name: str, model: Kratos.Model, parameters: Kratos.Parameters
self.nodal_data_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["nodal_data_value_variables"].GetStringArray())
self.element_data_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["element_data_value_variables"].GetStringArray())
self.element_properties_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["element_properties_value_variables"].GetStringArray())
self.element_integration_point_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["element_integration_point_value_variables"].GetStringArray())
self.condition_data_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["condition_data_value_variables"].GetStringArray())
self.condition_properties_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["condition_properties_value_variables"].GetStringArray())
self.condition_integration_point_value_variables = KratosAnalysisExecutionPolicy.__GetVariablesList(analysis_output_settings["condition_integration_point_value_variables"].GetStringArray())

def GetAnalysisModelPart(self):
return self.analysis._GetSolver().GetComputingModelPart()
Expand Down Expand Up @@ -98,22 +102,32 @@ def _OutputAnalysisData(self):
nodal_field = Kratos.Expression.NodalExpression(model_part)
Kratos.Expression.VariableExpressionIO.Read(nodal_field, variable, False)
unbuffered_data.SetValue(variable.Name(), nodal_field.Clone(), overwrite=True)

for variable in self.element_data_value_variables:
elem_field = Kratos.Expression.ElementExpression(model_part)
Kratos.Expression.VariableExpressionIO.Read(elem_field, variable)
unbuffered_data.SetValue(variable.Name(), elem_field.Clone(), overwrite=True)
for variable in self.element_properties_value_variables:
elem_field = Kratos.Expression.ElementExpression(model_part)
KratosOA.PropertiesVariableExpressionIO.Read(elem_field, variable)
unbuffered_data.SetValue(variable.Name(), elem_field.Clone(), overwrite=True)
unbuffered_data.SetValue(variable.Name(), elem_field.Clone(), overwrite=True)
for variable in self.element_integration_point_value_variables:
elem_field = Kratos.Expression.ElementExpression(model_part)
Kratos.Expression.IntegrationPointExpressionIO.Read(elem_field, variable)
unbuffered_data.SetValue(variable.Name(), elem_field.Clone(), overwrite=True)

for variable in self.condition_data_value_variables:
cond_field = Kratos.Expression.ConditionExpression(model_part)
Kratos.Expression.VariableExpressionIO.Read(cond_field, variable)
unbuffered_data.SetValue(variable.Name(), cond_field.Clone(), overwrite=True)
for variable in self.condition_properties_value_variables:
cond_field = Kratos.Expression.ConditionExpression(model_part)
KratosOA.PropertiesVariableExpressionIO.Read(cond_field, variable)
unbuffered_data.SetValue(variable.Name(), cond_field.Clone(), overwrite=True)
unbuffered_data.SetValue(variable.Name(), cond_field.Clone(), overwrite=True)
for variable in self.condition_integration_point_value_variables:
cond_field = Kratos.Expression.ConditionExpression(model_part)
Kratos.Expression.IntegrationPointExpressionIO.Read(cond_field, variable)
unbuffered_data.SetValue(variable.Name(), cond_field.Clone(), overwrite=True)

@staticmethod
def __GetVariablesList(variable_names_list: 'list[str]') -> 'list[Any]':
Expand Down

0 comments on commit 7da0f26

Please sign in to comment.