ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/fem_tetra10.cpp
Revision: 637
Committed: Mon Jan 26 21:26:37 2015 UTC (10 years, 7 months ago) by francois
File size: 18999 byte(s)
Log Message:
entree des points de gauss pour les différents éléments finis depuis reference JCC

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::nb_fonction_interpolation(void)
284 {
285 return 10;
286 }
287
288
289 double FEM_TETRA10::get_fonction_interpolation(int num,double* uv)
290 {
291 double val;
292 double landa=1-uv[0]-uv[1]-uv[2];
293 switch (num)
294 {
295 case 1:
296 val=-landa*(1-2*landa);
297 break;
298 case 2:
299 val=4*uv[0]*landa;
300 break;
301 case 3:
302 val=-uv[0]*(1-2*uv[0]);
303 break;
304 case 4:
305 val=4*uv[0]*uv[1];
306 break;
307 case 5:
308 val=-uv[1]*(1-2*uv[1]);
309 break;
310 case 6:
311 val=4*uv[1]*landa;
312 break;
313 case 7:
314 val=4*uv[2]*landa;
315 break;
316 case 8:
317 val=4*uv[0]*uv[2];
318 break;
319 case 9:
320 val=4*uv[1]*uv[2];
321 break;
322 case 10:
323 val=-uv[2]*(1-2*uv[2]);
324 break;
325 }
326 return val;
327 }
328
329 double FEM_TETRA10::get_fonction_derive_interpolation(int num,int num_variable,double* uv)
330 {
331 double val;
332 double landa=1-uv[0]-uv[1]-uv[2];
333 switch (num)
334 {
335 case 1:
336 switch (num_variable)
337 {
338 case 1:
339 val=1-4*landa;
340 break;
341 case 2:
342 val=1-4*landa;
343 break;
344 case 3:
345 val=1-4*landa;
346 break;
347 } break;
348 case 2:
349 switch (num_variable)
350 {
351 case 1:
352 val=4*(landa-uv[0]);
353 break;
354 case 2:
355 val=-4*uv[0];
356 break;
357 case 3:
358 val=-4*uv[0];
359 break;
360 }break;
361 case 3:
362 switch (num_variable)
363 {
364 case 1:
365 val=-1+4*uv[0];
366 break;
367 case 2:
368 val=0.;
369 break;
370 case 3:
371 val=0.;
372 break;
373 }break;
374 case 4:
375 switch (num_variable)
376 {
377 case 1:
378 val=4*uv[1];
379 break;
380 case 2:
381 val=4*uv[0];
382 break;
383 case 3:
384 val=0.;
385 break;
386 }break;
387 case 5:
388 switch (num_variable)
389 {
390 case 1:
391 val=0.;
392 break;
393 case 2:
394 val=-1+4*uv[1];
395 break;
396 case 3:
397 val=0.;
398 break;
399 }break;
400 case 6:
401 switch (num_variable)
402 {
403 case 1:
404 val=-4*uv[1];
405 break;
406 case 2:
407 val=4*(landa-uv[1]);
408 break;
409 case 3:
410 val=-4*uv[1];
411 break;
412 }break;
413 case 7:
414 switch (num_variable)
415 {
416 case 1:
417 val=-4*uv[2];
418 break;
419 case 2:
420 val=-4*uv[2];
421 break;
422 case 3:
423 val=4*(landa-uv[2]);
424 break;
425 }break;
426 case 8:
427 switch (num_variable)
428 {
429 case 1:
430 val=4*uv[2];
431 break;
432 case 2:
433 val=0;
434 break;
435 case 3:
436 val=4*uv[0];
437 break;
438 }break;
439 case 9:
440 switch (num_variable)
441 {
442 case 1:
443 val=0.;
444 break;
445 case 2:
446 val=4*uv[2];
447 break;
448 case 3:
449 val=4*uv[1];
450 break;
451 }break;
452 case 10:
453 switch (num_variable)
454 {
455 case 1:
456 val=0.;
457 break;
458 case 2:
459 val=0.;
460 break;
461 case 3:
462 val=-1+4*uv[2];
463 break;
464 }break;
465 }
466 return val;
467
468 }
469
470 double FEM_TETRA10::get_jacobien(double* jac,double *uv,int& lig,int& col,double unite)
471 {
472 lig=3;
473 col=3;
474
475
476 double nb_fct_int=this->nb_fonction_interpolation();
477
478 double xyz[30];
479
480 int nb_nd=get_nb_fem_noeud();
481
482 for (int i=0;i<nb_nd;i++)
483 {
484 FEM_NOEUD* fmnd=get_fem_noeud(i);
485 double *xyz1=fmnd->get_coord();
486
487 xyz[3*i]=unite*xyz1[0];
488 xyz[3*i+1]=unite*xyz1[1];
489 xyz[3*i+2]=unite*xyz1[2];
490
491 }
492
493 for (int i=0;i<lig;i++)
494 {
495 for (int j=0;j<col;j++)
496 {
497 jac[i*col+j]=0.0;
498 for (int k=0;k<nb_fct_int;k++)
499 {
500 double NDERI=this->get_fonction_derive_interpolation(k+1,i+1,uv);
501
502 jac[i*col+j]+=NDERI*xyz[3*k+j];
503 }
504 }
505 }
506
507 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]);
508
509 return SIX_V;
510
511 }
512
513
514 void FEM_TETRA10::get_inverse_jacob(double* j,double *uv,double unite)
515 {
516 double jac[9];
517 int lig,col;
518 double detj=this->get_jacobien(jac,uv,lig,col,unite);
519
520
521 j[0*3+0] = (jac[1*3+1]*jac[2*3+2]-jac[1*3+2]*jac[2*3+1])/(detj);
522 j[0*3+1] = -(jac[0*3+1]*jac[2*3+2]-jac[0*3+2]*jac[2*3+1])/(detj);
523 j[0*3+2] =-(-jac[0*3+1]*jac[1*3+2]+jac[0*3+2]*jac[1*3+1])/(detj);
524
525 j[1*3+0] = -(jac[1*3+0]*jac[2*3+2]-jac[1*3+2]*jac[2*3+0])/(detj);
526 j[1*3+1] = (jac[0*3+0]*jac[2*3+2]-jac[0*3+2]*jac[2*3+0])/(detj);
527 j[1*3+2] = -(jac[0*3+0]*jac[1*3+2]-jac[0*3+2]*jac[1*3+0])/(detj);
528
529 j[2*3+0] =-(-jac[1*3+0]*jac[2*3+1]+jac[1*3+1]*jac[2*3+0])/(detj);
530 j[2*3+1] = -(jac[0*3+0]*jac[2*3+1]-jac[0*3+1]*jac[2*3+0])/(detj);
531 j[2*3+2] = (jac[0*3+0]*jac[1*3+1]-jac[0*3+1]*jac[1*3+0])/(detj);
532
533
534 }
535
536 bool FEM_TETRA10::valide_parametre_EF(double* uvw)
537 {
538 if (uvw[0]>=-1e-10)
539 if (uvw[1]>=-1e-10)
540 if (uvw[2]>=-1e-10)
541 if (uvw[0]+uvw[1]+uvw[2]<=1.+1e-10)
542 return true;
543 return false;
544 }
545
546
547 void FEM_TETRA10::enregistrer(std::ostream& o)
548 {
549 if (maillage!=NULL)
550 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;
551 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;
552 else
553 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;
554 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;
555
556 }
557
558
559 int FEM_TETRA10::verifie_validite_decoupage_xfem(double *vol)
560 {
561
562 }