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+ set conditions_mode [write::getValue SMP_write_options condition_write_mode]
44+ variable last_condition_iterator
45+ set last_condition_iterator [expr [write::getValue SMP_write_options conditions_start_id] -1]
46+ switch $conditions_mode {
47+ " unique" {write::writeBasicSubmodelPartsByUniqueId $MdpaGenerator::write::ConditionMap $last_condition_iterator }
48+ " norepeat" {write::writeBasicSubmodelParts $last_condition_iterator }
49+ " gid-id" {}
50+ default {}
51+ }
52+
53+
54+ # Clean
55+ unset ::MdpaGenerator::write::ConditionMap
56+ }
57+
58+ proc ::MdpaGenerator::write::writeCustomFilesEvent { } {
59+ }
60+
61+
62+ proc ::MdpaGenerator::write::Validate {} {
63+ set err " "
64+
65+ return $err
66+ }
67+
68+ # MDPA Blocks
69+ proc ::MdpaGenerator::write::writeProperties { } {
70+ # Begin Properties
71+ write::WriteString " Begin Properties 0"
72+ write::WriteString " End Properties"
73+ write::WriteString " "
74+ }
75+
76+ proc ::MdpaGenerator::write::InitConditionsMap { {map " " } } {
77+
78+ variable ConditionMap
79+ if {$map eq " " } {
80+ set ConditionMap [objarray new intarray [expr [GiD_Info Mesh MaxNumElements] +1] 0]
81+ } {
82+ set ConditionMap $map
83+ }
84+ }
85+ proc ::MdpaGenerator::write::FreeConditionsMap { } {
86+
87+ variable ConditionMap
88+ unset ConditionMap
89+ }
90+
91+ proc ::MdpaGenerator::write::GetAttribute {att} {
92+ variable writeAttributes
93+ return [dict get $writeAttributes $att ]
94+ }
95+
96+ proc ::MdpaGenerator::write::GetAttributes {} {
97+ variable writeAttributes
98+ return $writeAttributes
99+ }
100+
101+ proc ::MdpaGenerator::write::SetAttribute {att val} {
102+ variable writeAttributes
103+ dict set writeAttributes $att $val
104+ }
105+
106+ proc ::MdpaGenerator::write::AddAttribute {att val} {
107+ variable writeAttributes
108+ dict lappend writeAttributes $att $val
109+ }
110+
111+ proc ::MdpaGenerator::write::AddAttributes {configuration} {
112+ variable writeAttributes
113+ set writeAttributes [dict merge $writeAttributes $configuration ]
114+ }
115+
116+ proc ::MdpaGenerator::write::writeParametersEvent { } {
117+
118+ }
0 commit comments