@@ -24,6 +24,10 @@ proc ::FSI::write::getParametersDict { } {
2424 set output_processes [GetOutputProcessesDict]
2525 dict set projectParametersDict output_processes $output_processes
2626
27+ set projectParametersDict [::write::GetModelersDict $projectParametersDict ]
28+ set projectParametersDict [PlaceMDPAImports $projectParametersDict ]
29+ set projectParametersDict [ModelersPrefix $projectParametersDict ]
30+
2731 return $projectParametersDict
2832}
2933
@@ -90,8 +94,10 @@ proc ::FSI::write::GetSolverSettingsDict { } {
9094 dict set solver_settings_dict coupling_settings fluid_interfaces_list $fluid_interfaces_list
9195
9296 # Change the input_filenames
93- dict set solver_settings_dict structure_solver_settings model_import_settings input_filename [dict get $mdpa_names Structural]
94- dict set solver_settings_dict fluid_solver_settings model_import_settings input_filename [dict get $mdpa_names Fluid]
97+ dict unset solver_settings_dict structure_solver_settings model_import_settings
98+ dict set solver_settings_dict structure_solver_settings model_import_settings input_type use_input_model_part
99+ dict unset solver_settings_dict fluid_solver_settings model_import_settings
100+ dict set solver_settings_dict fluid_solver_settings model_import_settings input_type use_input_model_part
95101
96102 # Overwrite structural timestep with fluid timestep
97103 dict set solver_settings_dict structure_solver_settings time_stepping [dict get $solver_settings_dict fluid_solver_settings time_stepping]
@@ -188,4 +194,69 @@ proc ::FSI::write::InitExternalProjectParameters { } {
188194 set FSI::write::structure_project_parameters [Structural::write::getParametersDict]
189195
190196 apps::setActiveAppSoft FSI
197+ }
198+
199+
200+ proc ::FSI::write::PlaceMDPAImports { projectParametersDict } {
201+ variable mdpa_names
202+
203+ set new_modelers [list ]
204+
205+ set modelers [dict get $projectParametersDict modelers]
206+ # remove the modelers that import the mdpa files (name = Modelers.KratosMultiphysics.ImportMDPAModeler)
207+ set modelers [lsearch -all -inline -not -glob $modelers *ImportMDPAModeler*]
208+ lappend new_modelers [dict create name " Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [dict get $mdpa_names Fluid] model_part_name " FluidModelPart" ]]
209+ lappend new_modelers [dict create name " Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [dict get $mdpa_names Structural] model_part_name " Structure" ]]
210+ set modelers [concat $new_modelers $modelers ]
211+ dict set projectParametersDict modelers $modelers
212+ return $projectParametersDict
213+ }
214+
215+ proc ::FSI::write::ModelersPrefix { projectParametersDict } {
216+
217+ set modelers [dict get $projectParametersDict modelers]
218+ set new_modelers [list ]
219+ set fluid_modelparts [dict get $projectParametersDict solver_settings fluid_solver_settings skin_parts]
220+ set more_fluid_modelparts [dict get $projectParametersDict solver_settings fluid_solver_settings no_skin_parts]
221+ set fluid_volume [dict get $projectParametersDict solver_settings fluid_solver_settings volume_model_part_name]
222+ set fluid_modelparts [concat $fluid_modelparts $more_fluid_modelparts ]
223+ lappend fluid_modelparts $fluid_volume
224+ # W "Thermal modelparts: $thermal_modelparts"
225+ foreach modeler $modelers {
226+ set name [dict get $modeler name]
227+ if {[string match " Modelers.KratosMultiphysics.CreateEntitiesFromGeometriesModeler" $name ]} {
228+ set new_parameters [dict create]
229+ set new_modeler [dict create name $name parameters [dict create elements_list [dict create] conditions_list [dict create]]]
230+ set new_element_list [list ]
231+ foreach element [dict get $modeler parameters elements_list] {
232+ set model_part_name [dict get $element model_part_name]
233+ set raw_name [lindex [split $model_part_name " ." ] 1]
234+
235+ if {$raw_name in $fluid_modelparts } {
236+ set new_element [dict create model_part_name " FluidModelPart.$raw_name " element_name [dict get $element element_name]]
237+ } else {
238+ set new_element $element
239+ }
240+ lappend new_element_list $new_element
241+ dict set new_parameters elements_list $new_element_list
242+ }
243+ set new_conditions_list [list ]
244+ foreach condition [dict get $modeler parameters conditions_list] {
245+ set model_part_name [dict get $condition model_part_name]
246+ set raw_name [lindex [split $model_part_name " ." ] 1]
247+ if {$raw_name in $fluid_modelparts } {
248+ set new_condition [dict create model_part_name " FluidModelPart.$raw_name " condition_name [dict get $condition condition_name]]
249+ } else {
250+ set new_condition $condition
251+ }
252+ lappend new_conditions_list $new_condition
253+ dict set new_parameters conditions_list $new_conditions_list
254+ }
255+ dict set new_modeler parameters $new_parameters
256+ set modeler $new_modeler
257+ }
258+ lappend new_modelers $modeler
259+ }
260+ dict set projectParametersDict modelers $new_modelers
261+ return $projectParametersDict
191262}
0 commit comments