Skip to content

Commit d6c6e95

Browse files
Merge pull request #994 from KratosMultiphysics/conjugate-migration
Conjugate heat transfer migration as geometries Por fin
2 parents 66c63cf + 6bf7ed7 commit d6c6e95

14 files changed

Lines changed: 238 additions & 44 deletions

File tree

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

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ proc ::Buoyancy::write::writeModelPartEvent { } {
2020
if {$err ne ""} {error $err}
2121

2222
::Fluid::write::Init
23+
24+
set fluid_base_xpath [spdAux::getRoute Buoyancy_FL]
25+
set fluid_base [[customlib::GetBaseRoot] selectNodes $fluid_base_xpath]
26+
set ::Fluid::write::fluid_base $fluid_base
2327

2428
::Fluid::write::writeModelPartEvent
2529

@@ -46,16 +50,22 @@ proc ::Buoyancy::write::WriteMaterialsFile {{write_const_law True} {include_mode
4650
Fluid::write::WriteMaterialsFile $write_const_law $include_modelpart_name
4751

4852
# Write Buoyancy materials file
49-
set model_part_name ""
50-
if {[write::isBooleanTrue $include_modelpart_name]} {set model_part_name [GetModelPartName]}
53+
set clear_mat [::Buoyancy::write::GetBuoyancyMaterialsFile $write_const_law $include_modelpart_name]
54+
write::writePropertiesJsonFileDone "BuoyancyMaterials.json" $clear_mat
55+
}
56+
57+
proc ::Buoyancy::write::GetBuoyancyMaterialsFile { {write_const_law True} {include_modelpart_name True} {model_part_name ""} } {
58+
59+
if {[write::isBooleanTrue $include_modelpart_name] && $model_part_name eq ""} {set model_part_name [GetModelPartName]}
5160

5261
set mats [write::getPropertiesJson [GetAttribute parts_un] $write_const_law $model_part_name]
62+
5363
# keep only first entry
5464
set clear_mat [dict get $mats properties]
5565
set clear_mat [lindex $clear_mat 0]
5666
dict set clear_mat model_part_name ThermalModelPart
5767
set clear_mat [dict create properties [list $clear_mat]]
58-
write::writePropertiesJsonFileDone "BuoyancyMaterials.json" $clear_mat
68+
return $clear_mat
5969
}
6070

6171
proc ::Buoyancy::write::writeSubModelParts { } {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Project Parameters
2-
proc ::Buoyancy::write::getParametersDict { } {
2+
proc ::Buoyancy::write::getParametersDict { {stage ""} } {
33
set projectParametersDict [dict create]
44

55
# Analysis stage field
@@ -21,7 +21,7 @@ proc ::Buoyancy::write::getParametersDict { } {
2121
dict set projectParametersDict processes [Buoyancy::write::GetProcesses_Dict]
2222

2323
# modelers
24-
set projectParametersDict [::write::GetModelersDict $projectParametersDict]
24+
set projectParametersDict [::write::GetModelersDict $projectParametersDict $stage]
2525

2626
return $projectParametersDict
2727
}

kratos.gid/apps/Buoyancy/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="Buoyancy" pn="Buoyancy" icon="app" prefix="Buoyancy_" 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" prefix="FL" un="Buoyancy_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"/>
@@ -11,7 +11,7 @@
1111
<include n="Materials" active="1" path="apps/Fluid/xml/Materials.spd"/>
1212
</container>
1313

14-
<container n="ConvectionDiffusion" pn="Thermal" icon="app" prefix="CNVDFF" tree_state="open" open_window="0">
14+
<container n="ConvectionDiffusion" pn="Thermal" icon="app" prefix="CNVDFF" un="Buoyancy_CNVDFF" tree_state="open" open_window="0">
1515
<include n="StageInfo" active="1" path="apps/ConvectionDiffusion/xml/StageInfo.spd"/>
1616
<!-- <include n="Parts" active="1" state="hidden" path="apps/ConvectionDiffusion/xml/Parts.spd"/> -->
1717
<include n="InitialConditions" active="1" path="apps/ConvectionDiffusion/xml/InitialConditions.spd"/>

kratos.gid/apps/ConjugateHeatTransfer/app.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
"write": {
3939
"coordinates": "groups",
4040
"properties_location": "json",
41-
"model_part_name": "ThermalModelPart"
41+
"model_part_name": "ThermalModelPart",
42+
"write_mdpa_mode": "geometries"
4243
},
4344
"main_launch_file": "../../exec/MainKratos.py",
4445
"examples": "examples/examples.xml"

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

Lines changed: 37 additions & 3 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 { } {
@@ -20,6 +22,7 @@ proc ::ConjugateHeatTransfer::write::Init { } {
2022
SetAttribute model_part_name [::ConjugateHeatTransfer::GetWriteProperty model_part_name]
2123

2224
SetAttribute coordinates [::ConjugateHeatTransfer::GetWriteProperty coordinates]
25+
SetAttribute write_mdpa_mode [::ConvectionDiffusion::GetWriteProperty write_mdpa_mode]
2326

2427
SetAttribute fluid_mdpa_suffix Fluid
2528
SetAttribute solid_mdpa_suffix Solid
@@ -28,10 +31,14 @@ proc ::ConjugateHeatTransfer::write::Init { } {
2831
variable solid_domain_solver_settings
2932
set fluid_domain_solver_settings [dict create]
3033
set solid_domain_solver_settings [dict create]
34+
35+
variable mdpa_files
36+
set mdpa_files []
3137
}
3238

3339
# Events
3440
proc ::ConjugateHeatTransfer::write::writeModelPartEvent { } {
41+
variable mdpa_files
3542
# Validation
3643
set err [Validate]
3744
if {$err ne ""} {error $err}
@@ -41,13 +48,22 @@ proc ::ConjugateHeatTransfer::write::writeModelPartEvent { } {
4148
# Buoyancy mdpa
4249
::ConjugateHeatTransfer::write::PrepareBuoyancy
4350
write::writeAppMDPA Buoyancy
44-
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
4554

4655
# Convection diffusion mdpa
4756
ConvectionDiffusion::write::Init
4857
ConvectionDiffusion::write::SetAttribute writeCoordinatesByGroups [GetAttribute coordinates]
58+
59+
set base_root_xpath [spdAux::getRoute CHTCNVDFF]
60+
set base_root [[customlib::GetBaseRoot] selectNodes $base_root_xpath]
61+
set ::ConvectionDiffusion::write::base_root $base_root
62+
4963
write::writeAppMDPA ConvectionDiffusion
50-
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
5167
}
5268

5369
proc ::ConjugateHeatTransfer::write::writeCustomFilesEvent { } {
@@ -72,13 +88,31 @@ proc ::ConjugateHeatTransfer::write::PrepareBuoyancy { } {
7288
}
7389

7490
proc ::ConjugateHeatTransfer::write::WriteMaterialsFile { {write_const_law True} {include_modelpart_name True} } {
75-
Buoyancy::write::WriteMaterialsFile $write_const_law $include_modelpart_name
91+
ConjugateHeatTransfer::write::WriteBuoyancyMaterialsFile $write_const_law $include_modelpart_name
7692
ConvectionDiffusion::write::WriteMaterialsFile False $include_modelpart_name
7793
}
7894

95+
proc ::ConjugateHeatTransfer::write::WriteBuoyancyMaterialsFile { {write_const_law True} {include_modelpart_name True} } {
96+
## Write fluid material file
97+
set model_part_name ""
98+
if {[write::isBooleanTrue $include_modelpart_name]} {set model_part_name [GetAttribute model_part_name]}
99+
set fluid_materials [Fluid::write::GetMaterialsFile $write_const_law $include_modelpart_name]
100+
write::writePropertiesJsonFileDone [::Fluid::write::GetAttribute materials_file] $fluid_materials
101+
102+
# Write Buoyancy materials file
103+
set buoyancy_material [::Buoyancy::write::GetBuoyancyMaterialsFile $write_const_law $include_modelpart_name FluidThermalModelPart]
104+
set clear_mat [dict get $buoyancy_material properties]
105+
set clear_mat [lindex $clear_mat 0]
106+
dict set clear_mat model_part_name FluidThermalModelPart
107+
set clear_mat [dict create properties [list $clear_mat]]
108+
write::writePropertiesJsonFileDone "BuoyancyMaterials.json" $clear_mat
109+
}
79110

80111
proc ::ConjugateHeatTransfer::write::GetAttribute {att} {
81112
variable writeAttributes
113+
if {![dict exists $writeAttributes $att]} {
114+
return ""
115+
}
82116
return [dict get $writeAttributes $att]
83117
}
84118

0 commit comments

Comments
 (0)