Changeset 21826


Ignore:
Timestamp:
07/19/17 17:31:13 (8 years ago)
Author:
felicity
Message:

BUG: made eps_eff for viscosity calculation consistent between matice and matestar

Location:
issm/trunk-jpl/src/c
Files:
9 edited

Legend:

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

    r21811 r21826  
    4848        IssmDouble vx,vy,vz,vmag;
    4949        IssmDouble dvx[3],dvy[3],dvz[3],dvmag[3];
    50         IssmDouble epseff,epsprime;
     50        IssmDouble eps[3][3],epseff,epsprime;
    5151        int         dim;
    5252        IssmDouble *xyz_list = NULL;
     
    101101                        dvmag[2]=1./(2*sqrt(vmag))*(2*vx*dvx[2]+2*vy*dvy[2]+2*vz*dvz[2]);
    102102                }
    103                 EstarStrainrateQuantities(&epseff,&epsprime,vx,vy,vz,vmag,&dvx[0],&dvy[0],&dvz[0],&dvmag[0]);
     103
     104                /*Build strain rate tensor*/
     105                eps[0][0] = dvx[0];             eps[0][1] = .5*(dvx[1]+dvy[0]); eps[0][2] = .5*(dvx[2]+dvz[0]);
     106                eps[1][0] = .5*(dvx[1]+dvy[0]); eps[1][1] = dvy[1];             eps[1][2] = .5*(dvy[2]+dvz[1]);
     107                eps[2][0] = .5*(dvx[2]+dvz[0]); eps[2][1] = .5*(dvy[2]+dvz[1]); eps[2][2] = dvz[2];
     108
     109                /*effective strain rate*/
     110                epseff = 0.;
     111                /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
     112                epseff = sqrt(eps[0][0]*eps[0][0] + eps[1][1]*eps[1][1] + eps[0][1]*eps[0][1] +  eps[0][2]*eps[0][2] + eps[1][2]*eps[1][2] + eps[0][0]*eps[1][1]);
     113
     114                EstarStrainrateQuantities(&epsprime,vx,vy,vz,vmag,&dvx[0],&dvy[0],&dvz[0],&dvmag[0]);
    104115                lambdas[iv]=EstarLambdaS(epseff,epsprime);
    105116        }
     
    677688                        break;
    678689                case MatestarEnum:
    679                         material->ViscosityBFS(&dmudB,dim,xyz_list,gauss,vx_input,vy_input,vz_input);
     690                        material->ViscosityBFS(&dmudB,dim,xyz_list,gauss,vx_input,vy_input,vz_input,eps_eff);
    680691                        break;
    681692                default: _error_("not supported");
     
    714725                        break;
    715726                case MatestarEnum:
    716                         material->ViscosityBHO(&dmudB,dim,xyz_list,gauss,vx_input,vy_input);
     727                        material->ViscosityBHO(&dmudB,dim,xyz_list,gauss,vx_input,vy_input,eps_eff);
    717728                        break;
    718729                default: _error_("not supported");
     
    751762                        break;
    752763                case MatestarEnum:
    753                         material->ViscosityBSSA(&dmudB,dim,xyz_list,gauss,vx_input,vy_input);
     764                        material->ViscosityBSSA(&dmudB,dim,xyz_list,gauss,vx_input,vy_input,eps_eff);
    754765                        break;
    755766                default: _error_("not supported");
  • issm/trunk-jpl/src/c/classes/Materials/Material.h

    r21700 r21826  
    5353                virtual void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    5454                virtual void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon)=0;
    55                 virtual void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
    56                 virtual void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    57                 virtual void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
     55                virtual void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff)=0;
     56                virtual void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;
     57                virtual void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;
    5858
    5959};
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp

    r21700 r21826  
    249249}
    250250/*}}}*/
    251 IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,bool isdepthaveraged){/*{{{*/
     251IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/
    252252
    253253        /*output: */
     
    255255
    256256        /*Intermediaries*/
    257         IssmDouble epseff,epsprime_norm;
     257        IssmDouble epsprime_norm;
    258258        IssmDouble lambdas;
    259259        IssmDouble vmag,dvmag[3];
     
    273273        }
    274274
    275         EstarStrainrateQuantities(&epseff,&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);
    276         lambdas=EstarLambdaS(epseff,epsprime_norm);
     275        EstarStrainrateQuantities(&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);
     276        lambdas=EstarLambdaS(eps_eff,epsprime_norm);
    277277
    278278        /*Get B and enhancement*/
     
    294294        /*Compute viscosity*/
    295295        /*if no strain rate, return maximum viscosity*/
    296         if(epseff==0.){
     296        if(eps_eff==0.){
    297297                viscosity = 1.e+14/2.;
    298298                //viscosity = B;
     
    300300        }
    301301        else{
    302                 viscosity = B/(2.*pow(E,1./n)*pow(epseff,2./n));
    303         }
     302                viscosity = B/(2.*pow(E,1./n)*pow(eps_eff,2./n));
     303        }
     304
     305   /*Checks in debugging mode*/
     306        if(viscosity<=0) _error_("Negative viscosity");
    304307
    305308        /*Assign output pointer*/
     
    307310}
    308311/*}}}*/
    309 IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,bool isdepthaveraged){/*{{{*/
     312IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/
    310313
    311314        /*Intermediaries*/
    312315        IssmDouble dmudB;
    313         IssmDouble epseff,epsprime_norm;
     316        IssmDouble epsprime_norm;
    314317        IssmDouble lambdas;
    315318        IssmDouble vmag,dvmag[3];
     
    329332        }
    330333
    331         EstarStrainrateQuantities(&epseff,&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);
    332         lambdas=EstarLambdaS(epseff,epsprime_norm);
     334        EstarStrainrateQuantities(&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);
     335        lambdas=EstarLambdaS(eps_eff,epsprime_norm);
    333336
    334337        /*Get enhancement*/
     
    346349
    347350        /*Compute dmudB*/
    348         if(epseff==0.) dmudB = 0.;
    349         else           dmudB = 1./(2.*pow(E,1./3.)*pow(epseff,2./3.));
     351        if(eps_eff==0.) dmudB = 0.;
     352        else           dmudB = 1./(2.*pow(E,1./3.)*pow(eps_eff,2./3.));
    350353
    351354        /*Assign output*/
     
    408411}
    409412/*}}}*/
    410 void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
     413void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/
    411414
    412415        /*Intermediaries*/
     
    434437
    435438        /*Compute dmudB*/
    436         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
    437 }
    438 /*}}}*/
    439 void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
     439        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
     440}
     441/*}}}*/
     442void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
    440443
    441444        /*Intermediaries*/
     
    463466
    464467        /*Compute viscosity*/
    465         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
    466 }/*}}}*/
    467 void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
     468        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
     469}/*}}}*/
     470void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
    468471        /*Intermediaries*/
    469472        IssmDouble vx,vy,vz;
     
    493496
    494497        /*Compute viscosity*/
    495         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
     498        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    496499}/*}}}*/
    497500void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
     
    500503        IssmDouble vx,vy,vz;
    501504        IssmDouble dvx[3],dvy[3],dvz[3];
     505        IssmDouble epsilon3d[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/
     506        IssmDouble epsilon2d[3]; /* epsilon=[exx,eyy,exy];*/
     507        IssmDouble eps_eff,eps0=1.e-27;
    502508        bool isdepthaveraged=0.;
    503509
     
    520526        }
    521527
     528        if(dim==3){
     529      /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
     530                element->StrainRateFS(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input,vz_input);
     531                eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[3]*epsilon3d[3] +  epsilon3d[4]*epsilon3d[4] + epsilon3d[5]*epsilon3d[5] + epsilon3d[0]*epsilon3d[1]+eps0*eps0);
     532        }
     533        else{
     534                /* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/
     535                element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
     536                eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);
     537        }
     538
    522539        /*Compute viscosity*/
    523         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
     540        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    524541}
    525542/*}}}*/
     
    532549        IssmDouble vx,vy,vz;
    533550        IssmDouble dvx[3],dvy[3],dvz[3];
     551        IssmDouble epsilon3d[5]; /* epsilon=[exx,eyy,exy,exz,eyz];*/
     552        IssmDouble epsilon2d[5]; /* epsilon=[exx,exy];*/
     553        IssmDouble eps_eff;
    534554        bool isdepthaveraged=0.;
     555
     556   if(dim==3){
     557                /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
     558                element->StrainRateHO(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input);
     559                eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[2]*epsilon3d[2] +  epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[0]*epsilon3d[1]);
     560        }
     561        else{
     562                /* eps_eff^2 = 1/2 (2*exx^2 + 2*exy^2 ) (since eps_zz = - eps_xx)*/
     563                element->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
     564                eps_eff = 1./sqrt(2.)*sqrt(2*epsilon2d[0]*epsilon2d[0] + 2*epsilon2d[1]*epsilon2d[1]);
     565        }
    535566
    536567        /*Get velocity derivatives in all directions*/
     
    553584
    554585        /*Compute viscosity*/
    555         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
     586        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    556587}/*}}}*/
    557588void  Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
     
    566597        IssmDouble vx,vy,vz;
    567598        IssmDouble dvx[3],dvy[3],dvz[3];
     599        IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy]; */
     600        IssmDouble epsilon1d;   /* epsilon=[exx];         */
     601        IssmDouble eps_eff;
    568602        bool isdepthaveraged=1.;
    569603
     
    589623        dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];
    590624
     625   if(dim==2){
     626                /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/
     627                element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);
     628                eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);
     629        }
     630        else{
     631                /* eps_eff^2 = exx^2*/
     632                element->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);
     633                eps_eff = fabs(epsilon1d);
     634        }
     635
    591636        /*Compute viscosity*/
    592         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],isdepthaveraged);
     637        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    593638}/*}}}*/
    594639void  Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.h

    r21700 r21826  
    8686                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    8787                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
    88                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    89                 void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    90                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
     88                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff);
     89                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
     90                void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
    9191                /*}}}*/
    92                 IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,bool isdepthaveraged);
    93                 IssmDouble GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,bool isdepthaveraged);
     92                IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged);
     93                IssmDouble GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged);
    9494};
    9595
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r21511 r21826  
    724724        IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exz,eyz];*/
    725725        IssmDouble epsilon2d[2];/* epsilon=[exx,exy];            */
    726         IssmDouble eps_eff,E=1.0;
     726        IssmDouble eps_eff;
    727727
    728728        if(dim==3){
  • issm/trunk-jpl/src/c/classes/Materials/Matice.h

    r21700 r21826  
    8888                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    8989                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
    90                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
    91                 void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    92                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
     90                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};
     91                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
     92                void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
    9393                /*}}}*/
    9494};
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.h

    r21700 r21826  
    125125                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    126126                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
    127                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
    128                 void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    129                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
     127                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};
     128                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
     129                void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
    130130                /*}}}*/
    131131                /*Numerics: {{{*/
  • issm/trunk-jpl/src/c/shared/Elements/EstarComponents.cpp

    r21381 r21826  
    33#include "../Exceptions/exceptions.h"
    44#include "./elements.h"
    5 void EstarStrainrateQuantities(IssmDouble *pepseff, IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag){/*{{{*/
     5void EstarStrainrateQuantities(IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag){/*{{{*/
    66
    77        /*Intermediaries*/
    88        IssmDouble omega[3];
    99        IssmDouble nrsp[3],nrsp_norm;
    10         IssmDouble eps[3][3],epseff;
     10        IssmDouble eps[3][3];
    1111        IssmDouble epsprime[3],epsprime_norm;
    1212
     
    3636        eps[1][0] = .5*(dvx[1]+dvy[0]); eps[1][1] = dvy[1];             eps[1][2] = .5*(dvy[2]+dvz[1]);
    3737        eps[2][0] = .5*(dvx[2]+dvz[0]); eps[2][1] = .5*(dvy[2]+dvz[1]); eps[2][2] = dvz[2];
    38 
    39         /*effective strain rate*/
    40         epseff = 0.;
    41         /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */
    42         epseff = sqrt(eps[0][0]*eps[0][0] + eps[1][1]*eps[1][1] + eps[0][1]*eps[0][1] +  eps[0][2]*eps[0][2] + eps[1][2]*eps[1][2] + eps[0][0]*eps[1][1]);
    4338
    4439        /*Compute the shear strain rate on the non rotating shear plane*/
     
    7368       
    7469        /*Assign output pointers*/
    75         *pepseff=epseff;
    7670        *pepsprime_norm=epsprime_norm;
    7771}/*}}}*/
  • issm/trunk-jpl/src/c/shared/Elements/elements.h

    r21709 r21826  
    1717IssmDouble EstarLambdaS(IssmDouble epseff, IssmDouble epsprime_norm);
    1818void EstarOmega(IssmDouble* omega,IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz, IssmDouble* dvmag);
    19 void EstarStrainrateQuantities(IssmDouble *pepseff, IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag);
     19void EstarStrainrateQuantities(IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag);
    2020IssmDouble PddSurfaceMassBalance(IssmDouble* monthlytemperatures,  IssmDouble* monthlyprec,
    2121                                 IssmDouble* pdds, IssmDouble* pds, IssmDouble* melt, IssmDouble* accu, IssmDouble signorm,
Note: See TracChangeset for help on using the changeset viewer.