Changeset 23143
- Timestamp:
- 08/21/18 07:02:50 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r23114 r23143 676 676 }/*}}}*/ 677 677 void Friction::GetAlpha2PISM(IssmDouble* palpha2, Gauss* gauss){/*{{{*/ 678 /*Here, we want to parameterize the friction as 679 * 680 * ... more comments to come 678 /*Here, we want to parameterize the friction using a pseudoplastic friction law, 679 * computing the basal shear stress as 680 * 681 * alpha2 = tau_c (u_b/(abs(u_b)^(1-q)*u_0^q)) 682 * 683 * The yield stress tau_c is a function of the effective pressure N 684 * using a Mohr-Coloumb criterion, so that 685 * tau_c = tan(phi)*N, 686 * where phi is the till friction angle, representing sediment strength 687 * 688 * The effective pressure is given by Eq. (5) in Aschwanden et al. 2016: 689 * 690 * N = delta * P0 * 10^((e_0/Cc)(1-(W/Wmax))) 691 * 692 * W is calculated by a non-conserving hydrology model in HydrologyPismAnalysis.cpp 693 * 694 * see Aschwanden et al. 2016 and Bueler and Brown, 2009 for more details 681 695 */ 682 696 683 /*compute ice pressure P0*/697 /*compute ice overburden pressure P0*/ 684 698 IssmDouble thickness,base,P0; 685 699 element->GetInputValue(&thickness, gauss,ThicknessEnum); … … 697 711 element->GetInputValue(&W,gauss,WatercolumnEnum); 698 712 element->GetInputValue(&Wmax,gauss,FrictionWatercolumnMaxEnum); 713 714 // /*Check that water column height is within 0 and upper bound, correct if needed*/ 715 // // if watercolumn height is higher than the maximum allowed height, set height to upper bound 716 // if(W>Wmax){ 717 // W=Wmax; 718 // } 719 // // if watercolumn height is negative (shouldn't happen), set it to 0 720 // if(W<0){ 721 // W=0; 722 // } 723 // // if watercolumn height is within 0 and upper bound, nothing to be done 724 // else{ 725 // //do nothing 726 // } 727 699 728 N = delta*P0*pow(10.,(e0/Cc)*(1.-W/Wmax)); 700 729 730 /*Get till friction angles, defined by user [deg]*/ 731 IssmDouble phi,pi; 732 element->GetInputValue(&phi,gauss,FrictionTillFrictionAngleEnum); 733 734 /*Convert till friction angle from user-defined deg to rad, which Matlab uses*/ 735 phi = phi*pi/180.; 736 701 737 /*Compute yield stress following a Mohr-Colomb criterion*/ 702 IssmDouble phi;703 element->GetInputValue(&phi,gauss,FrictionTillFrictionAngleEnum);704 738 IssmDouble tau_c = N*tan(phi); 705 739
Note:
See TracChangeset
for help on using the changeset viewer.