@@ -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
@@ -188,4 +192,69 @@ proc ::FSI::write::InitExternalProjectParameters { } {
188192 set FSI::write::structure_project_parameters [Structural::write::getParametersDict]
189193
190194 apps::setActiveAppSoft FSI
195+ }
196+
197+
198+ proc ::FSI::write::PlaceMDPAImports { projectParametersDict } {
199+ variable mdpa_names
200+
201+ set new_modelers [list ]
202+
203+ set modelers [dict get $projectParametersDict modelers]
204+ # remove the modelers that import the mdpa files (name = Modelers.KratosMultiphysics.ImportMDPAModeler)
205+ set modelers [lsearch -all -inline -not -glob $modelers *ImportMDPAModeler*]
206+ lappend new_modelers [dict create name " Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [dict get $mdpa_names Fluid] model_part_name " FluidModelPart" ]]
207+ lappend new_modelers [dict create name " Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [dict get $mdpa_names Structural] model_part_name " Structure" ]]
208+ set modelers [concat $new_modelers $modelers ]
209+ dict set projectParametersDict modelers $modelers
210+ return $projectParametersDict
211+ }
212+
213+ proc ::FSI::write::ModelersPrefix { projectParametersDict } {
214+
215+ set modelers [dict get $projectParametersDict modelers]
216+ set new_modelers [list ]
217+ set fluid_modelparts [dict get $projectParametersDict solver_settings fluid_solver_settings skin_parts]
218+ set more_fluid_modelparts [dict get $projectParametersDict solver_settings fluid_solver_settings no_skin_parts]
219+ set fluid_volume [dict get $projectParametersDict solver_settings fluid_solver_settings volume_model_part_name]
220+ set fluid_modelparts [concat $fluid_modelparts $more_fluid_modelparts ]
221+ lappend fluid_modelparts $fluid_volume
222+ # W "Thermal modelparts: $thermal_modelparts"
223+ foreach modeler $modelers {
224+ set name [dict get $modeler name]
225+ if {[string match " Modelers.KratosMultiphysics.CreateEntitiesFromGeometriesModeler" $name ]} {
226+ set new_parameters [dict create]
227+ set new_modeler [dict create name $name parameters [dict create elements_list [dict create] conditions_list [dict create]]]
228+ set new_element_list [list ]
229+ foreach element [dict get $modeler parameters elements_list] {
230+ set model_part_name [dict get $element model_part_name]
231+ set raw_name [lindex [split $model_part_name " ." ] 1]
232+
233+ if {$raw_name in $fluid_modelparts } {
234+ set new_element [dict create model_part_name " FluidModelPart.$raw_name " element_name [dict get $element element_name]]
235+ } else {
236+ set new_element $element
237+ }
238+ lappend new_element_list $new_element
239+ dict set new_parameters elements_list $new_element_list
240+ }
241+ set new_conditions_list [list ]
242+ foreach condition [dict get $modeler parameters conditions_list] {
243+ set model_part_name [dict get $condition model_part_name]
244+ set raw_name [lindex [split $model_part_name " ." ] 1]
245+ if {$raw_name in $fluid_modelparts } {
246+ set new_condition [dict create model_part_name " FluidModelPart.$raw_name " condition_name [dict get $condition condition_name]]
247+ } else {
248+ set new_condition $condition
249+ }
250+ lappend new_conditions_list $new_condition
251+ dict set new_parameters conditions_list $new_conditions_list
252+ }
253+ dict set new_modeler parameters $new_parameters
254+ set modeler $new_modeler
255+ }
256+ lappend new_modelers $modeler
257+ }
258+ dict set projectParametersDict modelers $new_modelers
259+ return $projectParametersDict
191260}
0 commit comments