Changeset 17615


Ignore:
Timestamp:
04/01/14 09:03:21 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added 1/sqrt(2) factor in effective straine rate for flow band models

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r17610 r17615  
    994994/*}}}*/
    995995void Element::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
     996        /*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9,
     997         * and Cuffey p 303 eq 8.18:
     998         *
     999         *  2 eps_eff^2 = eps_xx^2 + eps_yy^2 + eps_zz^2 + 2(eps_xy^2 + eps_xz^2 + eps_yz^2)
     1000         *
     1001         *  or
     1002         *
     1003         *  eps_eff = 1/sqrt(2) sqrt( \sum_ij eps_ij^2 )
     1004         *
     1005         *          = 1/sqrt(2) ||eps||_F
     1006         *
     1007         *  where ||.||_F is the Frobenius norm */
    9961008
    9971009        /*Intermediaries*/
     
    10081020        }
    10091021        else{
    1010                 /* eps_eff^2 = exx^2 + eyy^2 + 2*exy^2 */
     1022                /* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/
    10111023                this->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
    1012                 eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);
     1024                eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);
    10131025        }
    10141026
     
    10841096        IssmDouble viscosity;
    10851097        IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exz,eyz];*/
    1086         IssmDouble epsilon2d[2]; /* epsilon=[exx,exy];           */
     1098        IssmDouble epsilon2d[2];/* epsilon=[exx,exy];            */
    10871099        IssmDouble eps_eff;
    10881100
     
    10931105        }
    10941106        else{
    1095                 /* eps_eff^2 = exx^2 + exy^2 */
     1107                /* eps_eff^2 = 1/2 (exx^2 + 2*exy^2 )*/
    10961108                this->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
    1097                 eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1]);
     1109                eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + 2.*epsilon2d[1]*epsilon2d[1]);
    10981110        }
    10991111
     
    11131125
    11141126         if(dim==2){
    1115                  /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy+*/
     1127                 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/
    11161128                 this->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
    11171129                 eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);
    11181130         }
    11191131         else{
    1120                  /* eps_eff^2 = exx^2*/
     1132                 /* eps_eff^2 = 1/2 exx^2*/
    11211133                 this->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);
    1122                  eps_eff = sqrt(epsilon1d*epsilon1d);
     1134                 eps_eff = sqrt(epsilon1d*epsilon1d/2.);
    11231135         }
    11241136
Note: See TracChangeset for help on using the changeset viewer.