Changeset 5314


Ignore:
Timestamp:
08/17/10 12:05:52 (15 years ago)
Author:
Mathieu Morlighem
Message:

WARNING: we now use the following law: sigma' = 2 mu eps

Location:
issm/trunk/src/c/objects
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk/src/c/objects/Elements/Penta.cpp

    r5311 r5314  
    593593
    594594                        /*Compute Stress*/
    595                         sigma_xx=viscosity*epsilon[0]-pressure*stokesreconditioning; // sigma = nu eps - pressure
    596                         sigma_yy=viscosity*epsilon[1]-pressure*stokesreconditioning;
    597                         sigma_zz=viscosity*epsilon[2]-pressure*stokesreconditioning;
    598                         sigma_xy=viscosity*epsilon[3];
    599                         sigma_xz=viscosity*epsilon[4];
    600                         sigma_yz=viscosity*epsilon[5];
     595                        sigma_xx=2*viscosity*epsilon[0]-pressure*stokesreconditioning; // sigma = nu eps - pressure
     596                        sigma_yy=2*viscosity*epsilon[1]-pressure*stokesreconditioning;
     597                        sigma_zz=2*viscosity*epsilon[2]-pressure*stokesreconditioning;
     598                        sigma_xy=2*viscosity*epsilon[3];
     599                        sigma_xz=2*viscosity*epsilon[4];
     600                        sigma_yz=2*viscosity*epsilon[5];
    601601
    602602                        /*Get normal vector to the bed */
     
    24912491
    24922492                        newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity);
    2493                         D_scalar=newviscosity*gauss_weight*Jdet;
     2493                        D_scalar=2*newviscosity*gauss_weight*Jdet;
    24942494                        for (i=0;i<3;i++){
    24952495                                D[i][i]=D_scalar;
     
    28252825
    28262826                        newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity);
    2827                         D_scalar=newviscosity*gauss_weight*Jdet;
     2827                        D_scalar=2*newviscosity*gauss_weight*Jdet;
    28282828                        for (i=0;i<5;i++){
    28292829                                D[i][i]=D_scalar;
     
    30293029                        D_scalar=gauss_weight*Jdet;
    30303030                        for (i=0;i<6;i++){
    3031                                 D[i][i]=D_scalar*viscosity;
     3031                                D[i][i]=D_scalar*2*viscosity;
    30323032                        }
    30333033                        for (i=6;i<8;i++){
     
    31033103                        DLStokes[4][4]=-alpha2_gauss*gauss_weight*Jdet2d*bed_normal[0]*bed_normal[2];
    31043104                        DLStokes[5][5]=-alpha2_gauss*gauss_weight*Jdet2d*bed_normal[1]*bed_normal[2];
    3105                         DLStokes[6][6]=-viscosity*gauss_weight*Jdet2d*bed_normal[0];
    3106                         DLStokes[7][7]=-viscosity*gauss_weight*Jdet2d*bed_normal[1];
    3107                         DLStokes[8][8]=-viscosity*gauss_weight*Jdet2d*bed_normal[2];
    3108                         DLStokes[9][8]=-viscosity*gauss_weight*Jdet2d*bed_normal[0]/2.0;
    3109                         DLStokes[10][10]=-viscosity*gauss_weight*Jdet2d*bed_normal[1]/2.0;
     3105                        DLStokes[6][6]=-2*viscosity*gauss_weight*Jdet2d*bed_normal[0];
     3106                        DLStokes[7][7]=-2*viscosity*gauss_weight*Jdet2d*bed_normal[1];
     3107                        DLStokes[8][8]=-2*viscosity*gauss_weight*Jdet2d*bed_normal[2];
     3108                        DLStokes[9][8]=-2*viscosity*gauss_weight*Jdet2d*bed_normal[0]/2.0;
     3109                        DLStokes[10][10]=-2*viscosity*gauss_weight*Jdet2d*bed_normal[1]/2.0;
    31103110                        DLStokes[11][11]=stokesreconditioning*gauss_weight*Jdet2d*bed_normal[0];
    31113111                        DLStokes[12][12]=stokesreconditioning*gauss_weight*Jdet2d*bed_normal[1];
     
    42304230                        D_scalar=gauss_weight*Jdet;
    42314231                        for (i=0;i<6;i++){
    4232                                 D[i][i]=D_scalar*viscosity;
     4232                                D[i][i]=D_scalar*2*viscosity;
    42334233                        }
    42344234                        for (i=6;i<8;i++){
     
    49724972        epsilon_sqr[1][2]=pow(epsilon_matrix[1][2],2);
    49734973        epsilon_sqr[2][2]=pow(epsilon_matrix[2][2],2);
    4974 
    49754974        epsilon_eff=1/pow(2,0.5)*pow((epsilon_sqr[0][0]+epsilon_sqr[0][1]+ epsilon_sqr[0][2]+ epsilon_sqr[1][0]+ epsilon_sqr[1][1]+ epsilon_sqr[1][2]+ epsilon_sqr[2][0]+ epsilon_sqr[2][1]+ epsilon_sqr[2][2]),0.5);
    4976         *phi=2*pow(epsilon_eff,2.0)*viscosity;
     4975
     4976        /*Phi = Tr(sigma * eps)
     4977         *    = Tr(sigma'* eps)
     4978         *    = 2 * eps_eff * sigma'_eff
     4979         *    = 4 * eps_eff ^2*/
     4980        *phi=4*pow(epsilon_eff,2.0)*viscosity;
    49774981}
    49784982/*}}}*/
  • TabularUnified issm/trunk/src/c/objects/Elements/Tria.cpp

    r5311 r5314  
    35243524                        onto this scalar matrix, so that we win some computational time: */
    35253525                newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity);
    3526                 D_scalar=newviscosity*thickness*gauss_weight*Jdet;
     3526                D_scalar=2*newviscosity*thickness*gauss_weight*Jdet;
    35273527
    35283528                for (i=0;i<3;i++){
  • TabularUnified issm/trunk/src/c/objects/Materials/Matice.cpp

    r5311 r5314  
    280280void  Matice::GetViscosity2d(double* pviscosity, double* epsilon){
    281281        /*From a string tensor and a material object, return viscosity, using Glen's flow law.
    282                                                                                                   2*B
     282                                                                                                    B
    283283          viscosity= -------------------------------------------------------------------
    284284                                                  2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n]
     
    311311        else{
    312312                if((epsilon[0]==0) && (epsilon[1]==0) && (epsilon[2]==0)){
    313                         viscosity=pow((double)10,(double)14);
     313                        viscosity=0.5*pow((double)10,(double)14);
    314314                }
    315315                else{
     
    319319                        exy=*(epsilon+2);
    320320
    321                         /*Build viscosity: viscosity=2*B/(2*A^e) */
     321                        /*Build viscosity: viscosity=B/(2*A^e) */
    322322                        A=pow(exx,2)+pow(eyy,2)+pow(exy,2)+exx*eyy;
    323323                        if(A==0){
    324324                                /*Maxiviscositym viscosity for 0 shear areas: */
    325                                 viscosity=4.5*pow((double)10,(double)17);
     325                                viscosity=2.5*pow((double)10,(double)17);
    326326                        }
    327327                        else{
    328                                 e=(n-1)/2/n;
    329                                 viscosity=2*B/(2*pow(A,e));
     328                                e=(n-1)/(2*n);
     329                                viscosity=B/(2*pow(A,e));
    330330                        }
    331331                }
     
    346346        /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:
    347347         *
    348          *                                 2*B
     348         *                                               B
    349349         * viscosity3d= -------------------------------------------------------------------
    350          *     2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n]
     350         *                      2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n]
    351351         *
    352352         *     where mu is the viscotiy, B the flow law parameter , (u,v) the velocity
     
    393393                        if(A==0){
    394394                                /*Maxiviscosity3dm viscosity for 0 shear areas: */
    395                                 viscosity3d=4.5*pow((double)10,(double)17);
     395                                viscosity3d=2.25*pow((double)10,(double)17);
    396396                        }
    397397                        else{
    398398                                e=(n-1)/2/n;
    399399                       
    400                                 viscosity3d=2*B/(2*pow(A,e));
     400                                viscosity3d=B/(2*pow(A,e));
    401401                        }
    402402                }
     
    416416        /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:
    417417         *
    418          *                                 2*B
     418         *                                          B
    419419         * viscosity3d= -------------------------------------------------------------------
    420420         *                   2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n]
     
    462462                        eyz=*(epsilon+5);
    463463
    464                         /*Build viscosity: viscosity3d=2*B/(2*A^e) */
     464                        /*Build viscosity: viscosity3d=B/(2*A^e) */
    465465                        A=pow(exx,2)+pow(eyy,2)+pow(exy,2)+pow(exz,2)+pow(eyz,2)+exx*eyy+pow(eps0,2);
    466466                        if(A==0){
    467467                                /*Maxiviscosity3dm viscosity for 0 shear areas: */
    468                                 viscosity3d=4.5*pow((double)10,(double)17);
     468                                viscosity3d=2.25*pow((double)10,(double)17);
    469469                        }
    470470                        else{
    471471                                e=(n-1)/2/n;
    472                                 viscosity3d=2*B/(2*pow(A,e));
     472                                viscosity3d=B/(2*pow(A,e));
    473473                        }
    474474                }
     
    488488        /*Return viscosity accounting for steady state power law creep [Thomas and MacAyeal, 1982]:
    489489         *
    490          *                                  2* (1-n)/2n
    491          * mu2= -------------------------------------------------------------------
    492          *     2[ (du/dx)^2+(dv/dy)^2+1/4*(du/dy+dv/dx)^2+du/dx*dv/dy ]^[(3n-1)/2n]
    493          *
    494          *     where mu2 is the second viscosity, (u,v) the velocity
    495          *     vector, and n the flow law exponent.
     490         *                                                                                              1
     491         * viscosity= -------------------------------------------------------------------
     492         *                                2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n]
    496493         *
    497494         * If epsilon is NULL, it means this is the first time Gradjb is being run, and we
     
    522519                if(A==0){
    523520                        /*Maximum viscosity_complement for 0 shear areas: */
    524                         viscosity_complement=4.5*pow((double)10,(double)17);
     521                        viscosity_complement=2.25*pow((double)10,(double)17);
    525522                }
    526523                else{
    527                         e=(n-1)/2/n;
     524                        e=(n-1)/(2*n);
    528525               
    529526                        viscosity_complement=1/(2*pow(A,e));
Note: See TracChangeset for help on using the changeset viewer.