20 static int nsubeldata[21] = {1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,7,9,9,9,7,21};
38 {{1,4},{1,10},{5,10}},
40 {{2,5},{2,11},{6,11}},
42 {{4,4},{4,12},{5,12}},
44 {{5,5},{5,13},{6,13}},
46 {{4,5},{4,14},{6,14}},
48 {{0,7},{1,8},{2,6},{0,15},{1,15},{2,15},{3,19}},
50 {{0,10},{0,12},{5,6},{5,9},{0,4},{0,16},{1,16},{4,16},{5,16}},
52 {{1,11},{1,13},{6,7},{6,10},{1,5},{1,17},{2,17},{5,17},{6,17}},
54 {{0,11},{0,14},{6,8},{6,9},{2,3},{0,18},{2,18},{4,18},{6,18}},
56 {{4,13},{5,14},{6,12},{4,19},{5,19},{6,19},{7,15}},
60 {{0,13},{1,14},{2,12},{0,20},{1,20},{2,20},{3,20},{4,20},{5,20},{6,20},{7,20},{0,17},
61 {0,19},{4,17},{1,18},{1,19},{5,18},{2,16},{2,19},{6,16},{3,15}}
83 {0.5,0.,-1.},{0.5,0.5,-1.},{0.,0.5,-1.},
84 {0.0,0., 0.},{1.0,0.0, 0.},{0.,1.0, 0.},
85 {0.5,0., 1.},{0.5,0.5, 1.},{0.,0.5, 1.},
87 {0.5,0., 0.},{0.5,0.5, 0.},{0.,0.5, 0.},
99 {{1,1,0},{2,2,0},{3,4,0},{4,4,1},{5,4,2},{7,3,14},{10,1,9},{11,2,9},{12,4,6},{13,4,7},{14,4,8},{17,3,18},{19,4,15},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
100 {{0,3,5},{2,2,1},{3,7,5},{4,5,1},{5,2,4},{8,3,13},{9,3,11},{11,2,10},{12,5,6},{13,5,7},{14,3,7},{18,3,17},{19,5,15},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
101 {{0,3,3},{1,3,4},{3,7,3},{4,3,1},{5,6,2},{6,3,12},{9,3,9},{10,3,10},{12,3,6},{13,6,7},{14,6,8},{16,3,16},{19,6,15},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
102 {{0,0,5},{1,5,2},{2,0,4},{3,0,2},{4,1,2},{5,0,1},{6,6,6},{7,5,8},{8,0,13},{9,0,11},{10,1,11},{11,0,10},{12,2,6},{13,1,8},{14,0,7},{15,7,19},{16,2,16},{17,1,18},{18,0,17}},
103 {{0,0,3},{1,5,0},{2,6,0},{4,5,3},{5,6,3},{6,0,12},{7,7,14},{8,0,14},{10,5,9},{11,6,9},{13,7,8},{15,0,19},{17,7,18},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
104 {{0,1,3},{1,1,4},{2,6,1},{3,7,2},{5,6,4},{6,1,12},{7,1,13},{8,7,13},{9,7,11},{11,6,10},{14,7,7},{15,1,19},{18,7,17},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
105 {{0,2,3},{1,7,4},{2,2,5},{3,7,0},{4,7,1},{6,7,12},{7,2,13},{8,2,14},{9,7,9},{10,7,10},{12,7,6},{15,2,19},{16,7,16},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1}},
106 {{0,4,5},{1,5,5},{2,4,4},{3,3,0},{4,1,5},{5,3,2},{6,6,12},{7,5,14},{8,4,13},{9,4,11},{10,5,11},{11,4,10},{12,2,12},{13,1,14},{14,3,8},{16,6,16},{17,5,18},{18,4,17},{19,3,15}}
126 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,-1}},
127 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
128 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
129 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
130 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
131 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
132 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
133 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
134 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
135 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
136 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
137 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
138 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
139 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
140 {{-.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
141 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.,0.}},
142 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,-.5,0.}},
143 {{-0.25,0.25,0.},{0.,0.,0.5},{0.,0.,0.},{0.25,0.25,-0.5}},
144 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,-.5,0.}},
145 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.,0.}},
146 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{0.,0.,-.5}}},
148 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
149 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{1.,0.,-1.}},
150 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
151 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
152 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
153 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
154 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
155 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
156 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
157 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
158 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
159 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
160 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
161 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
162 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
163 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.5,0.,0.}},
164 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,-.5,0.}},
165 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,-.5,0.}},
166 {{0.,0.25,0.},{0.,0.,0.5},{0.,0.,0.},{0.5,0.25,-0.5}},
167 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.5,0.,0.}},
168 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{.5,0.,-.5}}},
170 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
171 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
172 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,1.,-1.}},
173 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
174 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
175 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
176 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
177 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
178 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
179 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
180 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
181 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
182 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
183 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
184 {{-.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
185 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
186 {{0.25,0.,0.},{0.,0.,0.5},{0.,0.,0.},{0.25,0.5,-0.5}},
187 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,-.5,0.}},
188 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,-.5,0.}},
189 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
190 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{0.,.5,-.5}}},
192 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
193 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
194 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
195 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
196 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
197 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
198 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
199 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
200 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
201 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
202 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
203 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,-.5,0.}},
204 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
205 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
206 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
207 {{0.5,0.,0.},{0.5,-0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
208 {{0.25,0.,0.},{0.,0.,-0.5},{0.,0.,0.},{0.25,0.5,-0.5}},
209 {{0.,-0.25,0.},{0.,0.,-0.5},{0.,0.,0.},{0.5,0.25,-0.5}},
210 {{0.25,-0.25,0},{0,0,-0.5},{0.,0.,0.},{0.25,0.25,-0.5}},
211 {{0.5,0.,0.},{0.5,-0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
212 {{.5,0.,0.},{.5,-.5,0.},{0.,0.,-.5},{0.,.5,-.5}}},
214 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
215 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
216 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
217 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,1.}},
218 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
219 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
220 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
221 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
222 {{-.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
223 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
224 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
225 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
226 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
227 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
228 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
229 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.,0.}},
230 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,.5,0.}},
231 {{-0.25,0.25,0.},{0.,0.,0.5},{0.,0.,0.},{0.25,0.25,0.5}},
232 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,.5,0.}},
233 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.,0.}},
234 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{0.,0.,.5}}},
236 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
237 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
238 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
239 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
240 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{1.,0.,1.}},
241 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
242 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
243 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
244 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
245 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
246 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
247 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
248 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
249 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
250 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
251 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.5,0.,0.}},
252 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,.5,0.}},
253 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{-.5,.5,0.}},
254 {{0.,0.25,0.},{0.,0.,0.5},{0.,0.,0.},{0.5,0.25,0.5}},
255 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.5,0.,0.}},
256 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{.5,0.,.5}}},
258 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
259 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
260 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
261 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
262 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
263 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,1.,1.}},
264 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
265 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
266 {{-.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
267 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
268 {{0.,.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
269 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
270 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
271 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{.5,0.,0.}},
272 {{.5,0.,0.},{0.,0.,0.},{0.,0.,0.},{-.5,0.,0.}},
273 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
274 {{0.25,0.,0.},{0.,0.,0.5},{0.,0.,0.},{0.25,0.5,0.5}},
275 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,.5,0.}},
276 {{.5,0.,0.},{0.,.5,0.},{0.,0.,0.},{.5,.5,0.}},
277 {{0.5,0.,0.},{0.,0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
278 {{.5,0.,0.},{0.,.5,0.},{0.,0.,.5},{0.,.5,.5}}},
280 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
281 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
282 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
283 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
284 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
285 {{0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}},
286 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
287 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
288 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
289 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
290 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
291 {{0.,-.5,0.},{0.,0.,0.},{0.,0.,0.},{0.,.5,0.}},
292 {{0.25,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.5,0.}},
293 {{0.,-0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.5,0.25,0.}},
294 {{-0.25,0.25,0.},{0.,0.,0.},{0.,0.,0.},{0.25,0.25,0.}},
295 {{0.5,0.,0.},{0.5,-0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
296 {{0.25,0.,0.},{0.,0.,-0.5},{0.,0.,0.},{0.25,0.5,0.5}},
297 {{0.,-0.25,0.},{0.,0.,-0.5},{0.,0.,0.},{0.5,0.25,0.5}},
298 {{0.25,-0.25,0.},{0.,0.,-0.5},{0.,0.,0.},{0.25,0.25,0.5}},
299 {{0.5,0.,0.},{0.5,-0.5,0.},{0.,0.,0.},{0.,0.5,0.}},
300 {{.5,0.,0.},{.5,-.5,0.},{0.,0.,-.5},{0.,.5,.5}}}
304 {0,6,8,9,16,18,6,15,8,9,16,18,16,20,18,15,16,20,18,20,20},
305 {6,1,7,16,10,17,6,7,15,16,10,17,16,17,20,15,16,17,20,20,20},
306 {8,7,2,18,17,11,15,7,8,18,17,11,20,17,18,15,20,17,18,20,20},
307 {18,17,16,8,7,6,20,20,20,18,17,16,15,15,15,20,20,20,20,15,20},
308 {9,16,18,3,12,14,16,20,18,9,16,18,12,19,14,20,16,20,18,19,20},
309 {16,10,17,12,4,13,16,17,20,16,10,17,12,13,19,20,16,17,20,19,20},
310 {18,17,11,14,13,5,20,17,18,18,17,11,19,13,14,20,20,17,18,19,20},
311 {14,13,12,18,17,16,19,19,19,18,17,16,20,20,20,19,20,20,20,20,20},
320 for(i=0;i<NSubEl;i++) SubElVec[i] = geo->
SubElement(i);
329 NewMidSideNode(geo,j,index);
333 for(i=0;i<TPZRefPrism::NSubEl;i++) {
336 cornerindexes[j] = np[CornerSons[i][j]];
347 for(sub=0;sub<NSubEl;sub++) {
349 SubElVec[sub]->SetFather(geo);
350 SubElVec[sub]->SetFatherIndex(geo->
Index());
352 for(i=0;i<NSubEl;i++) {
354 if(InNeigh[i][j][0] == -1)
continue;
361 void TPZRefPrism::NewMidSideNode(
TPZGeoEl *gel,
int side,int64_t &index) {
363 MidSideNodeIndex(gel,side,index);
364 if(side == 15 || side > 18){
370 while(gelside.
Element() != gel) {
372 if(index!=-1)
return;
384 par[0] = MidCoord[side][0];
385 par[1] = MidCoord[side][1];
386 par[2] = MidCoord[side][2];
393 void TPZRefPrism::MidSideNodeIndex(
const TPZGeoEl *gel,
int side,int64_t &index) {
395 if(side == 15 || side > 18)
return;
397 PZError <<
"TPZRefPrism::MidSideNodeIndex. Bad parameter side = " << side << endl;
402 index = (gel)->NodeIndex(side);
410 index=(gel->
SubElement(MidSideNodes[side][0]))->NodeIndex(MidSideNodes[side][1]);
418 PZError <<
"TPZRefPrism::GetSubelements2 called with error arguments\n";
421 int nsub = NSideSubElements(side);
422 for(
int i=0;i<
nsub;i++)
424 subeldata[side][i][1]));
427 int TPZRefPrism::NSideSubElements(
int side) {
429 PZError <<
"TPZRefPrism::NSideSubelements2 called with error arguments\n";
432 return nsubeldata[side];
438 PZError <<
"TPZRefPrism::GetTransform side out of range or father null\n";
442 int fatherside = FatherSide(side,whichsubel);
446 for(i=0; i<largedim; i++) {
447 for(j=0; j<smalldim; j++) {
448 trans.
Mult()(i,j) = buildt[whichsubel][side][j][i];
450 trans.
Sum() (i,0) = buildt[whichsubel][side][3][i];
455 int TPZRefPrism::FatherSide(
int side,
int whichsubel){
458 PZError <<
"TPZRefPrism::Father2 called error" << endl;
461 return fatherside[whichsubel][side];
464 int TPZRefPrism::ClassId()
const{
465 return Hash(
"TPZRefPrism");
static int nsubeldata[21]
int AllocateNewElement()
Makes more room for new elements.
Contains declaration of TPZGeoElSide class which represents an element and its side, and TPZGeoElSideIndex class which represents an TPZGeoElSide index.
int MaterialId() const
Returns the material index of the element.
virtual TPZGeoEl * CreateGeoElement(MElementType type, TPZVec< int64_t > &cornerindexes, int matid, int64_t &index, int reftype=1)
Generic method for creating a geometric element. Putting this method centrally facilitates the modifi...
virtual void SetNeighbour(int side, const TPZGeoElSide &neighbour)=0
Fill in the data structure for the neighbouring information.
clarg::argInt nsub("-nsub", "number of substructs", 4)
groups all classes dedicated to the computation of shape functions
static int InNeigh[8][NumInNeigh][3]
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
static int fatherside[8][21]
This class implements a simple vector storage scheme for a templated class T. Utility.
static int SideDimension(int side)
Returns the dimension of the side.
TPZGeoElSide Neighbour() const
TPZGeoMesh * Mesh() const
Returns the mesh to which the element belongs.
virtual int64_t NodeIndex(int i) const =0
Returns the index of the ith node the index is the location of the node in the nodevector of the mesh...
static int CornerSons[8][6]
virtual TPZGeoEl * SubElement(int is) const =0
Returns a pointer to the subelement is.
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object reallocating the necessary storage, copying the existing objects to the new...
Contains the TPZRefPrism class which implements the uniform refinement of a geometric prism element...
Contains declaration of TPZMesh class which defines a geometrical mesh and contains a corresponding l...
void Push(const T object)
Pushes a copy of the object on the stack.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
virtual void SetFatherIndex(int64_t fatherindex)
Sets the father element index This method is not called SetFather in order to avoid implicit conversi...
int64_t Index() const
Returns the index of the element within the element vector of the mesh.
static REAL MidCoord[15][3]
TPZAdmChunkVector< TPZGeoNode > & NodeVec()
Groups all classes which model the h refinement These classes are used as template arguments of...
virtual TPZGeoElSide Neighbour(int side)=0
Returns a pointer to the neighbour and the neighbourside along side of the current element...
int32_t Hash(std::string str)
virtual void SetSubElement(int i, TPZGeoEl *gel)=0
Sets the subelement of index i.
virtual int HasSubElement() const =0
Return 1 if the element has subelements.
Contains TPZShapePrism class which implements the shape functions of a prism element.
TPZGeoEl * Element() const
static int subeldata[21][21][2]
virtual void X(TPZVec< REAL > &qsi, TPZVec< REAL > &result) const =0
Return the coordinate in real space of the point coordinate in the master element space...
static REAL buildt[8][21][4][3]
This class implements a stack object. Utility.
void SetFather(TPZGeoEl *father)
Sets the father element.
static int MidSideNodes[15][2]
Contains the TPZGeoPrism class which implements the geometry of a prism element.
Contains declaration of TPZGeoElement class which implements a generic geometric element with a unifo...
virtual void SetSubElementConnectivities()
Initializes the external connectivities of the subelements.
#define PZError
Defines the output device to error messages and the DebugStop() function.
virtual void MidSideNodeIndex(int side, int64_t &index) const =0
Returns the midside node index along a side of the element.