source:
issm/oecreview/Archive/21724-22754/ISSM-22074-22075.diff@
22755
Last change on this file since 22755 was 22755, checked in by , 7 years ago | |
---|---|
File size: 12.8 KB |
-
../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
1066 1066 P2xP1Enum, 1067 1067 P1xP2Enum, 1068 1068 P1xP3Enum, 1069 P1xP4Enum, 1069 1070 P2xP4Enum, 1070 1071 P1P1Enum, 1071 1072 P1P1GLSEnum, -
../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
1021 1021 case P2xP1Enum : return "P2xP1"; 1022 1022 case P1xP2Enum : return "P1xP2"; 1023 1023 case P1xP3Enum : return "P1xP3"; 1024 case P1xP4Enum : return "P1xP4"; 1024 1025 case P2xP4Enum : return "P2xP4"; 1025 1026 case P1P1Enum : return "P1P1"; 1026 1027 case P1P1GLSEnum : return "P1P1GLS"; -
../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
1045 1045 else if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 1046 1046 else if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 1047 1047 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 1048 else if (strcmp(name,"P1xP4")==0) return P1xP4Enum; 1048 1049 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 1049 1050 else if (strcmp(name,"P1P1")==0) return P1P1Enum; 1050 1051 else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; -
../trunk-jpl/src/c/classes/Elements/PentaRef.cpp
21 21 #define NUMNODESP1b 7 22 22 #define NUMNODESP1xP2 9 23 23 #define NUMNODESP1xP3 12 24 #define NUMNODESP1xP4 15 24 25 #define NUMNODESP2xP1 12 25 26 #define NUMNODESP2 18 26 27 #define NUMNODESP2b 19 … … 81 82 indices[1] = 1; 82 83 indices[2] = 2; 83 84 break; 85 case P1xP4Enum: 86 numindices = 3; 87 indices = xNew<int>(numindices); 88 indices[0] = 0; 89 indices[1] = 1; 90 indices[2] = 2; 91 break; 84 92 case P2Enum: 85 93 numindices = 6; 86 94 indices = xNew<int>(numindices); … … 422 430 basis[ 3]=(9.)/(16.)*gauss->coord1*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 423 431 basis[ 4]=(9.)/(16.)*gauss->coord2*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 424 432 basis[ 5]=(9.)/(16.)*gauss->coord3*(zeta-1./3.)*(zeta+1./3.)*(zeta+1.); 425 /* quarter-sides of quads*/433 /*third-sides of quads*/ 426 434 basis[ 6]=(27.)/(16.)*gauss->coord1*(zeta-1)*(zeta-1./3.)*(zeta+1.); 427 435 basis[ 7]=(27.)/(16.)*gauss->coord2*(zeta-1)*(zeta-1./3.)*(zeta+1.); 428 436 basis[ 8]=(27.)/(16.)*gauss->coord3*(zeta-1)*(zeta-1./3.)*(zeta+1.); … … 430 438 basis[10]=-(27.)/(16.)*gauss->coord2*(zeta-1)*(zeta+1./3.)*(zeta+1.); 431 439 basis[11]=-(27.)/(16.)*gauss->coord3*(zeta-1)*(zeta+1./3.)*(zeta+1.); 432 440 return; 441 case P1xP4Enum : 442 /*Corner nodes*/ 443 basis[ 0]=gauss->coord1*(2./3.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 444 basis[ 1]=gauss->coord2*(2./3.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 445 basis[ 2]=gauss->coord3*(2./3.)*(zeta-1.)*(zeta-0.5 )*(zeta)*(zeta+0.5); 446 basis[ 3]=gauss->coord1*(2./3.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 447 basis[ 4]=gauss->coord2*(2./3.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 448 basis[ 5]=gauss->coord3*(2./3.)*(zeta-0.5)*(zeta)*(zeta+0.5)*(zeta +1.); 449 /*mid-sides of quads (center of vertical edges)*/ 450 basis[ 6]=gauss->coord1*4.*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 451 basis[ 7]=gauss->coord2*4.*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 452 basis[ 8]=gauss->coord3*4.*(zeta-1.)*(zeta-0.5)*(zeta+0.5)*(zeta+1.); 453 /*quarter-sides of quads (-0.5 and +0.5 of vertical edges)*/ 454 basis[ 9]=gauss->coord1*(-8./3.)*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 455 basis[10]=gauss->coord2*(-8./3.)*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 456 basis[11]=gauss->coord3*(-8./3.)*(zeta-1.0)*(zeta-0.5)*zeta*(zeta+1.); 457 basis[12]=gauss->coord1*(-8./3.)*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 458 basis[13]=gauss->coord2*(-8./3.)*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 459 basis[14]=gauss->coord3*(-8./3.)*(zeta-1.0)*zeta*(zeta+0.5)*(zeta+1.); 460 return; 433 461 default: 434 462 _error_("Element type "<<EnumToStringx(finiteelement)<<" not supported yet"); 435 463 } … … 963 991 dbasis[NUMNODESP1xP3*1+11] = -((9.*SQRT3)/16.) *(zeta-1.)*(zeta+1./3.)*(zeta+1); 964 992 dbasis[NUMNODESP1xP3*2+11] = -gauss->coord3 *(27./16.)*( 2.* zeta *( zeta + (1./3.)) + ( zeta - 1. )*( zeta + 1. )); 965 993 return; 994 case P1xP4Enum : 995 /*Nodal function 1*/ 996 dbasis[NUMNODESP1xP4*0+0 ] = -0.5*(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 997 dbasis[NUMNODESP1xP4*1+0 ] = -SQRT3/6.*(2./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 998 dbasis[NUMNODESP1xP4*2+0 ] = gauss->coord1 * 2./3.*( (2.*zeta-1)*(zeta -0.5)*(zeta +0.5) + 2.* zeta *zeta *(zeta -1.)); 999 /*Nodal function 2*/ 1000 dbasis[NUMNODESP1xP4*0+1 ] = +0.5*(2./3.) *(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 1001 dbasis[NUMNODESP1xP4*1+1 ] = -SQRT3/6.*(2./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta+0.5); 1002 dbasis[NUMNODESP1xP4*2+1 ] = gauss->coord2* 2./3.* ((2.*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2. * zeta *zeta*(zeta -1.)); 1003 /*Nodal function 3*/ 1004 dbasis[NUMNODESP1xP4*0+2 ] = 0. ; 1005 dbasis[NUMNODESP1xP4*1+2 ] = SQRT3/3.*(2./3.)*(zeta -1.)*(zeta-0.5)*(zeta)*(zeta+0.5); 1006 dbasis[NUMNODESP1xP4*2+2 ] = gauss->coord3* 2./3.*( (2.*zeta-1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta -1.)); 1007 /*Nodal function 4*/ 1008 dbasis[NUMNODESP1xP4*0+3 ] = -0.5 *(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1009 dbasis[NUMNODESP1xP4*1+3 ] = -SQRT3/6.*(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1010 dbasis[NUMNODESP1xP4*2+3 ] = gauss->coord1* 2./3.*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1.)); 1011 /*Nodal function 5*/ 1012 dbasis[NUMNODESP1xP4*0+4 ] = +0.5 * (2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1013 dbasis[NUMNODESP1xP4*1+4 ] = -SQRT3/6.*(2./3.)*(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1014 dbasis[NUMNODESP1xP4*2+4 ] = gauss->coord2 * 2./3.*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1.)); 1015 /*Nodal function 6*/ 1016 dbasis[NUMNODESP1xP4*0+5 ] = 0. ; 1017 dbasis[NUMNODESP1xP4*1+5 ] = SQRT3/3.*(2./3.) *(zeta - 0.5)*(zeta)*(zeta+0.5)*(zeta +1. ); 1018 dbasis[NUMNODESP1xP4*2+5 ] = gauss->coord3 * 2./3.*( (2.*zeta+1.)*(zeta -0.5)*(zeta +0.5) + 2.*zeta *zeta*(zeta +1)); 1019 /*Nodal function 7*/ 1020 dbasis[NUMNODESP1xP4*0+6 ] = -0.5 * 4.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1021 dbasis[NUMNODESP1xP4*1+6 ] = -SQRT3/6.* 4.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1.) ; 1022 dbasis[NUMNODESP1xP4*2+6 ] = gauss->coord1* 4.*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1023 /*Nodal function 8*/ 1024 dbasis[NUMNODESP1xP4*0+7 ] = +0.5* 4.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1025 dbasis[NUMNODESP1xP4*1+7 ] = -SQRT3/6.* 4.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1026 dbasis[NUMNODESP1xP4*2+7 ] = gauss->coord2* 4.*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1027 1028 /*Nodal function 9*/ 1029 dbasis[NUMNODESP1xP4*0+8 ] = 0. ; 1030 dbasis[NUMNODESP1xP4*1+8 ] = SQRT3/3. * 4.*(zeta - 1.)*(zeta - 0.5)*(zeta+0.5)*(zeta +1. ) ; 1031 dbasis[NUMNODESP1xP4*2+8 ] = gauss->coord3* 4.*( 4.*zeta *zeta*zeta - (5./2.)*zeta ); 1032 1033 /*Nodal function 10*/ 1034 dbasis[NUMNODESP1xP4*0+9 ] = -0.5* (-8./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1035 dbasis[NUMNODESP1xP4*1+9 ] = -SQRT3/3.* (-8./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1036 dbasis[NUMNODESP1xP4*2+9 ] = gauss->coord1* (-8./3.)*((2.*zeta -1.)*(zeta-0.5)*(zeta +1.) +zeta*(zeta -1.)*( 2.*zeta + 0.5)); 1037 /*Nodal function 11*/ 1038 dbasis[NUMNODESP1xP4*0+10] = +0.5* (-8./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1039 dbasis[NUMNODESP1xP4*1+10] = -SQRT3/6.* (-8./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1040 dbasis[NUMNODESP1xP4*2+10] = gauss->coord2* (-8./3.)*((2.*zeta -1.)*(zeta-0.5)*(zeta +1.) +zeta *(zeta -1.)*( 2.*zeta + 0.5)); 1041 /*Nodal function 12*/ 1042 dbasis[NUMNODESP1xP4*0+11] = 0. ; 1043 dbasis[NUMNODESP1xP4*1+11] = SQRT3/6.* (-8./3.)*(zeta - 1.)*(zeta - 0.5)*(zeta)*(zeta +1. ) ; 1044 dbasis[NUMNODESP1xP4*2+11] = gauss->coord3* (-8./3.)*((2.*zeta-1.)*(zeta-0.5)*(zeta +1.) +zeta *(zeta -1.)*( 2.*zeta + 0.5)); 1045 /*Nodal function 13*/ 1046 dbasis[NUMNODESP1xP4*0+12] = -0.5* (-8./3.)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1047 dbasis[NUMNODESP1xP4*1+12] = -SQRT3/6.* (-8./3.)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1048 dbasis[NUMNODESP1xP4*2+12] = gauss->coord1* (-8./3.)*((2.*zeta -1. ) *(zeta+0.5)* (zeta +1.) + zeta* (zeta -1.)*( 2.*zeta + 3./2.)); 1049 /*Nodal function 14*/ 1050 dbasis[NUMNODESP1xP4*0+13] = +0.5* (-8./3.)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1051 dbasis[NUMNODESP1xP4*1+13] = -SQRT3/6.* (-8./3.)*(zeta - 1.)*(zeta)*(zeta+0.5)*(zeta +1. ) ; 1052 dbasis[NUMNODESP1xP4*2+13] = gauss->coord2* (-8./3.)*((2.*zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 3./2.)); 1053 /*Nodal function 15*/ 1054 dbasis[NUMNODESP1xP4*0+14] = 0 ; 1055 dbasis[NUMNODESP1xP4*1+14] = SQRT3/6.* (-8./3.)*(zeta - 1.)*(zeta + 0.5)*(zeta)*(zeta +1. ) ; 1056 dbasis[NUMNODESP1xP4*2+14] = gauss->coord3* (-8./3.)*((2. *zeta -1. )*(zeta+0.5)*(zeta +1.) + zeta*(zeta -1.)*( 2.*zeta + 3./2.)); 1057 1058 return; 966 1059 default: 967 1060 _error_("Element type "<<EnumToStringx(finiteelement)<<" not supported yet"); 968 1061 } … … 1074 1167 indices[1*2 + 0] = 1; indices[1*2 + 1] = 7; 1075 1168 indices[2*2 + 0] = 2; indices[2*2 + 1] = 8; 1076 1169 break; 1170 case P1xP4Enum: 1171 numseg = 3; 1172 indices = xNew<int>(numseg*2); 1173 indices[0*2 + 0] = 0; indices[0*2 + 1] = 6; 1174 indices[1*2 + 0] = 1; indices[1*2 + 1] = 7; 1175 indices[2*2 + 0] = 2; indices[2*2 + 1] = 8; 1176 break; 1077 1177 case P2Enum: 1078 1178 numseg = 6; 1079 1179 indices = xNew<int>(numseg*2); … … 1129 1229 case P1xP2Enum: return NUMNODESP1xP2; 1130 1230 case P2xP4Enum: return NUMNODESP2xP4; 1131 1231 case P1xP3Enum: return NUMNODESP1xP3; 1232 case P1xP4Enum: return NUMNODESP1xP4; 1132 1233 case P1P1Enum: return NUMNODESP1*2; 1133 1234 case P1P1GLSEnum: return NUMNODESP1*2; 1134 1235 case MINIcondensedEnum: return NUMNODESP1b+NUMNODESP1; … … 1195 1296 break; 1196 1297 case P1xP2Enum: 1197 1298 case P1xP3Enum: 1299 case P1xP4Enum: 1198 1300 numindices = 3; 1199 1301 indices = xNew<int>(numindices); 1200 1302 indices[0] = 3; -
../trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
600 600 default: _error_("node index should be in [0 11]"); 601 601 } 602 602 break; 603 case P1xP4Enum: 604 switch(iv){ 605 case 0 : coord1=1.; coord2=0.; coord3=0.; coord4=-1.; break; 606 case 1 : coord1=0.; coord2=1.; coord3=0.; coord4=-1.; break; 607 case 2 : coord1=0.; coord2=0.; coord3=1.; coord4=-1.; break; 608 case 3 : coord1=1.; coord2=0.; coord3=0.; coord4=+1.; break; 609 case 4 : coord1=0.; coord2=1.; coord3=0.; coord4=+1.; break; 610 case 5 : coord1=0.; coord2=0.; coord3=1.; coord4=+1.; break; 611 612 case 6 : coord1=1.; coord2=0.; coord3=0.; coord4=0.; break; 613 case 7 : coord1=0.; coord2=1.; coord3=0.; coord4=0.; break; 614 case 8 : coord1=0.; coord2=0.; coord3=1.; coord4=0.; break; 615 616 case 9 : coord1=1.; coord2=0.; coord3=0.; coord4=-0.5; break; 617 case 10: coord1=0.; coord2=1.; coord3=0.; coord4=-0.5; break; 618 case 11: coord1=0.; coord2=0.; coord3=1.; coord4=-0.5; break; 619 620 case 12: coord1=1.; coord2=0.; coord3=0.; coord4=+0.5; break; 621 case 13: coord1=0.; coord2=1.; coord3=0.; coord4=+0.5; break; 622 case 14: coord1=0.; coord2=0.; coord3=1.; coord4=+0.5; break; 623 default: _error_("node index should be in [0 14]"); 624 } 625 break; 603 626 case P2xP1Enum: 604 627 switch(iv){ 605 628 case 0: coord1=1.; coord2=0.; coord3=0.; coord4=-1.; break; -
../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
253 253 for(int i=2;i<9;i+=3) this->values[i]=this->values[11]; 254 254 } 255 255 break; 256 case P1xP4Enum: 257 if(start==-1){ 258 for(int i=0+3;i<15;i+=3) this->values[i]=this->values[0]; 259 for(int i=1+3;i<15;i+=3) this->values[i]=this->values[1]; 260 for(int i=2+3;i<15;i+=3) this->values[i]=this->values[2]; 261 } 262 else{ 263 for(int i=0;i<12;i+=3) this->values[i]=this->values[12]; 264 for(int i=1;i<12;i+=3) this->values[i]=this->values[13]; 265 for(int i=2;i<12;i+=3) this->values[i]=this->values[14]; 266 } 267 break; 256 268 default: 257 269 _error_("not supported yet for type "<<EnumToStringx(this->interpolation_type)); 258 270 }
Note:
See TracBrowser
for help on using the repository browser.