Changeset 24486
- Timestamp:
- 12/19/19 15:26:13 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r24335 r24486 502 502 503 503 /*feed updated variables back into model*/ 504 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 504 505 if(dt!=0.){ 505 element->AddInput2(enthalpy_enum,enthalpies, P1DGEnum);506 element->AddInput2(WatercolumnEnum,watercolumns, P1DGEnum);507 } 508 element->AddInput2(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates, P1DGEnum);506 element->AddInput2(enthalpy_enum,enthalpies,finite_element); 507 element->AddInput2(WatercolumnEnum,watercolumns,finite_element); 508 } 509 element->AddInput2(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates,finite_element); 509 510 510 511 /*Clean up and return*/ … … 1088 1089 drainage[k]=DrainageFunctionWaterfraction(waterfractions[k], dt); 1089 1090 } 1090 element->AddInput2(WaterfractionDrainageEnum,drainage,P1DGEnum); 1091 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1092 element->AddInput2(WaterfractionDrainageEnum,drainage,finite_element); 1091 1093 1092 1094 xDelete<IssmDouble>(waterfractions); … … 1121 1123 drainage_int[k]*=thicknesses[k]; 1122 1124 } 1123 element->AddInput2(WaterfractionDrainageIntegratedEnum, drainage_int, P1DGEnum); 1125 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1126 element->AddInput2(WaterfractionDrainageIntegratedEnum, drainage_int,finite_element); 1124 1127 1125 1128 xDelete<IssmDouble>(drainage_int); … … 1144 1147 watercolumn[basalnodeindices[k]]+=dt*drainage_int[basalnodeindices[k]]; 1145 1148 } 1146 element->AddInput2(WatercolumnEnum, watercolumn,P1DGEnum); 1149 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1150 element->AddInput2(WatercolumnEnum, watercolumn,finite_element); 1147 1151 1148 1152 xDelete<IssmDouble>(watercolumn); … … 1180 1184 element->ThermalToEnthalpy(&enthalpies[k], temperatures[k], waterfractions[k], pressures[k]); 1181 1185 } 1182 element->AddInput2(WaterfractionEnum,waterfractions,P1DGEnum); 1183 element->AddInput2(EnthalpyEnum,enthalpies,P1DGEnum); 1186 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1187 element->AddInput2(WaterfractionEnum,waterfractions,finite_element); 1188 element->AddInput2(EnthalpyEnum,enthalpies,finite_element); 1184 1189 1185 1190 xDelete<IssmDouble>(enthalpies); … … 1602 1607 element->GetInputValue(&converged,ConvergedEnum); 1603 1608 element->GetInputListOnNodes(&pressure[0],PressureEnum); 1609 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1604 1610 if(converged){ 1605 1611 for(i=0;i<numnodes;i++){ … … 1608 1614 //if(waterfraction[i]>1.) _error_("Water fraction >1 found in solution vector"); 1609 1615 } 1610 _assert_(element->GetElementType()==P1Enum); 1611 element->AddInput2(EnthalpyEnum,values,P1DGEnum); 1612 element->AddInput2(WaterfractionEnum,waterfraction,P1DGEnum); 1613 element->AddInput2(TemperatureEnum,temperature,P1DGEnum); 1616 element->AddInput2(EnthalpyEnum,values,finite_element); 1617 element->AddInput2(WaterfractionEnum,waterfraction,finite_element); 1618 element->AddInput2(TemperatureEnum,temperature,finite_element); 1614 1619 1615 1620 IssmDouble* n = xNew<IssmDouble>(numnodes); … … 1631 1636 case BuddJackaEnum: 1632 1637 for(i=0;i<numnodes;i++) B[i]=BuddJacka(temperature[i]); 1633 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1638 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1634 1639 break; 1635 1640 case CuffeyEnum: 1636 1641 for(i=0;i<numnodes;i++) B[i]=Cuffey(temperature[i]); 1637 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1642 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1638 1643 break; 1639 1644 case CuffeyTemperateEnum: 1640 1645 for(i=0;i<numnodes;i++) B[i]=CuffeyTemperate(temperature[i], waterfraction[i],n[i]); 1641 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1646 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1642 1647 break; 1643 1648 case PatersonEnum: 1644 1649 for(i=0;i<numnodes;i++) B[i]=Paterson(temperature[i]); 1645 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1650 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1646 1651 break; 1647 1652 case NyeH2OEnum: 1648 1653 for(i=0;i<numnodes;i++) B[i]=NyeH2O(values[i]); 1649 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1654 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1650 1655 break; 1651 1656 case NyeCO2Enum: 1652 1657 for(i=0;i<numnodes;i++) B[i]=NyeCO2(values[i]); 1653 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1658 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1654 1659 break; 1655 1660 case ArrheniusEnum:{ 1656 1661 element->GetVerticesCoordinates(&xyz_list); 1657 1662 for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],n[i]); 1658 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1663 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1659 1664 break; 1660 1665 } 1661 1666 case LliboutryDuvalEnum:{ 1662 1667 for(i=0;i<numnodes;i++) B[i]=LliboutryDuval(values[i],pressure[i],n[i],element->FindParam(MaterialsBetaEnum),element->FindParam(ConstantsReferencetemperatureEnum),element->FindParam(MaterialsHeatcapacityEnum),element->FindParam(MaterialsLatentheatEnum)); 1663 element->AddInput2(MaterialsRheologyBEnum,&B[0], P1DGEnum);1668 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element); 1664 1669 break; 1665 1670 } … … 1669 1674 } 1670 1675 else{ 1671 element->AddInput2(EnthalpyPicardEnum,values, P1DGEnum);1676 element->AddInput2(EnthalpyPicardEnum,values,finite_element); 1672 1677 } 1673 1678
Note:
See TracChangeset
for help on using the changeset viewer.