source:
issm/oecreview/Archive/16554-17801/ISSM-16975-16976.diff
Last change on this file was 17802, checked in by , 11 years ago | |
---|---|
File size: 3.4 KB |
-
../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
3214 3214 ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAFS(Element* element){/*{{{*/ 3215 3215 3216 3216 /*compute all stiffness matrices for this element*/ 3217 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3217 3218 ElementMatrix* Ke1=CreateKMatrixFS(element); 3219 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3218 3220 int indices[3]={18,19,20}; 3219 3221 Ke1->StaticCondensation(3,&indices[0]); 3222 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3220 3223 int init = element->FiniteElement(); 3221 3224 element->SetTemporaryElementType(P1Enum); 3225 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3222 3226 ElementMatrix* Ke2=CreateKMatrixSSA3d(element); 3227 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3223 3228 element->SetTemporaryElementType(init); 3224 3229 ElementMatrix* Ke3=CreateKMatrixCouplingSSAFS(element); 3230 printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__); 3225 3231 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3); 3226 3232 3227 3233 /*clean-up and return*/ … … 3535 3541 cs_list[2*vnumnodes-1+i] = PressureEnum; 3536 3542 } 3537 3543 3538 ElementMatrix* Ke1=element->NewElementMatrix (SSAApproximationEnum);3544 ElementMatrix* Ke1=element->NewElementMatrixCoupling(6,SSAApproximationEnum); 3539 3545 ElementMatrix* Ke2=element->NewElementMatrix(FSvelocityEnum); 3540 3546 ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2); 3541 3547 delete Ke1; delete Ke2; … … 3641 3647 int* cs_list = xNew<int>(2*vnumnodes-1+pnumnodes); 3642 3648 Node **node_list = xNew<Node*>(2*vnumnodes-1+pnumnodes); 3643 3649 for(i=0;i<vnumnodes-1;i++){ 3644 node_list[ vnumnodes+pnumnodes+i] = pentabase->GetNode(i);3645 cs_list[ vnumnodes+pnumnodes+i] = XYEnum;3650 node_list[i] = pentabase->GetNode(i); 3651 cs_list[i] = XYEnum; 3646 3652 } 3647 3653 for(i=0;i<vnumnodes;i++){ 3648 node_list[i ] = element->GetNode(i);3649 cs_list[i ] = XYZEnum;3654 node_list[i+vnumnodes-1] = element->GetNode(i); 3655 cs_list[i+vnumnodes-1] = XYZEnum; 3650 3656 } 3651 3657 for(i=0;i<pnumnodes;i++){ 3652 node_list[ vnumnodes+i] = element->GetNode(vnumnodes+i);3653 cs_list[ vnumnodes+i] = PressureEnum;3658 node_list[2*vnumnodes-1+i] = element->GetNode(vnumnodes+i); 3659 cs_list[2*vnumnodes-1+i] = PressureEnum; 3654 3660 } 3655 3661 3656 3662 /*Initialize Element matrix and return if necessary*/ 3657 ElementMatrix* Ke1= element->NewElementMatrix(FSvelocityEnum);3658 ElementMatrix* Ke2= pentabase->NewElementMatrixCoupling(6,SSAApproximationEnum);3663 ElementMatrix* Ke1=pentabase->NewElementMatrixCoupling(6,SSAApproximationEnum); 3664 ElementMatrix* Ke2=element->NewElementMatrix(FSvelocityEnum); 3659 3665 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 3660 3666 delete Ke1; delete Ke2; 3661 3667 … … 3698 3704 &Ke_gg2[0][0],1); 3699 3705 3700 3706 } 3701 for(i=0;i<numdofs;i++) for(j=0;j<numdofm;j++) Ke->values[ i*numdoftotal+j+numdofs]+=Ke_gg[i][j];3702 for(i=0;i<numdofm;i++) for(j=0;j<numdofs;j++) Ke->values[ (i+numdofs)*numdoftotal+j]+=Ke_gg2[i][j];3707 for(i=0;i<numdofs;i++) for(j=0;j<numdofm;j++) Ke->values[(i+2*numdofm)*numdoftotal+j]+=Ke_gg[i][j]; 3708 for(i=0;i<numdofm;i++) for(j=0;j<numdofs;j++) Ke->values[i*numdoftotal+(j+2*numdofm)]+=Ke_gg2[i][j]; 3703 3709 3704 3710 /*Transform Coordinate System*/ 3705 3711 element->TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
Note:
See TracBrowser
for help on using the repository browser.