Changeset 23897
- Timestamp:
- 04/25/19 10:43:54 (6 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r23840 r23897 875 875 iomodel->FetchDataToInput(elements,"md.friction.Cmax",FrictionCmaxEnum); 876 876 break; 877 case 12: 878 iomodel->FetchDataToInput(elements,"md.friction.m",FrictionMEnum); 879 iomodel->FetchDataToInput(elements,"md.friction.C",FrictionCEnum); 880 iomodel->FetchDataToInput(elements,"md.friction.f",FrictionfEnum); 881 break; 877 882 default: 878 883 _error_("friction law "<< frictionlaw <<" not supported"); … … 972 977 parameters->AddObject(new IntParam(FrictionCouplingEnum,2)); 973 978 break; 979 case 12: 980 parameters->AddObject(new IntParam(FrictionCouplingEnum,2)); 981 break; 974 982 default: _error_("Friction law "<<frictionlaw<<" not implemented yet"); 975 983 } -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r23841 r23897 197 197 case 11: 198 198 GetAlpha2Schoof(palpha2,gauss); 199 break; 200 case 12: 201 GetAlpha2Tsai(palpha2,gauss); 199 202 break; 200 203 default: … … 629 632 else{ 630 633 alpha2= (C*pow(ub,m-1.)) / pow(1.+ pow(C/(Cmax*N),1./m)*ub,m); 634 } 635 636 /*Assign output pointers:*/ 637 *palpha2=alpha2; 638 }/*}}}*/ 639 void Friction::GetAlpha2Tsai(IssmDouble* palpha2, Gauss* gauss){/*{{{*/ 640 641 /*This routine calculates the basal friction coefficient 642 * 643 * alpha2= min(C |ub|^m , f N ) / |ub| 644 * 645 * */ 646 647 /*diverse: */ 648 IssmDouble C,f,m,alpha2; 649 650 /*Recover parameters: */ 651 element->GetInputValue(&f,gauss,FrictionfEnum); 652 element->GetInputValue(&C,gauss,FrictionCEnum); 653 element->GetInputValue(&m,FrictionMEnum); 654 655 /*Get effective pressure and velocity magnitude*/ 656 IssmDouble N = EffectivePressure(gauss); 657 IssmDouble ub = VelMag(gauss); 658 659 /*Compute alpha^2*/ 660 if(ub<1e-10){ 661 alpha2 = 0.; 662 } 663 else{ 664 alpha2= C*pow(ub,m); 665 666 if(alpha2>f*N) alpha2 = f*N; 667 668 alpha2 = alpha2/ub; 631 669 } 632 670 -
issm/trunk-jpl/src/c/classes/Loads/Friction.h
r23839 r23897 42 42 void GetAlpha2PISM(IssmDouble* palpha2,Gauss* gauss); 43 43 void GetAlpha2Schoof(IssmDouble* palpha2,Gauss* gauss); 44 void GetAlpha2Tsai(IssmDouble* palpha2,Gauss* gauss); 44 45 45 46 IssmDouble EffectivePressure(Gauss* gauss); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23885 r23897 517 517 FrictionCoefficientEnum, 518 518 FrictionEffectivePressureEnum, 519 FrictionfEnum, 519 520 FrictionMEnum, 520 521 FrictionPEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23885 r23897 523 523 case FrictionCoefficientEnum : return "FrictionCoefficient"; 524 524 case FrictionEffectivePressureEnum : return "FrictionEffectivePressure"; 525 case FrictionfEnum : return "Frictionf"; 525 526 case FrictionMEnum : return "FrictionM"; 526 527 case FrictionPEnum : return "FrictionP"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23885 r23897 535 535 else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum; 536 536 else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum; 537 else if (strcmp(name,"Frictionf")==0) return FrictionfEnum; 537 538 else if (strcmp(name,"FrictionM")==0) return FrictionMEnum; 538 539 else if (strcmp(name,"FrictionP")==0) return FrictionPEnum; … … 628 629 else if (strcmp(name,"SealevelUEsa")==0) return SealevelUEsaEnum; 629 630 else if (strcmp(name,"SealevelRSLEustaticRate")==0) return SealevelRSLEustaticRateEnum; 630 else if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum; 634 if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum; 635 else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum; 635 636 else if (strcmp(name,"SealevelNEsa")==0) return SealevelNEsaEnum; 636 637 else if (strcmp(name,"SealevelUGia")==0) return SealevelUGiaEnum; … … 751 752 else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum; 752 753 else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum; 753 else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 757 if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; 758 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 758 759 else if (strcmp(name,"SurfaceAbsMisfit")==0) return SurfaceAbsMisfitEnum; 759 760 else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum; … … 874 875 else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum; 875 876 else if (strcmp(name,"Outputdefinition77")==0) return Outputdefinition77Enum; 876 else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum; 880 if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum; 881 else if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum; 881 882 else if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum; 882 883 else if (strcmp(name,"Outputdefinition80")==0) return Outputdefinition80Enum; … … 997 998 else if (strcmp(name,"FrontalForcingsDefault")==0) return FrontalForcingsDefaultEnum; 998 999 else if (strcmp(name,"FrontalForcingsRignot")==0) return FrontalForcingsRignotEnum; 999 else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Fset")==0) return FsetEnum; 1003 if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum; 1004 else if (strcmp(name,"Fset")==0) return FsetEnum; 1004 1005 else if (strcmp(name,"FSpressure")==0) return FSpressureEnum; 1005 1006 else if (strcmp(name,"FSSolver")==0) return FSSolverEnum; … … 1120 1121 else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum; 1121 1122 else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum; 1122 else if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum; 1126 if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum; 1127 else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum; 1127 1128 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 1128 1129 else if (strcmp(name,"None")==0) return NoneEnum; … … 1243 1244 else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum; 1244 1245 else if (strcmp(name,"Water")==0) return WaterEnum; 1245 else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"XY")==0) return XYEnum; 1249 if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum; 1250 else if (strcmp(name,"XY")==0) return XYEnum; 1250 1251 else if (strcmp(name,"XYZ")==0) return XYZEnum; 1251 1252 else if (strcmp(name,"BalancethicknessD0")==0) return BalancethicknessD0Enum; -
issm/trunk-jpl/src/m/classes/frictiontsai.m
r23895 r23897 15 15 case 0 16 16 self=setdefaultparameters(self); 17 case 1 18 self=structtoobj(frictiontsai(),varargin{1}); 17 19 otherwise 18 20 error('constructor not supported');
Note:
See TracChangeset
for help on using the changeset viewer.