Changeset 21826
- Timestamp:
- 07/19/17 17:31:13 (8 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r21811 r21826 48 48 IssmDouble vx,vy,vz,vmag; 49 49 IssmDouble dvx[3],dvy[3],dvz[3],dvmag[3]; 50 IssmDouble eps eff,epsprime;50 IssmDouble eps[3][3],epseff,epsprime; 51 51 int dim; 52 52 IssmDouble *xyz_list = NULL; … … 101 101 dvmag[2]=1./(2*sqrt(vmag))*(2*vx*dvx[2]+2*vy*dvy[2]+2*vz*dvz[2]); 102 102 } 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]); 104 115 lambdas[iv]=EstarLambdaS(epseff,epsprime); 105 116 } … … 677 688 break; 678 689 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); 680 691 break; 681 692 default: _error_("not supported"); … … 714 725 break; 715 726 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); 717 728 break; 718 729 default: _error_("not supported"); … … 751 762 break; 752 763 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); 754 765 break; 755 766 default: _error_("not supported"); -
issm/trunk-jpl/src/c/classes/Materials/Material.h
r21700 r21826 53 53 virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; 54 54 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; 58 58 59 59 }; -
issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp
r21700 r21826 249 249 } 250 250 /*}}}*/ 251 IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz, bool isdepthaveraged){/*{{{*/251 IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/ 252 252 253 253 /*output: */ … … 255 255 256 256 /*Intermediaries*/ 257 IssmDouble eps eff,epsprime_norm;257 IssmDouble epsprime_norm; 258 258 IssmDouble lambdas; 259 259 IssmDouble vmag,dvmag[3]; … … 273 273 } 274 274 275 EstarStrainrateQuantities(&eps eff,&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);276 lambdas=EstarLambdaS(eps eff,epsprime_norm);275 EstarStrainrateQuantities(&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]); 276 lambdas=EstarLambdaS(eps_eff,epsprime_norm); 277 277 278 278 /*Get B and enhancement*/ … … 294 294 /*Compute viscosity*/ 295 295 /*if no strain rate, return maximum viscosity*/ 296 if(eps eff==0.){296 if(eps_eff==0.){ 297 297 viscosity = 1.e+14/2.; 298 298 //viscosity = B; … … 300 300 } 301 301 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"); 304 307 305 308 /*Assign output pointer*/ … … 307 310 } 308 311 /*}}}*/ 309 IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz, bool isdepthaveraged){/*{{{*/312 IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/ 310 313 311 314 /*Intermediaries*/ 312 315 IssmDouble dmudB; 313 IssmDouble eps eff,epsprime_norm;316 IssmDouble epsprime_norm; 314 317 IssmDouble lambdas; 315 318 IssmDouble vmag,dvmag[3]; … … 329 332 } 330 333 331 EstarStrainrateQuantities(&eps eff,&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]);332 lambdas=EstarLambdaS(eps eff,epsprime_norm);334 EstarStrainrateQuantities(&epsprime_norm,vx,vy,vz,vmag,dvx,dvy,dvz,&dvmag[0]); 335 lambdas=EstarLambdaS(eps_eff,epsprime_norm); 333 336 334 337 /*Get enhancement*/ … … 346 349 347 350 /*Compute dmudB*/ 348 if(eps eff==0.) dmudB = 0.;349 else dmudB = 1./(2.*pow(E,1./3.)*pow(eps eff,2./3.));351 if(eps_eff==0.) dmudB = 0.; 352 else dmudB = 1./(2.*pow(E,1./3.)*pow(eps_eff,2./3.)); 350 353 351 354 /*Assign output*/ … … 408 411 } 409 412 /*}}}*/ 410 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input ){/*{{{*/413 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/ 411 414 412 415 /*Intermediaries*/ … … 434 437 435 438 /*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 /*}}}*/ 442 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/ 440 443 441 444 /*Intermediaries*/ … … 463 466 464 467 /*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 }/*}}}*/ 470 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/ 468 471 /*Intermediaries*/ 469 472 IssmDouble vx,vy,vz; … … 493 496 494 497 /*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); 496 499 }/*}}}*/ 497 500 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ … … 500 503 IssmDouble vx,vy,vz; 501 504 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; 502 508 bool isdepthaveraged=0.; 503 509 … … 520 526 } 521 527 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 522 539 /*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); 524 541 } 525 542 /*}}}*/ … … 532 549 IssmDouble vx,vy,vz; 533 550 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; 534 554 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 } 535 566 536 567 /*Get velocity derivatives in all directions*/ … … 553 584 554 585 /*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); 556 587 }/*}}}*/ 557 588 void Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/ … … 566 597 IssmDouble vx,vy,vz; 567 598 IssmDouble dvx[3],dvy[3],dvz[3]; 599 IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy]; */ 600 IssmDouble epsilon1d; /* epsilon=[exx]; */ 601 IssmDouble eps_eff; 568 602 bool isdepthaveraged=1.; 569 603 … … 589 623 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1]; 590 624 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 591 636 /*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); 593 638 }/*}}}*/ 594 639 void Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/ -
issm/trunk-jpl/src/c/classes/Materials/Matestar.h
r21700 r21826 86 86 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 87 87 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); 91 91 /*}}}*/ 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); 94 94 }; 95 95 -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r21511 r21826 724 724 IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exz,eyz];*/ 725 725 IssmDouble epsilon2d[2];/* epsilon=[exx,exy]; */ 726 IssmDouble eps_eff ,E=1.0;726 IssmDouble eps_eff; 727 727 728 728 if(dim==3){ -
issm/trunk-jpl/src/c/classes/Materials/Matice.h
r21700 r21826 88 88 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 89 89 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");}; 93 93 /*}}}*/ 94 94 }; -
issm/trunk-jpl/src/c/classes/Materials/Matpar.h
r21700 r21826 125 125 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");}; 126 126 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");}; 130 130 /*}}}*/ 131 131 /*Numerics: {{{*/ -
issm/trunk-jpl/src/c/shared/Elements/EstarComponents.cpp
r21381 r21826 3 3 #include "../Exceptions/exceptions.h" 4 4 #include "./elements.h" 5 void EstarStrainrateQuantities(IssmDouble *peps eff, IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag){/*{{{*/5 void EstarStrainrateQuantities(IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag){/*{{{*/ 6 6 7 7 /*Intermediaries*/ 8 8 IssmDouble omega[3]; 9 9 IssmDouble nrsp[3],nrsp_norm; 10 IssmDouble eps[3][3] ,epseff;10 IssmDouble eps[3][3]; 11 11 IssmDouble epsprime[3],epsprime_norm; 12 12 … … 36 36 eps[1][0] = .5*(dvx[1]+dvy[0]); eps[1][1] = dvy[1]; eps[1][2] = .5*(dvy[2]+dvz[1]); 37 37 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]);43 38 44 39 /*Compute the shear strain rate on the non rotating shear plane*/ … … 73 68 74 69 /*Assign output pointers*/ 75 *pepseff=epseff;76 70 *pepsprime_norm=epsprime_norm; 77 71 }/*}}}*/ -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r21709 r21826 17 17 IssmDouble EstarLambdaS(IssmDouble epseff, IssmDouble epsprime_norm); 18 18 void EstarOmega(IssmDouble* omega,IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz, IssmDouble* dvmag); 19 void EstarStrainrateQuantities(IssmDouble *peps eff, IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag);19 void EstarStrainrateQuantities(IssmDouble *pepsprime_norm, IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble vmag,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble* dvmag); 20 20 IssmDouble PddSurfaceMassBalance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, 21 21 IssmDouble* pdds, IssmDouble* pds, IssmDouble* melt, IssmDouble* accu, IssmDouble signorm,
Note:
See TracChangeset
for help on using the changeset viewer.