@@ -11,7 +11,7 @@ proc DEM::write::WriteMDPAParts { } {
1111
1212 # Nodal coordinates (only for DEM Parts <inefficient> )
1313 write::writeNodalCoordinatesOnParts
14- write::writeNodalCoordinatesOnGroups [GetDEMGroupsCustomSubmodelpart ]
14+ write::writeNodalCoordinatesOnGroups [DEM::write::GetDEMGroupNamesCustomSubmodelpart ]
1515 write::writeNodalCoordinatesOnGroups [WriteWallGraphsFlag]
1616 write::writeNodalCoordinatesOnGroups [GetDEMGroupsInitialC]
1717 write::writeNodalCoordinatesOnGroups [GetDEMGroupsBoundayC]
@@ -33,21 +33,38 @@ proc DEM::write::WriteMDPAParts { } {
3333 WriteWallCustomDEMSmp; # not required for dem.
3434}
3535
36- # # TODO: proc under revision. Duplicated code. Unused in some situations
3736proc DEM::write::WriteWallCustomDEMSmp { } {
38- foreach groupid [GetDEMGroupsCustomSubmodelpart] {
37+ foreach group [GetDEMGroupsCustomSubmodelpart] {
38+ set groupid [write::GetWriteGroupName [$group @n]]
39+
40+ # TODO: Missing write properties for Custom Submodelparts
41+
42+ # Nodes are previously printed
43+ # Print elements and connectivities
44+ set elem [write::getValueByNode [$group selectNodes " .//value\[ @n='Element']" ] ]
45+ write::writeGroupElementConnectivities $group $elem
46+
47+ DEM::write::writeSphereRadiusOnGroup $group
48+
3949 write::writeGroupSubModelPart DEM-CustomSmp $groupid Elements
4050 }
4151}
4252
53+ proc DEM::write::GetDEMGroupNamesCustomSubmodelpart { } {
54+ set groups [list ]
55+ foreach group [DEM::write::GetDEMGroupsCustomSubmodelpart] {
56+ set groupid [$group @n]
57+ lappend groups [write::GetWriteGroupName $groupid ]
58+ }
59+ return $groups
60+ }
4361proc DEM::write::GetDEMGroupsCustomSubmodelpart { } {
4462 set groups [list ]
4563 set xp2 " [ spdAux::getRoute [GetAttribute conditions_un] ]/condition\[ @n = 'DEM-CustomSmp'\] /group"
4664 foreach group [[customlib::GetBaseRoot] selectNodes $xp2 ] {
4765 set destination_mdpa [write::getValueByNode [$group selectNodes " ./value\[ @n='WhatMdpa'\] " ]]
4866 if {$destination_mdpa == " DEM" } {
49- set groupid [$group @n]
50- lappend groups [write::GetWriteGroupName $groupid ]
67+ lappend groups $group
5168 }
5269 }
5370 return $groups
@@ -80,15 +97,19 @@ proc DEM::write::writeSphereRadius { } {
8097 set root [customlib::GetBaseRoot]
8198 set xp1 " [ spdAux::getRoute [GetAttribute parts_un] ]/group"
8299 foreach group [$root selectNodes $xp1 ] {
83- set groupid [$group @n]
84- set print_groupid [write::GetWriteGroupName $groupid ]
85- write::WriteString " Begin NodalData RADIUS // GUI group identifier: $print_groupid "
86- GiD_WriteCalculationFile connectivities [dict create $groupid " %.0s %10d 0 %10g\n " ]
87- write::WriteString " End NodalData"
88- write::WriteString " "
100+ DEM::write::writeSphereRadiusOnGroup $group
89101 }
90102}
91103
104+ proc DEM::write::writeSphereRadiusOnGroup { group } {
105+ set groupid [$group @n]
106+ set print_groupid [write::GetWriteGroupName $groupid ]
107+ write::WriteString " Begin NodalData RADIUS // GUI group identifier: $print_groupid "
108+ GiD_WriteCalculationFile connectivities [dict create $groupid " %.0s %10d 0 %10g\n " ]
109+ write::WriteString " End NodalData"
110+ write::WriteString " "
111+ }
112+
92113proc DEM::write::writeDEMConditionMeshes { } {
93114 set i 0
94115 foreach {cond group_list} [GetSpheresGroupsListInConditions] {
0 commit comments