#include "GeomHexalin.h" #include #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; };