Herezh_dev/Elements/Geometrie/ElemGeom/volume/GeomHexalin1.cc
Gérard Rio 9692dbd130 intégration du répertoire Mecanique:
- contient les éléments finis, métriques associées, déformations ...
intégration du réperoire Géométrie:
- contient les géométries 1D 2D et 3D, les frontières des éléments géométriques
2021-09-27 12:42:13 +02:00

1 line
No EOL
13 KiB
C++

#include "GeomHexalin.h"
#include <math.h>
#include "GeomSeg.h"
#include "GeomQuadrangle.h"
#include "MathUtil.h"
// constructeur
// la dimension est 3, on a 8 pt d'integration, 8 noeuds et 6 faces, 12 aretes
GeomHexalin::GeomHexalin() :
ElemGeom(3,8,8,6,12)
{ // coordonnees des points d'integration
double a = 1./sqrt(3);
ptInteg(1) = Coordonnee(a,a,a);
ptInteg(2) = Coordonnee(a,a,-a);
ptInteg(3) = Coordonnee(a,-a,a);
ptInteg(4) = Coordonnee(a,-a,-a);
ptInteg(5) = Coordonnee(-a,a,a);
ptInteg(6) = Coordonnee(-a,a,-a);
ptInteg(7) = Coordonnee(-a,-a,a);
ptInteg(8) = Coordonnee(-a,-a,-a);
// poids d'integration
for (int i =1;i<=Nbi();i++)
WI(i)= 1.;
//--------------------------------
//def des arretes
//--------------------------------
int nbil =1; // nb de pt d'integ par ligne
int nbnel =2; // nb de noeud du segment
seg(1) = new GeomSeg(nbil,nbnel);
for (int il=2;il<= NBSE; il++) // ici NBSE = 12
seg(il) = seg(1);
// def des tableaux de connection des noeuds des aretes
for (int i =1;i<=NBSE;i++) NONS(i).Change_taille(2);
// la description est fait selon le fichier EIMail
NONS(1)(1) = 1;NONS(1)(2) = 2;NONS(2)(1) = 2;NONS(2)(2) = 3;
NONS(3)(1) = 3;NONS(3)(2) = 4;NONS(4)(1) = 4;NONS(4)(2) = 1;
NONS(5)(1) = 1;NONS(5)(2) = 5;NONS(6)(1) = 2;NONS(6)(2) = 6;
NONS(7)(1) = 3;NONS(7)(2) = 7;NONS(8)(1) = 4;NONS(8)(2) = 8;
NONS(9)(1) = 5;NONS(9)(2) = 6;NONS(10)(1) = 6;NONS(10)(2) = 7;
NONS(11)(1) = 7;NONS(11)(2) = 8;NONS(12)(1) = 8;NONS(12)(2) = 5;
//--------------------------------
//def des faces
//--------------------------------
int nbis =4; // nb de pt d'integ par facee
int nbnes =4; // nb de noeud de la face
face(1) = new GeomQuadrangle(nbis,nbnes);
for (int is=2;is<= NBFE; is++) // ici NBFE = 6
face(is) = face(1);
// def des tableaux de connection des noeuds des faces
for (int i =1;i<=NBFE;i++) NONF(i).Change_taille(4);
// connection entre les noeuds des faces et les noeuds des elements
NONF(1)(1)= 1;
NONF(1)(2)= 4;
NONF(1)(3)= 3;
NONF(1)(4)= 2;
NONF(2)(1)= 1;
NONF(2)(2)= 5;
NONF(2)(3)= 8;
NONF(2)(4)= 4;
NONF(3)(1)= 1;
NONF(3)(2)= 2;
NONF(3)(3)= 6;
NONF(3)(4)= 5;
NONF(4)(1)= 5;
NONF(4)(2)= 6;
NONF(4)(3)= 7;
NONF(4)(4)= 8;
NONF(5)(1)= 2;
NONF(5)(2)= 3;
NONF(5)(3)= 7;
NONF(5)(4)= 6;
NONF(6)(1)= 3;
NONF(6)(2)= 4;
NONF(6)(3)= 8;
NONF(6)(4)= 7;
// fonctions d'interpolation globales
PHI(6,7) = 0.1314458557658023;
PHI(1,5) = 0.3522081090086454E-1;
PHI(4,5) = 0.1314458557658023;
PHI(4,7) = 0.3522081090086454E-1;
PHI(3,2) = 0.4905626121623443;
PHI(7,6) = 0.3522081090086454E-1;
PHI(2,4) = 0.4905626121623443;
PHI(4,3) = 0.9437387837655943E-2;
PHI(5,5) = 0.1314458557658023;
PHI(3,6) = 0.1314458557658023;
PHI(2,8) = 0.1314458557658023;
PHI(7,7) = 0.3522081090086454E-1;
PHI(1,2) = 0.3522081090086454E-1;
PHI(8,4) = 0.9437387837655943E-2;
PHI(2,1) = 0.3522081090086454E-1;
PHI(4,2) = 0.1314458557658023;
PHI(1,6) = 0.1314458557658023;
PHI(3,3) = 0.3522081090086454E-1;
PHI(3,7) = 0.9437387837655943E-2;
PHI(6,5) = 0.3522081090086454E-1;
PHI(5,3) = 0.1314458557658023;
PHI(8,5) = 0.4905626121623443;
PHI(6,8) = 0.3522081090086454E-1;
PHI(4,6) = 0.4905626121623443;
PHI(8,6) = 0.1314458557658023;
PHI(1,1) = 0.9437387837655943E-2;
PHI(2,5) = 0.9437387837655943E-2;
PHI(6,4) = 0.1314458557658023;
PHI(6,6) = 0.9437387837655943E-2;
PHI(3,4) = 0.1314458557658023;
PHI(7,4) = 0.3522081090086454E-1;
PHI(4,8) = 0.1314458557658023;
PHI(1,3) = 0.3522081090086454E-1;
PHI(1,7) = 0.1314458557658023;
PHI(8,8) = 0.3522081090086454E-1;
PHI(3,8) = 0.3522081090086454E-1;
PHI(5,6) = 0.3522081090086454E-1;
PHI(2,2) = 0.1314458557658023;
PHI(8,2) = 0.3522081090086454E-1;
PHI(8,3) = 0.3522081090086454E-1;
PHI(5,8) = 0.1314458557658023;
PHI(2,6) = 0.3522081090086454E-1;
PHI(8,7) = 0.1314458557658023;
PHI(4,1) = 0.3522081090086454E-1;
PHI(1,8) = 0.4905626121623443;
PHI(5,2) = 0.9437387837655943E-2;
PHI(6,2) = 0.3522081090086454E-1;
PHI(7,2) = 0.1314458557658023;
PHI(3,1) = 0.1314458557658023;
PHI(5,7) = 0.4905626121623443;
PHI(7,1) = 0.4905626121623443;
PHI(5,4) = 0.3522081090086454E-1;
PHI(7,5) = 0.1314458557658023;
PHI(7,8) = 0.9437387837655943E-2;
PHI(7,3) = 0.1314458557658023;
PHI(1,4) = 0.1314458557658023;
PHI(6,1) = 0.1314458557658023;
PHI(4,4) = 0.3522081090086454E-1;
PHI(8,1) = 0.1314458557658023;
PHI(5,1) = 0.3522081090086454E-1;
PHI(6,3) = 0.4905626121623443;
PHI(3,5) = 0.3522081090086454E-1;
PHI(2,3) = 0.1314458557658023;
PHI(2,7) = 0.3522081090086454E-1;
// derivees des fonctions d'interpolations
DPHI(3,3,5) = -0.8333333333333338E-1;
DPHI(2,3,2) = 0.3110042339640733;
DPHI(2,7,3) = 0.3110042339640733;
DPHI(3,7,4) = 0.8333333333333338E-1;
DPHI(1,5,4) = -0.8333333333333338E-1;
DPHI(2,8,6) = 0.8333333333333338E-1;
DPHI(3,2,3) = -0.3110042339640733;
DPHI(2,4,6) = 0.3110042339640733;
DPHI(3,6,1) = 0.8333333333333338E-1;
DPHI(3,2,7) = -0.8333333333333338E-1;
DPHI(1,5,1) = -0.8333333333333338E-1;
DPHI(1,8,3) = -0.8333333333333338E-1;
DPHI(1,1,7) = -0.8333333333333338E-1;
DPHI(3,6,7) = 0.8333333333333338E-1;
DPHI(1,6,3) = 0.3110042339640733;
DPHI(3,3,1) = -0.3110042339640733;
DPHI(3,3,6) = -0.8333333333333338E-1;
DPHI(2,1,2) = -0.8333333333333338E-1;
DPHI(3,6,6) = 0.2232909936926024E-1;
DPHI(3,4,2) = -0.8333333333333338E-1;
DPHI(3,8,4) = 0.2232909936926024E-1;
DPHI(3,4,8) = -0.8333333333333338E-1;
DPHI(2,4,1) = 0.2232909936926024E-1;
DPHI(2,5,7) = -0.3110042339640733;
DPHI(1,2,2) = 0.8333333333333338E-1;
DPHI(3,8,8) = 0.8333333333333338E-1;
DPHI(1,1,6) = -0.8333333333333338E-1;
DPHI(2,5,6) = -0.8333333333333338E-1;
DPHI(3,7,1) = 0.3110042339640733;
DPHI(2,7,6) = 0.2232909936926024E-1;
DPHI(3,3,7) = -0.2232909936926024E-1;
DPHI(1,7,5) = 0.3110042339640733;
DPHI(2,6,8) = -0.2232909936926024E-1;
DPHI(2,4,3) = 0.2232909936926024E-1;
DPHI(2,6,5) = -0.8333333333333338E-1;
DPHI(1,7,3) = 0.8333333333333338E-1;
DPHI(2,7,4) = 0.8333333333333338E-1;
DPHI(1,8,6) = -0.8333333333333338E-1;
DPHI(2,2,3) = -0.8333333333333338E-1;
DPHI(3,1,1) = -0.2232909936926024E-1;
DPHI(2,5,3) = -0.8333333333333338E-1;
DPHI(3,2,8) = -0.8333333333333338E-1;
DPHI(3,5,2) = 0.2232909936926024E-1;
DPHI(1,6,6) = 0.2232909936926024E-1;
DPHI(3,1,4) = -0.8333333333333338E-1;
DPHI(1,8,4) = -0.2232909936926024E-1;
DPHI(2,6,7) = -0.8333333333333338E-1;
DPHI(1,3,3) = 0.2232909936926024E-1;
DPHI(3,4,5) = -0.3110042339640733;
DPHI(2,3,1) = 0.8333333333333338E-1;
DPHI(1,7,1) = 0.3110042339640733;
DPHI(2,2,5) = -0.2232909936926024E-1;
DPHI(1,3,7) = 0.2232909936926024E-1;
DPHI(3,7,2) = 0.3110042339640733;
DPHI(3,2,4) = -0.3110042339640733;
DPHI(2,3,6) = 0.8333333333333338E-1;
DPHI(2,2,4) = -0.3110042339640733;
DPHI(1,1,2) = -0.8333333333333338E-1;
DPHI(2,1,8) = -0.3110042339640733;
DPHI(2,4,2) = 0.8333333333333338E-1;
DPHI(3,5,4) = 0.8333333333333338E-1;
DPHI(2,5,5) = -0.3110042339640733;
DPHI(1,4,1) = -0.8333333333333338E-1;
DPHI(1,7,2) = 0.8333333333333338E-1;
DPHI(2,8,2) = 0.2232909936926024E-1;
DPHI(2,3,4) = 0.3110042339640733;
DPHI(3,5,8) = 0.3110042339640733;
DPHI(2,8,8) = 0.8333333333333338E-1;
DPHI(1,1,1) = -0.2232909936926024E-1;
DPHI(3,7,7) = 0.2232909936926024E-1;
DPHI(1,7,6) = 0.8333333333333338E-1;
DPHI(1,5,2) = -0.2232909936926024E-1;
DPHI(1,1,5) = -0.2232909936926024E-1;
DPHI(1,6,8) = 0.8333333333333338E-1;
DPHI(1,1,3) = -0.8333333333333338E-1;
DPHI(3,2,2) = -0.8333333333333338E-1;
DPHI(1,6,5) = 0.8333333333333338E-1;
DPHI(1,8,1) = -0.3110042339640733;
DPHI(1,4,7) = -0.2232909936926024E-1;
DPHI(1,2,3) = 0.8333333333333338E-1;
DPHI(2,2,8) = -0.8333333333333338E-1;
DPHI(1,4,4) = -0.8333333333333338E-1;
DPHI(2,1,4) = -0.8333333333333338E-1;
DPHI(1,8,7) = -0.8333333333333338E-1;
DPHI(1,2,1) = 0.2232909936926024E-1;
DPHI(3,1,6) = -0.8333333333333338E-1;
DPHI(2,4,5) = 0.8333333333333338E-1;
DPHI(1,3,1) = 0.8333333333333338E-1;
DPHI(1,6,2) = 0.2232909936926024E-1;
DPHI(3,7,5) = 0.8333333333333338E-1;
DPHI(2,7,2) = 0.8333333333333338E-1;
DPHI(1,2,4) = 0.3110042339640733;
DPHI(3,3,2) = -0.3110042339640733;
DPHI(3,7,3) = 0.8333333333333338E-1;
DPHI(1,5,5) = -0.8333333333333338E-1;
DPHI(3,8,5) = 0.3110042339640733;
DPHI(1,8,2) = -0.8333333333333338E-1;
DPHI(1,3,4) = 0.8333333333333338E-1;
DPHI(3,6,4) = 0.3110042339640733;
DPHI(2,7,7) = 0.8333333333333338E-1;
DPHI(3,4,6) = -0.3110042339640733;
DPHI(3,3,3) = -0.8333333333333338E-1;
DPHI(3,2,5) = -0.2232909936926024E-1;
DPHI(2,6,3) = -0.3110042339640733;
DPHI(3,4,7) = -0.8333333333333338E-1;
DPHI(2,5,8) = -0.8333333333333338E-1;
DPHI(3,1,3) = -0.8333333333333338E-1;
DPHI(2,3,5) = 0.2232909936926024E-1;
DPHI(3,5,1) = 0.2232909936926024E-1;
DPHI(1,3,2) = 0.3110042339640733;
DPHI(3,1,7) = -0.3110042339640733;
DPHI(3,4,1) = -0.8333333333333338E-1;
DPHI(3,5,7) = 0.3110042339640733;
DPHI(1,4,5) = -0.8333333333333338E-1;
DPHI(1,4,6) = -0.3110042339640733;
DPHI(3,7,6) = 0.8333333333333338E-1;
DPHI(2,6,1) = -0.3110042339640733;
DPHI(3,1,5) = -0.8333333333333338E-1;
DPHI(2,7,5) = 0.8333333333333338E-1;
DPHI(2,2,7) = -0.2232909936926024E-1;
DPHI(3,2,6) = -0.2232909936926024E-1;
DPHI(3,6,8) = 0.8333333333333338E-1;
DPHI(3,4,3) = -0.2232909936926024E-1;
DPHI(3,8,7) = 0.8333333333333338E-1;
DPHI(3,3,8) = -0.2232909936926024E-1;
DPHI(3,8,1) = 0.8333333333333338E-1;
DPHI(1,8,5) = -0.3110042339640733;
DPHI(3,8,3) = 0.2232909936926024E-1;
DPHI(2,6,4) = -0.8333333333333338E-1;
DPHI(3,7,8) = 0.2232909936926024E-1;
DPHI(2,1,3) = -0.2232909936926024E-1;
DPHI(1,7,7) = 0.8333333333333338E-1;
DPHI(2,6,6) = -0.2232909936926024E-1;
DPHI(2,8,4) = 0.2232909936926024E-1;
DPHI(2,4,8) = 0.3110042339640733;
DPHI(1,5,7) = -0.3110042339640733;
DPHI(2,7,8) = 0.2232909936926024E-1;
DPHI(2,3,3) = 0.8333333333333338E-1;
DPHI(1,5,6) = -0.2232909936926024E-1;
DPHI(2,7,1) = 0.3110042339640733;
DPHI(3,6,2) = 0.8333333333333338E-1;
DPHI(2,3,7) = 0.2232909936926024E-1;
DPHI(1,5,8) = -0.8333333333333338E-1;
DPHI(1,4,3) = -0.2232909936926024E-1;
DPHI(1,3,5) = 0.8333333333333338E-1;
DPHI(3,1,8) = -0.3110042339640733;
DPHI(2,5,1) = -0.8333333333333338E-1;
DPHI(2,1,7) = -0.8333333333333338E-1;
DPHI(1,7,4) = 0.2232909936926024E-1;
DPHI(3,8,2) = 0.8333333333333338E-1;
DPHI(3,3,4) = -0.8333333333333338E-1;
DPHI(3,5,5) = 0.8333333333333338E-1;
DPHI(2,1,1) = -0.2232909936926024E-1;
DPHI(1,5,3) = -0.3110042339640733;
DPHI(1,6,1) = 0.8333333333333338E-1;
DPHI(2,5,2) = -0.2232909936926024E-1;
DPHI(2,1,5) = -0.8333333333333338E-1;
DPHI(1,2,7) = 0.8333333333333338E-1;
DPHI(2,2,6) = -0.8333333333333338E-1;
DPHI(1,6,7) = 0.3110042339640733;
DPHI(2,3,8) = 0.8333333333333338E-1;
DPHI(2,8,1) = 0.8333333333333338E-1;
DPHI(3,4,4) = -0.2232909936926024E-1;
DPHI(2,4,7) = 0.8333333333333338E-1;
DPHI(1,2,5) = 0.2232909936926024E-1;
DPHI(1,3,6) = 0.3110042339640733;
DPHI(2,8,5) = 0.3110042339640733;
DPHI(1,6,4) = 0.8333333333333338E-1;
DPHI(1,7,8) = 0.2232909936926024E-1;
DPHI(3,2,1) = -0.8333333333333338E-1;
DPHI(1,1,8) = -0.3110042339640733;
DPHI(1,4,2) = -0.3110042339640733;
DPHI(2,8,7) = 0.3110042339640733;
DPHI(1,4,8) = -0.8333333333333338E-1;
DPHI(2,5,4) = -0.2232909936926024E-1;
DPHI(3,8,6) = 0.3110042339640733;
DPHI(2,2,1) = -0.8333333333333338E-1;
DPHI(1,8,8) = -0.2232909936926024E-1;
DPHI(3,5,3) = 0.8333333333333338E-1;
DPHI(2,6,2) = -0.8333333333333338E-1;
DPHI(2,8,3) = 0.8333333333333338E-1;
DPHI(1,2,6) = 0.8333333333333338E-1;
DPHI(2,2,2) = -0.3110042339640733;
DPHI(3,1,2) = -0.2232909936926024E-1;
DPHI(1,2,8) = 0.3110042339640733;
DPHI(3,6,5) = 0.2232909936926024E-1;
DPHI(1,1,4) = -0.3110042339640733;
DPHI(3,6,3) = 0.3110042339640733;
DPHI(2,1,6) = -0.3110042339640733;
DPHI(1,3,8) = 0.8333333333333338E-1;
DPHI(3,5,6) = 0.8333333333333338E-1;
DPHI(2,4,4) = 0.8333333333333338E-1;
};