Changeset 17628


Ignore:
Timestamp:
04/02/14 16:11:41 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixing Dstar

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17621 r17628  
    35033503                        for(int i=0;i<vnumnodes;i++){
    35043504                                for(int j=0;j<tnumnodes;j++){
    3505                                         Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+0] = tbasis[j]*vdbasis[0*vnumnodes+i];
    3506                                         Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+2] = tbasis[j]*vdbasis[1*vnumnodes+i];
    3507 
    3508                                         Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+1] = tbasis[j]*vdbasis[1*vnumnodes+i];
    3509                                         Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+2] = tbasis[j]*vdbasis[0*vnumnodes+i];
     3505                                        Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+0] += gauss->weight*Jdet*tbasis[j]*vdbasis[0*vnumnodes+i];
     3506                                        Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+2] += gauss->weight*Jdet*tbasis[j]*vdbasis[1*vnumnodes+i];
     3507
     3508                                        Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+1] += gauss->weight*Jdet*tbasis[j]*vdbasis[1*vnumnodes+i];
     3509                                        Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+2] += gauss->weight*Jdet*tbasis[j]*vdbasis[0*vnumnodes+i];
    35103510                                }
    35113511                        }
     
    35143514                        for(int i=0;i<vnumnodes;i++){
    35153515                                for(int j=0;j<tnumnodes;j++){
    3516                                         Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+0] = tbasis[j]*vdbasis[0*vnumnodes+i];
    3517                                         Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+3] = tbasis[j]*vdbasis[1*vnumnodes+i];
    3518                                         Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+4] = tbasis[j]*vdbasis[2*vnumnodes+i];
    3519 
    3520                                         Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+1] = tbasis[j]*vdbasis[1*vnumnodes+i];
    3521                                         Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+3] = tbasis[j]*vdbasis[0*vnumnodes+i];
    3522                                         Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+5] = tbasis[j]*vdbasis[2*vnumnodes+i];
    3523 
    3524                                         Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+2] = tbasis[j]*vdbasis[2*vnumnodes+i];
    3525                                         Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+4] = tbasis[j]*vdbasis[0*vnumnodes+i];
    3526                                         Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+5] = tbasis[j]*vdbasis[1*vnumnodes+i];
     3516                                        Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+0] += gauss->weight*Jdet*tbasis[j]*vdbasis[0*vnumnodes+i];
     3517                                        Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+3] += gauss->weight*Jdet*tbasis[j]*vdbasis[1*vnumnodes+i];
     3518                                        Dstar[(i*dim+0)*tausize*tnumnodes + j*tausize+4] += gauss->weight*Jdet*tbasis[j]*vdbasis[2*vnumnodes+i];
     3519
     3520                                        Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+1] += gauss->weight*Jdet*tbasis[j]*vdbasis[1*vnumnodes+i];
     3521                                        Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+3] += gauss->weight*Jdet*tbasis[j]*vdbasis[0*vnumnodes+i];
     3522                                        Dstar[(i*dim+1)*tausize*tnumnodes + j*tausize+5] += gauss->weight*Jdet*tbasis[j]*vdbasis[2*vnumnodes+i];
     3523
     3524                                        Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+2] += gauss->weight*Jdet*tbasis[j]*vdbasis[2*vnumnodes+i];
     3525                                        Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+4] += gauss->weight*Jdet*tbasis[j]*vdbasis[0*vnumnodes+i];
     3526                                        Dstar[(i*dim+2)*tausize*tnumnodes + j*tausize+5] += gauss->weight*Jdet*tbasis[j]*vdbasis[1*vnumnodes+i];
    35273527                                }
    35283528                        }
    35293529                }
    3530 
    3531                 /*contribution -Dstar tau*/
    3532                 for(i=0;i<tausize*tnumnodes;i++) D[i*(tausize*tnumnodes)+i] = -gauss->weight*Jdet;
    3533                 TripleMultiply(Dstar,dim*tnumnodes,tausize*tnumnodes,0,
    3534                                         D,tausize*tnumnodes,tausize*tnumnodes,0,
    3535                                         tau,tausize*tnumnodes,1,0,
    3536                                         &pe->values[0],1);
    3537 
    3538                 /*contribution + r Dstar d*/
    3539                 for(i=0;i<tausize*tnumnodes;i++) D[i*(tausize*tnumnodes)+i] = +r*gauss->weight*Jdet;
    3540                 TripleMultiply(Dstar,dim*tnumnodes,tausize*tnumnodes,0,
    3541                                         D,tausize*tnumnodes,tausize*tnumnodes,0,
    3542                                         d,tausize*tnumnodes,1,0,
    3543                                         &pe->values[0],1);
    3544         }
     3530        }
     3531
     3532        /*contribution -Dstar tau*/
     3533        for(i=0;i<tausize*tnumnodes;i++) D[i*(tausize*tnumnodes)+i] = -1.;
     3534        TripleMultiply(Dstar,dim*vnumnodes,tausize*tnumnodes,0,
     3535                                D,tausize*tnumnodes,tausize*tnumnodes,0,
     3536                                tau,tausize*tnumnodes,1,0,
     3537                                &pe->values[0],1);
     3538
     3539        /*contribution + r Dstar d*/
     3540        for(i=0;i<tausize*tnumnodes;i++) D[i*(tausize*tnumnodes)+i] = +r;
     3541        TripleMultiply(Dstar,dim*vnumnodes,tausize*tnumnodes,0,
     3542                                D,tausize*tnumnodes,tausize*tnumnodes,0,
     3543                                d,tausize*tnumnodes,1,0,
     3544                                &pe->values[0],1);
    35453545
    35463546        /*Transform coordinate system*/
Note: See TracChangeset for help on using the changeset viewer.