Skip to content

Commit 5182209

Browse files
Write properly modelers and submodelparts
1 parent 37949af commit 5182209

2 files changed

Lines changed: 79 additions & 10 deletions

File tree

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace eval ::ConjugateHeatTransfer::write {
77
variable writeAttributes
88
variable fluid_domain_solver_settings
99
variable solid_domain_solver_settings
10+
11+
variable mdpa_files
1012
}
1113

1214
proc ::ConjugateHeatTransfer::write::Init { } {
@@ -29,10 +31,14 @@ proc ::ConjugateHeatTransfer::write::Init { } {
2931
variable solid_domain_solver_settings
3032
set fluid_domain_solver_settings [dict create]
3133
set solid_domain_solver_settings [dict create]
34+
35+
variable mdpa_files
36+
set mdpa_files []
3237
}
3338

3439
# Events
3540
proc ::ConjugateHeatTransfer::write::writeModelPartEvent { } {
41+
variable mdpa_files
3642
# Validation
3743
set err [Validate]
3844
if {$err ne ""} {error $err}
@@ -42,7 +48,9 @@ proc ::ConjugateHeatTransfer::write::writeModelPartEvent { } {
4248
# Buoyancy mdpa
4349
::ConjugateHeatTransfer::write::PrepareBuoyancy
4450
write::writeAppMDPA Buoyancy
45-
write::RenameFileInModel "$filename.mdpa" "${filename}_[GetAttribute fluid_mdpa_suffix].mdpa"
51+
set buoyancy_mdpa "${filename}_[GetAttribute fluid_mdpa_suffix]"
52+
write::RenameFileInModel "$filename.mdpa" ${buoyancy_mdpa}.mdpa
53+
lappend mdpa_files $buoyancy_mdpa
4654

4755
# Convection diffusion mdpa
4856
ConvectionDiffusion::write::Init
@@ -53,7 +61,9 @@ proc ::ConjugateHeatTransfer::write::writeModelPartEvent { } {
5361
set ::ConvectionDiffusion::write::base_root $base_root
5462

5563
write::writeAppMDPA ConvectionDiffusion
56-
write::RenameFileInModel "$filename.mdpa" "${filename}_[GetAttribute solid_mdpa_suffix].mdpa"
64+
set convdif_mdpa "${filename}_[GetAttribute solid_mdpa_suffix]"
65+
write::RenameFileInModel "$filename.mdpa" ${convdif_mdpa}.mdpa
66+
lappend mdpa_files $convdif_mdpa
5767
}
5868

5969
proc ::ConjugateHeatTransfer::write::writeCustomFilesEvent { } {

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

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ proc ::ConjugateHeatTransfer::write::getParametersDict { } {
2424

2525
# modelers
2626
set projectParametersDict [::write::GetModelersDict $projectParametersDict]
27+
set projectParametersDict [::ConjugateHeatTransfer::write::PlaceMDPAImports $projectParametersDict]
28+
set projectParametersDict [::ConjugateHeatTransfer::write::ModelersPrefix $projectParametersDict]
29+
30+
dict unset projectParametersDict solver_settings model_import_settings
2731

2832
return $projectParametersDict
2933
}
@@ -44,16 +48,10 @@ proc ::ConjugateHeatTransfer::write::GetSolverSettingsDict {} {
4448
set filename [Kratos::GetModelName]
4549

4650
# Prepare the solver strategies
47-
# Buoyancy Fluid > model_import_settings -> mdpa fluid
48-
dict set ConjugateHeatTransfer::write::fluid_domain_solver_settings solver_settings fluid_solver_settings model_import_settings input_filename "${filename}_[GetAttribute fluid_mdpa_suffix]"
49-
# Buoyancy Thermic > model_import_settings -> none
50-
dict set ConjugateHeatTransfer::write::fluid_domain_solver_settings solver_settings thermal_solver_settings model_import_settings input_filename "use_input_model_part"
51-
dict unset ConjugateHeatTransfer::write::fluid_domain_solver_settings solver_settings thermal_solver_settings model_import_settings input_type
51+
dict unset ConjugateHeatTransfer::write::fluid_domain_solver_settings model_import_settings
5252
# Buoyancy Thermic > model_part_name
5353
dict set ConjugateHeatTransfer::write::fluid_domain_solver_settings solver_settings thermal_solver_settings model_part_name "FluidThermalModelPart"
54-
# Solid Thermic > Modelpart name -> mdpa solid
55-
dict set ConjugateHeatTransfer::write::solid_domain_solver_settings solver_settings model_import_settings input_filename "${filename}_[GetAttribute solid_mdpa_suffix]"
56-
54+
5755
dict set solver_settings_dict fluid_domain_solver_settings [dict get $ConjugateHeatTransfer::write::fluid_domain_solver_settings solver_settings]
5856
dict set solver_settings_dict solid_domain_solver_settings thermal_solver_settings [dict get $ConjugateHeatTransfer::write::solid_domain_solver_settings solver_settings]
5957

@@ -70,6 +68,8 @@ proc ::ConjugateHeatTransfer::write::GetSolverSettingsDict {} {
7068
dict set coupling_settings solid_interfaces_list $solid_interfaces_list
7169
dict set solver_settings_dict coupling_settings $coupling_settings
7270

71+
dict unset solver_settings_dict fluid_domain_solver_settings model_import_settings
72+
7373
return $solver_settings_dict
7474
}
7575

@@ -157,4 +157,63 @@ proc ::ConjugateHeatTransfer::write::InitExternalProjectParameters { } {
157157
set ConjugateHeatTransfer::write::solid_domain_solver_settings [ConvectionDiffusion::write::getParametersDict]
158158

159159
apps::setActiveAppSoft ConjugateHeatTransfer
160+
}
161+
162+
proc ::ConjugateHeatTransfer::write::PlaceMDPAImports { projectParametersDict } {
163+
variable mdpa_files
164+
165+
set new_modelers [list]
166+
167+
set modelers [dict get $projectParametersDict modelers]
168+
# remove the modelers that import the mdpa files (name = Modelers.KratosMultiphysics.ImportMDPAModeler)
169+
set modelers [lsearch -all -inline -not -glob $modelers *ImportMDPAModeler*]
170+
lappend new_modelers [dict create name "Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [lindex $mdpa_files 0] model_part_name "FluidModelPart"]]
171+
lappend new_modelers [dict create name "Modelers.KratosMultiphysics.ImportMDPAModeler" parameters [dict create input_filename [lindex $mdpa_files 1] model_part_name "ThermalModelPart"]]
172+
set modelers [concat $new_modelers $modelers]
173+
dict set projectParametersDict modelers $modelers
174+
return $projectParametersDict
175+
}
176+
177+
proc ::ConjugateHeatTransfer::write::ModelersPrefix { projectParametersDict } {
178+
set modelers [dict get $projectParametersDict modelers]
179+
set new_modelers [list]
180+
set thermal_modelparts [dict get $projectParametersDict solver_settings solid_domain_solver_settings thermal_solver_settings processes_sub_model_part_list]
181+
# W "Thermal modelparts: $thermal_modelparts"
182+
foreach modeler $modelers {
183+
set name [dict get $modeler name]
184+
if {[string match "Modelers.KratosMultiphysics.CreateEntitiesFromGeometriesModeler" $name]} {
185+
set new_parameters [dict create]
186+
set new_modeler [dict create name $name parameters [dict create elements_list [dict create] conditions_list [dict create]]]
187+
set new_element_list [list ]
188+
foreach element [dict get $modeler parameters elements_list] {
189+
set model_part_name [dict get $element model_part_name]
190+
set raw_name [lindex [split $model_part_name "."] 1]
191+
192+
if {$raw_name in $thermal_modelparts} {
193+
set new_element $element
194+
} else {
195+
set new_element [dict create model_part_name "FluidModelPart.$raw_name" element_name [dict get $element element_name]]
196+
}
197+
lappend new_element_list $new_element
198+
dict set new_parameters elements_list $new_element_list
199+
}
200+
set new_conditions_list [list ]
201+
foreach condition [dict get $modeler parameters conditions_list] {
202+
set model_part_name [dict get $condition model_part_name]
203+
set raw_name [lindex [split $model_part_name "."] 1]
204+
if {$raw_name in $thermal_modelparts} {
205+
set new_condition $condition
206+
} else {
207+
set new_condition [dict create model_part_name "FluidModelPart.$raw_name" condition_name [dict get $condition condition_name]]
208+
}
209+
lappend new_conditions_list $new_condition
210+
dict set new_parameters conditions_list $new_conditions_list
211+
}
212+
dict set new_modeler parameters $new_parameters
213+
set modeler $new_modeler
214+
}
215+
lappend new_modelers $modeler
216+
}
217+
dict set projectParametersDict modelers $new_modelers
218+
return $projectParametersDict
160219
}

0 commit comments

Comments
 (0)