[17802] | 1 | Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 16975)
|
---|
| 4 | +++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 16976)
|
---|
| 5 | @@ -3214,14 +3214,20 @@
|
---|
| 6 | ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAFS(Element* element){/*{{{*/
|
---|
| 7 |
|
---|
| 8 | /*compute all stiffness matrices for this element*/
|
---|
| 9 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 10 | ElementMatrix* Ke1=CreateKMatrixFS(element);
|
---|
| 11 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 12 | int indices[3]={18,19,20};
|
---|
| 13 | Ke1->StaticCondensation(3,&indices[0]);
|
---|
| 14 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 15 | int init = element->FiniteElement();
|
---|
| 16 | element->SetTemporaryElementType(P1Enum);
|
---|
| 17 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 18 | ElementMatrix* Ke2=CreateKMatrixSSA3d(element);
|
---|
| 19 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 20 | element->SetTemporaryElementType(init);
|
---|
| 21 | ElementMatrix* Ke3=CreateKMatrixCouplingSSAFS(element);
|
---|
| 22 | + printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
|
---|
| 23 | ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3);
|
---|
| 24 |
|
---|
| 25 | /*clean-up and return*/
|
---|
| 26 | @@ -3535,7 +3541,7 @@
|
---|
| 27 | cs_list[2*vnumnodes-1+i] = PressureEnum;
|
---|
| 28 | }
|
---|
| 29 |
|
---|
| 30 | - ElementMatrix* Ke1=element->NewElementMatrix(SSAApproximationEnum);
|
---|
| 31 | + ElementMatrix* Ke1=element->NewElementMatrixCoupling(6,SSAApproximationEnum);
|
---|
| 32 | ElementMatrix* Ke2=element->NewElementMatrix(FSvelocityEnum);
|
---|
| 33 | ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2);
|
---|
| 34 | delete Ke1; delete Ke2;
|
---|
| 35 | @@ -3641,21 +3647,21 @@
|
---|
| 36 | int* cs_list = xNew<int>(2*vnumnodes-1+pnumnodes);
|
---|
| 37 | Node **node_list = xNew<Node*>(2*vnumnodes-1+pnumnodes);
|
---|
| 38 | for(i=0;i<vnumnodes-1;i++){
|
---|
| 39 | - node_list[vnumnodes+pnumnodes+i] = pentabase->GetNode(i);
|
---|
| 40 | - cs_list[vnumnodes+pnumnodes+i] = XYEnum;
|
---|
| 41 | + node_list[i] = pentabase->GetNode(i);
|
---|
| 42 | + cs_list[i] = XYEnum;
|
---|
| 43 | }
|
---|
| 44 | for(i=0;i<vnumnodes;i++){
|
---|
| 45 | - node_list[i] = element->GetNode(i);
|
---|
| 46 | - cs_list[i] = XYZEnum;
|
---|
| 47 | + node_list[i+vnumnodes-1] = element->GetNode(i);
|
---|
| 48 | + cs_list[i+vnumnodes-1] = XYZEnum;
|
---|
| 49 | }
|
---|
| 50 | for(i=0;i<pnumnodes;i++){
|
---|
| 51 | - node_list[vnumnodes+i] = element->GetNode(vnumnodes+i);
|
---|
| 52 | - cs_list[vnumnodes+i] = PressureEnum;
|
---|
| 53 | + node_list[2*vnumnodes-1+i] = element->GetNode(vnumnodes+i);
|
---|
| 54 | + cs_list[2*vnumnodes-1+i] = PressureEnum;
|
---|
| 55 | }
|
---|
| 56 |
|
---|
| 57 | /*Initialize Element matrix and return if necessary*/
|
---|
| 58 | - ElementMatrix* Ke1=element->NewElementMatrix(FSvelocityEnum);
|
---|
| 59 | - ElementMatrix* Ke2=pentabase->NewElementMatrixCoupling(6,SSAApproximationEnum);
|
---|
| 60 | + ElementMatrix* Ke1=pentabase->NewElementMatrixCoupling(6,SSAApproximationEnum);
|
---|
| 61 | + ElementMatrix* Ke2=element->NewElementMatrix(FSvelocityEnum);
|
---|
| 62 | ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
|
---|
| 63 | delete Ke1; delete Ke2;
|
---|
| 64 |
|
---|
| 65 | @@ -3698,8 +3704,8 @@
|
---|
| 66 | &Ke_gg2[0][0],1);
|
---|
| 67 |
|
---|
| 68 | }
|
---|
| 69 | - for(i=0;i<numdofs;i++) for(j=0;j<numdofm;j++) Ke->values[i*numdoftotal+j+numdofs]+=Ke_gg[i][j];
|
---|
| 70 | - for(i=0;i<numdofm;i++) for(j=0;j<numdofs;j++) Ke->values[(i+numdofs)*numdoftotal+j]+=Ke_gg2[i][j];
|
---|
| 71 | + for(i=0;i<numdofs;i++) for(j=0;j<numdofm;j++) Ke->values[(i+2*numdofm)*numdoftotal+j]+=Ke_gg[i][j];
|
---|
| 72 | + for(i=0;i<numdofm;i++) for(j=0;j<numdofs;j++) Ke->values[i*numdoftotal+(j+2*numdofm)]+=Ke_gg2[i][j];
|
---|
| 73 |
|
---|
| 74 | /*Transform Coordinate System*/
|
---|
| 75 | element->TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
|
---|