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