From bdbb3c6c2082e39a489e2a5bc1aee2fc5825fdb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Iraz=C3=A1bal=20Gonz=C3=A1lez?= Date: Tue, 27 Oct 2026 12:41:51 +0100 Subject: [PATCH] Enhance nodal Young's modulus output handling and update XML description for compatibility --- .../apps/Dam/write/writeProjectParameters.tcl | 29 +++++++++++++++---- kratos.gid/apps/Dam/xml/Results.spd | 2 +- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/kratos.gid/apps/Dam/write/writeProjectParameters.tcl b/kratos.gid/apps/Dam/write/writeProjectParameters.tcl index 630721b3f..d3461c5d1 100644 --- a/kratos.gid/apps/Dam/write/writeProjectParameters.tcl +++ b/kratos.gid/apps/Dam/write/writeProjectParameters.tcl @@ -461,7 +461,19 @@ proc ::Dam::write::GetOutputDict { {appid ""} } { dict set resultDict plane_output [write::GetCutPlanesList Results] - dict set resultDict nodal_results [write::GetResultsList Results OnNodes] + # NODAL_YOUNG_MODULUS is the retained XML compatibility key. The actual + # historical output variable is YOUNG_MODULUS. + set historicalNodalResults [list] + foreach result [write::GetResultsList Results OnNodes] { + set outputResult $result + if {$result eq "NODAL_YOUNG_MODULUS"} { + set outputResult "YOUNG_MODULUS" + } + if {[lsearch -exact $historicalNodalResults $outputResult] < 0} { + lappend historicalNodalResults $outputResult + } + } + dict set resultDict nodal_results $historicalNodalResults dict set resultDict gauss_point_results [write::GetResultsList Results OnElement] dict set outputDict "result_file_configuration" $resultDict @@ -744,18 +756,25 @@ proc ::Dam::write::GetVTKGidAvailabilityNote { {plural 0} } { } # Reuses the existing GiD nodal result selection, keeping only variables that -# are safe for the standard VTK writer. +# are safe for the standard VTK writer. NODAL_YOUNG_MODULUS is the retained XML +# compatibility key and is written as historical YOUNG_MODULUS. proc ::Dam::write::GetVTKNodalResultsList { } { set supportedVariables [list \ DISPLACEMENT REACTION VELOCITY ACCELERATION PRESSURE TEMPERATURE \ NODAL_REFERENCE_TEMPERATURE HEAT_FLUX FACE_HEAT_FLUX VOLUME_ACCELERATION \ - POSITIVE_FACE_PRESSURE NODAL_JOINT_WIDTH Vi_POSITIVE Viii_POSITIVE] + POSITIVE_FACE_PRESSURE NODAL_JOINT_WIDTH Vi_POSITIVE Viii_POSITIVE YOUNG_MODULUS] set gidNote [Dam::write::GetVTKGidAvailabilityNote 0] set vtkResults [list] foreach result [write::GetResultsList Results OnNodes] { - if {[lsearch -exact $supportedVariables $result] >= 0} { - lappend vtkResults $result + set outputResult $result + if {$result eq "NODAL_YOUNG_MODULUS"} { + set outputResult "YOUNG_MODULUS" + } + if {[lsearch -exact $supportedVariables $outputResult] >= 0} { + if {[lsearch -exact $vtkResults $outputResult] < 0} { + lappend vtkResults $outputResult + } } else { W "Dam VTK output: nodal result '$result' is not available for VTK output and will be omitted. $gidNote" } diff --git a/kratos.gid/apps/Dam/xml/Results.spd b/kratos.gid/apps/Dam/xml/Results.spd index 59ea0c32f..108b54273 100644 --- a/kratos.gid/apps/Dam/xml/Results.spd +++ b/kratos.gid/apps/Dam/xml/Results.spd @@ -33,7 +33,7 @@ - +