2 // C++ : Tests unitaires sur les creations h'hexaedres
4 // Copyright (C) 2009-2011 CEA/DEN, EDF R&D
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/
21 // or email : webmaster.salome@opencascade.com
27 #include "HexDocument.hxx"
28 #include "HexElements.hxx"
30 #include "HexHexa.hxx"
31 #include "HexQuad.hxx"
32 #include "HexEdge.hxx"
33 #include "HexVertex.hxx"
35 #include "HexCramer.hxx"
37 // ======================================================== test_hexa_quads_5
38 int test_hexa_quads_5 (int nbargs, cpchar tabargs[])
45 Hex::Document* doc = mon_ex.addDocument ();
47 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
50 cpchar fic_vtk = "HexaQuad_5";
51 doc->saveVtk (fic_vtk, nvtk);
53 Hex::Hexa* hexa = grid->getHexaIJK (1,1,1);
55 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
56 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
57 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
58 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
59 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
60 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
63 doc->saveVtk (fic_vtk, nvtk);
66 doc->saveVtk (fic_vtk, nvtk);
68 doc->addHexa5Quads (qa, qc, qd, qe, qf);
69 doc->saveVtk (fic_vtk, nvtk);
72 HexDisplay (doc->countHexa ());
73 HexDisplay (doc->countQuad ());
74 HexDisplay (doc->countEdge ());
75 HexDisplay (doc->countVertex ());
77 doc->saveVtk (fic_vtk, nvtk);
80 // ====================================================== test_hexa_quads_ab
81 int test_hexa_quads_ab (int nbargs, cpchar tabargs[])
88 Hex::Document* doc = mon_ex.addDocument ();
90 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
93 cpchar fic_vtk = "HexaQuad_ab";
94 doc->saveVtk (fic_vtk, nvtk);
96 Hex::Hexa* hexa = grid->getHexaIJK (0, 0, 1);
98 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
99 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
100 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
101 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
102 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
103 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
109 doc->saveVtk (fic_vtk, nvtk);
111 doc->addHexa2Quads (qa, qb);
112 doc->saveVtk (fic_vtk, nvtk);
115 HexDisplay (doc->countHexa ());
116 HexDisplay (doc->countQuad ());
117 HexDisplay (doc->countEdge ());
118 HexDisplay (doc->countVertex ());
120 doc->saveVtk (fic_vtk, nvtk);
123 // ====================================================== test_hexa_quads_ac
124 int test_hexa_quads_ac (int nbargs, cpchar tabargs[])
126 const int size_x = 2;
127 const int size_y = 1;
128 const int size_z = 2;
131 Hex::Document* doc = mon_ex.addDocument ();
133 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
135 cpchar fic_vtk = "HexaQuad_ac";
136 doc->saveVtk (fic_vtk, nvtk);
138 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
140 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
141 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
142 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
143 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
144 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
145 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
151 doc->saveVtk (fic_vtk, nvtk);
153 doc->addHexa2Quads (qa, qe);
154 doc->saveVtk (fic_vtk, nvtk);
157 HexDisplay (doc->countHexa ());
158 HexDisplay (doc->countQuad ());
159 HexDisplay (doc->countEdge ());
160 HexDisplay (doc->countVertex ());
162 HexDisplay (doc->countUsedHexa ());
163 HexDisplay (doc->countUsedQuad ());
164 HexDisplay (doc->countUsedEdge ());
165 HexDisplay (doc->countUsedVertex ());
167 doc->saveVtk (fic_vtk, nvtk);
170 // ====================================================== test_hexa_quads_ace
171 int test_hexa_quads_ace (int nbargs, cpchar tabargs[])
173 const int size_x = 2;
174 const int size_y = 2;
175 const int size_z = 2;
178 Hex::Document* doc = mon_ex.addDocument ();
180 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
182 cpchar fic_vtk = "HexaQuad_ace";
183 doc->saveVtk (fic_vtk, nvtk);
185 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
187 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
188 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
189 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
190 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
191 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
192 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
197 doc->saveVtk (fic_vtk, nvtk);
199 doc->addHexa3Quads (qa, qd, qe);
200 doc->saveVtk (fic_vtk, nvtk);
203 HexDisplay (doc->countHexa ());
204 HexDisplay (doc->countQuad ());
205 HexDisplay (doc->countEdge ());
206 HexDisplay (doc->countVertex ());
208 HexDisplay (doc->countUsedHexa ());
209 HexDisplay (doc->countUsedQuad ());
210 HexDisplay (doc->countUsedEdge ());
211 HexDisplay (doc->countUsedVertex ());
213 doc->saveVtk (fic_vtk, nvtk);
216 // ====================================================== test_hexa_quads_acd
217 int test_hexa_quads_acd (int nbargs, cpchar tabargs[])
219 const int size_x = 3;
220 const int size_y = 1;
221 const int size_z = 2;
224 Hex::Document* doc = mon_ex.addDocument ();
226 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
228 cpchar fic_vtk = "HexaQuad_acd";
229 doc->saveVtk (fic_vtk, nvtk);
231 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
233 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
234 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
235 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
236 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
237 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
238 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
243 doc->saveVtk (fic_vtk, nvtk);
245 doc->addHexa3Quads (qa, qe, qf);
246 doc->saveVtk (fic_vtk, nvtk);
249 HexDisplay (doc->countHexa ());
250 HexDisplay (doc->countQuad ());
251 HexDisplay (doc->countEdge ());
252 HexDisplay (doc->countVertex ());
254 HexDisplay (doc->countUsedHexa ());
255 HexDisplay (doc->countUsedQuad ());
256 HexDisplay (doc->countUsedEdge ());
257 HexDisplay (doc->countUsedVertex ());
259 doc->saveVtk (fic_vtk, nvtk);
262 // ====================================================== test_hexa_quads_abcd
263 int test_hexa_quads_abcd (int nbargs, cpchar tabargs[])
265 const int size_x = 3;
266 const int size_y = 1;
267 const int size_z = 3;
270 Hex::Document* doc = mon_ex.addDocument ();
272 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
274 cpchar fic_vtk = "HexaQuad_abcd";
275 doc->saveVtk (fic_vtk, nvtk);
277 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
279 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
280 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
281 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
282 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
283 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
284 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
288 doc->saveVtk (fic_vtk, nvtk);
290 doc->addHexa4Quads (qa, qe, qf, qb);
291 doc->saveVtk (fic_vtk, nvtk);
294 HexDisplay (doc->countHexa ());
295 HexDisplay (doc->countQuad ());
296 HexDisplay (doc->countEdge ());
297 HexDisplay (doc->countVertex ());
299 HexDisplay (doc->countUsedHexa ());
300 HexDisplay (doc->countUsedQuad ());
301 HexDisplay (doc->countUsedEdge ());
302 HexDisplay (doc->countUsedVertex ());
304 doc->saveVtk (fic_vtk, nvtk);
307 // ====================================================== test_hexa_quads_abce
308 int test_hexa_quads_abce (int nbargs, cpchar tabargs[])
310 const int size_x = 3;
311 const int size_y = 2;
312 const int size_z = 2;
315 Hex::Document* doc = mon_ex.addDocument ();
317 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
319 cpchar fic_vtk = "HexaQuad_abce";
320 doc->saveVtk (fic_vtk, nvtk);
322 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
324 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
325 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
326 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
327 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
328 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
329 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
333 doc->saveVtk (fic_vtk, nvtk);
335 doc->addHexa4Quads (qa, qe, qf, qd);
336 doc->saveVtk (fic_vtk, nvtk);
339 HexDisplay (doc->countHexa ());
340 HexDisplay (doc->countQuad ());
341 HexDisplay (doc->countEdge ());
342 HexDisplay (doc->countVertex ());
344 HexDisplay (doc->countUsedHexa ());
345 HexDisplay (doc->countUsedQuad ());
346 HexDisplay (doc->countUsedEdge ());
347 HexDisplay (doc->countUsedVertex ());
349 doc->saveVtk (fic_vtk, nvtk);
352 // ======================================================== test_cramer
353 int test_cramer (int nbargs, cpchar tabargs[])
355 double matrice [] = { 2, 7, 1,
358 double second [] = { 1, 1, 1 };
361 Hex::Cramer systeme(3);
363 int ier = systeme.resoudre (matrice, second, solution);
366 cout << " Second membre = (" << second[Hex::dir_x] << ", "
367 << second[Hex::dir_y] << ", " << second[Hex::dir_z] << ")"
370 cout << " Solution = (" << solution[Hex::dir_x] << ", "
371 << solution[Hex::dir_y] << ", " << solution[Hex::dir_z] << ")"
375 systeme.multiply (solution, produit);
376 cout << " Produit = (" << produit[Hex::dir_x] << ", "
377 << produit[Hex::dir_y] << ", " << produit[Hex::dir_z] << ")"
382 // ====================================================== test_hexa_quads_ac1
383 int test_hexa_quads_ac1 (int nbargs, cpchar tabargs[])
386 cout << "test_hexa_quads_ac1, trace nro " << ++nbtraces <<endl;
388 Hex::Document* doc = mon_ex.addDocument ();
390 Hex::Vertex* ace = doc->addVertex (0,0,0);
391 Hex::Vertex* acf = doc->addVertex (1,0,0);
393 /****************************************
394 Hex::Vertex* ade = doc->addVertex (0,1,0);
395 Hex::Vertex* adf = doc->addVertex (1,1,0);
397 Hex::Vertex* bce = doc->addVertex (0,0,1);
398 Hex::Vertex* bcf = doc->addVertex (1,0,1);
399 Hex::Vertex* bde = doc->addVertex (0,1,1);
400 Hex::Vertex* bdf = doc->addVertex (1,1,1);
401 *****************************************/
403 Hex::Vertex* ade = doc->addVertex (-2,2,0);
404 Hex::Vertex* adf = doc->addVertex ( 2,1,0);
405 Hex::Vertex* bce = doc->addVertex ( 1,0,1);
406 Hex::Vertex* bcf = doc->addVertex ( 2,0,1);
408 Hex::Edge* ac = doc->addEdge (ace, acf);
409 Hex::Edge* af = doc->addEdge (adf, acf);
410 Hex::Edge* ad = doc->addEdge (ade, adf);
411 Hex::Edge* ae = doc->addEdge (ace, ade);
413 Hex::Edge* bc = doc->addEdge (bce, bcf);
414 // Hex::Edge* bf = doc->addEdge (bdf, bcf);
415 // Hex::Edge* bd = doc->addEdge (bde, bdf);
416 // Hex::Edge* be = doc->addEdge (bce, bde);
418 Hex::Edge* ce = doc->addEdge (ace, bce);
419 Hex::Edge* cf = doc->addEdge (acf, bcf);
420 // Hex::Edge* de = doc->addEdge (ade, bde);
421 // Hex::Edge* df = doc->addEdge (adf, bdf);
423 Hex::Quad* qa = doc->addQuad (ac, af, ad, ae);
424 Hex::Quad* qc = doc->addQuad (ac, cf, bc, ce);
426 /* Hex::Hexa* hexa = */ doc->addHexa2Quads (qa, qc);
429 doc->saveVtk ("hexa_quads.vtk");
432 // ======================================================== test_piquage
433 int test_piquage (int nbargs, cpchar tabargs[])
435 const int size_x = 3;
436 const int size_y = 3;
437 const int size_z = 3;
440 Hex::Document* doc = mon_ex.addDocument ();
442 Hex::Vector* vx = doc->addVector (1,0,0);
443 Hex::Vector* vz = doc->addVector (0,0,1);
445 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
453 Hex::Vertex* orig2 = doc->addVertex (0,0,5);
454 Hex::Elements* grid2 = doc->makeCylinderUni (orig2, vx,vz, 1.0, 5.0,
455 360, dl, nr, na, nl);
457 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
458 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
459 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
461 Hex::Vertex* p1 = grid2->getVertexIJK (1, 0, 1);
462 Hex::Vertex* p2 = grid2->getVertexIJK (1, 1, 1);
463 Hex::Vertex* p3 = grid2->getVertexIJK (1, 2, 1);
474 doc->saveVtk ("piquage", nvtk);
477 for (int ny=0; ny<4 ; ny++)
479 Hex::Quad* quad = grid2->getQuadIJ (0, ny, 1);
481 qpattern.push_back (quad);
484 doc->saveVtk ("piquage", nvtk);
485 doc->replace (qpattern, p1,c1, p2,c2, p3,c3);
487 doc->saveVtk ("piquage", nvtk);
491 // ======================================================== test_replace0
492 int test_replace0 (int nbargs, cpchar tabargs[])
494 const int size_x = 3;
495 const int size_y = 3;
496 const int size_z = 3;
499 Hex::Document* doc = mon_ex.addDocument ();
501 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
503 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
504 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
505 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
507 Hex::Vertex* pa1 = doc->addVertex (-1, -1);
508 Hex::Vertex* pb1 = doc->addVertex ( 1, -1);
509 Hex::Vertex* pc1 = doc->addVertex ( 1, 1);
510 Hex::Vertex* pd1 = doc->addVertex (-1, 1);
512 Hex::Vertex* pa2 = doc->addVertex (-2, -2);
513 Hex::Vertex* pb2 = doc->addVertex ( 2, -2);
514 Hex::Vertex* pc2 = doc->addVertex ( 2, 2);
515 Hex::Vertex* pd2 = doc->addVertex (-2, 2);
517 Hex::Edge* edab1 = doc->addEdge (pa1, pb1);
518 Hex::Edge* edbc1 = doc->addEdge (pb1, pc1);
519 Hex::Edge* edcd1 = doc->addEdge (pc1, pd1);
520 Hex::Edge* edda1 = doc->addEdge (pd1, pa1);
522 Hex::Edge* edab2 = doc->addEdge (pa2, pb2);
523 Hex::Edge* edbc2 = doc->addEdge (pb2, pc2);
524 Hex::Edge* edcd2 = doc->addEdge (pc2, pd2);
525 Hex::Edge* edda2 = doc->addEdge (pd2, pa2);
527 Hex::Edge* edaa = doc->addEdge (pa1, pa2);
528 Hex::Edge* edbb = doc->addEdge (pb1, pb2);
529 Hex::Edge* edcc = doc->addEdge (pc1, pc2);
530 Hex::Edge* eddd = doc->addEdge (pd1, pd2);
533 // qpattern.push_back (doc->addQuad (edab1, edbc1, edcd1, edda1));
534 qpattern.push_back (doc->addQuad (edab1, edbb, edab2, edaa));
535 qpattern.push_back (doc->addQuad (edbc1, edcc, edbc2, edbb));
536 qpattern.push_back (doc->addQuad (edcd1, eddd, edcd2, edcc));
537 qpattern.push_back (doc->addQuad (edda1, edaa, edda2, eddd));
539 doc->saveVtk ("replace0.vtk");
541 doc->replace (qpattern, pd2,c1, pa2,c2, pb2,c3);
546 doc->saveVtk ("replace1.vtk");
550 // ======================================================== test_replace1
551 int test_replace1 (int nbargs, cpchar tabargs[])
553 const int size_x = 3;
554 const int size_y = 3;
555 const int size_z = 3;
556 const int size_cyl = 4;
559 Hex::Document* doc = mon_ex.addDocument ();
560 Hex::Vector* vx = doc->addVector (1, 0, 0);
561 Hex::Vector* vz = doc->addVector (0, 0, 1);
562 Hex::Vertex* ori = doc->addVertex (8, 0, 0);
563 const double rint = 1;
564 const double rext = 3;
565 const double angle = 360;
566 const double haut = 1;
570 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
571 Hex::Elements* pipe = doc->makePipeUni (ori, vx, vz, rint, rext, angle,
572 haut, nr, size_cyl, nh);
574 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
575 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
576 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
578 Hex::Vertex* p1 = pipe->getVertexIJK (1, 1, 1);
579 Hex::Vertex* p2 = pipe->getVertexIJK (1, 2, 1);
580 Hex::Vertex* p3 = pipe->getVertexIJK (1, 3, 1);
583 for (int na=0; na<size_cyl; ++na)
585 Hex::Quad* quad =pipe->getQuadIJ (0, na, 1);
587 qpattern.push_back (quad);
597 doc->saveVtk ("replace0.vtk");
599 Hex::Elements* rep = doc->replaceHexa (qpattern, p1,c1, p2,c2, p3,c3);
600 HexDisplay (rep->isValid());
603 doc->saveVtk ("replace1.vtk");
604 doc->saveVtk ("replace2.vtk");
605 doc->saveVtk ("replace3.vtk");
608 // ======================================================== test_replace
609 int test_replace (int nbargs, cpchar tabargs[])
611 const int size_x = 5;
612 const int size_y = 5;
613 const int size_z = 3;
614 const int size_cyl = 12;
617 Hex::Document* doc = mon_ex.addDocument ();
618 Hex::Vector* vx = doc->addVector (1, 0, 0);
619 Hex::Vector* vz = doc->addVector (0, 0, 1);
620 Hex::Vertex* ori = doc->addVertex (8, 0, 0);
621 const double rint = 2;
622 const double rext = 3;
623 const double angle = 360;
624 const double haut = 1;
628 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
629 Hex::Elements* pipe = doc->makePipeUni (ori, vx, vz, rint, rext, angle,
630 haut, nr, size_cyl, nh);
632 Hex::Vertex* c1 = grid->getVertexIJK (2, 1, size_z);
633 Hex::Vertex* c2 = grid->getVertexIJK (3, 1, size_z);
635 Hex::Vertex* p1 = pipe->getVertexIJK (1, 7, 1);
636 Hex::Vertex* p2 = pipe->getVertexIJK (1, 8, 1);
638 Hex::Quads qpattern, qtarget;
639 for (int na=0; na<size_cyl; ++na)
641 Hex::Quad* quad =pipe->getQuadIJ (0, na, 1);
643 qpattern.push_back (quad);
646 for (int ni=1; ni<size_x-1; ++ni)
647 for (int nj=1; nj<size_y-1; ++nj)
649 cout << " grid->getQuad (" << ni << "," << nj << ")\n";
650 Hex::Quad* quad = grid->getQuadIJ (ni, nj, size_z);
652 qtarget.push_back (quad);
660 doc->saveVtk ("replace0.vtk");
662 Hex::Elements* rep = doc->replace (qpattern, qtarget, p1,c1, p2,c2);
663 HexDisplay (rep->isValid());
666 doc->saveVtk ("replace1.vtk");
667 doc->saveVtk ("replace2.vtk");
670 // ======================================================== test_quads
671 int test_quads (int nbargs, cpchar tabargs[])
674 cpchar appel = strrchr (tabargs[0], '/');
679 appel = strrchr (tabargs[0], '\\');
689 if (Cestegal (option, "-ab") || Cestegal (option, "-AB"))
691 printf (" __________________ Appel de test_hexa_quads_ab \n");
692 test_hexa_quads_ab (nbargs, tabargs);
695 else if (Cestegal (option, "-ac1") || Cestegal (option, "-AC1"))
697 printf (" __________________ Appel de test_hexa_quads_ac1 \n");
698 test_hexa_quads_ac1 (nbargs, tabargs);
700 else if (Cestegal (option, "-ac") || Cestegal (option, "-AC"))
702 printf (" __________________ Appel de test_hexa_quads_ac \n");
703 test_hexa_quads_ac (nbargs, tabargs);
706 else if (Cestegal (option, "-ace") || Cestegal (option, "-ACE"))
708 printf (" __________________ Appel de test_hexa_quads_ace \n");
709 test_hexa_quads_ace (nbargs, tabargs);
712 else if (Cestegal (option, "-acd") || Cestegal (option, "-ACD"))
714 printf (" __________________ Appel de test_hexa_quads_acd \n");
715 test_hexa_quads_acd (nbargs, tabargs);
718 else if (Cestegal (option, "-abcd") || Cestegal (option, "-ABCD"))
720 printf (" __________________ Appel de test_hexa_quads_abcd \n");
721 test_hexa_quads_abcd (nbargs, tabargs);
724 else if (Cestegal (option, "-abce") || Cestegal (option, "-ABCE"))
726 printf (" __________________ Appel de test_hexa_quads_abce \n");
727 test_hexa_quads_abce (nbargs, tabargs);
730 else if (Cestegal (option, "-5") || Cestegal (option, "-abcde")
731 || Cestegal (option, "-ABCDE"))
733 printf (" __________________ Appel de test_hexa_quads_abcde \n");
734 test_hexa_quads_5 (nbargs, tabargs);
739 printf (" +++ Veuillez indiquer votre cas-test en argument SVP\n");
740 printf (" +++ Creation d'un hexadedre a partir de quadrangles :\n");
741 printf (" %s -ab : A partir des quadrangles A et B (opposes)\n", appel);
742 printf (" %s -ac : A partir des quadrangles A et C (diedre)\n", appel);
743 printf (" %s -acd : A partir des quadrangles A, C et D (triedre)\n",
745 printf (" %s -ace : A partir des quadrangles A, C et E (en U)\n",
747 printf (" %s -acbd : A partir des quadrangles A, B, C et D (tunnel)\n",
749 printf (" %s -acbe : A partir des quadrangles A, B, C et E (but)\n",
751 printf (" %s -5 : A partir de 5 quadrangles (boite sans couvercle)\n",