1+ namespace eval ::MdpaGenerator::write {
2+ namespace path ::MdpaGenerator
3+ Kratos::AddNamespace [namespace current]
4+
5+ # Namespace variables declaration
6+ variable writeCoordinatesByGroups
7+ variable writeAttributes
8+ variable ConditionMap
9+ # after regular conditions are written, we need this number in order to print the custom submodelpart conditions
10+ # only if are applied over things that are not in the skin
11+ variable last_condition_iterator
12+ }
13+
14+ proc ::MdpaGenerator::write::Init { } {
15+ # Namespace variables inicialization
16+
17+ variable last_condition_iterator
18+ set last_condition_iterator 0
19+
20+ variable writeAttributes
21+ set writeAttributes [dict create ]
22+ }
23+
24+ # MDPA write event
25+ proc ::MdpaGenerator::write::writeModelPartEvent { } {
26+ # Validation
27+ set err [Validate]
28+ if {$err ne " " } {error $err }
29+
30+ InitConditionsMap
31+ writeProperties
32+
33+ # Init data
34+ write::initWriteConfiguration [GetAttributes]
35+
36+ # Headers
37+ write::writeModelPartData
38+
39+ # Nodal coordinates
40+ write::writeNodalCoordinates
41+
42+ # Custom SubmodelParts
43+ variable last_condition_iterator
44+ write::writeBasicSubmodelPartsByUniqueId $MdpaGenerator::write::ConditionMap $last_condition_iterator
45+
46+ # Clean
47+ unset ::MdpaGenerator::write::ConditionMap
48+ }
49+
50+ proc ::MdpaGenerator::write::writeCustomFilesEvent { } {
51+ }
52+
53+
54+ proc ::MdpaGenerator::write::Validate {} {
55+ set err " "
56+
57+ return $err
58+ }
59+
60+ # MDPA Blocks
61+ proc ::MdpaGenerator::write::writeProperties { } {
62+ # Begin Properties
63+ write::WriteString " Begin Properties 0"
64+ write::WriteString " End Properties"
65+ write::WriteString " "
66+ }
67+
68+ proc ::MdpaGenerator::write::InitConditionsMap { {map " " } } {
69+
70+ variable ConditionMap
71+ if {$map eq " " } {
72+ set ConditionMap [objarray new intarray [expr [GiD_Info Mesh MaxNumElements] +1] 0]
73+ } {
74+ set ConditionMap $map
75+ }
76+ }
77+ proc ::MdpaGenerator::write::FreeConditionsMap { } {
78+
79+ variable ConditionMap
80+ unset ConditionMap
81+ }
82+
83+ proc ::MdpaGenerator::write::GetAttribute {att} {
84+ variable writeAttributes
85+ return [dict get $writeAttributes $att ]
86+ }
87+
88+ proc ::MdpaGenerator::write::GetAttributes {} {
89+ variable writeAttributes
90+ return $writeAttributes
91+ }
92+
93+ proc ::MdpaGenerator::write::SetAttribute {att val} {
94+ variable writeAttributes
95+ dict set writeAttributes $att $val
96+ }
97+
98+ proc ::MdpaGenerator::write::AddAttribute {att val} {
99+ variable writeAttributes
100+ dict lappend writeAttributes $att $val
101+ }
102+
103+ proc ::MdpaGenerator::write::AddAttributes {configuration} {
104+ variable writeAttributes
105+ set writeAttributes [dict merge $writeAttributes $configuration ]
106+ }
107+
108+ proc ::MdpaGenerator::write::writeParametersEvent { } {
109+
110+ }
0 commit comments