Skip to content

Commit 2b74bf3

Browse files
Implement WriteWallCustomDEMSmp
1 parent a4b8eec commit 2b74bf3

2 files changed

Lines changed: 33 additions & 12 deletions

File tree

kratos.gid/apps/DEM/start.tcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ proc ::DEM::CustomMenus { } {
6060
proc ::DEM::BeforeMeshGeneration {elementsize} {
6161
set root [customlib::GetBaseRoot]
6262
set xp1 "[spdAux::getRoute DEMParts]/group"
63-
foreach group [$root selectNodes $xp1] {
63+
foreach group [concat [$root selectNodes $xp1] [DEM::write::GetDEMGroupsCustomSubmodelpart]] {
6464
set groupid [$group @n]
6565
set advanced_meshing_features [write::getValueByNode [$group selectNodes "./value\[@n='AdvancedMeshingFeatures'\]"]]
6666
if {![write::isBooleanTrue $advanced_meshing_features]} {

kratos.gid/apps/DEM/write/writeMDPA_Parts.tcl

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3736
proc 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+
}
4361
proc 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+
92113
proc DEM::write::writeDEMConditionMeshes { } {
93114
set i 0
94115
foreach {cond group_list} [GetSpheresGroupsListInConditions] {

0 commit comments

Comments
 (0)