source: issm/oecreview/Archive/16554-17801/ISSM-16975-16976.diff

Last change on this file was 17802, checked in by Mathieu Morlighem, 11 years ago

Added archives

File size: 3.4 KB
  • ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

     
    32143214ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAFS(Element* element){/*{{{*/
    32153215
    32163216        /*compute all stiffness matrices for this element*/
     3217        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32173218        ElementMatrix* Ke1=CreateKMatrixFS(element);
     3219        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32183220        int indices[3]={18,19,20};
    32193221        Ke1->StaticCondensation(3,&indices[0]);
     3222        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32203223        int init = element->FiniteElement();
    32213224        element->SetTemporaryElementType(P1Enum);
     3225        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32223226        ElementMatrix* Ke2=CreateKMatrixSSA3d(element);
     3227        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32233228        element->SetTemporaryElementType(init);
    32243229        ElementMatrix* Ke3=CreateKMatrixCouplingSSAFS(element);
     3230        printf("-------------- file: StressbalanceAnalysis.cpp line: %i\n",__LINE__);
    32253231        ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3);
    32263232
    32273233        /*clean-up and return*/
     
    35353541                cs_list[2*vnumnodes-1+i]   = PressureEnum;
    35363542        }
    35373543
    3538         ElementMatrix* Ke1=element->NewElementMatrix(SSAApproximationEnum);
     3544        ElementMatrix* Ke1=element->NewElementMatrixCoupling(6,SSAApproximationEnum);
    35393545        ElementMatrix* Ke2=element->NewElementMatrix(FSvelocityEnum);
    35403546        ElementMatrix* Ke=new ElementMatrix(Ke1,Ke2);
    35413547        delete Ke1; delete Ke2;
     
    36413647        int* cs_list     = xNew<int>(2*vnumnodes-1+pnumnodes);
    36423648        Node **node_list = xNew<Node*>(2*vnumnodes-1+pnumnodes);
    36433649        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;
    36463652        }
    36473653        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;
    36503656        }
    36513657        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;
    36543660        }
    36553661
    36563662        /*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);
    36593665        ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
    36603666        delete Ke1; delete Ke2;
    36613667
     
    36983704                                        &Ke_gg2[0][0],1);
    36993705
    37003706        }
    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];
    37033709
    37043710        /*Transform Coordinate System*/
    37053711        element->TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
Note: See TracBrowser for help on using the repository browser.