Changeset 10514
- Timestamp:
- 11/07/11 15:07:08 (13 years ago)
- Location:
- issm/trunk/src/c/objects/Elements
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Penta.cpp
r10509 r10514 5985 5985 /*compute all stiffness matrices for this element*/ 5986 5986 ElementMatrix* Ke1=CreateKMatrixDiagnosticStokesViscous(); 5987 //ElementMatrix* Ke2=CreateKMatrixDiagnosticStokesFriction(); 5988 ElementMatrix* Ke2=CreateKMatrixDiagnosticStokesFriction2(); 5987 ElementMatrix* Ke2=CreateKMatrixDiagnosticStokesFriction(); 5989 5988 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 5990 5989 … … 6056 6055 } 6057 6056 /*}}}*/ 6058 /*FUNCTION Penta::CreateKMatrixDiagnosticStokesFriction 6057 /*FUNCTION Penta::CreateKMatrixDiagnosticStokesFriction{{{1*/ 6059 6058 ElementMatrix* Penta::CreateKMatrixDiagnosticStokesFriction(void){ 6060 6059 … … 6066 6065 int i,j,ig; 6067 6066 int analysis_type,approximation; 6068 double stokesreconditioning; 6069 double viscosity,alpha2_gauss,Jdet2d; 6070 double bed_normal[3]; 6067 double alpha2,Jdet2d; 6068 double stokesreconditioning,viscosity; 6071 6069 double epsilon[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/ 6072 6070 double xyz_list[NUMVERTICES][3]; 6073 6071 double xyz_list_tria[NUMVERTICES2D][3]; 6074 double LStokes[14][numdof2d]; 6075 double LprimeStokes[14][numdof2d]; 6076 double DLStokes[14][14]={0.0}; 6072 double LStokes[2][numdof2d]; 6073 double DLStokes[2][2]={0.0}; 6077 6074 double Ke_drag_gaussian[numdof2d][numdof2d]; 6078 6075 Friction* friction=NULL; … … 6104 6101 GetTriaJacobianDeterminant(&Jdet2d, &xyz_list_tria[0][0],gauss); 6105 6102 GetLStokes(&LStokes[0][0], gauss); 6106 GetLprimeStokes(&LprimeStokes[0][0], &xyz_list[0][0], gauss);6107 6103 6108 6104 this->GetStrainRate3d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input); 6109 6105 matice->GetViscosity3dStokes(&viscosity,&epsilon[0]); 6110 6106 6111 BedNormal(&bed_normal[0],xyz_list_tria); 6112 friction->GetAlpha2(&alpha2_gauss, gauss,VxEnum,VyEnum,VzEnum); 6113 6114 DLStokes[0][0]=alpha2_gauss*gauss->weight*Jdet2d; 6115 DLStokes[1][1]=alpha2_gauss*gauss->weight*Jdet2d; 6116 DLStokes[2][2]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2]; 6117 DLStokes[3][3]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2]; 6118 DLStokes[4][4]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[0]*bed_normal[2]; 6119 DLStokes[5][5]=-alpha2_gauss*gauss->weight*Jdet2d*bed_normal[1]*bed_normal[2]; 6120 DLStokes[6][6]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[0]; 6121 DLStokes[7][7]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[1]; 6122 DLStokes[8][8]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[2]; 6123 DLStokes[9][9]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[0]/2.0; 6124 DLStokes[10][10]=-2*viscosity*gauss->weight*Jdet2d*bed_normal[1]/2.0; 6125 DLStokes[11][11]=stokesreconditioning*gauss->weight*Jdet2d*bed_normal[0]; 6126 DLStokes[12][12]=stokesreconditioning*gauss->weight*Jdet2d*bed_normal[1]; 6127 DLStokes[13][13]=stokesreconditioning*gauss->weight*Jdet2d*bed_normal[2]; 6128 6129 TripleMultiply( &LStokes[0][0],14,numdof2d,1, 6130 &DLStokes[0][0],14,14,0, 6131 &LprimeStokes[0][0],14,numdof2d,0, 6107 friction->GetAlpha2(&alpha2, gauss,VxEnum,VyEnum,VzEnum); 6108 6109 DLStokes[0][0] = +alpha2*gauss->weight*Jdet2d; //taub_x = -alpha2 vx 6110 DLStokes[1][1] = +alpha2*gauss->weight*Jdet2d; //taub_y = -alpha2 vy 6111 6112 TripleMultiply( &LStokes[0][0],2,numdof2d,1, 6113 &DLStokes[0][0],2,2,0, 6114 &LStokes[0][0],2,numdof2d,0, 6132 6115 &Ke_drag_gaussian[0][0],0); 6133 6116 … … 6135 6118 } 6136 6119 6137 6138 /*Transform Coordinate System*/ 6139 TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,NDOF4); 6140 6120 /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/ 6121 //TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,NDOF4); 6122 6141 6123 /*Clean up and return*/ 6142 6124 delete gauss; 6143 6125 delete friction; 6144 return Ke;6145 }6146 /*}}}*/6147 /*FUNCTION Penta::CreateKMatrixDiagnosticStokesFriction2{{{1*/6148 ElementMatrix* Penta::CreateKMatrixDiagnosticStokesFriction2(void){6149 6150 /*Constants*/6151 const int numdof=NUMVERTICES*NDOF4;6152 const int numdof2d=NUMVERTICES2D*NDOF4;6153 6154 /*Intermediaries */6155 int i,j,ig;6156 int analysis_type,approximation;6157 double alpha2,Jdet2d;6158 double stokesreconditioning,viscosity;6159 double epsilon[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/6160 double xyz_list[NUMVERTICES][3];6161 double xyz_list_tria[NUMVERTICES2D][3];6162 double LStokes2[2][numdof2d];6163 //double LprimeStokes2[4][numdof2d];6164 double DLStokes[2][2]={0.0};6165 double Ke_drag_gaussian[numdof2d][numdof2d];6166 Friction* friction=NULL;6167 GaussPenta *gauss=NULL;6168 6169 /*If on water or not Stokes, skip stiffness: */6170 inputs->GetInputValue(&approximation,ApproximationEnum);6171 if(IsFloating() || !IsOnBed() || (approximation!=StokesApproximationEnum && approximation!=MacAyealStokesApproximationEnum && approximation!=PattynStokesApproximationEnum)) return NULL;6172 ElementMatrix* Ke=new ElementMatrix(nodes,NUMVERTICES,this->parameters,StokesApproximationEnum);6173 6174 /*Retrieve all inputs and parameters*/6175 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);6176 parameters->FindParam(&analysis_type,AnalysisTypeEnum);6177 parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);6178 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);6179 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);6180 Input* vz_input=inputs->GetInput(VzEnum); _assert_(vz_input);6181 for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<3;j++) xyz_list_tria[i][j]=xyz_list[i][j];6182 6183 /*build friction object, used later on: */6184 friction=new Friction("3d",inputs,matpar,analysis_type);6185 6186 /* Start looping on the number of gaussian points: */6187 gauss=new GaussPenta(0,1,2,2);6188 for (ig=gauss->begin();ig<gauss->end();ig++){6189 6190 gauss->GaussPoint(ig);6191 6192 GetTriaJacobianDeterminant(&Jdet2d, &xyz_list_tria[0][0],gauss);6193 GetLStokes3(&LStokes2[0][0], gauss);6194 //GetLprimeStokes2(&LprimeStokes2[0][0], &xyz_list[0][0], gauss);6195 6196 this->GetStrainRate3d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input);6197 matice->GetViscosity3dStokes(&viscosity,&epsilon[0]);6198 6199 friction->GetAlpha2(&alpha2, gauss,VxEnum,VyEnum,VzEnum);6200 6201 DLStokes[0][0] = +alpha2*gauss->weight*Jdet2d; //taub_x = -alpha2 vx6202 DLStokes[1][1] = +alpha2*gauss->weight*Jdet2d; //taub_y = -alpha2 vy6203 //DLStokes[2][2] = +2*viscosity*gauss->weight*Jdet2d;6204 //DLStokes[3][3] = -stokesreconditioning*gauss->weight*Jdet2d;6205 6206 //TripleMultiply( &LStokes2[0][0],4,numdof2d,1,6207 // &DLStokes[0][0],4,4,0,6208 // &LprimeStokes2[0][0],4,numdof2d,0,6209 // &Ke_drag_gaussian[0][0],0);6210 TripleMultiply( &LStokes2[0][0],2,numdof2d,1,6211 &DLStokes[0][0],2,2,0,6212 &LStokes2[0][0],2,numdof2d,0,6213 &Ke_drag_gaussian[0][0],0);6214 6215 for(i=0;i<numdof2d;i++) for(j=0;j<numdof2d;j++) Ke->values[i*numdof+j]+=Ke_drag_gaussian[i][j];6216 }6217 6218 /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/6219 //TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,NDOF4);6220 6221 //printf("New:\n");6222 //printarray(&Ke_drag_gaussian[0][0],numdof2d,numdof2d);6223 //printf("Old:\n");6224 //Ke=CreateKMatrixDiagnosticStokesFriction();6225 //_error_("STOP");6226 //if(id==1) printarray(Ke->values,4,Ke->ncols);6227 //if(id==1) printarray(Ke->values,1,9);6228 6229 /*Clean up and return*/6230 delete gauss;6231 delete friction;6232 6233 //return CreateKMatrixDiagnosticStokesFriction();6234 6126 return Ke; 6235 6127 } -
issm/trunk/src/c/objects/Elements/Penta.h
r10480 r10514 223 223 ElementMatrix* CreateKMatrixDiagnosticStokesViscous(void); 224 224 ElementMatrix* CreateKMatrixDiagnosticStokesFriction(void); 225 ElementMatrix* CreateKMatrixDiagnosticStokesFriction2(void);226 225 ElementMatrix* CreateKMatrixDiagnosticVert(void); 227 226 ElementMatrix* CreateKMatrixDiagnosticVertVolume(void); -
issm/trunk/src/c/objects/Elements/PentaRef.cpp
r10480 r10514 555 555 } 556 556 /*}}}*/ 557 /*FUNCTION PentaRef::GetLStokes 557 /*FUNCTION PentaRef::GetLStokes{{{1*/ 558 558 void PentaRef::GetLStokes(double* LStokes, GaussPenta* gauss){ 559 559 /* … … 561 561 * For node i, Li can be expressed in the actual coordinate system 562 562 * by: 563 * Li=[ h 0 0 0] 564 * [ 0 h 0 0] 565 * [ 0 0 h 0] 566 * [ 0 0 h 0] 567 * [ h 0 0 0] 568 * [ 0 h 0 0] 569 * [ h 0 0 0] 570 * [ 0 h 0 0] 571 * [ 0 0 h 0] 572 * [ 0 0 h 0] 573 * [ 0 0 h 0] 574 * [ h 0 0 0] 575 * [ 0 h 0 0] 576 * [ 0 0 h 0] 577 * where h is the interpolation function for node i. 578 */ 579 580 int i; 581 int num_dof=4; 582 563 * Li=[ h 0 ] 564 * [ 0 h ] 565 * [ 0 0 ] 566 * [ 0 0 ] 567 * where h is the interpolation function for node i. 568 */ 569 570 const int num_dof=4; 583 571 double l1l2l3[NUMNODESP1_2d]; 584 585 572 586 573 /*Get l1l2l3 in actual coordinate system: */ … … 590 577 591 578 /*Build LStokes: */ 592 for (i=0;i<3;i++){ 593 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i)=l1l2l3[i]; //LStokes[0][NDOF2*i]=dh1dh3[0][i]; 594 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+1)=0; 595 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+2)=0; 596 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+3)=0; 597 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i)=0; 598 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+1)=l1l2l3[i]; 599 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+2)=0; 600 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+3)=0; 601 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i)=0; 602 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+1)=0; 603 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+2)=l1l2l3[i]; 604 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+3)=0; 605 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i)=0; 606 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+1)=0; 607 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+2)=l1l2l3[i]; 608 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+3)=0; 609 *(LStokes+num_dof*NUMNODESP1_2d*4+num_dof*i)=l1l2l3[i]; 610 *(LStokes+num_dof*NUMNODESP1_2d*4+num_dof*i+1)=0; 611 *(LStokes+num_dof*NUMNODESP1_2d*4+num_dof*i+2)=0; 612 *(LStokes+num_dof*NUMNODESP1_2d*4+num_dof*i+3)=0; 613 *(LStokes+num_dof*NUMNODESP1_2d*5+num_dof*i)=0; 614 *(LStokes+num_dof*NUMNODESP1_2d*5+num_dof*i+1)=l1l2l3[i]; 615 *(LStokes+num_dof*NUMNODESP1_2d*5+num_dof*i+2)=0; 616 *(LStokes+num_dof*NUMNODESP1_2d*5+num_dof*i+3)=0; 617 *(LStokes+num_dof*NUMNODESP1_2d*6+num_dof*i)=l1l2l3[i]; 618 *(LStokes+num_dof*NUMNODESP1_2d*6+num_dof*i+1)=0; 619 *(LStokes+num_dof*NUMNODESP1_2d*6+num_dof*i+2)=0; 620 *(LStokes+num_dof*NUMNODESP1_2d*6+num_dof*i+3)=0; 621 *(LStokes+num_dof*NUMNODESP1_2d*7+num_dof*i)=0; 622 *(LStokes+num_dof*NUMNODESP1_2d*7+num_dof*i+1)=l1l2l3[i]; 623 *(LStokes+num_dof*NUMNODESP1_2d*7+num_dof*i+2)=0; 624 *(LStokes+num_dof*NUMNODESP1_2d*7+num_dof*i+3)=0; 625 *(LStokes+num_dof*NUMNODESP1_2d*8+num_dof*i)=0; 626 *(LStokes+num_dof*NUMNODESP1_2d*8+num_dof*i+1)=0; 627 *(LStokes+num_dof*NUMNODESP1_2d*8+num_dof*i+2)=l1l2l3[i]; 628 *(LStokes+num_dof*NUMNODESP1_2d*8+num_dof*i+3)=0; 629 *(LStokes+num_dof*NUMNODESP1_2d*9+num_dof*i)=0; 630 *(LStokes+num_dof*NUMNODESP1_2d*9+num_dof*i+1)=0; 631 *(LStokes+num_dof*NUMNODESP1_2d*9+num_dof*i+2)=l1l2l3[i]; 632 *(LStokes+num_dof*NUMNODESP1_2d*9+num_dof*i+3)=0; 633 *(LStokes+num_dof*NUMNODESP1_2d*10+num_dof*i)=0; 634 *(LStokes+num_dof*NUMNODESP1_2d*10+num_dof*i+1)=0; 635 *(LStokes+num_dof*NUMNODESP1_2d*10+num_dof*i+2)=l1l2l3[i]; 636 *(LStokes+num_dof*NUMNODESP1_2d*10+num_dof*i+3)=0; 637 *(LStokes+num_dof*NUMNODESP1_2d*11+num_dof*i)=l1l2l3[i]; 638 *(LStokes+num_dof*NUMNODESP1_2d*11+num_dof*i+1)=0; 639 *(LStokes+num_dof*NUMNODESP1_2d*11+num_dof*i+2)=0; 640 *(LStokes+num_dof*NUMNODESP1_2d*11+num_dof*i+3)=0; 641 *(LStokes+num_dof*NUMNODESP1_2d*12+num_dof*i)=0; 642 *(LStokes+num_dof*NUMNODESP1_2d*12+num_dof*i+1)=l1l2l3[i]; 643 *(LStokes+num_dof*NUMNODESP1_2d*12+num_dof*i+2)=0; 644 *(LStokes+num_dof*NUMNODESP1_2d*12+num_dof*i+3)=0; 645 *(LStokes+num_dof*NUMNODESP1_2d*13+num_dof*i)=0; 646 *(LStokes+num_dof*NUMNODESP1_2d*13+num_dof*i+1)=0; 647 *(LStokes+num_dof*NUMNODESP1_2d*13+num_dof*i+2)=l1l2l3[i]; 648 *(LStokes+num_dof*NUMNODESP1_2d*13+num_dof*i+3)=0; 649 650 } 651 } 652 /*}}}*/ 653 /*FUNCTION PentaRef::GetLStokes2{{{1*/ 654 void PentaRef::GetLStokes2(double* LStokes, GaussPenta* gauss){ 655 /* 656 * Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 657 * For node i, Li can be expressed in the actual coordinate system 658 * by: 659 * Li=[ h 0 0 0] 660 * [ 0 h 0 0] 661 * [ 0 0 h h] 662 * [ 0 0 0 0] 663 * where h is the interpolation function for node i. 664 */ 665 666 int i; 667 int num_dof=4; 668 669 double l1l2l3[NUMNODESP1_2d]; 670 671 672 /*Get l1l2l3 in actual coordinate system: */ 673 l1l2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0; 674 l1l2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0; 675 l1l2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0; 676 677 /*Build LStokes: */ 678 for (i=0;i<3;i++){ 679 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+0)=l1l2l3[i]; //LStokes[0][NDOF2*i]=dh1dh3[0][i]; 579 for (int i=0;i<3;i++){ 580 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+0)=l1l2l3[i]; 680 581 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+1)=0.; 681 582 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+2)=0.; … … 686 587 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+2)=0.; 687 588 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+3)=0.; 688 689 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+0)=0.;690 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+1)=0.;691 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+2)=l1l2l3[i];692 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+3)=0.;693 694 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+0)=0.;695 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+1)=0.;696 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+2)=l1l2l3[i];697 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+3)=0.;698 }699 }700 /*}}}*/701 /*FUNCTION PentaRef::GetLStokes3{{{1*/702 void PentaRef::GetLStokes3(double* LStokes, GaussPenta* gauss){703 /*704 * Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof.705 * For node i, Li can be expressed in the actual coordinate system706 * by:707 * Li=[ h 0 ]708 * [ 0 h ]709 * [ 0 0 ]710 * [ 0 0 ]711 * where h is the interpolation function for node i.712 */713 714 int i;715 int num_dof=4;716 717 double l1l2l3[NUMNODESP1_2d];718 719 720 /*Get l1l2l3 in actual coordinate system: */721 l1l2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;722 l1l2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;723 l1l2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;724 725 /*Build LStokes: */726 for (i=0;i<3;i++){727 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+0)=l1l2l3[i]; //LStokes[0][NDOF2*i]=dh1dh3[0][i];728 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+1)=0.;729 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+2)=0.;730 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+3)=0.;731 732 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+0)=0.;733 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+1)=l1l2l3[i];734 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+2)=0.;735 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+3)=0.;736 }737 }738 /*}}}*/739 /*FUNCTION PentaRef::GetLprimeStokes2{{{1*/740 void PentaRef::GetLprimeStokes2(double* LStokes,double* xyz_list,GaussPenta* gauss){741 /*742 * Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof.743 * For node i, Li can be expressed in the actual coordinate system744 * by:745 * Li=[ h 0 0 0]746 * [ 0 h 0 0]747 * [ 0 0 dh\dz 0]748 * [ 0 0 0 h]749 * where h is the interpolation function for node i.750 */751 752 int i;753 int num_dof=4;754 755 double l1l2l3[NUMNODESP1_2d];756 double dh1dh6[3][NUMNODESP1];757 758 759 /*Get l1l2l3 in actual coordinate system: */760 l1l2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;761 l1l2l3[1]=gauss->coord2*(1-gauss->coord4)/2.0;762 l1l2l3[2]=gauss->coord3*(1-gauss->coord4)/2.0;763 764 GetNodalFunctionsP1Derivatives(&dh1dh6[0][0],xyz_list,gauss);765 766 /*Build LStokes: */767 for (i=0;i<3;i++){768 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+0)=l1l2l3[i]; //LStokes[0][NDOF2*i]=dh1dh3[0][i];769 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+1)=0.;770 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+2)=0.;771 *(LStokes+num_dof*NUMNODESP1_2d*0+num_dof*i+3)=0.;772 773 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+0)=0.;774 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+1)=l1l2l3[i];775 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+2)=0.;776 *(LStokes+num_dof*NUMNODESP1_2d*1+num_dof*i+3)=0.;777 778 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+0)=0.;779 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+1)=0.;780 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+2)=dh1dh6[2][i];781 *(LStokes+num_dof*NUMNODESP1_2d*2+num_dof*i+3)=0.;782 783 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+0)=0.;784 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+1)=0.;785 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+2)=0.;786 *(LStokes+num_dof*NUMNODESP1_2d*3+num_dof*i+3)=l1l2l3[i];787 589 } 788 590 } -
issm/trunk/src/c/objects/Elements/PentaRef.h
r10480 r10514 51 51 void GetL(double* L, GaussPenta* gauss,int numdof); 52 52 void GetLStokes(double* LStokes, GaussPenta* gauss); 53 void GetLStokes2(double* LStokes, GaussPenta* gauss);54 void GetLStokes3(double* LStokes, GaussPenta* gauss);55 void GetLprimeStokes2(double* LStokes,double* xyz_list,GaussPenta* gauss);56 53 void GetLprimeStokes(double* LprimeStokes, double* xyz_list, GaussPenta* gauss); 57 54 void GetLMacAyealStokes(double* LMacAyealStokes, GaussPenta* gauss);
Note:
See TracChangeset
for help on using the changeset viewer.