Changeset 25973
- Timestamp:
- 02/03/21 19:54:22 (4 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r25945 r25973 916 916 iomodel->FetchDataToInput(inputs,elements,"md.friction.f",FrictionfEnum); 917 917 break; 918 case 13: 919 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 920 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCEnum); 921 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 922 if(FrictionCoupling==3){ 923 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 924 else if(FrictionCoupling==4){ 925 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 926 927 } 928 break; 918 929 default: 919 930 _error_("friction law "<< frictionlaw <<" not supported"); … … 1027 1038 case 12: 1028 1039 parameters->AddObject(new IntParam(FrictionCouplingEnum,2)); 1040 parameters->AddObject(iomodel->CopyConstantObject("md.friction.effective_pressure_limit",FrictionEffectivePressureLimitEnum)); 1041 break; 1042 case 13: 1043 parameters->AddObject(iomodel->CopyConstantObject("md.friction.coupling",FrictionCouplingEnum)); 1029 1044 parameters->AddObject(iomodel->CopyConstantObject("md.friction.effective_pressure_limit",FrictionEffectivePressureLimitEnum)); 1030 1045 break; -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r25366 r25973 261 261 case 12: 262 262 GetAlpha2Tsai(palpha2,gauss); 263 break; 264 case 13: 265 GetAlpha2Coulomb2(palpha2,gauss); 263 266 break; 264 267 default: … … 735 738 736 739 alpha2 = alpha2/ub; 740 } 741 742 /*Assign output pointers:*/ 743 *palpha2=alpha2; 744 }/*}}}*/ 745 void Friction::GetAlpha2Coulomb2(IssmDouble* palpha2, Gauss* gauss){/*{{{*/ 746 747 /*This routine calculates the basal friction coefficient 748 * 749 * C^2 |u_b|^(m-1) * (.5*N) 750 * alpha2= ___________________________________ 751 * (C^(2/m) |u_b| + (0.5*N)^(1/m) )^m 752 * 753 * */ 754 755 /*diverse: */ 756 IssmDouble C,m,alpha2; 757 758 /*Recover parameters: */ 759 element->GetInputValue(&C,gauss,FrictionCEnum); 760 element->GetInputValue(&m,gauss,FrictionMEnum); 761 762 /*Get effective pressure and velocity magnitude*/ 763 IssmDouble N = EffectivePressure(gauss); 764 IssmDouble ub = VelMag(gauss); 765 766 /*Compute alpha^2*/ 767 if(ub<1e-10){ 768 alpha2 = 0.; 769 } 770 else{ 771 alpha2= (pow(C,2)*pow(ub,m-1.)*(0.5*N)) / pow(pow(C,2./m)*ub + pow(0.5*N,1./m),m); 737 772 } 738 773 -
issm/trunk-jpl/src/c/classes/Loads/Friction.h
r25366 r25973 32 32 void GetAlpha2(IssmDouble* palpha2,Gauss* gauss); 33 33 void GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss); 34 void GetAlpha2Coulomb2(IssmDouble* palpha2,Gauss* gauss); 34 35 void GetAlpha2Hydro(IssmDouble* palpha2,Gauss* gauss); 35 36 void GetAlpha2Josh(IssmDouble* palpha2,Gauss* gauss); -
issm/trunk-jpl/src/m/classes/frictioncoulomb2.m
r25970 r25973 4 4 % frictioncoulomb=frictioncoulomb2(); 5 5 6 classdef frictioncoulomb 6 classdef frictioncoulomb2 7 7 properties (SetAccess=public) 8 8 coefficient = NaN;
Note:
See TracChangeset
for help on using the changeset viewer.