Changeset 20156 for issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
- Timestamp:
- 02/13/16 22:17:14 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r20155 r20156 1610 1610 /*Intermediaries*/ 1611 1611 int dim,domaintype; 1612 IssmDouble Jdet,thickness,b ed,water_pressure,ice_pressure;1612 IssmDouble Jdet,thickness,base,sealevel,water_pressure,ice_pressure; 1613 1613 IssmDouble surface_under_water,base_under_water,pressure; 1614 1614 IssmDouble *xyz_list = NULL; … … 1635 1635 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 1636 1636 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 1637 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 1637 1638 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); 1638 1639 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); … … 1648 1649 gauss->GaussPoint(ig); 1649 1650 thickness_input->GetInputValue(&thickness,gauss); 1650 base_input->GetInputValue(&bed,gauss); 1651 sealevel_input->GetInputValue(&sealevel,gauss); 1652 base_input->GetInputValue(&base,gauss); 1651 1653 element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss); 1652 1654 element->NodalFunctions(basis,gauss); 1653 1655 1654 surface_under_water = min(0.,thickness+b ed); // 0 if the top of the glacier is above water level1655 base_under_water = min(0.,b ed); // 0 if the bottom of the glacier is above water level1656 surface_under_water = min(0.,thickness+base-sealevel); // 0 if the top of the glacier is above water level 1657 base_under_water = min(0.,base-sealevel); // 0 if the bottom of the glacier is above water level 1656 1658 water_pressure = 1.0/2.0*gravity*rho_water*(surface_under_water*surface_under_water - base_under_water*base_under_water); 1657 1659 ice_pressure = 1.0/2.0*gravity*rho_ice*thickness*thickness; … … 2070 2072 2071 2073 /*Intermediaries*/ 2072 IssmDouble Jdet,thickness,bed, water_pressure,ice_pressure;2074 IssmDouble Jdet,thickness,bed,sealevel,water_pressure,ice_pressure; 2073 2075 IssmDouble surface_under_water,base_under_water,pressure; 2074 2076 IssmDouble *xyz_list = NULL; … … 2086 2088 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 2087 2089 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 2090 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2088 2091 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); 2089 2092 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); … … 2100 2103 thickness_input->GetInputValue(&thickness,gauss); 2101 2104 base_input->GetInputValue(&bed,gauss); 2105 sealevel_input->GetInputValue(&sealevel,gauss); 2102 2106 element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss); 2103 2107 element->NodalFunctions(basis,gauss); 2104 2108 2105 surface_under_water = min(0.,thickness+bed ); // 0 if the top of the glacier is above water level2106 base_under_water = min(0.,bed ); // 0 if the bottom of the glacier is above water level2109 surface_under_water = min(0.,thickness+bed-sealevel); // 0 if the top of the glacier is above water level 2110 base_under_water = min(0.,bed-sealevel); // 0 if the bottom of the glacier is above water level 2107 2111 water_pressure = 1.0/2.0*gravity*rho_water*(surface_under_water*surface_under_water - base_under_water*base_under_water); 2108 2112 ice_pressure = 1.0/2.0*gravity*rho_ice*thickness*thickness; … … 2584 2588 /*Intermediaries*/ 2585 2589 int dim; 2586 IssmDouble Jdet,surface, z,water_pressure,ice_pressure;2590 IssmDouble Jdet,surface,sealevel,z,water_pressure,ice_pressure; 2587 2591 IssmDouble surface_under_water,base_under_water,pressure; 2588 2592 IssmDouble* xyz_list = NULL; … … 2604 2608 /*Retrieve all inputs and parameters*/ 2605 2609 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2610 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2606 2611 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); 2607 2612 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); … … 2622 2627 gauss->GaussPoint(ig); 2623 2628 surface_input->GetInputValue(&surface,gauss); 2629 sealevel_input->GetInputValue(&sealevel,gauss); 2624 2630 if(dim==3) z=element->GetZcoord(xyz_list,gauss); 2625 2631 else z=element->GetYcoord(xyz_list,gauss); … … 2627 2633 element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss); 2628 2634 2629 water_pressure = rho_water*gravity*min(0.,z );//0 if the gaussian point is above water level2635 water_pressure = rho_water*gravity*min(0.,z-sealevel);//0 if the gaussian point is above water level 2630 2636 ice_pressure = rho_ice*gravity*(surface-z); 2631 2637 pressure = ice_pressure + water_pressure; … … 3811 3817 /*Intermediaries*/ 3812 3818 int i,dim; 3813 IssmDouble Jdet,pressure,surface, z;3819 IssmDouble Jdet,pressure,surface,sealevel,z; 3814 3820 IssmDouble normal[3]; 3815 3821 IssmDouble *xyz_list = NULL; … … 3843 3849 element->NormalSection(&normal[0],xyz_list_front); 3844 3850 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 3851 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 3845 3852 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); 3846 3853 IssmDouble gravity = element->GetMaterialParameter(ConstantsGEnum); … … 3859 3866 element->NodalFunctionsVelocity(vbasis,gauss); 3860 3867 surface_input->GetInputValue(&surface,gauss); 3868 sealevel_input->GetInputValue(&sealevel,gauss); 3861 3869 if(dim==3) z=element->GetZcoord(xyz_list,gauss); 3862 3870 else z=element->GetYcoord(xyz_list,gauss); 3863 pressure = rho_water*gravity*min(0.,z );//0 if the gaussian point is above water level3871 pressure = rho_water*gravity*min(0.,z-sealevel);//0 if the gaussian point is above water level 3864 3872 3865 3873 for (int i=0;i<vnumnodes;i++){
Note:
See TracChangeset
for help on using the changeset viewer.