Skip to content

Commit 20c449d

Browse files
Merge pull request #990 from KratosMultiphysics/freesurface-migration-geoms
Free surface writes geometries
2 parents 4602a1c + ac96d70 commit 20c449d

3 files changed

Lines changed: 76 additions & 3 deletions

File tree

kratos.gid/apps/FreeSurface/app.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"properties_location": "json",
3939
"model_part_name": "FluidModelPart",
4040
"output_model_part_name": "",
41-
"write_mdpa_mode": "entities"
41+
"write_mdpa_mode": "geometries"
4242
},
4343
"main_launch_file": "../../exec/MainKratos.py"
4444
}

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

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ proc ::FreeSurface::write::getParametersDict { } {
2323
# # processes
2424
dict set projectParametersDict processes [::Fluid::write::GetProcesses_Dict]
2525

26+
set projectParametersDict [::write::GetModelersDict $projectParametersDict]
27+
28+
set projectParametersDict [::FreeSurface::write::ReplaceConditionsName $projectParametersDict "WallCondition2D2N" "LineCondition2D2N"]
29+
set projectParametersDict [::FreeSurface::write::ReplaceConditionsName $projectParametersDict "WallCondition3D3N" "LineCondition3D3N"]
30+
2631
return $projectParametersDict
2732
}
2833

@@ -60,3 +65,67 @@ proc ::FreeSurface::write::writeParametersEvent { } {
6065
write::SetParallelismConfiguration
6166
write::WriteJSON $projectParametersDict
6267
}
68+
69+
proc ::FreeSurface::write::ReplaceConditionsName { projectParametersDict old_cond_name new_cond_name } {
70+
71+
# in the section 'modelers' we have this structure
72+
# [
73+
# {
74+
# "name": "Modelers.KratosMultiphysics.ImportMDPAModeler",
75+
# "parameters": {
76+
# "input_filename": "free",
77+
# "model_part_name": "free"
78+
# }
79+
# },
80+
# {
81+
# "name": "Modelers.KratosMultiphysics.CreateEntitiesFromGeometriesModeler",
82+
# "parameters": {
83+
# "elements_list": [
84+
# {
85+
# "model_part_name": "free.Fluid",
86+
# "element_name": "Element2D3N"
87+
# }
88+
# ],
89+
# "conditions_list": [
90+
# {
91+
# "model_part_name": "free.Outlet",
92+
# "condition_name": "WallCondition2D2N"
93+
# },
94+
# {
95+
# "model_part_name": "free._HIDDEN_Slip2D",
96+
# "condition_name": "WallCondition2D2N"
97+
# }
98+
# ]
99+
# }
100+
# }
101+
# ]
102+
# we need to replace all the occurrences of old_cond_name with new_cond_name
103+
104+
set modelers [dict get $projectParametersDict modelers]
105+
set modelers_new [list]
106+
foreach modeler $modelers {
107+
set modeler_new [dict create]
108+
dict set modeler_new name [dict get $modeler name]
109+
set parameters [dict get $modeler parameters]
110+
set parameters_new [dict create]
111+
foreach {key value} $parameters {
112+
if { $key == "conditions_list" } {
113+
set conditions_list_new [list]
114+
foreach {condition} $value {
115+
set condition_new [dict create]
116+
dict set condition_new model_part_name [dict get $condition model_part_name]
117+
dict set condition_new condition_name [expr {[dict get $condition condition_name] == $old_cond_name ? $new_cond_name : [dict get $condition condition_name]}]
118+
lappend conditions_list_new $condition_new
119+
}
120+
dict set parameters_new $key $conditions_list_new
121+
} else {
122+
dict set parameters_new $key $value
123+
}
124+
}
125+
dict set modeler_new parameters $parameters_new
126+
lappend modelers_new $modeler_new
127+
}
128+
dict set projectParametersDict modelers $modelers_new
129+
130+
return $projectParametersDict
131+
}

kratos.gid/scripts/Writing/WriteProjectParameters.tcl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -663,15 +663,19 @@ proc write::GetMatchSubModelPart { what {stage ""} } {
663663
set group_name [$group @n]
664664

665665
set group_name [write::GetWriteGroupName $group_name]
666-
if {$group_name ni $processed_groups_list} {lappend processed_groups_list $group_name} {continue}
667-
if {$what == "condition"} {set cid [[$group parent] @n]} {
666+
#if {$group_name ni $processed_groups_list} {lappend processed_groups_list $group_name} {continue}
667+
if {$what == "condition"} {
668+
set cid [[$group parent] @n]
669+
} else {
668670
set element_node [$group selectNodes "./value\[@n='Element']"]
669671
if {[llength $element_node] == 0} {continue}
670672
set cid [write::getValueByNode $element_node]
671673
}
672674
if {$cid eq ""} {continue}
673675
if {$what == "condition"} {set entity [::Model::getCondition $cid]} {set entity [::Model::getElement $cid]}
674676
if {$entity eq ""} {continue}
677+
678+
if {$group_name ni $processed_groups_list} {lappend processed_groups_list $group_name} {continue}
675679
if {$what == "condition"} {
676680
if {[$entity getGroupBy] eq "Condition"} {
677681
set good_name "_HIDDEN_$cid"

0 commit comments

Comments
 (0)