Changeset 27164
- Timestamp:
- 07/28/22 06:53:10 (3 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r27161 r27164 321 321 322 322 /*This routine calculates the basal friction coefficient 323 alpha2= drag^2 * Neff ^r * | vel | ^(s-1), with Neff=rho_ice*g*thickness+rho_ice*g*base, r=q/p and s=1/p**/ 323 alpha2= drag^2 * Neff ^r * | vel | ^(s-1), with Neff=rho_ice*g*thickness+rho_ice*g*base, r=q/p and s=1/p 324 alpha2= min(drag^2 * Neff ^r * | vel | ^(s-1), drag_coulomb^2 * Neff*/ 324 325 325 326 /*diverse: */ 326 327 IssmDouble r,s; 327 328 IssmDouble drag_p, drag_q; 328 IssmDouble thickness,base,floatation_thickness,sealevel;329 329 IssmDouble drag_coefficient,drag_coefficient_coulomb; 330 330 IssmDouble alpha2,alpha2_coulomb; … … 333 333 element->GetInputValue(&drag_p,gauss,FrictionPEnum); 334 334 element->GetInputValue(&drag_q,gauss,FrictionQEnum); 335 element->GetInputValue(&thickness, gauss,ThicknessEnum);336 element->GetInputValue(&base, gauss,BaseEnum);337 element->GetInputValue(&sealevel, gauss,SealevelEnum);338 335 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 339 336 element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum); … … 360 357 } 361 358 362 floatation_thickness=0;363 if(base<0) floatation_thickness=-(rho_water/rho_ice)*base;364 359 if(vmag==0.){ 365 360 alpha2_coulomb=0.; 366 361 } 367 362 else{ 368 alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_ice*gravity*max(0.,thickness-floatation_thickness)/vmag; 363 //alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_ice*gravity*max(0.,thickness-floatation_thickness)/vmag; 364 alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*Neff/vmag; 369 365 } 370 366 -
issm/trunk-jpl/src/m/classes/frictioncoulomb.m
r24666 r27164 64 64 end % }}} 65 65 function disp(self) % {{{ 66 disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * rho_i * g * (h-h_f)) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_sw / rho_i * bed))'));66 disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * Neff) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_sw / rho_i * bed))')); 67 67 fielddisplay(self,'coefficient','power law (Weertman) friction coefficient [SI]'); 68 68 fielddisplay(self,'coefficientcoulomb','Coulomb friction coefficient [SI]'); -
issm/trunk-jpl/src/m/classes/frictioncoulomb.py
r25688 r27164 28 28 def __repr__(self): # {{{ 29 29 s = 'Basal shear stress parameters: Sigma_b = min(coefficient^2 * Neff ^r * |u_b|^(s - 1) * u_b,\n' 30 s += 'coefficientcoulomb^2 * rho_i * g * (h - h_f)), (effective stress Neff = rho_ice * g * thickness + rho_water * g * bed, r = q / p and s = 1 / p).\n'30 s += 'coefficientcoulomb^2 * Neff), (effective stress Neff = rho_ice * g * thickness + rho_water * g * bed, r = q / p and s = 1 / p).\n' 31 31 s += '{}\n'.format(fielddisplay(self, "coefficient", "power law (Weertman) friction coefficient [SI]")) 32 32 s += '{}\n'.format(fielddisplay(self, "coefficientcoulomb", "Coulomb friction coefficient [SI]"))
Note:
See TracChangeset
for help on using the changeset viewer.