28CBendingPeriodicBoundaries::CBendingPeriodicBoundaries(
void)
38 Output <<
"*********************************" << endl;
39 Output <<
"*** BOUNDARY CONDITIONS ***" << endl;
40 Output <<
"*** Requires MPC.f subroutine ***" << endl;
41 Output <<
"*********************************" << endl;
43 Output <<
"*MPC, User, Mode=DOF " << endl;
44 Output <<
"1, FaceA, FaceB, ConstraintsDriver0, ConstraintsDriver3" << endl;
46 Output <<
"*MPC, User, Mode=DOF" << endl;
47 Output <<
"2, FaceA, FaceB, ConstraintsDriver5" << endl;
49 Output <<
"*MPC, User, Mode=DOF" << endl;
50 Output <<
"3, FaceA, FaceB, ConstraintsDriver3, ConstraintsDriver5" << endl;
52 Output <<
"**" << endl;
53 Output <<
"*MPC, User, Mode=DOF" << endl;
54 Output <<
"4, FaceC, FaceD, ConstraintsDriver2, ConstraintsDriver5" << endl;
56 Output <<
"*MPC, User, Mode=DOF" << endl;
57 Output <<
"5, FaceC, FaceD, ConstraintsDriver1, ConstraintsDriver4" << endl;
59 Output <<
"*MPC, User, Mode=DOF" << endl;
60 Output <<
"6, FaceC, FaceD, ConstraintsDriver4, ConstraintsDriver5" << endl;
62 Output <<
"**" << endl;
63 Output <<
"** Edges in x-direction" << endl;
64 Output <<
"**" << endl;
65 Output <<
"*MPC,USER,MODE=dof" << endl;
66 Output <<
"1, Edge2, Edge1, ConstraintsDriver0, ConstraintsDriver3" << endl;
68 Output <<
"*MPC, User, Mode=DOF" << endl;
69 Output <<
"2, Edge2, Edge1, ConstraintsDriver5" << endl;
71 Output <<
"*MPC, User, Mode=DOF" << endl;
72 Output <<
"3, Edge2, Edge1, ConstraintsDriver3, ConstraintsDriver5" << endl;
74 Output <<
"*MPC,USER,MODE=dof" << endl;
75 Output <<
"1, Edge6, Edge5, ConstraintsDriver0, ConstraintsDriver3" << endl;
77 Output <<
"*MPC, User, Mode=DOF" << endl;
78 Output <<
"2, Edge6, Edge5, ConstraintsDriver5" << endl;
80 Output <<
"*MPC, User, Mode=DOF" << endl;
81 Output <<
"3, Edge6, Edge5, ConstraintsDriver3, ConstraintsDriver5" << endl;
83 Output <<
"*MPC,USER,MODE=dof" << endl;
84 Output <<
"1, Edge7, Edge8, ConstraintsDriver0, ConstraintsDriver3" << endl;
86 Output <<
"*MPC, User, Mode=DOF" << endl;
87 Output <<
"2, Edge7, Edge8, ConstraintsDriver5" << endl;
89 Output <<
"*MPC, User, Mode=DOF" << endl;
90 Output <<
"3, Edge7, Edge8, ConstraintsDriver3, ConstraintsDriver5" << endl;
92 Output <<
"**" << endl;
93 Output <<
"** Masternodes in x-direction" << endl;
94 Output <<
"**" << endl;
95 Output <<
"*MPC,USER,MODE=dof" << endl;
96 Output <<
"1, MasterNode2, MasterNode1, ConstraintsDriver0, ConstraintsDriver3" << endl;
98 Output <<
"*MPC, User, Mode=DOF" << endl;
99 Output <<
"2, MasterNode2, MasterNode1, ConstraintsDriver5" << endl;
101 Output <<
"*MPC, User, Mode=DOF" << endl;
102 Output <<
"3, MasterNode2, MasterNode1, ConstraintsDriver3, ConstraintsDriver5" << endl;
104 Output <<
"*MPC,USER,MODE=dof" << endl;
105 Output <<
"1, MasterNode6, MasterNode5, ConstraintsDriver0, ConstraintsDriver3" << endl;
107 Output <<
"*MPC, User, Mode=DOF" << endl;
108 Output <<
"2, MasterNode6, MasterNode5, ConstraintsDriver5" << endl;
110 Output <<
"*MPC, User, Mode=DOF" << endl;
111 Output <<
"3, MasterNode6, MasterNode5, ConstraintsDriver3, ConstraintsDriver5" << endl;
112 Output <<
"**" << endl;
113 Output <<
"** Edges in y-direction" << endl;
114 Output <<
"**" << endl;
115 Output <<
"*MPC, User, Mode=DOF" << endl;
116 Output <<
"4, Edge10, Edge9, ConstraintsDriver2, ConstraintsDriver5" << endl;
118 Output <<
"*MPC, User, Mode=DOF" << endl;
119 Output <<
"5, Edge10, Edge9, ConstraintsDriver1, ConstraintsDriver4" << endl;
121 Output <<
"*MPC, User, Mode=DOF" << endl;
122 Output <<
"6, Edge10, Edge9, ConstraintsDriver4, ConstraintsDriver5" << endl;
124 Output <<
"*MPC, User, Mode=DOF" << endl;
125 Output <<
"4, Edge12, Edge11, ConstraintsDriver2, ConstraintsDriver5" << endl;
127 Output <<
"*MPC, User, Mode=DOF" << endl;
128 Output <<
"5, Edge12, Edge11, ConstraintsDriver1, ConstraintsDriver4" << endl;
130 Output <<
"*MPC, User, Mode=DOF" << endl;
131 Output <<
"6, Edge12, Edge11, ConstraintsDriver4, ConstraintsDriver5" << endl;
133 Output <<
"*MPC, User, Mode=DOF" << endl;
134 Output <<
"4, Edge4, Edge1, ConstraintsDriver2, ConstraintsDriver5" << endl;
136 Output <<
"*MPC, User, Mode=DOF" << endl;
137 Output <<
"5, Edge4, Edge1, ConstraintsDriver1, ConstraintsDriver4" << endl;
139 Output <<
"*MPC, User, Mode=DOF" << endl;
140 Output <<
"6, Edge4, Edge1, ConstraintsDriver4, ConstraintsDriver5" << endl;
142 Output <<
"*MPC, User, Mode=DOF" << endl;
143 Output <<
"4, MasterNode4, MasterNode1, ConstraintsDriver2, ConstraintsDriver5" << endl;
145 Output <<
"*MPC, User, Mode=DOF" << endl;
146 Output <<
"5, MasterNode4, MasterNode1, ConstraintsDriver1, ConstraintsDriver4" << endl;
148 Output <<
"*MPC, User, Mode=DOF" << endl;
149 Output <<
"6, MasterNode4, MasterNode1, ConstraintsDriver4, ConstraintsDriver5" << endl;
151 Output <<
"*MPC, User, Mode=DOF" << endl;
152 Output <<
"4, MasterNode8, MasterNode5, ConstraintsDriver2, ConstraintsDriver5" << endl;
154 Output <<
"*MPC, User, Mode=DOF" << endl;
155 Output <<
"5, MasterNode8, MasterNode5, ConstraintsDriver1, ConstraintsDriver4" << endl;
157 Output <<
"*MPC, User, Mode=DOF" << endl;
158 Output <<
"6, MasterNode8, MasterNode5, ConstraintsDriver4, ConstraintsDriver5" << endl;
160 Output <<
"**" << endl;
161 Output <<
"** Diagonal edges" << endl;
162 Output <<
"**" << endl;
163 Output <<
"*MPC, User, Mode=DOF" << endl;
164 Output <<
"7, Edge3, Edge1, ConstraintsDriver0, ConstraintsDriver3, ConstraintsDriver2, ConstraintsDriver5" << endl;
166 Output <<
"*MPC, User, Mode=DOF" << endl;
167 Output <<
"8, Edge3, Edge1, ConstraintsDriver5, ConstraintsDriver1, ConstraintsDriver4" << endl;
169 Output <<
"*MPC, User, Mode=DOF" << endl;
170 Output <<
"9, Edge3, Edge1, ConstraintsDriver3, ConstraintsDriver4, ConstraintsDriver5" << endl;
172 Output <<
"*MPC, User, Mode=DOF" << endl;
173 Output <<
"7, Edge3, Edge1, ConstraintsDriver0, ConstraintsDriver3, ConstraintsDriver2, ConstraintsDriver5" << endl;
175 Output <<
"*MPC, User, Mode=DOF" << endl;
176 Output <<
"8, Edge3, Edge1, ConstraintsDriver5, ConstraintsDriver1, ConstraintsDriver4" << endl;
178 Output <<
"*MPC, User, Mode=DOF" << endl;
179 Output <<
"9, Edge3, Edge1, ConstraintsDriver3, ConstraintsDriver4, ConstraintsDriver5" << endl;
181 Output <<
"*MPC, User, Mode=DOF" << endl;
182 Output <<
"7, MasterNode3, MasterNode1, ConstraintsDriver0, ConstraintsDriver3, ConstraintsDriver2, ConstraintsDriver5" << endl;
184 Output <<
"*MPC, User, Mode=DOF" << endl;
185 Output <<
"8, MasterNode3, MasterNode1, ConstraintsDriver5, ConstraintsDriver1, ConstraintsDriver4" << endl;
187 Output <<
"*MPC, User, Mode=DOF" << endl;
188 Output <<
"9, MasterNode3, MasterNode1, ConstraintsDriver3, ConstraintsDriver4, ConstraintsDriver5" << endl;
190 Output <<
"*MPC, User, Mode=DOF" << endl;
191 Output <<
"7, MasterNode7, MasterNode5, ConstraintsDriver0, ConstraintsDriver3, ConstraintsDriver2, ConstraintsDriver5" << endl;
193 Output <<
"*MPC, User, Mode=DOF" << endl;
194 Output <<
"8, MasterNode7, MasterNode5, ConstraintsDriver5, ConstraintsDriver1, ConstraintsDriver4" << endl;
196 Output <<
"*MPC, User, Mode=DOF" << endl;
197 Output <<
"9, MasterNode7, MasterNode5, ConstraintsDriver3, ConstraintsDriver4, ConstraintsDriver5" << endl;
199 Output <<
"*Parameter" << endl;
206 Output <<
"*******************" << endl;
207 Output <<
"*** CREATE STEP ***" << endl;
208 Output <<
"*******************" << endl;
210 Output <<
"*Step, Name=In-plane and out-of-plane loading, perturbation" << endl;
211 Output <<
"Elastic material property computation" << endl;
212 Output <<
"*Static" << endl;
213 Output <<
"******************" << endl;
214 Output <<
"*** LOAD CASES ***" << endl;
215 Output <<
"******************" << endl;
217 for (
int i = 0; i < 6; i++)
219 Output <<
"*Load case, Name=Load" << i << endl;
220 Output <<
"*BOUNDARY" << endl;
221 for (
int j = 0; j < 6; j++)
224 Output <<
"ConstraintsDriver" << j <<
", 1, 1, 0" << endl;
226 Output <<
"ConstraintsDriver" << j <<
", 1, 1, <my_force>" << endl;
231 Output <<
"*End Step" << endl;
void OutputEquations(ostream &Output, int iBoundaryConditions)
Set up the domain size parameters used in the equations.
~CBendingPeriodicBoundaries(void)
void OutputStep(ostream &Output, int iBoundaryConditions)
Namespace containing a series of customised math operations not found in the standard c++ library.