Skip to content

Commit 8c61289

Browse files
removed some duplicated code and reorganized calls
some procs could also be removed since seem to be unused
1 parent fc9f43c commit 8c61289

4 files changed

Lines changed: 95 additions & 249 deletions

File tree

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

Lines changed: 59 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
proc CDEM::write::WriteMDPAParts { } {
1+
proc DEM::write::WriteMDPAParts { } {
22
variable last_property_id
33

44
# Prepare properties
@@ -9,25 +9,25 @@ proc CDEM::write::WriteMDPAParts { } {
99
write::writeModelPartData
1010

1111
# Materials
12-
writeMaterialsParts
12+
CDEM::write::writeMaterialsParts
1313

1414
# Nodal coordinates (only for DEM Parts <inefficient> )
1515
write::writeNodalCoordinatesOnParts
1616
write::writeNodalCoordinatesOnGroups [GetDEMGroupsCustomSubmodelpart]
17-
write::writeNodalCoordinatesOnGroups [GetDEMGroupsInitialC]
18-
write::writeNodalCoordinatesOnGroups [GetDEMGroupsBoundayC]
17+
write::writeNodalCoordinatesOnGroups [DEM::write::GetDEMGroupsInitialC]
18+
write::writeNodalCoordinatesOnGroups [DEM::write::GetDEMGroupsBoundayC]
1919

2020
# Element connectivities
2121
write::writeElementConnectivities
2222

2323
# Begin NodalData RADIUS
24-
writeSphereRadius
24+
CDEM::write::writeSphereRadius
2525

2626
# Begin NodalData COHESIVE_GROUP
27-
writeCohesiveGroups
27+
CDEM::write::writeCohesiveGroups
2828

2929
# Begin NodalData SKIN_SPHERE
30-
writeSkinSphereNodes
30+
CDEM::write::writeSkinSphereNodes
3131

3232
# SubmodelParts
3333
write::writePartSubModelPart
@@ -38,6 +38,7 @@ proc CDEM::write::WriteMDPAParts { } {
3838
#WriteWallCustomDEMSmp not required for dem.
3939
}
4040

41+
## TODO: proc under revision. Duplicated code. Unused in some situations
4142
proc CDEM::write::WriteWallCustomDEMSmp { } {
4243
set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-CustomSmp'\]/group"
4344
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
@@ -70,27 +71,6 @@ proc CDEM::write::GetDEMGroupsCustomSubmodelpart { } {
7071
return $groups
7172
}
7273

73-
proc CDEM::write::GetDEMGroupsInitialC { } {
74-
set groups [list ]
75-
set xp3 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityIC'\]/group"
76-
foreach group [[customlib::GetBaseRoot] selectNodes $xp3] {
77-
set groupid [$group @n]
78-
lappend groups [write::GetWriteGroupName $groupid]
79-
}
80-
return $groups
81-
}
82-
83-
proc CDEM::write::GetDEMGroupsBoundayC { } {
84-
set groups [list ]
85-
set xp4 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityBC'\]/group"
86-
foreach group [[customlib::GetBaseRoot] selectNodes $xp4] {
87-
set groupid [$group @n]
88-
lappend groups [write::GetWriteGroupName $groupid]
89-
}
90-
return $groups
91-
}
92-
93-
9474
proc CDEM::write::writeSphereRadius { } {
9575
set root [customlib::GetBaseRoot]
9676
set xp1 "[spdAux::getRoute [GetAttribute partscont_un]]/group"
@@ -147,66 +127,68 @@ proc CDEM::write::writeSkinSphereNodes { } {
147127

148128

149129

150-
proc CDEM::write::GetNodalConditionsGroups { {include_cond 0} } {
151-
set groups [list ]
152-
set xp1 "[spdAux::getRoute [GetAttribute nodal_conditions_un]]/condition/group"
153-
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
154-
set groupid [$group @n]
155-
if {$include_cond} {lappend groups [[$group parent] @n]}
156-
lappend groups [write::GetWriteGroupName $groupid]
157-
}
158-
return $groups
159-
}
130+
# proc CDEM::write::GetNodalConditionsGroups { {include_cond 0} } { # TODO UNUSED CODE
131+
# set groups [list ]
132+
# set xp1 "[spdAux::getRoute [GetAttribute nodal_conditions_un]]/condition/group"
133+
# foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
134+
# set groupid [$group @n]
135+
# if {$include_cond} {lappend groups [[$group parent] @n]}
136+
# lappend groups [write::GetWriteGroupName $groupid]
137+
# }
138+
# return $groups
139+
# }
160140

161141
# proc DEM::write::write2VelocityMeshes { } {
162142
# foreach {cid groupid} [DEM::write::GetNodalConditionsGroups 1] {
163143
# ::write::writeGroupSubModelPart $cid $groupid "nodal"
164144
# }
165145
# }
166146

167-
proc CDEM::write::GetSpheresGroupsListInConditions { } {
168-
set conds_groups_dict [dict create ]
169-
set groups [list ]
170147

171-
# Get all the groups with spheres
172-
foreach group [GetSpheresGroups] {
173-
foreach surface [GiD_EntitiesGroups get $group elements] {
174-
foreach involved_group [GiD_EntitiesGroups entity_groups elements $surface] {
175-
set involved_group_id [write::GetWriteGroupName $involved_group]
176-
if {$involved_group_id ni $groups} {lappend groups $involved_group_id}
177-
}
178-
}
179-
}
148+
# proc CDEM::write::GetSpheresGroupsListInConditions { } { # TODO: DUPLICATED CODE
149+
# set conds_groups_dict [dict create ]
150+
# set groups [list ]
180151

181-
# Find the relations condition -> group
182-
set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition"
183-
foreach cond [[customlib::GetBaseRoot] selectNodes $xp1] {
184-
set condid [$cond @n]
185-
foreach cond_group [$cond selectNodes "group"] {
186-
set group [write::GetWriteGroupName [$cond_group @n]]
187-
if {$group in $groups} {dict lappend conds_groups_dict $condid [$cond_group @n]}
188-
}
189-
}
190-
return $conds_groups_dict
191-
}
152+
# # Get all the groups with spheres
153+
# foreach group [GetSpheresGroups] {
154+
# foreach surface [GiD_EntitiesGroups get $group elements] {
155+
# foreach involved_group [GiD_EntitiesGroups entity_groups elements $surface] {
156+
# set involved_group_id [write::GetWriteGroupName $involved_group]
157+
# if {$involved_group_id ni $groups} {lappend groups $involved_group_id}
158+
# }
159+
# }
160+
# }
192161

193-
proc CDEM::write::GetSpheresGroups { } {
194-
set groups [list ]
195-
if {$::Model::SpatialDimension eq "2D"} { set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityBC2D'\]/group"
196-
} else {set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityBC'\]/group"}
197-
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
198-
set groupid [$group @n]
199-
lappend groups [write::GetWriteGroupName $groupid]
200-
}
201-
if {$::Model::SpatialDimension eq "2D"} { set xp2 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityIC2D'\]/group"
202-
} else {set xp2 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityIC'\]/group"}
203-
foreach group [[customlib::GetBaseRoot] selectNodes $xp2] {
204-
set groupid [$group @n]
205-
lappend groups [write::GetWriteGroupName $groupid]
206-
}
162+
# # Find the relations condition -> group
163+
# set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition"
164+
# foreach cond [[customlib::GetBaseRoot] selectNodes $xp1] {
165+
# set condid [$cond @n]
166+
# foreach cond_group [$cond selectNodes "group"] {
167+
# set group [write::GetWriteGroupName [$cond_group @n]]
168+
# if {$group in $groups} {dict lappend conds_groups_dict $condid [$cond_group @n]}
169+
# }
170+
# }
171+
# return $conds_groups_dict
172+
# }
207173

208-
return $groups
209-
}
174+
175+
# proc CDEM::write::GetSpheresGroups { } { # TODO: duplicated code
176+
# set groups [list ]
177+
# if {$::Model::SpatialDimension eq "2D"} { set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityBC2D'\]/group"
178+
# } else {set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityBC'\]/group"}
179+
# foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
180+
# set groupid [$group @n]
181+
# lappend groups [write::GetWriteGroupName $groupid]
182+
# }
183+
# if {$::Model::SpatialDimension eq "2D"} { set xp2 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityIC2D'\]/group"
184+
# } else {set xp2 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-VelocityIC'\]/group"}
185+
# foreach group [[customlib::GetBaseRoot] selectNodes $xp2] {
186+
# set groupid [$group @n]
187+
# lappend groups [write::GetWriteGroupName $groupid]
188+
# }
189+
190+
# return $groups
191+
# }
210192

211193
proc CDEM::write::writeMaterialsParts { } {
212194
variable partsProperties

kratos.gid/apps/CDEM/write/writeMDPA_Walls.tcl

Lines changed: 4 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ proc DEM::write::WriteMDPAWalls { } {
1111
write::writeNodalCoordinatesOnGroups [GetNodesForGraphs]
1212

1313
# Nodal conditions and conditions
14-
writeConditions $wall_properties
14+
CDEM::write::writeConditions $wall_properties
1515

1616
# SubmodelParts
1717
if {$::Model::SpatialDimension eq "2D"} {CDEM::write::writeWallConditionMeshes2D
@@ -24,71 +24,6 @@ proc DEM::write::WriteMDPAWalls { } {
2424
}
2525

2626

27-
28-
proc CDEM::write::WriteWallProperties { } {
29-
#set print_list [list "FRICTION" "WALL_COHESION" "COMPUTE_WEAR" "SEVERITY_OF_WEAR" "IMPACT_WEAR_SEVERITY" "BRINELL_HARDNESS" "YOUNG_MODULUS" "POISSON_RATIO"]
30-
set wall_properties [dict create ]
31-
set cnd [Model::getCondition "DEM-FEM-Wall"]
32-
33-
if {$::Model::SpatialDimension eq "2D"} {set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-FEM-Wall2D'\]/group"
34-
} else { set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-FEM-Wall'\]/group"
35-
}
36-
37-
#set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-FEM-Wall'\]/group"
38-
set i $DEM::write::last_property_id
39-
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
40-
incr i
41-
write::WriteString "Begin Properties $i"
42-
#foreach {prop obj} [$cnd getAllInputs] {
43-
# if {$prop in $print_list} {
44-
# set v [write::getValueByNode [$group selectNodes "./value\[@n='$prop'\]"]]
45-
# write::WriteString " $prop $v"
46-
# }
47-
#}
48-
49-
set friction_value [write::getValueByNode [$group selectNodes "./value\[@n='friction_angle'\]"]]
50-
set pi $MathUtils::PI
51-
set propvalue [expr {tan($friction_value*$pi/180.0)}]
52-
write::WriteString " FRICTION $propvalue"
53-
#write::WriteString " FRICTION [write::getValueByNode [$group selectNodes "./value\[@n='friction_coeff'\]"]]"
54-
write::WriteString " WALL_COHESION [write::getValueByNode [$group selectNodes "./value\[@n='WallCohesion'\]"]]"
55-
set compute_wear_bool [write::getValueByNode [$group selectNodes "./value\[@n='DEM_Wear'\]"]]
56-
if {[write::isBooleanTrue $compute_wear_bool]} {
57-
set compute_wear 1
58-
set severiy_of_wear [write::getValueByNode [$group selectNodes "./value\[@n='K_Abrasion'\]"]]
59-
set impact_wear_severity [write::getValueByNode [$group selectNodes "./value\[@n='K_Impact'\]"]]
60-
set brinell_hardness [write::getValueByNode [$group selectNodes "./value\[@n='H_Brinell'\]"]]
61-
} else {
62-
set compute_wear 0
63-
set severiy_of_wear 0.001
64-
set impact_wear_severity 0.001
65-
set brinell_hardness 200.0
66-
}
67-
set rigid_structure_bool [write::getValueByNode [$group selectNodes "./value\[@n='RigidPlane'\]"]]
68-
if {[write::isBooleanTrue $rigid_structure_bool]} {
69-
set young_modulus [write::getValueByNode [$group selectNodes "./value\[@n='YoungModulus'\]"]]
70-
set poisson_ratio [write::getValueByNode [$group selectNodes "./value\[@n='PoissonRatio'\]"]]
71-
} else {
72-
set young_modulus 1e20
73-
set poisson_ratio 0.25
74-
}
75-
write::WriteString " COMPUTE_WEAR $compute_wear"
76-
write::WriteString " SEVERITY_OF_WEAR $severiy_of_wear"
77-
write::WriteString " IMPACT_WEAR_SEVERITY $impact_wear_severity"
78-
write::WriteString " BRINELL_HARDNESS $brinell_hardness"
79-
write::WriteString " YOUNG_MODULUS $young_modulus"
80-
write::WriteString " POISSON_RATIO $poisson_ratio"
81-
82-
write::WriteString "End Properties"
83-
set groupid [$group @n]
84-
dict set wall_properties $groupid $i
85-
incr DEM::write::last_property_id
86-
}
87-
write::WriteString ""
88-
return $wall_properties
89-
}
90-
91-
9227
proc CDEM::write::WriteWallCustomSmp { } {
9328
set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-CustomSmp'\]/group"
9429
set i $DEM::write::last_property_id
@@ -140,6 +75,7 @@ proc CDEM::write::GetNodesForGraphs { } {
14075
return $groups
14176
}
14277

78+
# TODO: SHOULD NO LONGER BE REQUIRED SINCE NEW PROC IN DEM::
14379
proc CDEM::write::writeConditions { wall_properties } {
14480
foreach group [GetWallsGroups] {
14581
set mid [dict get $wall_properties $group]
@@ -158,79 +94,8 @@ proc CDEM::write::writeConditions { wall_properties } {
15894
}
15995

16096

161-
162-
proc CDEM::write::GetWallsGroups { } {
163-
set groups [list ]
164-
if {$::Model::SpatialDimension eq "2D"} {set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-FEM-Wall2D'\]/group"
165-
} else { set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-FEM-Wall'\]/group"
166-
}
167-
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
168-
set groupid [$group @n]
169-
lappend groups [write::GetWriteGroupName $groupid]
170-
}
171-
return $groups
172-
}
173-
174-
proc CDEM::write::GetWallsGroupsSmp { } {
175-
set groups [list ]
176-
set xp2 "[spdAux::getRoute [GetAttribute conditions_un]]/condition\[@n = 'DEM-CustomSmp'\]/group"
177-
foreach group [[customlib::GetBaseRoot] selectNodes $xp2] {
178-
set destination_mdpa [write::getValueByNode [$group selectNodes "./value\[@n='WhatMdpa'\]"]]
179-
if {$destination_mdpa == "FEM"} {
180-
set groupid [$group @n]
181-
lappend groups [write::GetWriteGroupName $groupid]
182-
}
183-
}
184-
return $groups
185-
}
186-
187-
proc CDEM::write::GetWallsGroupsListInConditions { } {
188-
set conds_groups_dict [dict create ]
189-
set groups [list ]
190-
191-
# Get all the groups with surfaces involved in walls
192-
foreach group [GetWallsGroups] {
193-
foreach surface [GiD_EntitiesGroups get $group surfaces] {
194-
foreach involved_group [GiD_EntitiesGroups entity_groups surfaces $surface] {
195-
set involved_group_id [write::GetWriteGroupName $involved_group]
196-
if {$involved_group_id ni $groups} {lappend groups $involved_group_id}
197-
}
198-
}
199-
}
200-
201-
foreach group [GetWallsGroups] {
202-
foreach line [GiD_EntitiesGroups get $group lines] {
203-
foreach involved_group [GiD_EntitiesGroups entity_groups lines $line] {
204-
set involved_group_id [write::GetWriteGroupName $involved_group]
205-
if {$involved_group_id ni $groups} {lappend groups $involved_group_id}
206-
}
207-
}
208-
}
209-
210-
# Find the relations condition -> group
211-
set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition"
212-
foreach cond [[customlib::GetBaseRoot] selectNodes $xp1] {
213-
set condid [$cond @n]
214-
foreach cond_group [$cond selectNodes "group"] {
215-
set group [write::GetWriteGroupName [$cond_group @n]]
216-
if {$group in $groups} {dict lappend conds_groups_dict $condid [$cond_group @n]}
217-
}
218-
}
219-
return $conds_groups_dict
220-
}
221-
222-
proc CDEM::write::GetConditionsGroups { } {
223-
set groups [list ]
224-
set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition/group"
225-
foreach group [[customlib::GetBaseRoot] selectNodes $xp1] {
226-
set groupid [$group @n]
227-
lappend groups [write::GetWriteGroupName $groupid]
228-
}
229-
return $groups
230-
}
231-
97+
## CANNOT BE REMOVED SINCE SLIGHTLY DIFFERENT FROM DEM::
23298
proc CDEM::write::writeWallConditionMeshes { } {
233-
W "CDEMwalls- proc DEM::write::writeWallConditionMeshes"
23499
set i 0
235100
set cond "DEM-FEM-Wall"
236101
foreach group [GetWallsGroups] {
@@ -479,9 +344,8 @@ proc CDEM::write::writeWallConditionMeshes { } {
479344
}
480345
}
481346

482-
347+
## CANNOT BE REMOVED SINCE SLIGHTLY DIFFERENT FROM DEM::
483348
proc CDEM::write::writeWallConditionMeshes2D { } {
484-
W "CDEMwalls- proc CDEM::write::writeWallConditionMeshes2d"
485349
set i 0
486350
set cond "DEM-FEM-Wall2D"
487351
foreach group [GetWallsGroups] {

0 commit comments

Comments
 (0)