Changeset 17017
- Timestamp:
- 12/11/13 13:42:40 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
r16838 r17017 23 23 #define NUMNODESP2xP1 12 24 24 #define NUMNODESP2 15 25 #define NUMNODESP2xP4 30 26 #define NUMNODESP1xP3 12 25 27 26 28 /*Object constructors and destructor*/ … … 1362 1364 basis[14]=2.*gauss->coord1*gauss->coord2*zeta*(zeta+1.); 1363 1365 return; 1366 case P2xP4Enum : 1367 /*Corner nodes*/ 1368 basis[ 0]=(2./3.)*gauss->coord1*(2.*gauss->coord1-1.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 1369 basis[ 1]=(2./3.)*gauss->coord2*(2.*gauss->coord2-1.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 1370 basis[ 2]=(2./3.)*gauss->coord3*(2.*gauss->coord3-1.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 1371 basis[ 3]=(2./3.)*gauss->coord1*(2.*gauss->coord1-1.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 1372 basis[ 4]=(2./3.)*gauss->coord2*(2.*gauss->coord2-1.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 1373 basis[ 5]=(2./3.)*gauss->coord3*(2.*gauss->coord3-1.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 1374 /*mid-sides of quads*/ 1375 basis[ 6]=4.*gauss->coord1*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1376 basis[ 7]=4.*gauss->coord2*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1377 basis[ 8]=4.*gauss->coord3*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1378 /*mid-sides of triangles*/ 1379 basis[ 9]=(2./3.)*gauss->coord2*gauss->coord3*(zeta-1.)*(zeta-0.5)*zeta*(zeta+0.5); 1380 basis[10]=(2./3.)*gauss->coord1*gauss->coord3*(zeta-1.)*(zeta-0.5)*zeta*(zeta+0.5); 1381 basis[11]=(2./3.)*gauss->coord1*gauss->coord2*(zeta-1.)*(zeta-0.5)*zeta*(zeta+0.5); 1382 basis[12]=(2./3.)*gauss->coord2*gauss->coord3*(zeta-0.5)*zeta*(zeta+0.5)*(zeta+1.); 1383 basis[13]=(2./3.)*gauss->coord1*gauss->coord3*(zeta-0.5)*zeta*(zeta+0.5)*(zeta+1.); 1384 basis[14]=(2./3.)*gauss->coord1*gauss->coord2*(zeta-0.5)*zeta*(zeta+0.5)*(zeta+1.); 1385 /*quarter-sides of quads*/ 1386 basis[15]=-(2./3.)*gauss->coord1*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1387 basis[16]=-(2./3.)*gauss->coord2*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1388 basis[17]=-(2./3.)*gauss->coord3*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1389 basis[18]=-(2./3.)*gauss->coord1*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1390 basis[19]=-(2./3.)*gauss->coord2*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1391 basis[20]=-(2./3.)*gauss->coord3*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1392 /* mid-sides of interior triangles*/ 1393 basis[21]=-(8./3.)*gauss->coord2*gauss->coord3*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1394 basis[22]=-(8./3.)*gauss->coord1*gauss->coord3*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1395 basis[23]=-(8./3.)*gauss->coord1*gauss->coord2*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 1396 basis[24]=16.*gauss->coord2*gauss->coord3*(zeta-1.0)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1397 basis[25]=16.*gauss->coord1*gauss->coord3*(zeta-1.0)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1398 basis[26]=16.*gauss->coord1*gauss->coord2*(zeta-1.0)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 1399 basis[27]=-(8./3.)*gauss->coord2*gauss->coord3*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1400 basis[28]=-(8./3.)*gauss->coord1*gauss->coord3*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1401 basis[29]=-(8./3.)*gauss->coord1*gauss->coord2*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 1402 return; 1403 case P1xP3Enum : 1404 /*Corner nodes*/ 1405 basis[ 0]=-(9.)/(16.)*gauss->coord1*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1406 basis[ 1]=-(9.)/(16.)*gauss->coord2*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1407 basis[ 2]=-(9.)/(16.)*gauss->coord3*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1408 basis[ 3]=(9.)/(16.)*gauss->coord1*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1409 basis[ 4]=(9.)/(16.)*gauss->coord2*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1410 basis[ 5]=(9.)/(16.)*gauss->coord3*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1411 /*quarter-sides of quads*/ 1412 basis[ 6]=(27.)/(16.)*gauss->coord1*(zeta-1)*(zeta-1./3.)*(zeta+1.); 1413 basis[ 7]=(27.)/(16.)*gauss->coord2*(zeta-1)*(zeta-1./3.)*(zeta+1.); 1414 basis[ 8]=(27.)/(16.)*gauss->coord3*(zeta-1)*(zeta-1./3.)*(zeta+1.); 1415 basis[ 9]=-(27.)/(16.)*gauss->coord1*(zeta-1)*(zeta+1./3.)*(zeta+1.); 1416 basis[10]=-(27.)/(16.)*gauss->coord2*(zeta-1)*(zeta+1./3.)*(zeta+1.); 1417 basis[11]=-(27.)/(16.)*gauss->coord3*(zeta-1)*(zeta+1./3.)*(zeta+1.); 1418 return; 1364 1419 default: 1365 1420 _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet"); … … 1764 1819 dbasis[NUMNODESP2*2+14] = 2.*gauss->coord1*gauss->coord2*(2.*zeta+1.); 1765 1820 return; 1821 1822 case P2xP4Enum : 1823 /*Nodal function 1*/ 1824 dbasis[NUMNODESP2xP4*0+0 ] = (-2* gauss->coord1 + 0.5 ) *(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1825 dbasis[NUMNODESP2xP4*1+0 ] = (-((2.*SQRT3)/(3.))*gauss->coord1 + (SQRT3/6.) )*(2./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1826 dbasis[NUMNODESP2xP4*2+0 ] = (2./3.)* gauss->coord1 *(2.* gauss->coord1 -1)*( (2.*zeta-1)*(zeta -0.5)*(zeta +0.5) + 2.* zeta *zeta *(zeta -1.)); 1827 /*Nodal function 2*/ 1828 dbasis[NUMNODESP2xP4*0+1 ] = (2.*gauss->coord2 - 0.5 ) *(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1829 dbasis[NUMNODESP2xP4*1+1 ] = (-((2.*SQRT3)/(3.))*gauss->coord2 + (SQRT3/6.) )*(2./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1830 dbasis[NUMNODESP2xP4*2+1 ] = (2./3.)*gauss->coord2*(2.*gauss->coord2 -1.)*((2.*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2. * zeta *zeta*(zeta -1.)); 1831 /*Nodal function 3*/ 1832 dbasis[NUMNODESP2xP4*0+2 ] = 0. ; 1833 dbasis[NUMNODESP2xP4*1+2 ] = (((4.*SQRT3)/(3.))*gauss->coord3 - (SQRT3)/(3.))*(2./3.)*(zeta -1.)*(zeta-0.5)*(zeta)*(zeta+0.5); 1834 dbasis[NUMNODESP2xP4*2+2 ] = (2./3.)*gauss->coord3*(2.* gauss->coord3 -1.)*( (2.*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta -1.)); 1835 /*Nodal function 4*/ 1836 dbasis[NUMNODESP2xP4*0+3 ] = (-2.* gauss->coord1 + 0.5 ) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1837 dbasis[NUMNODESP2xP4*1+3 ] = (-((2.*SQRT3)/(3.)) *gauss->coord1 + (SQRT3)/(6.) ) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1838 dbasis[NUMNODESP2xP4*2+3 ] = (2./3.)*gauss->coord1*(2.*gauss->coord1 -1.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1.)); 1839 /*Nodal function 5*/ 1840 dbasis[NUMNODESP2xP4*0+4 ] = (2*gauss->coord2 - 0.5 ) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1841 dbasis[NUMNODESP2xP4*1+4 ] = -((2.*SQRT3)/(3.)) *gauss->coord2 + (SQRT3/(6.))*(2./3.)*(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1842 dbasis[NUMNODESP2xP4*2+4 ] = (2./3.)*gauss->coord2 *(2.*gauss->coord2 -1.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1.)); 1843 /*Nodal function 6*/ 1844 dbasis[NUMNODESP2xP4*0+5 ] = 0. ; 1845 dbasis[NUMNODESP2xP4*1+5 ] = (((4.*SQRT3)/(3.))*gauss->coord3 - SQRT3/3. ) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1846 dbasis[NUMNODESP2xP4*2+5 ] = (2./3.)*gauss->coord3 *(2.*gauss->coord3 -1.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1)); 1847 /*Nodal function 7*/ 1848 dbasis[NUMNODESP2xP4*0+6 ] = -2. *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1849 dbasis[NUMNODESP2xP4*1+6 ] = (-4.*SQRT3)/(6.) *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1.) ; 1850 dbasis[NUMNODESP2xP4*2+6 ] = 4.*gauss->coord1*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1851 /*Nodal function 8*/ 1852 dbasis[NUMNODESP2xP4*0+7 ] = 2.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1853 dbasis[NUMNODESP2xP4*1+7 ] = ((-4.*SQRT3)/(6.)) *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1854 dbasis[NUMNODESP2xP4*2+7 ] = 4.* gauss->coord2*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1855 /*Nodal function 9*/ 1856 dbasis[NUMNODESP2xP4*0+8 ] = 0. ; 1857 dbasis[NUMNODESP2xP4*1+8 ] = ((4.*SQRT3)/(3.)) *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1858 dbasis[NUMNODESP2xP4*2+8 ] = 4.*gauss->coord3*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1859 /*Nodal function 10*/ 1860 dbasis[NUMNODESP2xP4*0+9 ] = (4./3.)*(gauss->coord3 )*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1861 dbasis[NUMNODESP2xP4*1+9 ] = 4.* (((- SQRT3)/6.)* gauss->coord3+ (SQRT3/3.) *gauss->coord2) *(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 1862 dbasis[NUMNODESP2xP4*2+9 ] = 4.* gauss->coord2 * gauss->coord3 *(2./3.)*((2.*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2.* zeta*zeta*(zeta -1.)); 1863 /*Nodal function 11*/ 1864 dbasis[NUMNODESP2xP4*0+10] = -(4./3.)* gauss->coord3*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1865 dbasis[NUMNODESP2xP4*1+10] = 4.* ((SQRT3/3.)*gauss->coord1- (SQRT3/6.)*gauss->coord3) *(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 1866 dbasis[NUMNODESP2xP4*2+10] = 4.* gauss->coord3*gauss->coord1 *(2./3.)*( (2*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2* zeta * zeta*(zeta -1)); 1867 /*Nodal function 12*/ 1868 dbasis[NUMNODESP2xP4*0+11] = 4.* (gauss->coord1*0.5- gauss->coord2 *0.5 )*(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5) ; 1869 dbasis[NUMNODESP2xP4*1+11] = 4.* (- (SQRT3/6.) *gauss->coord2 - (SQRT3/6.) *gauss->coord1) *(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 1870 dbasis[NUMNODESP2xP4*2+11] = 4.* gauss->coord1*gauss->coord2 *(2./3.) *( (2.*zeta-1)*(zeta -0.5)*(zeta +0.5) + 2* zeta* zeta*(zeta -1)); 1871 /*Nodal function 13*/ 1872 dbasis[NUMNODESP2xP4*0+12] = (4./3.) * gauss->coord3 *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1873 dbasis[NUMNODESP2xP4*1+12] = 4.* ( (- SQRT3/6. ) * gauss->coord3 + (SQRT3/3.) *gauss->coord2) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1874 dbasis[NUMNODESP2xP4*2+12] = 4.* gauss->coord2*gauss->coord3 *(2./3.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2*zeta*zeta*(zeta +1.)); 1875 /*Nodal function 14*/ 1876 dbasis[NUMNODESP2xP4*0+13] = (- 4./3.) *gauss->coord3*(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1877 dbasis[NUMNODESP2xP4*1+13] = 4.* ((SQRT3/3.)*gauss->coord1- (SQRT3/6.)*gauss->coord3) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1878 dbasis[NUMNODESP2xP4*2+13] = 4.* gauss->coord3*gauss->coord1 *(2./3.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1.)); 1879 /*Nodal function 15*/ 1880 dbasis[NUMNODESP2xP4*0+14] = 4.* ( gauss->coord1*0.5- gauss->coord2*0.5) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1881 dbasis[NUMNODESP2xP4*1+14] = 4.* (- (SQRT3/6.)*gauss->coord2 - (SQRT3/6.)*gauss->coord1) *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1882 dbasis[NUMNODESP2xP4*2+14] = 4.* gauss->coord1*gauss->coord2 *(2./3.)*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2* zeta *zeta*(zeta +1.)); 1883 /*Nodal function 16*/ 1884 dbasis[NUMNODESP2xP4*0+15] = (8./6.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1885 dbasis[NUMNODESP2xP4*1+15] = (8./3.) *(SQRT3/6.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1886 dbasis[NUMNODESP2xP4*2+15] = -(8./3.) *gauss->coord1 *((2.*zeta -1. )*(zeta-0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 0.5)); 1887 /*Nodal function 17*/ 1888 dbasis[NUMNODESP2xP4*0+16] = - (8./6.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1889 dbasis[NUMNODESP2xP4*1+16] = (8./3.) * (SQRT3/6.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1890 dbasis[NUMNODESP2xP4*2+16] = -(8./3.)*gauss->coord2 *((2.*zeta -1. )*(zeta-0.5)*(zeta +1.) + zeta *(zeta -1.)*( 2.*zeta + 0.5)); 1891 /*Nodal function 18*/ 1892 dbasis[NUMNODESP2xP4*0+17] = 0. ; 1893 dbasis[NUMNODESP2xP4*1+17] = (8./3.) *(SQRT3/3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1894 dbasis[NUMNODESP2xP4*2+17] = -(8./3.)*gauss->coord3 *((2.* zeta -1. ) *(zeta-0.5)* (zeta +1.) + zeta *(zeta -1.)*( 2.*zeta + 0.5)); 1895 /*Nodal function 19*/ 1896 dbasis[NUMNODESP2xP4*0+18] = (4./3.) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1897 dbasis[NUMNODESP2xP4*1+18] = (8./3.)* (SQRT3/6.)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1898 dbasis[NUMNODESP2xP4*2+18] = -(8./3.)*gauss->coord1*((2.*zeta -1. ) *(zeta+0.5)* (zeta +1.) + zeta* (zeta -1.)*( 2.*zeta + 3./2.)); 1899 /*Nodal function 20*/ 1900 dbasis[NUMNODESP2xP4*0+19] = (8./6.) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1901 dbasis[NUMNODESP2xP4*1+19] = (8./3.)*(SQRT3/6) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1902 dbasis[NUMNODESP2xP4*2+19] = -(8./3.)*gauss->coord2*((2.*zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 3./2.)); 1903 /*Nodal function 21*/ 1904 dbasis[NUMNODESP2xP4*0+20] = 0 ; 1905 dbasis[NUMNODESP2xP4*1+20] = -(8./3.)* (SQRT3/3) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1906 dbasis[NUMNODESP2xP4*2+20] = -(8./3.)*gauss->coord3 *(2. *zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 3./2.); 1907 /*Nodal function 22*/ 1908 dbasis[NUMNODESP2xP4*0+21] = -(32./6.) *gauss->coord3 *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ); 1909 dbasis[NUMNODESP2xP4*1+21] = -(32./3.)*(- (SQRT3/6.)*gauss->coord3+ (SQRT3/3.)*gauss->coord2 ) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1910 dbasis[NUMNODESP2xP4*2+21] = -(32./3.)*gauss->coord2 *gauss->coord3*((2.*zeta -1. )*(zeta-0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 0.5)); 1911 /*Nodal function 23*/ 1912 dbasis[NUMNODESP2xP4*0+22] = (32./6.) *gauss->coord3 *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ); 1913 dbasis[NUMNODESP2xP4*1+22] = -(32./3.)*( (SQRT3/3.)*gauss->coord1- (SQRT3/6.)*gauss->coord3 )*(zeta -1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1914 dbasis[NUMNODESP2xP4*2+22] = -(32./3.) *gauss->coord1*gauss->coord3*((2.*zeta -1. )*(zeta-0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 0.5)); 1915 /*Nodal function 24*/ 1916 dbasis[NUMNODESP2xP4*0+23] = -(32./3.)*( gauss->coord1*0.5- gauss->coord2*0.5) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ); 1917 dbasis[NUMNODESP2xP4*1+23] = -(32./3.)*(- (SQRT3/6.)*gauss->coord2- (SQRT3/6.)*gauss->coord1 ) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1918 dbasis[NUMNODESP2xP4*2+23] = -(32./3.)*gauss->coord1*gauss->coord2*((2.*zeta -1. )* (zeta-0.5) *(zeta +1.) + zeta* (zeta -1.)*( 2.*zeta + 0.5)); 1919 /*Nodal function 25*/ 1920 dbasis[NUMNODESP2xP4*0+24] = 8. *gauss->coord3 *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ); 1921 dbasis[NUMNODESP2xP4*1+24] = 16.*(- (SQRT3/6.)*gauss->coord3 + (SQRT3/3.) *gauss->coord2) *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1922 dbasis[NUMNODESP2xP4*2+24] = 16.* gauss->coord2 * gauss->coord3* ( 4.* zeta*zeta*zeta - (5./2.) *zeta ); 1923 /*Nodal function 26*/ 1924 dbasis[NUMNODESP2xP4*0+25] = 8. *gauss->coord3*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ); 1925 dbasis[NUMNODESP2xP4*1+25] = -16.*((SQRT3/3.)*gauss->coord1- (SQRT3/6.)*gauss->coord3 )*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1926 dbasis[NUMNODESP2xP4*2+25] = 16. * gauss->coord1 * gauss->coord3 *( 4. *zeta*zeta*zeta - (5./2.)* zeta ); 1927 /*Nodal function 27*/ 1928 dbasis[NUMNODESP2xP4*0+26] = 16.*( gauss->coord1*0.5-gauss->coord2*0.5) *(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ); 1929 dbasis[NUMNODESP2xP4*1+26] = 16.*(- (SQRT3/6.)*gauss->coord2- (SQRT3/6.)*gauss->coord1 )*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1930 dbasis[NUMNODESP2xP4*2+26] = 16. *gauss->coord1 *gauss->coord2 *( 4.* zeta*zeta*zeta - (5./2.)*zeta ); 1931 /*Nodal function 28*/ 1932 dbasis[NUMNODESP2xP4*0+27] = -(32./6.)* gauss->coord3*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ); 1933 dbasis[NUMNODESP2xP4*1+27] = -(32./3.)*(- (SQRT3/6.)*gauss->coord3+ (SQRT3/3.)*gauss->coord2 ) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1934 dbasis[NUMNODESP2xP4*2+27] = -(32./3.)* gauss->coord2*gauss->coord3* ((2.*zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + (3./2.))); 1935 /*Nodal function 29*/ 1936 dbasis[NUMNODESP2xP4*0+28] = (32./6.) *gauss->coord3 *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ); 1937 dbasis[NUMNODESP2xP4*1+28] = -(32./3.)*((SQRT3/3.)*gauss->coord1- (SQRT3/6.)*gauss->coord3 ) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1938 dbasis[NUMNODESP2xP4*2+28] = -(32./3.)* gauss->coord1*gauss->coord3* ((2.*zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + (3./2.))); 1939 /*Nodal function 30*/ 1940 dbasis[NUMNODESP2xP4*0+29] = -(32./3.)*( gauss->coord1*0.5- gauss->coord2*0.5)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ); 1941 dbasis[NUMNODESP2xP4*1+29] = -(32./3.)*(- (SQRT3/6.)*gauss->coord2- (SQRT3/6.)*gauss->coord1 ) *(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1942 dbasis[NUMNODESP2xP4*2+29] = -(32./3.)* gauss->coord1*gauss->coord2 *((2.*zeta -1. )*(zeta+0.5)*(zeta +1) + zeta*(zeta -1.)*( 2.*zeta + (3./2.))); 1943 return; 1944 case P1xP3Enum : 1945 /*Nodal function 1*/ 1946 dbasis[NUMNODESP1xP3*0+0 ] = (9./32.)*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1947 dbasis[NUMNODESP1xP3*1+0 ] = ((3.*SQRT3)/32.)*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1948 dbasis[NUMNODESP1xP3*2+0 ] =- (9./16.)* gauss->coord1 *( 2. *zeta *( zeta -1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1949 /*Nodal function 2*/ 1950 dbasis[NUMNODESP1xP3*0+1 ] = - (9./32.)*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1951 dbasis[NUMNODESP1xP3*1+1 ] = ((3.*SQRT3)/32.) *(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1952 dbasis[NUMNODESP1xP3*2+1 ] =- (9./16.)*gauss->coord2 *( 2.* zeta* ( zeta -1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1953 /*Nodal function 3*/ 1954 dbasis[NUMNODESP1xP3*0+2 ] = 0.; 1955 dbasis[NUMNODESP1xP3*1+2 ] = - ((3.*SQRT3)/32.)*(zeta-1)*(zeta-1./3.)*(zeta+1./3.); 1956 dbasis[NUMNODESP1xP3*2+2 ] = - (9./16.)* gauss->coord3* ( 2. *zeta *( zeta -1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1957 /*Nodal function 4*/ 1958 dbasis[NUMNODESP1xP3*0+3 ] = - (9./32.)*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1959 dbasis[NUMNODESP1xP3*1+3 ] = -((3.*SQRT3)/32.) *(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1960 dbasis[NUMNODESP1xP3*2+3 ] = (9./16.)* gauss->coord1*( 2.* zeta *( zeta +1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1961 /*Nodal function 5*/ 1962 dbasis[NUMNODESP1xP3*0+4 ] = (9./32.)* (zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1963 dbasis[NUMNODESP1xP3*1+4 ] = - ((3.*SQRT3)/32.) *(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1964 dbasis[NUMNODESP1xP3*2+4 ] = (9./16.)* gauss->coord2* ( 2.* zeta *( zeta +1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1965 /*Nodal function 6*/ 1966 dbasis[NUMNODESP1xP3*0+5 ] = 0.; 1967 dbasis[NUMNODESP1xP3*1+5 ] = ((3.*SQRT3)/16.) *(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 1968 dbasis[NUMNODESP1xP3*2+5 ] = (9./16.)* gauss->coord3 *( 2.* zeta * ( zeta + 1. ) + ( zeta - (1./3.) )*( zeta + (1./3.) )); 1969 /*Nodal function 7*/ 1970 dbasis[NUMNODESP1xP3*0+6 ] = - (27./32.) *(zeta-1)*(zeta-1./3.)*(zeta+1.); 1971 dbasis[NUMNODESP1xP3*1+6 ] = - (27./32.) *(zeta-1)*(zeta-1./3.)*(zeta+1.); 1972 dbasis[NUMNODESP1xP3*2+6 ] = gauss->coord1*(27./16.)*( 2.* zeta *( zeta - (1./3.)) + ( zeta - 1. )*( zeta + 1. )); 1973 /*Nodal function 8*/ 1974 dbasis[NUMNODESP1xP3*0+7 ] = (27./32.) *(zeta-1)*(zeta-1./3.)*(zeta+1.); 1975 dbasis[NUMNODESP1xP3*1+7 ] = -(27./32.) *(zeta-1)*(zeta-1./3.)*(zeta+1.); 1976 dbasis[NUMNODESP1xP3*2+7 ] = gauss->coord2*(27./16.)*( 2.* zeta *( zeta - (1./3.)) + ( zeta - 1. )*( zeta + 1. )); 1977 /*Nodal function 9*/ 1978 dbasis[NUMNODESP1xP3*0+8 ] = 0.; 1979 dbasis[NUMNODESP1xP3*1+8 ] = ((9.*SQRT3)/16.) *(zeta-1.)*(zeta-1./3.)*(zeta+1.); 1980 dbasis[NUMNODESP1xP3*2+8 ] = gauss->coord3*(27./16.)*( 2. *zeta *( zeta - (1./3.)) + ( zeta - 1. )*( zeta + 1. )); 1981 /*Nodal function 10*/ 1982 dbasis[NUMNODESP1xP3*0+9 ] = - (27./32.) *(zeta-1.)*(zeta+1./3.)*(zeta+1.); 1983 dbasis[NUMNODESP1xP3*1+9 ] = - ((9.*SQRT3)/32.) *(zeta-1.)*(zeta+1./3.)*(zeta+1.); 1984 dbasis[NUMNODESP1xP3*2+9 ] = gauss->coord1 *(27./16.)*( 2* zeta *( zeta + (1./3.)) + ( zeta - 1. )*( zeta + 1. )); 1985 /*Nodal function 11*/ 1986 dbasis[NUMNODESP1xP3*0+10] = (27./32.) *(zeta-1)*(zeta+1./3.)*(zeta+1); 1987 dbasis[NUMNODESP1xP3*1+10] = - ((9.*SQRT3)/32.) *(zeta-1.)*(zeta+1./3.)*(zeta+1); 1988 dbasis[NUMNODESP1xP3*2+10] = gauss->coord2 *(27./16.) * 2.* zeta *( zeta + (1./3.) + ( zeta - 1. )*( zeta + 1. )); 1989 /*Nodal function 12*/ 1990 dbasis[NUMNODESP1xP3*0+11] = 0.; 1991 dbasis[NUMNODESP1xP3*1+11] = ((9.*SQRT3)/16.) *(zeta-1.)*(zeta+1./3.)*(zeta+1); 1992 dbasis[NUMNODESP1xP3*2+11] = gauss->coord3 *(27./16.)* 2.* zeta *( zeta + (1./3.) + ( zeta - 1. )*( zeta + 1. )); 1993 return; 1766 1994 default: 1767 1995 _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet"); … … 2024 2252 case MINIEnum: return NUMNODESP1b+NUMNODESP1; 2025 2253 case TaylorHoodEnum: return NUMNODESP2+NUMNODESP1; 2254 case P2xP4Enum: return NUMNODESP2xP4; 2255 case P1xP3Enum: return NUMNODESP1xP3; 2026 2256 default: _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet"); 2027 2257 } -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r16851 r17017 529 529 P2xP1Enum, 530 530 P1xP2Enum, 531 P1xP3Enum, 532 P2xP4Enum, 531 533 P1P1Enum, 532 534 P1P1GLSEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r16851 r17017 521 521 case P2xP1Enum : return "P2xP1"; 522 522 case P1xP2Enum : return "P1xP2"; 523 case P1xP3Enum : return "P1xP3"; 524 case P2xP4Enum : return "P2xP4"; 523 525 case P1P1Enum : return "P1P1"; 524 526 case P1P1GLSEnum : return "P1P1GLS"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r16851 r17017 533 533 else if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 534 534 else if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 535 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 536 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 535 537 else if (strcmp(name,"P1P1")==0) return P1P1Enum; 536 538 else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; … … 627 629 else if (strcmp(name,"Seq")==0) return SeqEnum; 628 630 else if (strcmp(name,"Mpi")==0) return MpiEnum; 629 else if (strcmp(name,"Mumps")==0) return MumpsEnum;630 else if (strcmp(name,"Gsl")==0) return GslEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Option")==0) return OptionEnum; 634 if (strcmp(name,"Mumps")==0) return MumpsEnum; 635 else if (strcmp(name,"Gsl")==0) return GslEnum; 636 else if (strcmp(name,"Option")==0) return OptionEnum; 635 637 else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; 636 638 else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
Note:
See TracChangeset
for help on using the changeset viewer.