Skip to content

Commit 3923dbc

Browse files
mdpa and proj params
1 parent 5182209 commit 3923dbc

6 files changed

Lines changed: 90 additions & 8 deletions

File tree

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: 69 additions & 0 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

@@ -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
}

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: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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)