ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/fem_tetra10.cpp
Revision: 638
Committed: Mon Jan 26 21:56:20 2015 UTC (10 years, 7 months ago) by francois
File size: 19086 byte(s)
Log Message:
ajout d'une méthode qui renvoit le degre max des fonctions d'interpolation et changement de nom de la fonction qui renvoie le nombre de fonction d'interpolation (ajout d'un get pour uniformiser)

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // fem_element310.cpp
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23
24
25 #include "gestionversion.h"
26 #include "fem_tetra10.h"
27 #include "fem_noeud.h"
28 #include "mg_element_maillage.h"
29 #include "fem_maillage.h"
30
31
32 FEM_TETRA10::FEM_TETRA10(unsigned long num,class MG_ELEMENT_MAILLAGE* mai,class FEM_NOEUD** tabnoeud):FEM_ELEMENT3(num,mai),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
33 {
34 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
35 tab[0]->get_lien_element3()->ajouter(this);
36 tab[1]->get_lien_element3()->ajouter(this);
37 tab[2]->get_lien_element3()->ajouter(this);
38 tab[3]->get_lien_element3()->ajouter(this);
39 tab[4]->get_lien_element3()->ajouter(this);
40 tab[5]->get_lien_element3()->ajouter(this);
41 tab[6]->get_lien_element3()->ajouter(this);
42 tab[7]->get_lien_element3()->ajouter(this);
43 tab[8]->get_lien_element3()->ajouter(this);
44 tab[9]->get_lien_element3()->ajouter(this);
45 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
46 }
47
48 FEM_TETRA10::FEM_TETRA10(class MG_ELEMENT_MAILLAGE* mai,FEM_NOEUD** tabnoeud):FEM_ELEMENT3(mai),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
49 {
50 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
51 tab[0]->get_lien_element3()->ajouter(this);
52 tab[1]->get_lien_element3()->ajouter(this);
53 tab[2]->get_lien_element3()->ajouter(this);
54 tab[3]->get_lien_element3()->ajouter(this);
55 tab[4]->get_lien_element3()->ajouter(this);
56 tab[5]->get_lien_element3()->ajouter(this);
57 tab[6]->get_lien_element3()->ajouter(this);
58 tab[7]->get_lien_element3()->ajouter(this);
59 tab[8]->get_lien_element3()->ajouter(this);
60 tab[9]->get_lien_element3()->ajouter(this);
61 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
62 }
63 FEM_TETRA10::FEM_TETRA10(unsigned long num,class MG_ELEMENT_TOPOLOGIQUE* topo,class FEM_NOEUD** tabnoeud):FEM_ELEMENT3(num,topo),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
64 {
65 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
66 tab[0]->get_lien_element3()->ajouter(this);
67 tab[1]->get_lien_element3()->ajouter(this);
68 tab[2]->get_lien_element3()->ajouter(this);
69 tab[3]->get_lien_element3()->ajouter(this);
70 tab[4]->get_lien_element3()->ajouter(this);
71 tab[5]->get_lien_element3()->ajouter(this);
72 tab[6]->get_lien_element3()->ajouter(this);
73 tab[7]->get_lien_element3()->ajouter(this);
74 tab[8]->get_lien_element3()->ajouter(this);
75 tab[9]->get_lien_element3()->ajouter(this);
76 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
77 }
78
79 FEM_TETRA10::FEM_TETRA10(class MG_ELEMENT_TOPOLOGIQUE* topo,FEM_NOEUD** tabnoeud):FEM_ELEMENT3(topo),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
80 {
81 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
82 tab[0]->get_lien_element3()->ajouter(this);
83 tab[1]->get_lien_element3()->ajouter(this);
84 tab[2]->get_lien_element3()->ajouter(this);
85 tab[3]->get_lien_element3()->ajouter(this);
86 tab[4]->get_lien_element3()->ajouter(this);
87 tab[5]->get_lien_element3()->ajouter(this);
88 tab[6]->get_lien_element3()->ajouter(this);
89 tab[7]->get_lien_element3()->ajouter(this);
90 tab[8]->get_lien_element3()->ajouter(this);
91 tab[9]->get_lien_element3()->ajouter(this);
92 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
93 }
94 FEM_TETRA10::FEM_TETRA10(unsigned long num,class MG_ELEMENT_TOPOLOGIQUE* topo,class MG_ELEMENT_MAILLAGE* mai,class FEM_NOEUD** tabnoeud):FEM_ELEMENT3(num,topo,mai),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
95 {
96 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
97 tab[0]->get_lien_element3()->ajouter(this);
98 tab[1]->get_lien_element3()->ajouter(this);
99 tab[2]->get_lien_element3()->ajouter(this);
100 tab[3]->get_lien_element3()->ajouter(this);
101 tab[4]->get_lien_element3()->ajouter(this);
102 tab[5]->get_lien_element3()->ajouter(this);
103 tab[6]->get_lien_element3()->ajouter(this);
104 tab[7]->get_lien_element3()->ajouter(this);
105 tab[8]->get_lien_element3()->ajouter(this);
106 tab[9]->get_lien_element3()->ajouter(this);
107 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
108 }
109
110 FEM_TETRA10::FEM_TETRA10(class MG_ELEMENT_TOPOLOGIQUE* topo,class MG_ELEMENT_MAILLAGE* mai,FEM_NOEUD** tabnoeud):FEM_ELEMENT3(topo,mai),FEM_TEMPLATE_ELEMENT<10>(tabnoeud)
111 {
112 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
113 tab[0]->get_lien_element3()->ajouter(this);
114 tab[1]->get_lien_element3()->ajouter(this);
115 tab[2]->get_lien_element3()->ajouter(this);
116 tab[3]->get_lien_element3()->ajouter(this);
117 tab[4]->get_lien_element3()->ajouter(this);
118 tab[5]->get_lien_element3()->ajouter(this);
119 tab[6]->get_lien_element3()->ajouter(this);
120 tab[7]->get_lien_element3()->ajouter(this);
121 tab[8]->get_lien_element3()->ajouter(this);
122 tab[9]->get_lien_element3()->ajouter(this);
123 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
124 }
125
126
127
128
129
130
131
132 FEM_TETRA10::FEM_TETRA10(FEM_TETRA10& mdd):FEM_ELEMENT3(mdd),FEM_TEMPLATE_ELEMENT<10>(mdd)
133 {
134 if (liaison_topologique!=NULL) if (liaison_topologique->get_dimension()==3) liaison_topologique->get_lien_fem_maillage()->ajouter(this);
135 tab[0]->get_lien_element3()->ajouter(this);
136 tab[1]->get_lien_element3()->ajouter(this);
137 tab[2]->get_lien_element3()->ajouter(this);
138 tab[3]->get_lien_element3()->ajouter(this);
139 tab[4]->get_lien_element3()->ajouter(this);
140 tab[5]->get_lien_element3()->ajouter(this);
141 tab[6]->get_lien_element3()->ajouter(this);
142 tab[7]->get_lien_element3()->ajouter(this);
143 tab[8]->get_lien_element3()->ajouter(this);
144 tab[9]->get_lien_element3()->ajouter(this);
145 get_fem_noeudpetitid()->get_lien_petit_element3()->ajouter(this);
146 }
147 FEM_TETRA10::~FEM_TETRA10()
148 {
149 if (liaison_topologique==NULL) return;
150 if (liaison_topologique->get_dimension()==0) liaison_topologique->get_lien_fem_maillage()->supprimer(this);
151 tab[0]->get_lien_element3()->supprimer(this);
152 tab[1]->get_lien_element3()->supprimer(this);
153 tab[2]->get_lien_element3()->supprimer(this);
154 tab[3]->get_lien_element3()->supprimer(this);
155 tab[4]->get_lien_element3()->supprimer(this);
156 tab[5]->get_lien_element3()->supprimer(this);
157 tab[6]->get_lien_element3()->supprimer(this);
158 tab[7]->get_lien_element3()->supprimer(this);
159 tab[8]->get_lien_element3()->supprimer(this);
160 tab[9]->get_lien_element3()->supprimer(this);
161 get_fem_noeudpetitid()->get_lien_petit_element3()->supprimer(this);
162 }
163
164 FEM_ELEMENT_MAILLAGE* FEM_TETRA10::dupliquer(FEM_MAILLAGE *femmai,long decalage)
165 {
166 FEM_NOEUD* tabnoeud[10];
167 tabnoeud[0]=femmai->get_fem_noeudid(tab[0]->get_id()+decalage);
168 tabnoeud[1]=femmai->get_fem_noeudid(tab[1]->get_id()+decalage);
169 tabnoeud[2]=femmai->get_fem_noeudid(tab[2]->get_id()+decalage);
170 tabnoeud[3]=femmai->get_fem_noeudid(tab[3]->get_id()+decalage);
171 tabnoeud[4]=femmai->get_fem_noeudid(tab[4]->get_id()+decalage);
172 tabnoeud[5]=femmai->get_fem_noeudid(tab[5]->get_id()+decalage);
173 tabnoeud[6]=femmai->get_fem_noeudid(tab[6]->get_id()+decalage);
174 tabnoeud[7]=femmai->get_fem_noeudid(tab[7]->get_id()+decalage);
175 tabnoeud[8]=femmai->get_fem_noeudid(tab[8]->get_id()+decalage);
176 tabnoeud[9]=femmai->get_fem_noeudid(tab[9]->get_id()+decalage);
177 FEM_TETRA10* tet=new FEM_TETRA10(get_id()+decalage,maillage,tabnoeud);
178 femmai->ajouter_fem_element3(tet);
179 return tet;
180 }
181
182
183
184
185
186 int FEM_TETRA10::get_type_entite(void)
187 {
188 return IDFEM_TETRA10;
189 }
190
191 int FEM_TETRA10::get_dimension(void)
192 {
193 return 3;
194 }
195
196
197 int FEM_TETRA10::get_nb_fem_noeud(void)
198 {
199 return FEM_TEMPLATE_ELEMENT<10>::get_nb_fem_noeud();
200 }
201
202 FEM_NOEUD* FEM_TETRA10::get_fem_noeud(int num)
203 {
204 return FEM_TEMPLATE_ELEMENT<10>::get_fem_noeud(num);
205 }
206
207 void FEM_TETRA10::change_noeud(int num,FEM_NOEUD* noeud)
208 {
209 FEM_TEMPLATE_ELEMENT<10>::change_noeud(num,noeud);
210 }
211
212 BOITE_3D& FEM_TETRA10::get_boite_3D(void)
213 {
214 return FEM_TEMPLATE_ELEMENT<10>::get_boite_3D();
215 }
216
217
218 int FEM_TETRA10::get_nb_pt_gauss(int degre)
219 {
220 if (degre<2) return 1;
221 if (degre<3) return 4;
222 if (degre<4) return 5;
223 if (degre<5) return 11;
224 return 0;
225 }
226 void FEM_TETRA10::get_pt_gauss(int degre,int num,double &w,double *uvw)
227 {
228 if (degre<2)
229 {
230 if (num==0) {w=0.166666666666667;uvw[0]=0.25;uvw[1]=0.25;uvw[2]=0.25;}
231 return;
232 }
233 if (degre<3)
234 {
235 if (num==0) {w=0.041666666666667;uvw[0]=0.138196601125011;uvw[1]=0.138196601125011;uvw[2]=0.138196601125011;}
236 if (num==1) {w=0.041666666666667;uvw[0]=0.138196601125011;uvw[1]=0.138196601125011;uvw[2]=0.585410196624968;}
237 if (num==2) {w=0.041666666666667;uvw[0]=0.138196601125011;uvw[1]=0.585410196624968;uvw[2]=0.138196601125011;}
238 if (num==3) {w=0.041666666666667;uvw[0]=0.585410196624968;uvw[1]=0.138196601125011;uvw[2]=0.138196601125011;}
239 return;
240 }
241 if (degre<4)
242 {
243 if (num==0) {w=-0.133333333333333;uvw[0]=0.25;uvw[1]=0.25;uvw[2]=0.25;}
244 if (num==1) {w=0.075;uvw[0]=0.166666666666667;uvw[1]=0.166666666666667;uvw[2]=0.166666666666667;}
245 if (num==2) {w=0.075;uvw[0]=0.166666666666667;uvw[1]=0.166666666666667;uvw[2]=0.5;}
246 if (num==3) {w=0.075;uvw[0]=0.166666666666667;uvw[1]=0.5;uvw[2]=0.166666666666667;}
247 if (num==4) {w=0.075;uvw[0]=0.5;uvw[1]=0.166666666666667;uvw[2]=0.166666666666667;}
248 return;
249 }
250 if (degre<6)
251 {
252 double a=0.25;
253 double b1=0.3197936278;
254 double b2=0.0919710781;
255 double c2=0.7240867658;
256 double c1=0.0406191165;
257 double d=0.0563508327;
258 double e=0.4436491673;
259 double w1=0.0197530864;
260 double w3=0.011989514;
261 double w2=0.0115113679;
262 double w4=0.0088183422;
263 if (num==0) {w=w1;uvw[0]=a;uvw[1]=a;uvw[2]=a;}
264 if (num==1) {w=w2;uvw[0]=b1;uvw[1]=b1;uvw[2]=b1;}
265 if (num==2) {w=w2;uvw[0]=c1;uvw[1]=b1;uvw[2]=b1;}
266 if (num==3) {w=w2;uvw[0]=b1;uvw[1]=c1;uvw[2]=b1;}
267 if (num==4) {w=w2;uvw[0]=b1;uvw[1]=b1;uvw[2]=c1;}
268 if (num==5) {w=w3;uvw[0]=b2;uvw[1]=b2;uvw[2]=b2;}
269 if (num==6) {w=w3;uvw[0]=c2;uvw[1]=b2;uvw[2]=b2;}
270 if (num==7) {w=w3;uvw[0]=b2;uvw[1]=c2;uvw[2]=b2;}
271 if (num==8) {w=w3;uvw[0]=b2;uvw[1]=b2;uvw[2]=c2;}
272 if (num==9) {w=w4;uvw[0]=e;uvw[1]=d;uvw[2]=d;}
273 if (num==10) {w=w4;uvw[0]=d;uvw[1]=e;uvw[2]=d;}
274 if (num==11) {w=w4;uvw[0]=d;uvw[1]=d;uvw[2]=e;}
275 if (num==12) {w=w4;uvw[0]=d;uvw[1]=e;uvw[2]=e;}
276 if (num==13) {w=w4;uvw[0]=e;uvw[1]=d;uvw[2]=e;}
277 if (num==14) {w=w4;uvw[0]=e;uvw[1]=e;uvw[2]=d;}
278 return;
279 }
280 }
281
282
283 int FEM_TETRA10::get_nb_fonction_interpolation(void)
284 {
285 return 10;
286 }
287
288 int FEM_TETRA10::get_degremax_fonction_interpolation(void)
289 {
290 return 2;
291 }
292 double FEM_TETRA10::get_fonction_interpolation(int num,double* uv)
293 {
294 double val;
295 double landa=1-uv[0]-uv[1]-uv[2];
296 switch (num)
297 {
298 case 1:
299 val=-landa*(1-2*landa);
300 break;
301 case 2:
302 val=4*uv[0]*landa;
303 break;
304 case 3:
305 val=-uv[0]*(1-2*uv[0]);
306 break;
307 case 4:
308 val=4*uv[0]*uv[1];
309 break;
310 case 5:
311 val=-uv[1]*(1-2*uv[1]);
312 break;
313 case 6:
314 val=4*uv[1]*landa;
315 break;
316 case 7:
317 val=4*uv[2]*landa;
318 break;
319 case 8:
320 val=4*uv[0]*uv[2];
321 break;
322 case 9:
323 val=4*uv[1]*uv[2];
324 break;
325 case 10:
326 val=-uv[2]*(1-2*uv[2]);
327 break;
328 }
329 return val;
330 }
331
332 double FEM_TETRA10::get_fonction_derive_interpolation(int num,int num_variable,double* uv)
333 {
334 double val;
335 double landa=1-uv[0]-uv[1]-uv[2];
336 switch (num)
337 {
338 case 1:
339 switch (num_variable)
340 {
341 case 1:
342 val=1-4*landa;
343 break;
344 case 2:
345 val=1-4*landa;
346 break;
347 case 3:
348 val=1-4*landa;
349 break;
350 } break;
351 case 2:
352 switch (num_variable)
353 {
354 case 1:
355 val=4*(landa-uv[0]);
356 break;
357 case 2:
358 val=-4*uv[0];
359 break;
360 case 3:
361 val=-4*uv[0];
362 break;
363 }break;
364 case 3:
365 switch (num_variable)
366 {
367 case 1:
368 val=-1+4*uv[0];
369 break;
370 case 2:
371 val=0.;
372 break;
373 case 3:
374 val=0.;
375 break;
376 }break;
377 case 4:
378 switch (num_variable)
379 {
380 case 1:
381 val=4*uv[1];
382 break;
383 case 2:
384 val=4*uv[0];
385 break;
386 case 3:
387 val=0.;
388 break;
389 }break;
390 case 5:
391 switch (num_variable)
392 {
393 case 1:
394 val=0.;
395 break;
396 case 2:
397 val=-1+4*uv[1];
398 break;
399 case 3:
400 val=0.;
401 break;
402 }break;
403 case 6:
404 switch (num_variable)
405 {
406 case 1:
407 val=-4*uv[1];
408 break;
409 case 2:
410 val=4*(landa-uv[1]);
411 break;
412 case 3:
413 val=-4*uv[1];
414 break;
415 }break;
416 case 7:
417 switch (num_variable)
418 {
419 case 1:
420 val=-4*uv[2];
421 break;
422 case 2:
423 val=-4*uv[2];
424 break;
425 case 3:
426 val=4*(landa-uv[2]);
427 break;
428 }break;
429 case 8:
430 switch (num_variable)
431 {
432 case 1:
433 val=4*uv[2];
434 break;
435 case 2:
436 val=0;
437 break;
438 case 3:
439 val=4*uv[0];
440 break;
441 }break;
442 case 9:
443 switch (num_variable)
444 {
445 case 1:
446 val=0.;
447 break;
448 case 2:
449 val=4*uv[2];
450 break;
451 case 3:
452 val=4*uv[1];
453 break;
454 }break;
455 case 10:
456 switch (num_variable)
457 {
458 case 1:
459 val=0.;
460 break;
461 case 2:
462 val=0.;
463 break;
464 case 3:
465 val=-1+4*uv[2];
466 break;
467 }break;
468 }
469 return val;
470
471 }
472
473 double FEM_TETRA10::get_jacobien(double* jac,double *uv,int& lig,int& col,double unite)
474 {
475 lig=3;
476 col=3;
477
478
479 double nb_fct_int=this->get_nb_fonction_interpolation();
480
481 double xyz[30];
482
483 int nb_nd=get_nb_fem_noeud();
484
485 for (int i=0;i<nb_nd;i++)
486 {
487 FEM_NOEUD* fmnd=get_fem_noeud(i);
488 double *xyz1=fmnd->get_coord();
489
490 xyz[3*i]=unite*xyz1[0];
491 xyz[3*i+1]=unite*xyz1[1];
492 xyz[3*i+2]=unite*xyz1[2];
493
494 }
495
496 for (int i=0;i<lig;i++)
497 {
498 for (int j=0;j<col;j++)
499 {
500 jac[i*col+j]=0.0;
501 for (int k=0;k<nb_fct_int;k++)
502 {
503 double NDERI=this->get_fonction_derive_interpolation(k+1,i+1,uv);
504
505 jac[i*col+j]+=NDERI*xyz[3*k+j];
506 }
507 }
508 }
509
510 double SIX_V= jac[0]*(jac[4]*jac[8]-jac[7]*jac[5])+jac[1]*(jac[5]*jac[6]-jac[8]*jac[3])+jac[2]*(jac[3]*jac[7]-jac[6]*jac[4]);
511
512 return SIX_V;
513
514 }
515
516
517 void FEM_TETRA10::get_inverse_jacob(double* j,double *uv,double unite)
518 {
519 double jac[9];
520 int lig,col;
521 double detj=this->get_jacobien(jac,uv,lig,col,unite);
522
523
524 j[0*3+0] = (jac[1*3+1]*jac[2*3+2]-jac[1*3+2]*jac[2*3+1])/(detj);
525 j[0*3+1] = -(jac[0*3+1]*jac[2*3+2]-jac[0*3+2]*jac[2*3+1])/(detj);
526 j[0*3+2] =-(-jac[0*3+1]*jac[1*3+2]+jac[0*3+2]*jac[1*3+1])/(detj);
527
528 j[1*3+0] = -(jac[1*3+0]*jac[2*3+2]-jac[1*3+2]*jac[2*3+0])/(detj);
529 j[1*3+1] = (jac[0*3+0]*jac[2*3+2]-jac[0*3+2]*jac[2*3+0])/(detj);
530 j[1*3+2] = -(jac[0*3+0]*jac[1*3+2]-jac[0*3+2]*jac[1*3+0])/(detj);
531
532 j[2*3+0] =-(-jac[1*3+0]*jac[2*3+1]+jac[1*3+1]*jac[2*3+0])/(detj);
533 j[2*3+1] = -(jac[0*3+0]*jac[2*3+1]-jac[0*3+1]*jac[2*3+0])/(detj);
534 j[2*3+2] = (jac[0*3+0]*jac[1*3+1]-jac[0*3+1]*jac[1*3+0])/(detj);
535
536
537 }
538
539 bool FEM_TETRA10::valide_parametre_EF(double* uvw)
540 {
541 if (uvw[0]>=-1e-10)
542 if (uvw[1]>=-1e-10)
543 if (uvw[2]>=-1e-10)
544 if (uvw[0]+uvw[1]+uvw[2]<=1.+1e-10)
545 return true;
546 return false;
547 }
548
549
550 void FEM_TETRA10::enregistrer(std::ostream& o)
551 {
552 if (maillage!=NULL)
553 if (get_lien_topologie()!=NULL) o << "%" << get_id() << "=FEM_TETRA10($"<< get_lien_topologie()->get_id() << ",$" << maillage->get_id() << ",$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << ",$" << tab[3]->get_id() << ",$" << tab[4]->get_id() << ",$" << tab[5]->get_id() << ",$" << tab[6]->get_id() << ",$" << tab[7]->get_id() << ",$" << tab[8]->get_id() << ",$" << tab[9]->get_id()<< ");" << std::endl;
554 else o << "%" << get_id() << "=FEM_TETRA10(NULL,$" << maillage->get_id() << ",$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << ",$" << tab[3]->get_id() << ",$" << tab[4]->get_id() << ",$" << tab[5]->get_id() << ",$" << tab[6]->get_id() << ",$" << tab[7]->get_id() << ",$" << tab[8]->get_id() << ",$" << tab[9]->get_id() << ");" << std::endl;
555 else
556 if (get_lien_topologie()!=NULL) o << "%" << get_id() << "=FEM_TETRA10($"<< get_lien_topologie()->get_id() << ",NULL,$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << ",$" << tab[3]->get_id() << ",$" << tab[4]->get_id() << ",$" << tab[5]->get_id() << ",$" << tab[6]->get_id() << ",$" << tab[7]->get_id() << ",$" << tab[8]->get_id() << ",$" << tab[9]->get_id()<< ");" << std::endl;
557 else o << "%" << get_id() << "=FEM_TETRA10(NULL,NULL,$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << ",$" << tab[3]->get_id() << ",$" << tab[4]->get_id() << ",$" << tab[5]->get_id() << ",$" << tab[6]->get_id() << ",$" << tab[7]->get_id() << ",$" << tab[8]->get_id() << ",$" << tab[9]->get_id() << ");" << std::endl;
558
559 }
560
561
562 int FEM_TETRA10::verifie_validite_decoupage_xfem(double *vol)
563 {
564
565 }