[16134] | 1 | Index: ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp (revision 15510)
|
---|
| 4 | +++ ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp (revision 15511)
|
---|
| 5 | @@ -1304,6 +1304,70 @@
|
---|
| 6 | dbasis[NUMNODESP2xP1*1+11] = .5*(1.+zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2));
|
---|
| 7 | dbasis[NUMNODESP2xP1*2+11] = 2.*gauss->coord1*gauss->coord2;
|
---|
| 8 | return;
|
---|
| 9 | + case P2Enum:
|
---|
| 10 | + /*Nodal function 1*/
|
---|
| 11 | + dbasis[NUMNODESP2*0+0 ] = .5*zeta*(1.-zeta)*(-2.*gauss->coord1 + 0.5);
|
---|
| 12 | + dbasis[NUMNODESP2*1+0 ] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*gauss->coord1 + SQRT3/6.);
|
---|
| 13 | + dbasis[NUMNODESP2*2+0 ] = .5*(1.-2.*zeta)*gauss->coord1*(2.*gauss->coord1-1.);
|
---|
| 14 | + /*Nodal function 2*/
|
---|
| 15 | + dbasis[NUMNODESP2*0+1 ] = .5*zeta*(1.-zeta)*(+2.*gauss->coord2 - 0.5);
|
---|
| 16 | + dbasis[NUMNODESP2*1+1 ] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*gauss->coord2 + SQRT3/6.);
|
---|
| 17 | + dbasis[NUMNODESP2*2+1 ] = .5*(1.-2.*zeta)*gauss->coord2*(2.*gauss->coord2-1.);
|
---|
| 18 | + /*Nodal function 3*/
|
---|
| 19 | + dbasis[NUMNODESP2*0+2 ] = 0.;
|
---|
| 20 | + dbasis[NUMNODESP2*1+2 ] = .5*zeta*(1.-zeta)*(4.*SQRT3/3.*gauss->coord3 - SQRT3/3.);
|
---|
| 21 | + dbasis[NUMNODESP2*2+2 ] = .5*(1.-2.*zeta)*gauss->coord3*(2.*gauss->coord3-1.);
|
---|
| 22 | + /*Nodal function 4*/
|
---|
| 23 | + dbasis[NUMNODESP2*0+3 ] = .5*zeta*(1.+zeta)*(-2.*gauss->coord1 + 0.5);
|
---|
| 24 | + dbasis[NUMNODESP2*1+3 ] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*gauss->coord1 + SQRT3/6.);
|
---|
| 25 | + dbasis[NUMNODESP2*2+3 ] = .5*(1.+2.*zeta)*gauss->coord1*(2.*gauss->coord1-1.);
|
---|
| 26 | + /*Nodal function 5*/
|
---|
| 27 | + dbasis[NUMNODESP2*0+4 ] = .5*zeta*(1.+zeta)*(+2.*gauss->coord2 - 0.5);
|
---|
| 28 | + dbasis[NUMNODESP2*1+4 ] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*gauss->coord2 + SQRT3/6.);
|
---|
| 29 | + dbasis[NUMNODESP2*2+4 ] = .5*(1.+2.*zeta)*gauss->coord2*(2.*gauss->coord2-1.);
|
---|
| 30 | + /*Nodal function 6*/
|
---|
| 31 | + dbasis[NUMNODESP2*0+5 ] = 0.;
|
---|
| 32 | + dbasis[NUMNODESP2*1+5 ] = .5*zeta*(1.+zeta)*(4.*SQRT3/3.*gauss->coord3 - SQRT3/3.);
|
---|
| 33 | + dbasis[NUMNODESP2*2+5 ] = .5*(1.+2.*zeta)*gauss->coord3*(2.*gauss->coord3-1.);
|
---|
| 34 | +
|
---|
| 35 | + /*Nodal function 7*/
|
---|
| 36 | + dbasis[NUMNODESP2*0+6 ] = -0.5*(1.-zeta*zeta);
|
---|
| 37 | + dbasis[NUMNODESP2*1+6 ] = -SQRT3/6.*(1.-zeta*zeta);
|
---|
| 38 | + dbasis[NUMNODESP2*2+6 ] = -2.*zeta*gauss->coord1;
|
---|
| 39 | + /*Nodal function 8*/
|
---|
| 40 | + dbasis[NUMNODESP2*0+7 ] = 0.5*(1.-zeta*zeta);
|
---|
| 41 | + dbasis[NUMNODESP2*1+7 ] = -SQRT3/6.*(1.-zeta*zeta);
|
---|
| 42 | + dbasis[NUMNODESP2*2+7 ] = -2.*zeta*gauss->coord2;
|
---|
| 43 | + /*Nodal function 9*/
|
---|
| 44 | + dbasis[NUMNODESP2*0+8 ] = 0.;
|
---|
| 45 | + dbasis[NUMNODESP2*1+8 ] = SQRT3/3.*(1.-zeta*zeta);
|
---|
| 46 | + dbasis[NUMNODESP2*2+8 ] = -2.*zeta*gauss->coord3;
|
---|
| 47 | +
|
---|
| 48 | + /*Nodal function 10*/
|
---|
| 49 | + dbasis[NUMNODESP2*0+9 ] = zeta*(1.-zeta)*gauss->coord3;
|
---|
| 50 | + dbasis[NUMNODESP2*1+9 ] = .5*zeta*(1.-zeta)*(+4.*SQRT3/3.*gauss->coord2 - 2.*SQRT3/3.*gauss->coord3);
|
---|
| 51 | + dbasis[NUMNODESP2*2+9 ] = 2.*gauss->coord3*gauss->coord2*(1.-2.*zeta);
|
---|
| 52 | + /*Nodal function 11*/
|
---|
| 53 | + dbasis[NUMNODESP2*0+10] = -zeta*(1.-zeta)*gauss->coord3;
|
---|
| 54 | + dbasis[NUMNODESP2*1+10] = .5*zeta*(1.-zeta)*(+4.*SQRT3/3.*gauss->coord1 - 2.*SQRT3/3.*gauss->coord3);
|
---|
| 55 | + dbasis[NUMNODESP2*2+10] = 2.*gauss->coord3*gauss->coord1*(1.-2.*zeta);
|
---|
| 56 | + /*Nodal function 12*/
|
---|
| 57 | + dbasis[NUMNODESP2*0+11] = zeta*(1.-zeta)*(gauss->coord1-gauss->coord2);
|
---|
| 58 | + dbasis[NUMNODESP2*1+11] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2));
|
---|
| 59 | + dbasis[NUMNODESP2*2+11] = 2.*gauss->coord1*gauss->coord2*(1.-2.*zeta);
|
---|
| 60 | + /*Nodal function 13*/
|
---|
| 61 | + dbasis[NUMNODESP2*0+12] = zeta*(1.+zeta)*gauss->coord3;
|
---|
| 62 | + dbasis[NUMNODESP2*1+12] = .5*zeta*(1.+zeta)*(+4.*SQRT3/3.*gauss->coord2 - 2.*SQRT3/3.*gauss->coord3);
|
---|
| 63 | + dbasis[NUMNODESP2*2+12] = 2.*gauss->coord3*gauss->coord2*(1.+2.*zeta);
|
---|
| 64 | + /*Nodal function 14*/
|
---|
| 65 | + dbasis[NUMNODESP2*0+13] = -zeta*(1.+zeta)*gauss->coord3;
|
---|
| 66 | + dbasis[NUMNODESP2*1+13] = .5*zeta*(1.+zeta)*(+4.*SQRT3/3.*gauss->coord1 - 2.*SQRT3/3.*gauss->coord3);
|
---|
| 67 | + dbasis[NUMNODESP2*2+13] = 2.*gauss->coord3*gauss->coord1*(1.+2.*zeta);
|
---|
| 68 | + /*Nodal function 15*/
|
---|
| 69 | + dbasis[NUMNODESP2*0+14] = zeta*(1.+zeta)*(gauss->coord1-gauss->coord2);
|
---|
| 70 | + dbasis[NUMNODESP2*1+14] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2));
|
---|
| 71 | + dbasis[NUMNODESP2*2+14] = 2.*gauss->coord1*gauss->coord2*(1.+2.*zeta);
|
---|
| 72 | + return;
|
---|
| 73 | default:
|
---|
| 74 | _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet");
|
---|
| 75 | }
|
---|