Changeset 20156 for issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
- Timestamp:
- 02/13/16 22:17:14 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/classes/Loads/Friction.cpp ¶
r19740 r20156 67 67 IssmDouble Neff; 68 68 IssmDouble drag_coefficient; 69 IssmDouble bed,thickness ;69 IssmDouble bed,thickness,sealevel; 70 70 IssmDouble alpha_complement; 71 71 … … 75 75 element->GetInputValue(&thickness, gauss,ThicknessEnum); 76 76 element->GetInputValue(&bed, gauss,BaseEnum); 77 element->GetInputValue(&sealevel, gauss,SealevelEnum); 77 78 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 78 79 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); … … 85 86 86 87 //From bed and thickness, compute effective pressure when drag is viscous: 87 Neff=gravity*(rho_ice*thickness+rho_water* bed);88 Neff=gravity*(rho_ice*thickness+rho_water*(bed-sealevel)); 88 89 if(Neff<0)Neff=0; 89 90 … … 231 232 IssmDouble drag_p, drag_q; 232 233 IssmDouble Neff; 233 IssmDouble thickness,base,bed,floatation_thickness ;234 IssmDouble thickness,base,bed,floatation_thickness,sealevel; 234 235 IssmDouble vx,vy,vz,vmag; 235 236 IssmDouble drag_coefficient,drag_coefficient_coulomb; … … 241 242 element->GetInputValue(&thickness, gauss,ThicknessEnum); 242 243 element->GetInputValue(&base, gauss,BaseEnum); 244 element->GetInputValue(&sealevel, gauss,SealevelEnum); 243 245 element->GetInputValue(&bed, gauss,BedEnum); 244 246 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); … … 253 255 254 256 //From base and thickness, compute effective pressure when drag is viscous: 255 Neff=gravity*(rho_ice*thickness+rho_water* base);257 Neff=gravity*(rho_ice*thickness+rho_water*(base-sealevel)); 256 258 if(Neff<0)Neff=0; 257 259 … … 407 409 IssmDouble drag_p, drag_q; 408 410 IssmDouble Neff; 409 IssmDouble thickness,b ed;411 IssmDouble thickness,base,sealevel; 410 412 IssmDouble vx,vy,vz,vmag; 411 413 IssmDouble drag_coefficient; … … 416 418 element->GetInputValue(&drag_q,FrictionQEnum); 417 419 element->GetInputValue(&thickness, gauss,ThicknessEnum); 418 element->GetInputValue(&bed, gauss,BaseEnum); 420 element->GetInputValue(&base, gauss,BaseEnum); 421 element->GetInputValue(&sealevel, gauss,SealevelEnum); 419 422 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 420 423 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); … … 426 429 s=1./drag_p; 427 430 428 //From b edand thickness, compute effective pressure when drag is viscous:429 Neff=gravity*(rho_ice*thickness+rho_water* bed);431 //From base and thickness, compute effective pressure when drag is viscous: 432 Neff=gravity*(rho_ice*thickness+rho_water*(base-sealevel)); 430 433 if(Neff<0)Neff=0; 431 434 … … 467 470 IssmDouble drag_p, drag_q; 468 471 IssmDouble Neff,F; 469 IssmDouble thickness,bed ;472 IssmDouble thickness,bed,sealevel; 470 473 IssmDouble vx,vy,vz,vmag; 471 474 IssmDouble drag_coefficient,water_layer; … … 478 481 element->GetInputValue(&thickness, gauss,ThicknessEnum); 479 482 element->GetInputValue(&bed, gauss,BaseEnum); 483 element->GetInputValue(&sealevel, gauss,SealevelEnum); 480 484 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 481 485 element->GetInputValue(&water_layer, gauss,FrictionWaterLayerEnum); … … 490 494 //From bed and thickness, compute effective pressure when drag is viscous: 491 495 if(bed>0) bed=0; 492 if(water_layer==0) Neff=gravity*rho_ice*thickness+gravity*rho_water* bed;496 if(water_layer==0) Neff=gravity*rho_ice*thickness+gravity*rho_water*(bed-sealevel); 493 497 else if(water_layer>0) Neff=gravity*rho_ice*thickness*F; 494 498 else _error_("negative water layer thickness"); … … 599 603 IssmDouble Neff; 600 604 IssmDouble drag_coefficient; 601 IssmDouble bed,thickness,head ;605 IssmDouble bed,thickness,head,sealevel; 602 606 IssmDouble alpha2; 603 607 … … 606 610 element->GetInputValue(&bed, gauss,BaseEnum); 607 611 element->GetInputValue(&head, gauss,HydrologyHeadEnum); 612 element->GetInputValue(&sealevel, gauss,SealevelEnum); 608 613 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 609 614 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum); … … 613 618 //From bed and thickness, compute effective pressure when drag is viscous: 614 619 pressure_ice = rho_ice*gravity*thickness; 615 pressure_water = rho_water*gravity*(head-bed );620 pressure_water = rho_water*gravity*(head-bed+sealevel); 616 621 Neff=pressure_ice-pressure_water; 617 622 if(Neff<0.) Neff=0.;
Note:
See TracChangeset
for help on using the changeset viewer.