diff --git a/kratos.gid/apps/Fluid/write/write.tcl b/kratos.gid/apps/Fluid/write/write.tcl
index a2cdbbce2..4eeedc252 100644
--- a/kratos.gid/apps/Fluid/write/write.tcl
+++ b/kratos.gid/apps/Fluid/write/write.tcl
@@ -17,6 +17,7 @@ proc Fluid::write::Init { } {
SetAttribute materials_un FLMaterials
SetAttribute results_un FLResults
SetAttribute drag_un FLDrags
+ SetAttribute wss_un FLWss
SetAttribute time_parameters_un FLTimeParameters
SetAttribute writeCoordinatesByGroups 0
SetAttribute validApps [list "Fluid"]
@@ -25,6 +26,7 @@ proc Fluid::write::Init { } {
SetAttribute properties_location json
SetAttribute model_part_name "FluidModelPart"
SetAttribute output_model_part_name "fluid_computational_model_part"
+ SetAttribute skin_group_name "_HIDDEN__SKIN_"
variable last_condition_iterator
set last_condition_iterator 0
}
@@ -62,6 +64,7 @@ proc Fluid::write::writeModelPartEvent { } {
# Clean
unset Fluid::write::FluidConditionMap
+ GiD_Groups delete [GetAttribute skin_group_name]
}
proc Fluid::write::writeCustomFilesEvent { } {
# Write the fluid materials json file
@@ -108,6 +111,7 @@ proc Fluid::write::writeProperties { } {
proc Fluid::write::writeConditions { } {
writeBoundaryConditions
writeDrags
+ writeWss
}
proc Fluid::write::getFluidModelPartFilename { } {
@@ -135,6 +139,8 @@ proc Fluid::write::writeBoundaryConditions { } {
}
}
set skin_group_name "_HIDDEN__SKIN_"
+ set skin_group_name [GetAttribute skin_group_name]
+
if {[GiD_Groups exists $skin_group_name]} {GiD_Groups delete $skin_group_name}
spdAux::MergeGroups $skin_group_name $groups
@@ -148,8 +154,6 @@ proc Fluid::write::writeBoundaryConditions { } {
}
set last_condition_iterator [write::writeGroupConditionByUniqueId $skin_group_name $kname $nnodes 0 $Fluid::write::FluidConditionMap]
- # Clean
- GiD_Groups delete $skin_group_name
}
proc Fluid::write::writeDrags { } {
@@ -158,6 +162,12 @@ proc Fluid::write::writeDrags { } {
Model::ForgetNodalCondition Drag
}
+proc Fluid::write::writeWss { } {
+ lappend ::Model::NodalConditions [::Model::NodalCondition new Wss]
+ write::writeNodalConditions [GetAttribute wss_un]
+ Model::ForgetNodalCondition Wss
+}
+
proc Fluid::write::writeMeshes { } {
write::writePartSubModelPart
write::writeNodalConditions [GetAttribute nodal_conditions_un]
@@ -191,6 +201,8 @@ proc Fluid::write::writeConditionsMesh { } {
}
}
+ # ::write::writeGroupSubModelPartByUniqueId "GENERIC" _HIDDEN__SKIN_ $Fluid::write::FluidConditionMap "Conditions"
+
foreach condid $grouped_conditions {
set xp "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n='$condid'\]/group"
set groups_dict [dict create ]
@@ -200,6 +212,8 @@ proc Fluid::write::writeConditionsMesh { } {
}
write::writeConditionGroupedSubmodelPartsByUniqueId $condid $groups_dict $Fluid::write::FluidConditionMap
}
+
+
}
proc Fluid::write::InitConditionsMap { {map "" } } {
diff --git a/kratos.gid/apps/Fluid/write/writeByGiDId.tcl b/kratos.gid/apps/Fluid/write/writeByGiDId.tcl
index 9b1bc9546..18a33ec96 100644
--- a/kratos.gid/apps/Fluid/write/writeByGiDId.tcl
+++ b/kratos.gid/apps/Fluid/write/writeByGiDId.tcl
@@ -14,6 +14,7 @@ proc Fluid::write::Init { } {
SetAttribute conditions_un FLBC
SetAttribute materials_un FLMaterials
SetAttribute drag_un FLDrags
+ SetAttribute wss_un FLWss
SetAttribute writeCoordinatesByGroups 0
SetAttribute validApps [list "Fluid"]
SetAttribute main_script_file "KratosFluid.py"
@@ -88,6 +89,7 @@ proc Fluid::write::writeProperties { } {
proc Fluid::write::writeConditions { } {
writeBoundaryConditions
writeDrags
+ writeWss
}
proc Fluid::write::writeBoundaryConditions { } {
@@ -104,6 +106,12 @@ proc Fluid::write::writeDrags { } {
Model::ForgetNodalCondition Drag
}
+proc Fluid::write::writeWss { } {
+ lappend ::Model::NodalConditions [::Model::NodalCondition new Wss]
+ write::writeNodalConditions [GetAttribute wss]
+ Model::ForgetNodalCondition Wss
+}
+
proc Fluid::write::writeMeshes { } {
write::writePartSubModelPart
write::writeNodalConditions [GetAttribute nodal_conditions_un]
diff --git a/kratos.gid/apps/Fluid/write/writeProjectParameters.tcl b/kratos.gid/apps/Fluid/write/writeProjectParameters.tcl
index 73bb986a0..5fabeed88 100644
--- a/kratos.gid/apps/Fluid/write/writeProjectParameters.tcl
+++ b/kratos.gid/apps/Fluid/write/writeProjectParameters.tcl
@@ -35,10 +35,65 @@ proc Fluid::write::getAuxiliarProcessList {} {
set process_list [list ]
foreach process [getDragProcessList] {lappend process_list $process}
+ foreach process [getWssProcessList] {lappend process_list $process}
return $process_list
}
+# proc Fluid::write::getWssProcessList {} {
+# set root [customlib::GetBaseRoot]
+
+# set process_list [list ]
+# set xp1 "[spdAux::getRoute [GetAttribute wss_un]]"
+
+# set write_output [write::getStringBinaryFromValue [write::getValueByNode [$root selectNodes "$xp1/value\[@n='write_wss_output_file'\]"]]]
+# set print_screen [write::getStringBinaryFromValue [write::getValueByNode [$root selectNodes "$xp1/value\[@n='print_wss_to_screen'\]"]]]
+
+# set pdict [dict create]
+# dict set pdict "python_module" "compute_wss_statistics_process"
+# dict set pdict "kratos_module" "KratosMultiphysics.FluidDynamicsBiomedicalApplication"
+# dict set pdict "process_name" "ComputeWssStatisticsProcess"
+# set params [dict create]
+# dict set params "model_part_name" GENERIC__HIDDEN__SKIN_
+# dict set params "calculate_wss" $print_screen
+# dict set params "calculate_osi" true
+# dict set pdict "Parameters" $params
+
+# lappend process_list $pdict
+
+
+# return $process_list
+# }
+
+proc Fluid::write::getWssProcessList {} {
+ set root [customlib::GetBaseRoot]
+
+ set process_list [list ]
+ set xp1 "[spdAux::getRoute [GetAttribute wss_un]]/group"
+ set groups [$root selectNodes $xp1]
+ foreach group $groups {
+ set groupName [$group @n]
+ set groupName [write::GetWriteGroupName $groupName]
+ set cid [[$group parent] @n]
+ set submodelpart [::write::getSubModelPartId $cid $groupName]
+
+ set write_output [write::getStringBinaryFromValue [write::getValueByNode [$group selectNodes "./value\[@n='write_wss_output_file'\]"]]]
+ set print_screen [write::getStringBinaryFromValue [write::getValueByNode [$group selectNodes "./value\[@n='print_wss_to_screen'\]"]]]
+
+ set pdict [dict create]
+ dict set pdict "python_module" "compute_wss_statistics_process"
+ dict set pdict "kratos_module" "KratosMultiphysics.FluidDynamicsBiomedicalApplication"
+ dict set pdict "process_name" "ComputeWssStatisticsProcess"
+ set params [dict create]
+ dict set params "model_part_name" [write::GetModelPartNameWithParent $submodelpart]
+ dict set params "write_wss_output_file" $write_output
+ dict set params "print_wss_to_screen" $print_screen
+ dict set pdict "Parameters" $params
+
+ lappend process_list $pdict
+ }
+}
+
proc Fluid::write::getDragProcessList {} {
set root [customlib::GetBaseRoot]
diff --git a/kratos.gid/apps/Fluid/xml/ConstitutiveLaws.xml b/kratos.gid/apps/Fluid/xml/ConstitutiveLaws.xml
index e43c5960f..99c761e7e 100644
--- a/kratos.gid/apps/Fluid/xml/ConstitutiveLaws.xml
+++ b/kratos.gid/apps/Fluid/xml/ConstitutiveLaws.xml
@@ -20,18 +20,33 @@
-
+
+
- -->
+
diff --git a/kratos.gid/apps/Fluid/xml/Elements.xml b/kratos.gid/apps/Fluid/xml/Elements.xml
index 3f6cc3cc1..8479d19bc 100644
--- a/kratos.gid/apps/Fluid/xml/Elements.xml
+++ b/kratos.gid/apps/Fluid/xml/Elements.xml
@@ -43,6 +43,7 @@
+
@@ -91,12 +92,15 @@
+
+
+
@@ -208,4 +212,4 @@
-
+
\ No newline at end of file
diff --git a/kratos.gid/apps/Fluid/xml/NodalConditions.xml b/kratos.gid/apps/Fluid/xml/NodalConditions.xml
index 93ac31730..37ba30dd0 100644
--- a/kratos.gid/apps/Fluid/xml/NodalConditions.xml
+++ b/kratos.gid/apps/Fluid/xml/NodalConditions.xml
@@ -14,5 +14,12 @@
+
+
+
+
+
+
+
diff --git a/kratos.gid/apps/Fluid/xml/WSS.spd b/kratos.gid/apps/Fluid/xml/WSS.spd
new file mode 100644
index 000000000..4731392de
--- /dev/null
+++ b/kratos.gid/apps/Fluid/xml/WSS.spd
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/kratos.gid/apps/Fluid/xml/XmlController.tcl b/kratos.gid/apps/Fluid/xml/XmlController.tcl
index eef23c0ff..21003019c 100644
--- a/kratos.gid/apps/Fluid/xml/XmlController.tcl
+++ b/kratos.gid/apps/Fluid/xml/XmlController.tcl
@@ -37,6 +37,13 @@ proc Fluid::xml::CustomTree { args } {
gid_groups_conds::addF $xpath include [list n Drag active 1 path {apps/Fluid/xml/Drag.spd}]
}
+ # WSS in output settings
+ set xpath "[spdAux::getRoute FLResults]/container\[@n='GiDOutput'\]"
+ if {[$root selectNodes "$xpath/condition\[@n='Wss'\]"] eq ""} {
+ gid_groups_conds::addF $xpath include [list n WSS active 1 path {apps/Fluid/xml/WSS.spd}]
+ }
+
+
customlib::ProcessIncludes $::Kratos::kratos_private(Path)
spdAux::parseRoutes