Skip to content

Commit de5c5e8

Browse files
Merge pull request #996 from KratosMultiphysics/fsi-geoms-migration
Fsi geoms migration
2 parents d6c6e95 + bb07382 commit de5c5e8

8 files changed

Lines changed: 99 additions & 12 deletions

File tree

kratos.gid/apps/Buoyancy/write/write.tcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ proc ::Buoyancy::write::writeModelPartEvent { } {
2323

2424
set fluid_base_xpath [spdAux::getRoute Buoyancy_FL]
2525
set fluid_base [[customlib::GetBaseRoot] selectNodes $fluid_base_xpath]
26-
set ::Fluid::write::fluid_base $fluid_base
26+
set ::Fluid::write::base_root $fluid_base
2727

2828
::Fluid::write::writeModelPartEvent
2929

kratos.gid/apps/ConjugateHeatTransfer/write/write.tcl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ proc ::ConjugateHeatTransfer::write::PrepareBuoyancy { } {
8585
Fluid::write::SetAttribute thermal_bc_un Buoyancy_CNVDFFBC
8686
Fluid::write::SetAttribute thermal_initial_cnd_un Buoyancy_CNVDFFNodalConditions
8787
Fluid::write::SetCoordinatesByGroups [GetAttribute coordinates]
88+
set base_root_xpath [spdAux::getRoute CHTBuoyancy]
89+
set base_root [[customlib::GetBaseRoot] selectNodes $base_root_xpath]
90+
set ::Fluid::write::base_root $base_root
8891
}
8992

9093
proc ::ConjugateHeatTransfer::write::WriteMaterialsFile { {write_const_law True} {include_modelpart_name True} } {

kratos.gid/apps/FSI/app.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"properties_location": "json",
5555
"model_part_name": "Structure",
5656
"enable_dynamic_substepping": false,
57-
"write_mdpa_mode": "entities"
57+
"write_mdpa_mode": "geometries"
5858
},
5959
"main_launch_file": "../../exec/MainKratos.py",
6060
"examples": "examples/examples.xml"

kratos.gid/apps/FSI/write/write.tcl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,18 @@ proc ::FSI::write::writeModelPartEvent { } {
2727
::Fluid::write::SetAttribute write_mdpa_mode [::FSI::GetWriteProperty write_mdpa_mode]
2828
Fluid::write::InitConditionsMap
2929
Fluid::write::SetCoordinatesByGroups 1
30+
set base_root_xpath [spdAux::getRoute FSIFluid]
31+
set base_root [[customlib::GetBaseRoot] selectNodes $base_root_xpath]
32+
set ::Fluid::write::base_root $base_root
3033
write::writeAppMDPA Fluid
3134
dict set mdpa_names Fluid "${filename}_Fluid"
3235
write::RenameFileInModel "$filename.mdpa" "[dict get $mdpa_names Fluid].mdpa"
3336

3437
Structural::write::Init
3538
Structural::write::SetCoordinatesByGroups 1
39+
set base_root_xpath [spdAux::getRoute FSIStructural]
40+
set base_root [[customlib::GetBaseRoot] selectNodes $base_root_xpath]
41+
set ::Structural::write::base_root $base_root
3642
write::writeAppMDPA Structural
3743
dict set mdpa_names Structural "${filename}_Structural"
3844
write::RenameFileInModel "$filename.mdpa" "[dict get $mdpa_names Structural].mdpa"

kratos.gid/apps/FSI/write/writeProjectParameters.tcl

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

kratos.gid/apps/FSI/xml/Main.spd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<container n="FSI" pn="FSI" icon="app" prefix="FSI" tree_state="open" open_window="0">
44

5-
<container n="Fluid" pn="Fluid" icon="units" prefix="FL" tree_state="open" open_window="0">
5+
<container n="Fluid" pn="Fluid" icon="units" un="FSIFluid" prefix="FL" tree_state="open" open_window="0">
66
<include n="AnalysisType" active="1" path="apps/Fluid/xml/AnalysisType.spd"/>
77
<include n="Parts" active="1" path="apps/Fluid/xml/Parts.spd"/>
88
<include n="InitialConditions" active="1" path="apps/Fluid/xml/InitialConditions.spd"/>
@@ -12,7 +12,7 @@
1212
<include n="Materials" active="1" path="apps/Fluid/xml/Materials.spd"/>
1313
</container>
1414

15-
<container n="Structural" pn="Structure" icon="app" prefix="ST" tree_state="open" open_window="0">
15+
<container n="Structural" pn="Structure" icon="app" un="FSIStructural" prefix="ST" tree_state="open" open_window="0">
1616
<include n="StageInfo" active="1" path="apps/Structural/xml/StageInfo.spd"/>
1717
<include n="Parts" active="1" path="apps/Structural/xml/Parts.spd"/>
1818
<include n="BoundaryConditions" active="1" path="apps/Structural/xml/BoundaryConditions.spd"/>

kratos.gid/apps/Fluid/write/write.tcl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace eval ::Fluid::write {
99
# after regular conditions are written, we need this number in order to print the custom submodelpart conditions
1010
# only if are applied over things that are not in the skin
1111
variable last_condition_iterator
12-
variable fluid_base
12+
variable base_root
1313
}
1414

1515
proc ::Fluid::write::Init { } {
@@ -34,13 +34,13 @@ proc ::Fluid::write::Init { } {
3434
variable last_condition_iterator
3535
set last_condition_iterator 0
3636

37-
variable fluid_base
38-
set fluid_base ""
37+
variable base_root
38+
set base_root ""
3939
}
4040

4141
# MDPA write event
4242
proc ::Fluid::write::writeModelPartEvent { } {
43-
variable fluid_base
43+
variable base_root
4444

4545
# Validation
4646
set err [Validate]
@@ -61,7 +61,7 @@ proc ::Fluid::write::writeModelPartEvent { } {
6161
if {[GetAttribute write_mdpa_mode] eq "geometries"} {
6262
# Write geometries
6363
# Get the list of groups in the spd
64-
set lista [::Fluid::xml::GetListOfSubModelParts $fluid_base]
64+
set lista [::Fluid::xml::GetListOfSubModelParts $base_root]
6565

6666
# Write the geometries
6767
set ret [::write::writeGeometryConnectivities $lista]

kratos.gid/apps/Structural/write/write.tcl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace eval ::Structural::write {
66
variable NodalConditionsGroup
77
variable writeAttributes
88
variable ContactsDict
9+
variable base_root
10+
set base_root ""
911
}
1012

1113
proc ::Structural::write::Init { } {
@@ -38,6 +40,10 @@ proc ::Structural::write::Init { } {
3840
SetAttribute model_part_name [::Structural::GetWriteProperty model_part_name]
3941
SetAttribute output_model_part_name [::Structural::GetWriteProperty output_model_part_name]
4042
SetAttribute write_mdpa_mode [::Structural::GetWriteProperty write_mdpa_mode]
43+
44+
45+
variable base_root
46+
set base_root ""
4147
}
4248

4349
# MDPA Blocks
@@ -56,9 +62,10 @@ proc ::Structural::write::writeModelPartEvent { } {
5662

5763

5864
if {[GetAttribute write_mdpa_mode] eq "geometries"} {
65+
variable base_root
5966
# Write geometries
6067
# Get the list of groups in the spd
61-
set lista [spdAux::GetListOfSubModelParts]
68+
set lista [spdAux::GetListOfSubModelParts $base_root]
6269

6370
# Write the geometries
6471
set ret [::write::writeGeometryConnectivities $lista]

0 commit comments

Comments
 (0)