2 File MEDMEM_CellModel.cxx
7 #include "MEDMEM_CellModel.hxx"
9 CELLMODEL::CELLMODEL(medGeometryElement t)
11 MESSAGE("CELLMODEL : constructeur pour le type " << t);
20 // nothing else : POINT are none constituent
29 // constituent are POINT1 and we have no need to define _constituents vector
30 vector<medGeometryElement> vector_type(2,MED_POINT1) ;
31 vector<medGeometryElement> __constituents_type[]={vector_type};
32 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+1) ;
33 _constituentsType = _constituents_type ;
42 // constituent are POINT1 and we have no need to define _constituents vector
43 vector<medGeometryElement> vector_type(3,MED_POINT1) ;
44 vector<medGeometryElement> __constituents_type[]={vector_type};
45 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+1) ;
46 _constituentsType = _constituents_type ;
58 vector<int> edge1(_edge1,_edge1+2) ;
59 vector<int> edge2(_edge2,_edge2+2) ;
60 vector<int> edge3(_edge3,_edge3+2) ;
61 vector<int> _vector_edge[]={edge1,edge2,edge3};
62 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+3) ;
63 vector< vector<int> > __constituents__[]={vector_edge};
64 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+1) ;
65 _constituents = _constituents_ ;
66 vector<medGeometryElement> vector_edge_type(3,MED_SEG2) ;
67 vector<medGeometryElement> vector_type(3,MED_POINT1) ;
68 vector<medGeometryElement> __constituents_type[]={vector_edge_type,vector_type};
69 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
70 _constituentsType = _constituents_type ;
79 int _edge1[]={1,2,4} ;
80 int _edge2[]={2,3,5} ;
81 int _edge3[]={3,1,6} ;
82 vector<int> edge1(_edge1,_edge1+3) ;
83 vector<int> edge2(_edge2,_edge2+3) ;
84 vector<int> edge3(_edge3,_edge3+3) ;
85 vector<int> _vector_edge[]={edge1,edge2,edge3};
86 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+3) ;
87 vector< vector<int> > __constituents__[]={vector_edge};
88 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+1) ;
89 _constituents = _constituents_ ;
90 vector<medGeometryElement> vector_edge_type(3,MED_SEG3) ;
91 vector<medGeometryElement> vector_type(6,MED_POINT1) ;
92 vector<medGeometryElement> __constituents_type[]={vector_edge_type,vector_type};
93 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
94 _constituentsType = _constituents_type ;
107 vector<int> edge1(_edge1,_edge1+2) ;
108 vector<int> edge2(_edge2,_edge2+2) ;
109 vector<int> edge3(_edge3,_edge3+2) ;
110 vector<int> edge4(_edge4,_edge4+2) ;
111 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4};
112 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+4) ;
113 vector< vector<int> > __constituents__[]={vector_edge};
114 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+1) ;
115 _constituents = _constituents_ ;
116 vector<medGeometryElement> vector_edge_type(4,MED_SEG2) ;
117 vector<medGeometryElement> vector_type(4,MED_POINT1) ;
118 vector<medGeometryElement> __constituents_type[]={vector_edge_type,vector_type};
119 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
120 _constituentsType = _constituents_type ;
129 int _edge1[]={1,2,5} ;
130 int _edge2[]={2,3,6} ;
131 int _edge3[]={3,4,7} ;
132 int _edge4[]={4,1,8} ;
133 vector<int> edge1(_edge1,_edge1+3) ;
134 vector<int> edge2(_edge2,_edge2+3) ;
135 vector<int> edge3(_edge3,_edge3+3) ;
136 vector<int> edge4(_edge4,_edge4+3) ;
137 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4};
138 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+4) ;
139 vector< vector<int> > __constituents__[]={vector_edge};
140 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+1) ;
141 _constituents = _constituents_ ;
142 vector<medGeometryElement> vector_edge_type(4,MED_SEG3) ;
143 vector<medGeometryElement> vector_type(8,MED_POINT1) ;
144 vector<medGeometryElement> __constituents_type[]={vector_edge_type,vector_type};
145 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
146 _constituentsType = _constituents_type ;
161 vector<int> edge1(_edge1,_edge1+2) ;
162 vector<int> edge2(_edge2,_edge2+2) ;
163 vector<int> edge3(_edge3,_edge3+2) ;
164 vector<int> edge4(_edge4,_edge4+2) ;
165 vector<int> edge5(_edge5,_edge5+2) ;
166 vector<int> edge6(_edge6,_edge6+2) ;
167 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6};
168 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+6) ;
169 int _face1[]={1,2,3} ;
170 int _face2[]={1,4,2} ;
171 int _face3[]={2,4,3} ;
172 int _face4[]={3,4,1} ;
173 vector<int> face1(_face1,_face1+3) ;
174 vector<int> face2(_face2,_face2+3) ;
175 vector<int> face3(_face3,_face3+3) ;
176 vector<int> face4(_face4,_face4+3) ;
177 vector<int> _vector_face[] = {face1,face2,face3,face4} ;
178 vector< vector<int> > vector_face(_vector_face,_vector_face+4) ;
179 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
180 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
181 _constituents = _constituents_ ;
182 vector<medGeometryElement> vector_edge_type(6,MED_SEG2) ;
183 vector<medGeometryElement> vector_face_type(4,MED_TRIA3) ;
184 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
185 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
186 _constituentsType = _constituents_type ;
190 _name="MED_TETRA10" ;
195 int _edge1[]={1,2,5} ;
196 int _edge2[]={2,3,6} ;
197 int _edge3[]={3,1,7} ;
198 int _edge4[]={1,4,8} ;
199 int _edge5[]={2,4,9} ;
200 int _edge6[]={3,4,10} ;
201 vector<int> edge1(_edge1,_edge1+3) ;
202 vector<int> edge2(_edge2,_edge2+3) ;
203 vector<int> edge3(_edge3,_edge3+3) ;
204 vector<int> edge4(_edge4,_edge4+3) ;
205 vector<int> edge5(_edge5,_edge5+3) ;
206 vector<int> edge6(_edge6,_edge6+3) ;
207 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6};
208 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+6) ;
209 int _face1[]={1,2,3,5,6,7} ;
210 int _face2[]={1,4,2,8,9,5} ;
211 int _face3[]={2,4,3,9,10,6} ;
212 int _face4[]={3,4,1,10,8,7} ;
213 vector<int> face1(_face1,_face1+6) ;
214 vector<int> face2(_face2,_face2+6) ;
215 vector<int> face3(_face3,_face3+6) ;
216 vector<int> face4(_face4,_face4+6) ;
217 vector<int> _vector_face[] = {face1,face2,face3,face4} ;
218 vector< vector<int> > vector_face(_vector_face,_vector_face+4) ;
219 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
220 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
221 _constituents = _constituents_ ;
222 vector<medGeometryElement> vector_edge_type(6,MED_SEG3) ;
223 vector<medGeometryElement> vector_face_type(4,MED_TRIA6) ;
224 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
225 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
226 _constituentsType = _constituents_type ;
244 int _edge10[]={2,6} ;
245 int _edge11[]={3,7} ;
246 int _edge12[]={4,8} ;
247 vector<int> edge1(_edge1,_edge1+2) ;
248 vector<int> edge2(_edge2,_edge2+2) ;
249 vector<int> edge3(_edge3,_edge3+2) ;
250 vector<int> edge4(_edge4,_edge4+2) ;
251 vector<int> edge5(_edge5,_edge5+2) ;
252 vector<int> edge6(_edge6,_edge6+2) ;
253 vector<int> edge7(_edge7,_edge7+2) ;
254 vector<int> edge8(_edge8,_edge8+2) ;
255 vector<int> edge9(_edge9,_edge9+2) ;
256 vector<int> edge10(_edge10,_edge10+2) ;
257 vector<int> edge11(_edge11,_edge11+2) ;
258 vector<int> edge12(_edge12,_edge12+2) ;
259 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8,edge9,edge10,edge11,edge12};
260 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+12) ;
261 int _face1[]={1,2,3,4} ;
262 int _face2[]={5,8,7,6} ;
263 int _face3[]={1,5,6,2} ;
264 int _face4[]={2,6,7,3} ;
265 int _face5[]={3,7,8,4} ;
266 int _face6[]={4,8,5,1} ;
267 vector<int> face1(_face1,_face1+4) ;
268 vector<int> face2(_face2,_face2+4) ;
269 vector<int> face3(_face3,_face3+4) ;
270 vector<int> face4(_face4,_face4+4) ;
271 vector<int> face5(_face5,_face5+4) ;
272 vector<int> face6(_face6,_face6+4) ;
273 vector<int> _vector_face[] = {face1,face2,face3,face4,face5,face6} ;
274 vector< vector<int> > vector_face(_vector_face,_vector_face+6) ;
275 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
276 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
277 _constituents = _constituents_ ;
278 vector<medGeometryElement> vector_edge_type(12,MED_SEG2) ;
279 vector<medGeometryElement> vector_face_type(6,MED_QUAD4) ;
280 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
281 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2);
282 _constituentsType = _constituents_type ;
292 int _edge1[]={1,2,9} ;
293 int _edge2[]={2,3,10} ;
294 int _edge3[]={3,4,11} ;
295 int _edge4[]={4,1,12} ;
296 int _edge5[]={5,6,13} ;
297 int _edge6[]={6,7,14};
298 int _edge7[]={7,8,15} ;
299 int _edge8[]={8,5,16} ;
300 int _edge9[]={1,5,17} ;
301 int _edge10[]={2,6,18} ;
302 int _edge11[]={3,7,19} ;
303 int _edge12[]={4,8,20} ;
305 vector<int> edge1(_edge1,_edge1+3) ;
306 vector<int> edge2(_edge2,_edge2+3) ;
307 vector<int> edge3(_edge3,_edge3+3) ;
308 vector<int> edge4(_edge4,_edge4+3) ;
309 vector<int> edge5(_edge5,_edge5+3) ;
310 vector<int> edge6(_edge6,_edge6+3) ;
311 vector<int> edge7(_edge7,_edge7+3) ;
312 vector<int> edge8(_edge8,_edge8+3) ;
313 vector<int> edge9(_edge9,_edge9+3) ;
314 vector<int> edge10(_edge10,_edge10+3) ;
315 vector<int> edge11(_edge11,_edge11+3) ;
316 vector<int> edge12(_edge12,_edge12+3) ;
317 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8,edge9,edge10, edge11,edge12};
318 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+12) ;
320 int _face1[]={1,2,3,4,9,10,11,12} ;
321 int _face2[]={5,8,7,6,16,15,14,13} ;
322 int _face3[]={1,5,6,2,17,13,18,9} ;
323 int _face4[]={2,6,7,3,18,14,19,10} ;
324 int _face5[]={3,7,8,4,19,15,20,11} ;
325 int _face6[]={4,8,5,1,20,16,17,12} ;
326 vector<int> face1(_face1,_face1+8);
327 vector<int> face2(_face2,_face2+8);
328 vector<int> face3(_face3,_face3+8);
329 vector<int> face4(_face4,_face4+8);
330 vector<int> face5(_face5,_face5+8);
331 vector<int> face6(_face6,_face6+8);
332 vector<int> _vector_face[]= {face1,face2,face3,face4,face5,face6} ;
333 vector< vector<int> > vector_face(_vector_face,_vector_face+6);
335 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
336 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
337 _constituents = _constituents_ ;
338 vector<medGeometryElement> vector_edge_type(12,MED_SEG3) ;
339 vector<medGeometryElement> vector_face_type(6,MED_QUAD8) ;
340 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
341 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
342 _constituentsType = _constituents_type ;
352 int _edge1[]= {1,2} ;
353 int _edge2[]= {2,3} ;
354 int _edge3[]= {3,1} ;
355 int _edge4[]= {4,5} ;
356 int _edge5[]= {5,6} ;
357 int _edge6[]= {6,4} ;
358 int _edge7[]= {1,4} ;
359 int _edge8[]= {2,5} ;
360 int _edge9[]= {3,6} ;
362 vector<int> edge1(_edge1,_edge1+2) ;
363 vector<int> edge2(_edge2,_edge2+2) ;
364 vector<int> edge3(_edge3,_edge3+2) ;
365 vector<int> edge4(_edge4,_edge4+2) ;
366 vector<int> edge5(_edge5,_edge5+2) ;
367 vector<int> edge6(_edge6,_edge6+2) ;
368 vector<int> edge7(_edge7,_edge7+2) ;
369 vector<int> edge8(_edge8,_edge8+2) ;
370 vector<int> edge9(_edge9,_edge9+2) ;
371 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8,edge9};
372 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+9) ;
374 int _face1[]={1,2,3};
375 int _face2[]={4,6,5};
376 int _face3[]={1,4,5,2};
377 int _face4[]={2,5,6,3};
378 int _face5[]={3,6,4,1};
379 vector<int> face1(_face1,_face1+3);
380 vector<int> face2(_face2,_face2+3);
381 vector<int> face3(_face3,_face3+4);
382 vector<int> face4(_face4,_face4+4);
383 vector<int> face5(_face5,_face5+4);
384 vector<int> _vector_face[]= {face1,face2,face3,face4,face5} ;
385 vector< vector<int> > vector_face(_vector_face,_vector_face+5);
387 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
388 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
389 _constituents = _constituents_ ;
390 vector<medGeometryElement> vector_edge_type(9,MED_SEG2) ;
391 vector<medGeometryElement> vector_face_type(5,MED_QUAD4) ;
392 vector_face_type[0]=MED_TRIA3 ;
393 vector_face_type[1]=MED_TRIA3 ;
394 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
395 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
396 _constituentsType = _constituents_type ;
400 _name="MED_PENTA15" ;
405 int _edge1[]={1,2,7} ;
406 int _edge2[]={2,3,8} ;
407 int _edge3[]={3,1,9} ;
408 int _edge4[]={4,5,10} ;
409 int _edge5[]={5,6,11} ;
410 int _edge6[]={6,4,12} ;
411 int _edge7[]={1,4,13} ;
412 int _edge8[]={2,5,14} ;
413 int _edge9[]={3,6,15} ;
415 vector<int> edge1(_edge1,_edge1+3) ;
416 vector<int> edge2(_edge2,_edge2+3) ;
417 vector<int> edge3(_edge3,_edge3+3) ;
418 vector<int> edge4(_edge4,_edge4+3) ;
419 vector<int> edge5(_edge5,_edge5+3) ;
420 vector<int> edge6(_edge6,_edge6+3) ;
421 vector<int> edge7(_edge7,_edge7+3) ;
422 vector<int> edge8(_edge8,_edge8+3) ;
423 vector<int> edge9(_edge9,_edge9+3) ;
424 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8,edge9};
425 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+9) ;
427 int _face1[]={1,2,3,7,8,9};
428 int _face2[]={4,6,5,12,11,10};
429 int _face3[]={1,4,5,2,13,10,14,7};
430 int _face4[]={2,5,6,3,14,11,15,8};
431 int _face5[]={3,6,4,1,15,12,13,9};
432 vector<int> face1(_face1,_face1+6);
433 vector<int> face2(_face2,_face2+6);
434 vector<int> face3(_face3,_face3+8);
435 vector<int> face4(_face4,_face4+8);
436 vector<int> face5(_face5,_face5+8);
437 vector<int> _vector_face[]= {face1,face2,face3,face4,face5} ;
438 vector< vector<int> > vector_face(_vector_face,_vector_face+5);
440 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
441 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
442 _constituents = _constituents_ ;
443 vector<medGeometryElement> vector_edge_type(9,MED_SEG3) ;
444 vector<medGeometryElement> vector_face_type(5,MED_QUAD8) ;
445 vector_face_type[0]=MED_TRIA6 ;
446 vector_face_type[1]=MED_TRIA6 ;
447 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
448 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
449 _constituentsType = _constituents_type ;
467 vector<int> edge1(_edge1,_edge1+2) ;
468 vector<int> edge2(_edge2,_edge2+2) ;
469 vector<int> edge3(_edge3,_edge3+2) ;
470 vector<int> edge4(_edge4,_edge4+2) ;
471 vector<int> edge5(_edge5,_edge5+2) ;
472 vector<int> edge6(_edge6,_edge6+2) ;
473 vector<int> edge7(_edge7,_edge7+2) ;
474 vector<int> edge8(_edge8,_edge8+2) ;
475 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8};
476 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+8) ;
478 int _face1[]={1,2,3,4} ;
479 int _face2[]={1,5,2} ;
480 int _face3[]={2,5,3} ;
481 int _face4[]={3,5,4} ;
482 int _face5[]={4,5,1} ;
483 vector<int> face1(_face1,_face1+4);
484 vector<int> face2(_face2,_face2+3);
485 vector<int> face3(_face3,_face3+3);
486 vector<int> face4(_face4,_face4+3);
487 vector<int> face5(_face5,_face5+3);
488 vector<int> _vector_face[]= {face1,face2,face3,face4,face5} ;
489 vector< vector<int> > vector_face(_vector_face,_vector_face+5);
491 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
492 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
493 _constituents = _constituents_ ;
494 vector<medGeometryElement> vector_edge_type(8,MED_SEG2) ;
495 vector<medGeometryElement> vector_face_type(5,MED_TRIA3) ;
496 vector_face_type[0]=MED_QUAD4 ;
497 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
498 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
499 _constituentsType = _constituents_type ;
508 int _edge1[]={1,2,6} ;
509 int _edge2[]={2,3,7} ;
510 int _edge3[]={3,4,8} ;
511 int _edge4[]={4,1,9} ;
512 int _edge5[]={1,5,10} ;
513 int _edge6[]={2,5,11} ;
514 int _edge7[]={3,5,12} ;
515 int _edge8[]={4,5,13} ;
517 vector<int> edge1(_edge1,_edge1+3) ;
518 vector<int> edge2(_edge2,_edge2+3) ;
519 vector<int> edge3(_edge3,_edge3+3) ;
520 vector<int> edge4(_edge4,_edge4+3) ;
521 vector<int> edge5(_edge5,_edge5+3) ;
522 vector<int> edge6(_edge6,_edge6+3) ;
523 vector<int> edge7(_edge7,_edge7+3) ;
524 vector<int> edge8(_edge8,_edge8+3) ;
527 vector<int> _vector_edge[]={edge1,edge2,edge3,edge4,edge5,edge6,edge7,edge8};
528 vector< vector<int> > vector_edge(_vector_edge,_vector_edge+8) ;
530 int _face1[]={1,2,3,4,6,7,8,9} ;
531 int _face2[]={1,5,2,10,11,6} ;
532 int _face3[]={2,5,3,11,12,7} ;
533 int _face4[]={3,5,4,12,13,8} ;
534 int _face5[]={4,5,1,13,10,9} ;
535 vector<int> face1(_face1,_face1+8);
536 vector<int> face2(_face2,_face2+6);
537 vector<int> face3(_face3,_face3+6);
538 vector<int> face4(_face4,_face4+6);
539 vector<int> face5(_face5,_face5+6);
540 vector<int> _vector_face[]= {face1,face2,face3,face4,face5} ;
541 vector< vector<int> > vector_face(_vector_face,_vector_face+5);
544 vector< vector<int> > __constituents__[]={vector_face,vector_edge};
545 vector< vector< vector<int> > > _constituents_(__constituents__,__constituents__+2) ;
546 _constituents = _constituents_ ;
547 vector<medGeometryElement> vector_edge_type(8,MED_SEG3) ;
548 vector<medGeometryElement> vector_face_type(5,MED_TRIA6) ;
549 vector_face_type[0]=MED_QUAD8 ;
550 vector<medGeometryElement> __constituents_type[]={vector_face_type,vector_edge_type};
551 vector< vector<medGeometryElement> > _constituents_type(__constituents_type,__constituents_type+2) ;
553 _constituentsType = _constituents_type ;
562 ostream & operator<<(ostream &os,const CELLMODEL &my)
564 os << "Cell Model :" << endl ;
565 os << " - name : " << my._name << endl;
566 os << " - type : " << (int)my._type << endl;
567 os << " - dimension : " << my._dimension << endl;
568 os << " - number of nodes : " << my._numberOfNodes << endl ;
569 os << " - number of vertexes : " << my._numberOfVertexes << endl ;
570 for(int i=0;i<my._constituents.size();i++)
572 os << " - for dimension (-" << i+1 << ") : " << endl ;
573 for(int j=0;j<my._constituents[i].size();j++)
575 os << " - constituents " << j+1 << " of type "<< my._constituentsType[i][j] <<" : " ;
576 for(int k=0;k<my._constituents[i][j].size();k++)
577 os << my._constituents[i][j][k] << " " ;
586 // Return number of constituents type (which dimension is _dimension-1).
587 int CELLMODEL::getNumberOfConstituentsType() const
589 set<medGeometryElement> constituentsTypes ;
590 if (_constituentsType.size() > 0 ) {
591 vector<medGeometryElement> constituentsType = _constituentsType[0] ;
592 vector<medGeometryElement>::iterator itvec ;
593 for(itvec=constituentsType.begin();itvec!=constituentsType.end();itvec++)
594 constituentsTypes.insert(*itvec);
596 return constituentsTypes.size() ;
599 // Return all types of constituents which dimension is (_dimension-1).
600 set <medGeometryElement> CELLMODEL::getAllConstituentsType() const
602 set<medGeometryElement> constituentsTypes ;
603 if (_constituentsType.size() > 0 ) {
604 vector<medGeometryElement> constituentsType = _constituentsType[0] ;
605 vector<medGeometryElement>::iterator itvec ;
606 for(itvec=constituentsType.begin();itvec!=constituentsType.end();itvec++)
607 constituentsTypes.insert(*itvec);
609 return constituentsTypes ;
612 // Return number of constituents foreach type (which dimension is _dimension-1).
613 map <medGeometryElement,int> CELLMODEL::getNumberOfConstituentsForeachType() const
615 map<medGeometryElement,int> numberOfConstituentsForeachType ;
616 map<medGeometryElement,int>::iterator itmap ;
617 if (_constituentsType.size() > 0 ) {
618 vector<medGeometryElement> constituentsType = _constituentsType[0] ;
619 vector<medGeometryElement>::iterator itvec ;
620 for(itvec=constituentsType.begin();itvec!=constituentsType.end();itvec++) {
621 itmap = numberOfConstituentsForeachType.find(*itvec);
622 if (itmap==numberOfConstituentsForeachType.end()) // new element
623 numberOfConstituentsForeachType[*itvec]=1 ;
625 numberOfConstituentsForeachType[*itvec]++ ;
628 return numberOfConstituentsForeachType ;