Index: ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp (revision 15510) +++ ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp (revision 15511) @@ -1304,6 +1304,70 @@ dbasis[NUMNODESP2xP1*1+11] = .5*(1.+zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2)); dbasis[NUMNODESP2xP1*2+11] = 2.*gauss->coord1*gauss->coord2; return; + case P2Enum: + /*Nodal function 1*/ + dbasis[NUMNODESP2*0+0 ] = .5*zeta*(1.-zeta)*(-2.*gauss->coord1 + 0.5); + dbasis[NUMNODESP2*1+0 ] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*gauss->coord1 + SQRT3/6.); + dbasis[NUMNODESP2*2+0 ] = .5*(1.-2.*zeta)*gauss->coord1*(2.*gauss->coord1-1.); + /*Nodal function 2*/ + dbasis[NUMNODESP2*0+1 ] = .5*zeta*(1.-zeta)*(+2.*gauss->coord2 - 0.5); + dbasis[NUMNODESP2*1+1 ] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*gauss->coord2 + SQRT3/6.); + dbasis[NUMNODESP2*2+1 ] = .5*(1.-2.*zeta)*gauss->coord2*(2.*gauss->coord2-1.); + /*Nodal function 3*/ + dbasis[NUMNODESP2*0+2 ] = 0.; + dbasis[NUMNODESP2*1+2 ] = .5*zeta*(1.-zeta)*(4.*SQRT3/3.*gauss->coord3 - SQRT3/3.); + dbasis[NUMNODESP2*2+2 ] = .5*(1.-2.*zeta)*gauss->coord3*(2.*gauss->coord3-1.); + /*Nodal function 4*/ + dbasis[NUMNODESP2*0+3 ] = .5*zeta*(1.+zeta)*(-2.*gauss->coord1 + 0.5); + dbasis[NUMNODESP2*1+3 ] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*gauss->coord1 + SQRT3/6.); + dbasis[NUMNODESP2*2+3 ] = .5*(1.+2.*zeta)*gauss->coord1*(2.*gauss->coord1-1.); + /*Nodal function 5*/ + dbasis[NUMNODESP2*0+4 ] = .5*zeta*(1.+zeta)*(+2.*gauss->coord2 - 0.5); + dbasis[NUMNODESP2*1+4 ] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*gauss->coord2 + SQRT3/6.); + dbasis[NUMNODESP2*2+4 ] = .5*(1.+2.*zeta)*gauss->coord2*(2.*gauss->coord2-1.); + /*Nodal function 6*/ + dbasis[NUMNODESP2*0+5 ] = 0.; + dbasis[NUMNODESP2*1+5 ] = .5*zeta*(1.+zeta)*(4.*SQRT3/3.*gauss->coord3 - SQRT3/3.); + dbasis[NUMNODESP2*2+5 ] = .5*(1.+2.*zeta)*gauss->coord3*(2.*gauss->coord3-1.); + + /*Nodal function 7*/ + dbasis[NUMNODESP2*0+6 ] = -0.5*(1.-zeta*zeta); + dbasis[NUMNODESP2*1+6 ] = -SQRT3/6.*(1.-zeta*zeta); + dbasis[NUMNODESP2*2+6 ] = -2.*zeta*gauss->coord1; + /*Nodal function 8*/ + dbasis[NUMNODESP2*0+7 ] = 0.5*(1.-zeta*zeta); + dbasis[NUMNODESP2*1+7 ] = -SQRT3/6.*(1.-zeta*zeta); + dbasis[NUMNODESP2*2+7 ] = -2.*zeta*gauss->coord2; + /*Nodal function 9*/ + dbasis[NUMNODESP2*0+8 ] = 0.; + dbasis[NUMNODESP2*1+8 ] = SQRT3/3.*(1.-zeta*zeta); + dbasis[NUMNODESP2*2+8 ] = -2.*zeta*gauss->coord3; + + /*Nodal function 10*/ + dbasis[NUMNODESP2*0+9 ] = zeta*(1.-zeta)*gauss->coord3; + dbasis[NUMNODESP2*1+9 ] = .5*zeta*(1.-zeta)*(+4.*SQRT3/3.*gauss->coord2 - 2.*SQRT3/3.*gauss->coord3); + dbasis[NUMNODESP2*2+9 ] = 2.*gauss->coord3*gauss->coord2*(1.-2.*zeta); + /*Nodal function 11*/ + dbasis[NUMNODESP2*0+10] = -zeta*(1.-zeta)*gauss->coord3; + dbasis[NUMNODESP2*1+10] = .5*zeta*(1.-zeta)*(+4.*SQRT3/3.*gauss->coord1 - 2.*SQRT3/3.*gauss->coord3); + dbasis[NUMNODESP2*2+10] = 2.*gauss->coord3*gauss->coord1*(1.-2.*zeta); + /*Nodal function 12*/ + dbasis[NUMNODESP2*0+11] = zeta*(1.-zeta)*(gauss->coord1-gauss->coord2); + dbasis[NUMNODESP2*1+11] = .5*zeta*(1.-zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2)); + dbasis[NUMNODESP2*2+11] = 2.*gauss->coord1*gauss->coord2*(1.-2.*zeta); + /*Nodal function 13*/ + dbasis[NUMNODESP2*0+12] = zeta*(1.+zeta)*gauss->coord3; + dbasis[NUMNODESP2*1+12] = .5*zeta*(1.+zeta)*(+4.*SQRT3/3.*gauss->coord2 - 2.*SQRT3/3.*gauss->coord3); + dbasis[NUMNODESP2*2+12] = 2.*gauss->coord3*gauss->coord2*(1.+2.*zeta); + /*Nodal function 14*/ + dbasis[NUMNODESP2*0+13] = -zeta*(1.+zeta)*gauss->coord3; + dbasis[NUMNODESP2*1+13] = .5*zeta*(1.+zeta)*(+4.*SQRT3/3.*gauss->coord1 - 2.*SQRT3/3.*gauss->coord3); + dbasis[NUMNODESP2*2+13] = 2.*gauss->coord3*gauss->coord1*(1.+2.*zeta); + /*Nodal function 15*/ + dbasis[NUMNODESP2*0+14] = zeta*(1.+zeta)*(gauss->coord1-gauss->coord2); + dbasis[NUMNODESP2*1+14] = .5*zeta*(1.+zeta)*(-2.*SQRT3/3.*(gauss->coord1+gauss->coord2)); + dbasis[NUMNODESP2*2+14] = 2.*gauss->coord1*gauss->coord2*(1.+2.*zeta); + return; default: _error_("Element type "<element_type)<<" not supported yet"); }