+// Copyright (C) 2009-2024 CEA, EDF
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
#include <cppunit/extensions/HelperMacros.h>
#include "HexVertex.hxx"
#include "HexPropagation.hxx"
-#include "HexShape.hxx"
#include "HexLaw.hxx"
#include "HexMatrix.hxx"
void ModelTest::_print_propagations (Hex::Document* doc)
{
int nb = doc->countPropagation ();
- Display (nb);
+ HexDisplay (nb);
for (int nro=0 ; nro<nb ; nro++)
{
Hex::Propagation* prop = doc ->getPropagation (nro);
// Hex::Hex mon_ex;
// Hex::Document* doc = mon_ex.addDocument ();
// Hex::Vertex* orig = doc->addVertex (0,0,0);
-//
+//
// int ncouches = 1;
// double k = 0.8;
// Hex::Vector* decal = doc->addVector (1,1,1);
// Hex::Elements* sphere = doc->makeSpherical (orig, decal, ncouches, k);
-//
+//
// for (int nc=0 ; nc <= ncouches ; nc++)
// {
// Hex::Hexa* cell = sphere->getStrate (nc, Hex::Q_A);
// // sphere->getStrate (nc, Hex::Q_A)->remove ();
// // sphere->getStrate (nc, Hex::Q_B)->remove ();
// }
-//
+//
// sphere->saveVtk ("sphere.vtk");
// CPPUNIT_ASSERT( true );
// }
// ======================================================== Test_cartesi1
void ModelTest::Test_cartesi1 ()
{
-
+
const int size_x = 15;
const int size_y = 12;
const int size_z = 8;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
Hex::Hexa* cell = grid->getHexaIJK (nx, ny, nz);
cell->remove ();
}
-
+
doc->setLevel (1);
_print_propagations (doc);
grid->saveVtk ("grid_cart.vtk");
// ======================================================== Test_find
void ModelTest::Test_find ()
{
-
+
const int size_x = 2;
const int size_y = 2;
const int size_z = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
// ======================================================== Test_joint
void ModelTest::Test_joint ()
{
-
+
const int dimx = 11;
const int dimy = 11;
const int dimz = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
Hex::Vertex* orig2 = doc->addVertex (dimx/2.0,0,8);
Hex::Vector* vectj = doc->addVector (0,1,0);
Hex::Vector* vecti = doc->addVector (1,0,0);
- Hex::Elements* grid2 = doc->makeCylindrical (orig2, vecti, vectj,
- 1, 180, 1, dimz,dimy,dimx);
+ Hex::Elements* grid2 = doc->makeCylindrical (orig2, vecti, vectj,
+ 1, 180, 1, dimz,dimy,dimx, true);
int mx = dimx/2;
int my = dimy/2;
- Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
- Hex::Quad* cible = grid2->getQuadJK (dimz, mx, my);
+ Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
+ Hex::Quad* cible = grid2->getQuadJK (dimz, mx, my);
Hex::Vertex* v1 = prems->getVertex (0);
liste.push_back (prems);
for (int nx=0; nx<dimx; nx++)
- if (nx!=mx)
- liste.push_back (grid1->getQuadIJ (nx, my, dimz));
+ if (nx!=mx)
+ liste.push_back (grid1->getQuadIJ (nx, my, dimz));
for (int ny=0; ny<dimy; ny++)
- if (ny!=my)
- liste.push_back (grid1->getQuadIJ (mx, ny, dimz));
+ if (ny!=my)
+ liste.push_back (grid1->getQuadIJ (mx, ny, dimz));
- // Hex::Elements* joint =
+ // Hex::Elements* joint =
//
doc->joinQuads (liste, cible, v1, v2, v3, v4, 5);
doc->saveVtk ("joint.vtk");
// ======================================================== Test_prism
void ModelTest::Test_prism ()
{
-
+
const int dimx = 11;
const int dimy = 11;
const int dimz = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
int mx = dimx/2;
int my = dimy/2;
- Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
+ Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
Hex::Quads liste;
liste.push_back (prems);
for (int nx=0; nx<dimx; nx++)
- if (nx!=mx)
- liste.push_back (grid1->getQuadIJ (nx, my, dimz));
+ if (nx!=mx)
+ liste.push_back (grid1->getQuadIJ (nx, my, dimz));
for (int ny=0; ny<dimy; ny++)
- if (ny!=my)
- liste.push_back (grid1->getQuadIJ (mx, ny, dimz));
+ if (ny!=my)
+ liste.push_back (grid1->getQuadIJ (mx, ny, dimz));
doc->prismQuads (liste, dir, 5);
doc->saveVtk ("prisme.vtk");
// ======================================================== Test_prism2
void ModelTest::Test_prism2 ()
{
-
+
const int dimx = 11;
const int dimy = 11;
const int dimz = 2;
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
-
+ Hex::Document* doc = mon_ex.addDocument ("foo");
+
Hex::Vertex* orig1 = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
-
+
Hex::Elements* grid1 = doc->makeCartesian (orig1, dir, dimx,dimy,dimz);
-
+
int mx = dimx/2;
int my = dimy/2;
- Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
+ Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
Hex::Elements* prism = doc->prismQuad(prems, dir, 5);
int nbHexa = prism->countHexa();
std::cout << "getHexa(1) " << hp1 << std::endl;
Hex::Vertex* hp1_v0 = hp1->getVertex(0);
std::cout << "getVertex ->" << hp1_v0 << std::endl;
- Hex::Shape* s = new Hex::Shape("la shape");
- std::cout << "new Hex::Shape->" << s << std::endl;
- hp1_v0->setAssociation(s);
- std::cout << "setAssociation ->" << std::endl;
doc->saveVtk ("prisme2.vtk");
CPPUNIT_ASSERT( true );
// ======================================================== Test_hexa1
void ModelTest::Test_hexa1 ()
{
-
+
const int size_x = 1;
const int size_y = 1;
const int size_z = 1;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
- // Hex::Elements* grid =
+ // Hex::Elements* grid =
doc->makeCartesian (orig, dir, size_x,size_y,size_z);
doc ->dump ();
// ======================================================== Test_decoupage
void ModelTest::Test_decoupage ()
{
-
+
const int size_x = 2;
const int size_y = 1;
const int size_z = 1;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
// ======================================================== Test_gen_xml
void ModelTest::Test_gen_xml ()
{
-
+
const int size_x = 2;
const int size_y = 2;
const int size_z = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
Hex::Edge* arete = cell->getEdge (0);
Hex::Vertex* noeud = cell->getVertex (0);
- Hex::Shape* shape1 = new Hex::Shape("riri");
- Hex::Shape* shape2 = new Hex::Shape("fifi");
- Hex::Shape* shape3 = new Hex::Shape("loulou");
-
- noeud->setAssociation (shape1);
- arete->setAssociation (shape2);
- face ->setAssociation (shape3);
-
Hex::Law* law1 = doc->addLaw("loi1", 1);
Hex::Law* law2 = doc->addLaw("loi2", 2);
Hex::Law* law3 = doc->addLaw("loi3", 3);
prop3->setWay (true);
doc ->saveVtk ("mini.vtk");
- doc ->setFile ("Essai");
- doc ->saveFile ();
+ doc ->save ("Essai");
CPPUNIT_ASSERT( true );
}
// ======================================================== Test_relecture
void ModelTest::Test_relecture ()
{
-
+
Hex::Hex mon_ex;
Hex::Document* doc = mon_ex.loadDocument ("Essai");
CPPUNIT_ASSERT( true );
}
+
+
// ======================================================== Test_clone
void ModelTest::Test_clone ()
{
-
+
const int size_x = 2;
const int size_y = 2;
const int size_z = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
// ======================================================== Test_separ
void ModelTest::Test_separ ()
{
-
+
const int size_x = 2;
const int size_y = 2;
const int size_z = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
- // Hex::Elements* grid =
+ // Hex::Elements* grid =
doc->makeCartesian (orig, dir, size_x,size_y,size_z);
doc ->saveVtk ("separ.vtk");
// // ======================================================== Test_cyl_karima
// void ModelTest::Test_cyl_karima ()
// {
-//
+//
// Hex::Hex mon_ex;
-// Hex::Document* doc = mon_ex.addDocument ();
-//
+// Hex::Document* doc = mon_ex.addDocument ("foo");
+//
// Hex::Vertex* c2 = doc->addVertex (0,0,0);
// Hex::Vector* dz = doc->addVector (0,0,1);
// Hex::Vector* dx = doc->addVector (1,0,0);
-//
+//
// double dr = 4.12;
-//
+//
// double a2 = 180;
// int l2 = 70;
-//
+//
// int nr2 = 5;
// int na2 = 5;
// int nl2 = 1;
-//
-// /* Hex::Elements* cyl2 = */ doc->makeCylindrical (c2, dx, dz, dr, a2, l2,
+//
+// /* Hex::Elements* cyl2 = */ doc->makeCylindrical (c2, dx, dz, dr, a2, l2,
// nr2, na2, nl2, false );
// doc->saveVtk ("cyl_karima.vtk");
// // doc->dump ();
-//
+//
// CPPUNIT_ASSERT( true );
// }
// ================================================== Test_grille_cyl
void ModelTest::Test_grille_cyl ()
{
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex ( 0, 0,0);
Hex::Vertex* orig2 = doc->addVertex (10, 0,0);
// ===================================================== Test_cylinder
void ModelTest::Test_cylinder ()
{
-
+
int nvtk = 0;
cpchar fic_vtk = "cylindre";
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex (0, 0,0);
Hex::Vertex* orig2 = doc->addVertex (50,0,0);
void ModelTest::myTest_croix ()
{
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
// Hex::Vector* dx1 = doc->addVector( -1, 0, 0 );
// Hex::Vector* dz1 = doc->addVector( 0, 0, 1 );
-//
+//
// Hex::Vertex* c_pte_1 = doc->addVertex ( 195., 0., 220. );
// Hex::Vertex* c_grd_1 = doc->addVertex ( 300., 0., 400. );
// Hex::Cylinder* cyl_pte_1 = doc->addCylinder( c_pte_1 , dz1 , 25 , 360 );
Hex::Vector* dx2 = doc->addVector(-1, 0, 0 );
Hex::Vector* dz2 = doc->addVector( 0, 0, 1 );
-
+
Hex::Vertex* c_pte_2 = doc->addVertex( 110., 0. , 400. );
Hex::Vertex* c_grd_2 = doc->addVertex( 0. , 0. , 0. );
// ======================================================== Test_croix
void ModelTest::Test_croix ()
{
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* ori1 = doc->addVertex ( 0,0,0);
Hex::Vertex* ori2 = doc->addVertex (-5,0,5);
// ======================================================== Test_pipes
void ModelTest::Test_pipes ()
{
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* ori1 = doc->addVertex ( 0,0,0);
Hex::Vertex* ori2 = doc->addVertex (-5,0,5);
// ======================================================== Test_lorraine
void ModelTest::Test_lorraine()
{
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* ori1 = doc->addVertex ( 0,0,0);
Hex::Vertex* ori2 = doc->addVertex (-5,0,5);
// vc3 = grid2->getVertexIJK (Hex::Cyl1, 0,0,0);
// Cyl i j k
Hex::Quad* qb = grid1-> getQuadIJ (Hex::Cyl2, nx_ext, Hex::S_E, 4);
- Hex::Quad* qh = grid2-> getQuadIJ (Hex::Cyl1, nx_ext, Hex::S_N, 0);
+ Hex::Quad* qh = grid2-> getQuadIJ (Hex::Cyl1, nx_ext, Hex::S_N, 0);
Hex::Vertex* vb0 = qb->getVertex (3);
Hex::Vertex* vb1 = qb->getVertex (2);
for (int ny=1; ny<Hex::S_MAXI; ny++)
{
int ns = (ny + Hex::S_N) MODULO Hex::S_MAXI;
- hliste.push_back (grid2->getQuadIJ (Hex::Cyl1, nx_ext, ns, 0));
+ hliste.push_back (grid2->getQuadIJ (Hex::Cyl1, nx_ext, ns, 0));
}
for (int ny=0; ny<4 ; ny++)
- hliste.push_back (grid2->getQuadIJ (Hex::Cyl1, nx_int, ny, 0));
+ hliste.push_back (grid2->getQuadIJ (Hex::Cyl1, nx_int, ny, 0));
doc->joinQuads (hliste, qb, vh0, vb0, vh1, vb1, 5);
doc->saveVtk ("lorraine.vtk");
// ======================================================== Test_disconnect
void ModelTest::Test_disconnect ()
{
-
+
const int size_x = 2;
const int size_y = 2;
const int size_z = 1;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex (0,0,0);
Hex::Vertex* orig2 = doc->addVertex (4,0,0);
// ======================================================== Test_propagation
void ModelTest::Test_propagation ()
{
-
+
const int size_x = 2;
const int size_y = 1;
const int size_z = 1;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
- // Hex::Elements* grid =
+ // Hex::Elements* grid =
doc->makeCartesian (orig, dir, size_x,size_y,size_z);
int nb = doc->countPropagation ();
doc->dump ();
doc->saveVtk ("Test_propagation.vtk");
- doc->setFile ("Test_propagation");
- doc->saveFile ();
+ doc->save ("Test_propagation");
CPPUNIT_ASSERT( true );
}
// ======================================================== Test_move
void ModelTest::Test_move ()
{
-
+
const int size_x = 1;
const int size_y = 1;
const int size_z = 2;
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig = doc->addVertex (0,0,0);
Hex::Vector* dir = doc->addVector (1,1,1);
Hex::Hexa* cube = grid->getHexa (1);
Hex::Quad* dessous = cube->getQuad (Hex::Q_A);
dessous->dump();
-
+
Hex::Elements* grid2 = doc->makeTranslation (grid, devant);
/* Hex::Elements* grid3 = doc->makeTranslation (grid, agauche); */
Hex::Hexa* cube2 = grid2->getHexa (1);
// ======================================================== Test_deux_cyl
void ModelTest::Test_deux_cyl ()
{
-
+
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
Hex::Vertex* orig1 = doc->addVertex (0,0,-5);
Hex::Vertex* orig2 = doc->addVertex (-5,0,0);
int na = 6;
int nl = 10;
- /* Hex::Elements* cyl1 = */ doc->makeCylindrical(orig1, vy,vz, dr, da,
- dl,nr,na,nl);
+ /* Hex::Elements* cyl1 = */ doc->makeCylindrical(orig1, vy,vz, dr, da,
+ dl,nr,na,nl, false);
- /* Hex::Elements* cyl2 = */ doc->makeCylindrical(orig2, vz,vx, dr/2, da,
- dl,nr,na,nl);
+ /* Hex::Elements* cyl2 = */ doc->makeCylindrical(orig2, vz,vx, dr/2, da,
+ dl,nr,na,nl, false);
doc->saveVtk ("deux_cylindres.vtk");
CPPUNIT_ASSERT( true );
}
// ======================================================== Test_move2
void ModelTest::Test_transfo ()
{
-
+
const int size_x = 1;
const int size_y = 1;
const int size_z = 2;
cpchar fic_vtk = "transfo";
Hex::Hex mon_ex;
- Hex::Document* doc = mon_ex.addDocument ();
+ Hex::Document* doc = mon_ex.addDocument ("foo");
doc ->setLevel (1);
Hex::Vertex* orig = doc->addVertex (0,0,0);