2 // C++ : Tests unitaires sur les creations h'hexaedres
4 // Copyright (C) 2009-2016 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, or (at your option) any later version.
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/ or email : webmaster.salome@opencascade.com
26 #include "HexDocument.hxx"
27 #include "HexElements.hxx"
29 #include "HexHexa.hxx"
30 #include "HexQuad.hxx"
31 #include "HexEdge.hxx"
32 #include "HexVertex.hxx"
34 #include "HexCramer.hxx"
36 // ======================================================== test_hexa_quads_5
37 int test_hexa_quads_5 (int nbargs, cpchar tabargs[])
44 Hex::Document* doc = mon_ex.addDocument ();
46 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
49 cpchar fic_vtk = "HexaQuad_5";
50 doc->saveVtk (fic_vtk, nvtk);
52 Hex::Hexa* hexa = grid->getHexaIJK (1,1,1);
54 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
55 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
56 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
57 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
58 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
59 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
62 doc->saveVtk (fic_vtk, nvtk);
65 doc->saveVtk (fic_vtk, nvtk);
67 doc->addHexa5Quads (qa, qc, qd, qe, qf);
68 doc->saveVtk (fic_vtk, nvtk);
71 HexDisplay (doc->countHexa ());
72 HexDisplay (doc->countQuad ());
73 HexDisplay (doc->countEdge ());
74 HexDisplay (doc->countVertex ());
76 doc->saveVtk (fic_vtk, nvtk);
79 // ====================================================== test_hexa_quads_ab
80 int test_hexa_quads_ab (int nbargs, cpchar tabargs[])
87 Hex::Document* doc = mon_ex.addDocument ();
89 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
92 cpchar fic_vtk = "HexaQuad_ab";
93 doc->saveVtk (fic_vtk, nvtk);
95 Hex::Hexa* hexa = grid->getHexaIJK (0, 0, 1);
97 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
98 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
99 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
100 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
101 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
102 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
108 doc->saveVtk (fic_vtk, nvtk);
110 doc->addHexa2Quads (qa, qb);
111 doc->saveVtk (fic_vtk, nvtk);
114 HexDisplay (doc->countHexa ());
115 HexDisplay (doc->countQuad ());
116 HexDisplay (doc->countEdge ());
117 HexDisplay (doc->countVertex ());
119 doc->saveVtk (fic_vtk, nvtk);
122 // ====================================================== test_hexa_quads_ac
123 int test_hexa_quads_ac (int nbargs, cpchar tabargs[])
125 const int size_x = 2;
126 const int size_y = 1;
127 const int size_z = 2;
130 Hex::Document* doc = mon_ex.addDocument ();
132 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
134 cpchar fic_vtk = "HexaQuad_ac";
135 doc->saveVtk (fic_vtk, nvtk);
137 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
139 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
140 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
141 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
142 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
143 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
144 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
150 doc->saveVtk (fic_vtk, nvtk);
152 doc->addHexa2Quads (qa, qe);
153 doc->saveVtk (fic_vtk, nvtk);
156 HexDisplay (doc->countHexa ());
157 HexDisplay (doc->countQuad ());
158 HexDisplay (doc->countEdge ());
159 HexDisplay (doc->countVertex ());
161 HexDisplay (doc->countUsedHexa ());
162 HexDisplay (doc->countUsedQuad ());
163 HexDisplay (doc->countUsedEdge ());
164 HexDisplay (doc->countUsedVertex ());
166 doc->saveVtk (fic_vtk, nvtk);
169 // ====================================================== test_hexa_quads_ace
170 int test_hexa_quads_ace (int nbargs, cpchar tabargs[])
172 const int size_x = 2;
173 const int size_y = 2;
174 const int size_z = 2;
177 Hex::Document* doc = mon_ex.addDocument ();
179 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
181 cpchar fic_vtk = "HexaQuad_ace";
182 doc->saveVtk (fic_vtk, nvtk);
184 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
186 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
187 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
188 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
189 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
190 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
191 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
196 doc->saveVtk (fic_vtk, nvtk);
198 doc->addHexa3Quads (qa, qd, qe);
199 doc->saveVtk (fic_vtk, nvtk);
202 HexDisplay (doc->countHexa ());
203 HexDisplay (doc->countQuad ());
204 HexDisplay (doc->countEdge ());
205 HexDisplay (doc->countVertex ());
207 HexDisplay (doc->countUsedHexa ());
208 HexDisplay (doc->countUsedQuad ());
209 HexDisplay (doc->countUsedEdge ());
210 HexDisplay (doc->countUsedVertex ());
212 doc->saveVtk (fic_vtk, nvtk);
215 // ====================================================== test_hexa_quads_acd
216 int test_hexa_quads_acd (int nbargs, cpchar tabargs[])
218 const int size_x = 3;
219 const int size_y = 1;
220 const int size_z = 2;
223 Hex::Document* doc = mon_ex.addDocument ();
225 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
227 cpchar fic_vtk = "HexaQuad_acd";
228 doc->saveVtk (fic_vtk, nvtk);
230 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
232 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
233 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
234 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
235 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
236 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
237 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
242 doc->saveVtk (fic_vtk, nvtk);
244 doc->addHexa3Quads (qa, qe, qf);
245 doc->saveVtk (fic_vtk, nvtk);
248 HexDisplay (doc->countHexa ());
249 HexDisplay (doc->countQuad ());
250 HexDisplay (doc->countEdge ());
251 HexDisplay (doc->countVertex ());
253 HexDisplay (doc->countUsedHexa ());
254 HexDisplay (doc->countUsedQuad ());
255 HexDisplay (doc->countUsedEdge ());
256 HexDisplay (doc->countUsedVertex ());
258 doc->saveVtk (fic_vtk, nvtk);
261 // ====================================================== test_hexa_quads_abcd
262 int test_hexa_quads_abcd (int nbargs, cpchar tabargs[])
264 const int size_x = 3;
265 const int size_y = 1;
266 const int size_z = 3;
269 Hex::Document* doc = mon_ex.addDocument ();
271 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
273 cpchar fic_vtk = "HexaQuad_abcd";
274 doc->saveVtk (fic_vtk, nvtk);
276 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
278 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
279 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
280 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
281 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
282 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
283 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
287 doc->saveVtk (fic_vtk, nvtk);
289 doc->addHexa4Quads (qa, qe, qf, qb);
290 doc->saveVtk (fic_vtk, nvtk);
293 HexDisplay (doc->countHexa ());
294 HexDisplay (doc->countQuad ());
295 HexDisplay (doc->countEdge ());
296 HexDisplay (doc->countVertex ());
298 HexDisplay (doc->countUsedHexa ());
299 HexDisplay (doc->countUsedQuad ());
300 HexDisplay (doc->countUsedEdge ());
301 HexDisplay (doc->countUsedVertex ());
303 doc->saveVtk (fic_vtk, nvtk);
306 // ====================================================== test_hexa_quads_abce
307 int test_hexa_quads_abce (int nbargs, cpchar tabargs[])
309 const int size_x = 3;
310 const int size_y = 2;
311 const int size_z = 2;
314 Hex::Document* doc = mon_ex.addDocument ();
316 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
318 cpchar fic_vtk = "HexaQuad_abce";
319 doc->saveVtk (fic_vtk, nvtk);
321 Hex::Hexa* hexa = grid->getHexaIJK (1,0,1);
323 Hex::Quad* qa = hexa->getQuad (Hex::Q_A);
324 Hex::Quad* qb = hexa->getQuad (Hex::Q_B);
325 Hex::Quad* qc = hexa->getQuad (Hex::Q_C);
326 Hex::Quad* qd = hexa->getQuad (Hex::Q_D);
327 Hex::Quad* qe = hexa->getQuad (Hex::Q_E);
328 Hex::Quad* qf = hexa->getQuad (Hex::Q_F);
332 doc->saveVtk (fic_vtk, nvtk);
334 doc->addHexa4Quads (qa, qe, qf, qd);
335 doc->saveVtk (fic_vtk, nvtk);
338 HexDisplay (doc->countHexa ());
339 HexDisplay (doc->countQuad ());
340 HexDisplay (doc->countEdge ());
341 HexDisplay (doc->countVertex ());
343 HexDisplay (doc->countUsedHexa ());
344 HexDisplay (doc->countUsedQuad ());
345 HexDisplay (doc->countUsedEdge ());
346 HexDisplay (doc->countUsedVertex ());
348 doc->saveVtk (fic_vtk, nvtk);
351 // ======================================================== test_cramer
352 int test_cramer (int nbargs, cpchar tabargs[])
354 double matrice [] = { 2, 7, 1,
357 double second [] = { 1, 1, 1 };
360 Hex::Cramer systeme(3);
362 int ier = systeme.resoudre (matrice, second, solution);
365 cout << " Second membre = (" << second[Hex::dir_x] << ", "
366 << second[Hex::dir_y] << ", " << second[Hex::dir_z] << ")"
369 cout << " Solution = (" << solution[Hex::dir_x] << ", "
370 << solution[Hex::dir_y] << ", " << solution[Hex::dir_z] << ")"
374 systeme.multiply (solution, produit);
375 cout << " Produit = (" << produit[Hex::dir_x] << ", "
376 << produit[Hex::dir_y] << ", " << produit[Hex::dir_z] << ")"
381 // ====================================================== test_hexa_quads_ac1
382 int test_hexa_quads_ac1 (int nbargs, cpchar tabargs[])
385 cout << "test_hexa_quads_ac1, trace nro " << ++nbtraces <<endl;
387 Hex::Document* doc = mon_ex.addDocument ();
389 Hex::Vertex* ace = doc->addVertex (0,0,0);
390 Hex::Vertex* acf = doc->addVertex (1,0,0);
392 /****************************************
393 Hex::Vertex* ade = doc->addVertex (0,1,0);
394 Hex::Vertex* adf = doc->addVertex (1,1,0);
396 Hex::Vertex* bce = doc->addVertex (0,0,1);
397 Hex::Vertex* bcf = doc->addVertex (1,0,1);
398 Hex::Vertex* bde = doc->addVertex (0,1,1);
399 Hex::Vertex* bdf = doc->addVertex (1,1,1);
400 *****************************************/
402 Hex::Vertex* ade = doc->addVertex (-2,2,0);
403 Hex::Vertex* adf = doc->addVertex ( 2,1,0);
404 Hex::Vertex* bce = doc->addVertex ( 1,0,1);
405 Hex::Vertex* bcf = doc->addVertex ( 2,0,1);
407 Hex::Edge* ac = doc->addEdge (ace, acf);
408 Hex::Edge* af = doc->addEdge (adf, acf);
409 Hex::Edge* ad = doc->addEdge (ade, adf);
410 Hex::Edge* ae = doc->addEdge (ace, ade);
412 Hex::Edge* bc = doc->addEdge (bce, bcf);
413 // Hex::Edge* bf = doc->addEdge (bdf, bcf);
414 // Hex::Edge* bd = doc->addEdge (bde, bdf);
415 // Hex::Edge* be = doc->addEdge (bce, bde);
417 Hex::Edge* ce = doc->addEdge (ace, bce);
418 Hex::Edge* cf = doc->addEdge (acf, bcf);
419 // Hex::Edge* de = doc->addEdge (ade, bde);
420 // Hex::Edge* df = doc->addEdge (adf, bdf);
422 Hex::Quad* qa = doc->addQuad (ac, af, ad, ae);
423 Hex::Quad* qc = doc->addQuad (ac, cf, bc, ce);
425 /* Hex::Hexa* hexa = */ doc->addHexa2Quads (qa, qc);
428 doc->saveVtk ("hexa_quads.vtk");
431 // ======================================================== test_piquage
432 int test_piquage (int nbargs, cpchar tabargs[])
434 const int size_x = 3;
435 const int size_y = 3;
436 const int size_z = 3;
439 Hex::Document* doc = mon_ex.addDocument ();
441 Hex::Vector* vx = doc->addVector (1,0,0);
442 Hex::Vector* vz = doc->addVector (0,0,1);
444 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
452 Hex::Vertex* orig2 = doc->addVertex (0,0,5);
453 Hex::Elements* grid2 = doc->makeCylinderUni (orig2, vx,vz, 1.0, 5.0,
454 360, dl, nr, na, nl);
456 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
457 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
458 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
460 Hex::Vertex* p1 = grid2->getVertexIJK (1, 0, 1);
461 Hex::Vertex* p2 = grid2->getVertexIJK (1, 1, 1);
462 Hex::Vertex* p3 = grid2->getVertexIJK (1, 2, 1);
473 doc->saveVtk ("piquage", nvtk);
476 for (int ny=0; ny<4 ; ny++)
478 Hex::Quad* quad = grid2->getQuadIJ (0, ny, 1);
480 qpattern.push_back (quad);
483 doc->saveVtk ("piquage", nvtk);
484 doc->replace (qpattern, p1,c1, p2,c2, p3,c3);
486 doc->saveVtk ("piquage", nvtk);
490 // ======================================================== test_replace0
491 int test_replace0 (int nbargs, cpchar tabargs[])
493 const int size_x = 3;
494 const int size_y = 3;
495 const int size_z = 3;
498 Hex::Document* doc = mon_ex.addDocument ();
500 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
502 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
503 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
504 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
506 Hex::Vertex* pa1 = doc->addVertex (-1, -1);
507 Hex::Vertex* pb1 = doc->addVertex ( 1, -1);
508 Hex::Vertex* pc1 = doc->addVertex ( 1, 1);
509 Hex::Vertex* pd1 = doc->addVertex (-1, 1);
511 Hex::Vertex* pa2 = doc->addVertex (-2, -2);
512 Hex::Vertex* pb2 = doc->addVertex ( 2, -2);
513 Hex::Vertex* pc2 = doc->addVertex ( 2, 2);
514 Hex::Vertex* pd2 = doc->addVertex (-2, 2);
516 Hex::Edge* edab1 = doc->addEdge (pa1, pb1);
517 Hex::Edge* edbc1 = doc->addEdge (pb1, pc1);
518 Hex::Edge* edcd1 = doc->addEdge (pc1, pd1);
519 Hex::Edge* edda1 = doc->addEdge (pd1, pa1);
521 Hex::Edge* edab2 = doc->addEdge (pa2, pb2);
522 Hex::Edge* edbc2 = doc->addEdge (pb2, pc2);
523 Hex::Edge* edcd2 = doc->addEdge (pc2, pd2);
524 Hex::Edge* edda2 = doc->addEdge (pd2, pa2);
526 Hex::Edge* edaa = doc->addEdge (pa1, pa2);
527 Hex::Edge* edbb = doc->addEdge (pb1, pb2);
528 Hex::Edge* edcc = doc->addEdge (pc1, pc2);
529 Hex::Edge* eddd = doc->addEdge (pd1, pd2);
532 // qpattern.push_back (doc->addQuad (edab1, edbc1, edcd1, edda1));
533 qpattern.push_back (doc->addQuad (edab1, edbb, edab2, edaa));
534 qpattern.push_back (doc->addQuad (edbc1, edcc, edbc2, edbb));
535 qpattern.push_back (doc->addQuad (edcd1, eddd, edcd2, edcc));
536 qpattern.push_back (doc->addQuad (edda1, edaa, edda2, eddd));
538 doc->saveVtk ("replace0.vtk");
540 doc->replace (qpattern, pd2,c1, pa2,c2, pb2,c3);
545 doc->saveVtk ("replace1.vtk");
549 // ======================================================== test_replace1
550 int test_replace1 (int nbargs, cpchar tabargs[])
552 const int size_x = 3;
553 const int size_y = 3;
554 const int size_z = 3;
555 const int size_cyl = 4;
558 Hex::Document* doc = mon_ex.addDocument ();
559 Hex::Vector* vx = doc->addVector (1, 0, 0);
560 Hex::Vector* vz = doc->addVector (0, 0, 1);
561 Hex::Vertex* ori = doc->addVertex (8, 0, 0);
562 const double rint = 1;
563 const double rext = 3;
564 const double angle = 360;
565 const double haut = 1;
569 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
570 Hex::Elements* pipe = doc->makePipeUni (ori, vx, vz, rint, rext, angle,
571 haut, nr, size_cyl, nh);
573 Hex::Vertex* c1 = grid->getVertexIJK (1, 2, size_z);
574 Hex::Vertex* c2 = grid->getVertexIJK (1, 1, size_z);
575 Hex::Vertex* c3 = grid->getVertexIJK (2, 1, size_z);
577 Hex::Vertex* p1 = pipe->getVertexIJK (1, 1, 1);
578 Hex::Vertex* p2 = pipe->getVertexIJK (1, 2, 1);
579 Hex::Vertex* p3 = pipe->getVertexIJK (1, 3, 1);
582 for (int na=0; na<size_cyl; ++na)
584 Hex::Quad* quad =pipe->getQuadIJ (0, na, 1);
586 qpattern.push_back (quad);
596 doc->saveVtk ("replace0.vtk");
598 Hex::Elements* rep = doc->replaceHexa (qpattern, p1,c1, p2,c2, p3,c3);
599 HexDisplay (rep->isValid());
602 doc->saveVtk ("replace1.vtk");
603 doc->saveVtk ("replace2.vtk");
604 doc->saveVtk ("replace3.vtk");
607 // ======================================================== test_replace
608 int test_replace (int nbargs, cpchar tabargs[])
610 const int size_x = 5;
611 const int size_y = 5;
612 const int size_z = 3;
613 const int size_cyl = 12;
616 Hex::Document* doc = mon_ex.addDocument ();
617 Hex::Vector* vx = doc->addVector (1, 0, 0);
618 Hex::Vector* vz = doc->addVector (0, 0, 1);
619 Hex::Vertex* ori = doc->addVertex (8, 0, 0);
620 const double rint = 2;
621 const double rext = 3;
622 const double angle = 360;
623 const double haut = 1;
627 Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
628 Hex::Elements* pipe = doc->makePipeUni (ori, vx, vz, rint, rext, angle,
629 haut, nr, size_cyl, nh);
631 Hex::Vertex* c1 = grid->getVertexIJK (2, 1, size_z);
632 Hex::Vertex* c2 = grid->getVertexIJK (3, 1, size_z);
634 Hex::Vertex* p1 = pipe->getVertexIJK (1, 7, 1);
635 Hex::Vertex* p2 = pipe->getVertexIJK (1, 8, 1);
637 Hex::Quads qpattern, qtarget;
638 for (int na=0; na<size_cyl; ++na)
640 Hex::Quad* quad =pipe->getQuadIJ (0, na, 1);
642 qpattern.push_back (quad);
645 for (int ni=1; ni<size_x-1; ++ni)
646 for (int nj=1; nj<size_y-1; ++nj)
648 cout << " grid->getQuad (" << ni << "," << nj << ")\n";
649 Hex::Quad* quad = grid->getQuadIJ (ni, nj, size_z);
651 qtarget.push_back (quad);
659 doc->saveVtk ("replace0.vtk");
661 Hex::Elements* rep = doc->replace (qpattern, qtarget, p1,c1, p2,c2);
662 HexDisplay (rep->isValid());
665 doc->saveVtk ("replace1.vtk");
666 doc->saveVtk ("replace2.vtk");
669 // ======================================================== test_quads
670 int test_quads (int nbargs, cpchar tabargs[])
673 cpchar appel = strrchr (tabargs[0], '/');
678 appel = strrchr (tabargs[0], '\\');
688 if (Cestegal (option, "-ab") || Cestegal (option, "-AB"))
690 printf (" __________________ Appel de test_hexa_quads_ab \n");
691 test_hexa_quads_ab (nbargs, tabargs);
694 else if (Cestegal (option, "-ac1") || Cestegal (option, "-AC1"))
696 printf (" __________________ Appel de test_hexa_quads_ac1 \n");
697 test_hexa_quads_ac1 (nbargs, tabargs);
699 else if (Cestegal (option, "-ac") || Cestegal (option, "-AC"))
701 printf (" __________________ Appel de test_hexa_quads_ac \n");
702 test_hexa_quads_ac (nbargs, tabargs);
705 else if (Cestegal (option, "-ace") || Cestegal (option, "-ACE"))
707 printf (" __________________ Appel de test_hexa_quads_ace \n");
708 test_hexa_quads_ace (nbargs, tabargs);
711 else if (Cestegal (option, "-acd") || Cestegal (option, "-ACD"))
713 printf (" __________________ Appel de test_hexa_quads_acd \n");
714 test_hexa_quads_acd (nbargs, tabargs);
717 else if (Cestegal (option, "-abcd") || Cestegal (option, "-ABCD"))
719 printf (" __________________ Appel de test_hexa_quads_abcd \n");
720 test_hexa_quads_abcd (nbargs, tabargs);
723 else if (Cestegal (option, "-abce") || Cestegal (option, "-ABCE"))
725 printf (" __________________ Appel de test_hexa_quads_abce \n");
726 test_hexa_quads_abce (nbargs, tabargs);
729 else if (Cestegal (option, "-5") || Cestegal (option, "-abcde")
730 || Cestegal (option, "-ABCDE"))
732 printf (" __________________ Appel de test_hexa_quads_abcde \n");
733 test_hexa_quads_5 (nbargs, tabargs);
738 printf (" +++ Veuillez indiquer votre cas-test en argument SVP\n");
739 printf (" +++ Creation d'un hexadedre a partir de quadrangles :\n");
740 printf (" %s -ab : A partir des quadrangles A et B (opposes)\n", appel);
741 printf (" %s -ac : A partir des quadrangles A et C (diedre)\n", appel);
742 printf (" %s -acd : A partir des quadrangles A, C et D (triedre)\n",
744 printf (" %s -ace : A partir des quadrangles A, C et E (en U)\n",
746 printf (" %s -acbd : A partir des quadrangles A, B, C et D (tunnel)\n",
748 printf (" %s -acbe : A partir des quadrangles A, B, C et E (but)\n",
750 printf (" %s -5 : A partir de 5 quadrangles (boite sans couvercle)\n",