Skip to content

Commit

Permalink
Merge pull request #986 from KratosMultiphysics/buoyancy-migration-as…
Browse files Browse the repository at this point in the history
…-geoms

Buoyancy migration mdpa
  • Loading branch information
jginternational authored Jul 26, 2024
2 parents 6bbecaa + b0e653d commit 40ed0f0
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 38 deletions.
2 changes: 1 addition & 1 deletion kratos.gid/apps/Buoyancy/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"coordinates": "all",
"properties_location": "json",
"model_part_name": "ThermalModelPart",
"write_mdpa_mode": "entities"
"write_mdpa_mode": "geometries"
},
"main_launch_file": "../../exec/MainKratos.py",
"examples": "examples/examples.xml"
Expand Down
48 changes: 15 additions & 33 deletions kratos.gid/apps/Buoyancy/write/write.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ proc ::Buoyancy::write::Init { } {
# Add thermal unique names to Fluid write variables
Fluid::write::SetAttribute thermal_bc_un [ConvectionDiffusion::write::GetAttribute conditions_un]
Fluid::write::SetAttribute thermal_initial_cnd_un [ConvectionDiffusion::write::GetAttribute nodal_conditions_un]

}

# Events
Expand All @@ -18,39 +19,13 @@ proc ::Buoyancy::write::writeModelPartEvent { } {
set err [Validate]
if {$err ne ""} {error $err}

# Start Fluid write variables
Fluid::write::Init
# Fluid has implemented the geometry mode, but we do not use it yet in inherited apps
::Fluid::write::SetAttribute write_mdpa_mode [::Buoyancy::GetWriteProperty write_mdpa_mode]
# Start Fluid write conditions map from scratch
Fluid::write::InitConditionsMap

# Init data
write::initWriteConfiguration [Fluid::write::GetAttributes]

# Headers
write::writeModelPartData
Fluid::write::writeProperties

# Nodal coordinates (1: Print only Fluid nodes <inefficient> | 0: the whole mesh <efficient>)
if {[Fluid::write::GetAttribute writeCoordinatesByGroups] ne "all"} {write::writeNodalCoordinatesOnParts} {write::writeNodalCoordinates}

# Element connectivities (Groups on FLParts)
write::writeElementConnectivities

# Nodal conditions and conditions
Fluid::write::writeConditions

# SubmodelParts
Fluid::write::writeMeshes
write::writeNodalConditions [GetAttribute thermal_initial_cnd_un]
Buoyancy::write::writeSubModelParts
::Fluid::write::Init

::Fluid::write::writeModelPartEvent

# Boussinesq nodes
Buoyancy::write::writeBoussinesqSubModelPart
# Write Boussinesq submodel part as nodals
::Buoyancy::write::writeBoussinesqSubModelPart

# Custom SubmodelParts
#write::writeBasicSubmodelParts [Fluid::write::getLastConditionId]
}

proc ::Buoyancy::write::writeCustomFilesEvent { } {
Expand All @@ -73,7 +48,14 @@ proc ::Buoyancy::write::WriteMaterialsFile {{write_const_law True} {include_mode
# Write Buoyancy materials file
set model_part_name ""
if {[write::isBooleanTrue $include_modelpart_name]} {set model_part_name [GetModelPartName]}
write::writePropertiesJsonFile [GetAttribute parts_un] "BuoyancyMaterials.json" $write_const_law $model_part_name

set mats [write::getPropertiesJson [GetAttribute parts_un] $write_const_law $model_part_name]
# keep only first entry
set clear_mat [dict get $mats properties]
set clear_mat [lindex $clear_mat 0]
dict set clear_mat model_part_name ThermalModelPart
set clear_mat [dict create properties [list $clear_mat]]
write::writePropertiesJsonFileDone "BuoyancyMaterials.json" $clear_mat
}

proc ::Buoyancy::write::writeSubModelParts { } {
Expand All @@ -100,7 +82,7 @@ proc ::Buoyancy::write::writeBoussinesqSubModelPart { } {
set groupid "_Boussinesq_hidden_"
GiD_Groups create $groupid
GiD_EntitiesGroups assign $groupid nodes [GiD_Mesh list node]
::write::writeGroupSubModelPart Boussinesq $groupid "Nodes"
::write::writeGroupSubModelPartAsGeometry $groupid
GiD_Groups delete $groupid
}

Expand Down
15 changes: 11 additions & 4 deletions kratos.gid/apps/Buoyancy/write/writeProjectParameters.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ proc ::Buoyancy::write::getParametersDict { } {
# processes
dict set projectParametersDict processes [Buoyancy::write::GetProcesses_Dict]

# modelers
set projectParametersDict [::write::GetModelersDict $projectParametersDict]

return $projectParametersDict
}

Expand Down Expand Up @@ -78,18 +81,22 @@ proc ::Buoyancy::write::GetSolverSettings_Dict { } {

# Fluid things
write::SetConfigurationAttributes [Fluid::write::GetAttributes]
#Fluid::write::SetAttribute materials_file "BuoyancyMaterials.json"
dict set settings fluid_solver_settings [Fluid::write::getSolverSettingsDict]
dict unset settings fluid_solver_settings model_import_settings
dict set settings fluid_solver_settings model_import_settings input_type "use_input_model_part"

set nDim [expr [string range [write::getValue nDim] 0 0]]
dict set settings fluid_solver_settings domain_size $nDim

# Thermal things
set prev [ConvectionDiffusion::write::GetAttribute materials_file]
ConvectionDiffusion::write::SetAttribute materials_file "BuoyancyMaterials.json"
write::SetConfigurationAttributes [ConvectionDiffusion::write::GetAttributes]
# write::SetConfigurationAttributes [ConvectionDiffusion::write::GetAttributes]
dict set settings thermal_solver_settings [ConvectionDiffusion::write::GetSolverSettingsDict]
ConvectionDiffusion::write::SetAttribute materials_file $prev

dict unset settings thermal_solver_settings model_import_settings
dict set settings thermal_solver_settings model_import_settings input_type "use_input_model_part"

dict set settings thermal_solver_settings problem_domain_sub_model_part_list [list [dict get $settings fluid_solver_settings volume_model_part_name]]

Expand All @@ -101,7 +108,7 @@ proc ::Buoyancy::write::GetProcesses_Dict { } {
write::SetConfigurationAttributes [Fluid::write::GetAttributes]
lappend constraints_process_list {*}[write::getConditionsParametersDict [Fluid::write::GetAttribute conditions_un] ]
lappend constraints_process_list {*}[write::getConditionsParametersDict [Fluid::write::GetAttribute nodal_conditions_un] "Nodal"]
write::SetConfigurationAttributes [ConvectionDiffusion::write::GetAttributes]
# write::SetConfigurationAttributes [ConvectionDiffusion::write::GetAttributes]
lappend constraints_process_list {*}[write::getConditionsParametersDict [ConvectionDiffusion::write::GetAttribute nodal_conditions_un] "Nodal"]
lappend constraints_process_list {*}[write::getConditionsParametersDict [ConvectionDiffusion::write::GetAttribute conditions_un]]
lappend constraints_process_list [GetBoussinesqProcess]
Expand All @@ -123,4 +130,4 @@ proc ::Buoyancy::write::GetBoussinesqProcess { } {
dict set process Parameters $params

return $process
}
}

0 comments on commit 40ed0f0

Please sign in to comment.