Changeset 23644
- Timestamp:
- 01/19/19 12:48:01 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 deleted
- 52 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r23612 r23644 114 114 ./classes/Materials/Matlitho.cpp\ 115 115 ./classes/Materials/Matestar.cpp\ 116 ./classes/Materials/Matpar.cpp\117 116 ./classes/Constraints/Constraints.cpp\ 118 117 ./classes/Constraints/SpcStatic.cpp\ -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r23629 r23644 390 390 else enthalpy_enum=EnthalpyEnum; 391 391 392 IssmDouble latentheat = element-> GetMaterialParameter(MaterialsLatentheatEnum);393 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);394 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);395 IssmDouble beta = element-> GetMaterialParameter(MaterialsBetaEnum);392 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 393 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 394 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 395 IssmDouble beta = element->FindParam(MaterialsBetaEnum); 396 396 IssmDouble kappa = EnthalpyDiffusionParameterVolume(element,enthalpy_enum); _assert_(kappa>=0.); 397 397 IssmDouble kappa_mix; … … 584 584 element->FindParam(&dt,TimesteppingTimeStepEnum); 585 585 element->FindParam(&stabilization,ThermalStabilizationEnum); 586 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);587 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);588 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);589 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);590 IssmDouble thermalconductivity = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);586 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 587 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 588 IssmDouble gravity = element->FindParam(ConstantsGEnum); 589 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 590 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 591 591 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 592 592 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); … … 710 710 element->GetVerticesCoordinatesBase(&xyz_list_base); 711 711 element->FindParam(&dt,TimesteppingTimeStepEnum); 712 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);713 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);714 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);715 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);716 IssmDouble mixed_layer_capacity= element-> GetMaterialParameter(MaterialsMixedLayerCapacityEnum);717 IssmDouble thermal_exchange_vel= element-> GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);712 IssmDouble gravity = element->FindParam(ConstantsGEnum); 713 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 714 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 715 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 716 IssmDouble mixed_layer_capacity= element->FindParam(MaterialsMixedLayerCapacityEnum); 717 IssmDouble thermal_exchange_vel= element->FindParam(MaterialsThermalExchangeVelocityEnum); 718 718 719 719 /* Start looping on the number of gaussian points: */ … … 786 786 /*Retrieve all inputs and parameters*/ 787 787 element->GetVerticesCoordinates(&xyz_list); 788 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);789 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);790 IssmDouble thermalconductivity = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);791 IssmDouble temperateiceconductivity = element-> GetMaterialParameter(MaterialsTemperateiceconductivityEnum);792 IssmDouble beta = element-> GetMaterialParameter(MaterialsBetaEnum);793 IssmDouble latentheat = element-> GetMaterialParameter(MaterialsLatentheatEnum);788 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 789 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 790 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 791 IssmDouble temperateiceconductivity = element->FindParam(MaterialsTemperateiceconductivityEnum); 792 IssmDouble beta = element->FindParam(MaterialsBetaEnum); 793 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 794 794 element->FindParam(&dt,TimesteppingTimeStepEnum); 795 795 element->FindParam(&stabilization,ThermalStabilizationEnum); … … 912 912 Input* meltingrate_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input); 913 913 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input); 914 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);914 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 915 915 916 916 /*Build friction element, needed later: */ … … 998 998 element->FindParam(&dt,TimesteppingTimeStepEnum); 999 999 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 1000 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);1001 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);1002 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);1003 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);1004 IssmDouble mixed_layer_capacity= element-> GetMaterialParameter(MaterialsMixedLayerCapacityEnum);1005 IssmDouble thermal_exchange_vel= element-> GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);1000 IssmDouble gravity = element->FindParam(ConstantsGEnum); 1001 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 1002 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 1003 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 1004 IssmDouble mixed_layer_capacity= element->FindParam(MaterialsMixedLayerCapacityEnum); 1005 IssmDouble thermal_exchange_vel= element->FindParam(MaterialsThermalExchangeVelocityEnum); 1006 1006 1007 1007 /* Start looping on the number of gaussian points: */ … … 1152 1152 IssmDouble EnthalpyAnalysis::EnthalpyDiffusionParameter(Element* element,IssmDouble enthalpy,IssmDouble pressure){/*{{{*/ 1153 1153 1154 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);1155 IssmDouble temperateiceconductivity = element-> GetMaterialParameter(MaterialsTemperateiceconductivityEnum);1156 IssmDouble thermalconductivity = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);1154 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 1155 IssmDouble temperateiceconductivity = element->FindParam(MaterialsTemperateiceconductivityEnum); 1156 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 1157 1157 1158 1158 if(enthalpy < PureIceEnthalpy(element,pressure)){ … … 1507 1507 IssmDouble temperature, waterfraction; 1508 1508 IssmDouble kappa_w = 0.6; // thermal conductivity of water (in W/m/K) 1509 IssmDouble kappa_i = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);1509 IssmDouble kappa_i = element->FindParam(MaterialsThermalconductivityEnum); 1510 1510 element->EnthalpyToThermal(&temperature, &waterfraction, enthalpy, pressure); 1511 1511 … … 1520 1520 int i,rheology_law; 1521 1521 IssmDouble B_average,s_average,T_average=0.,P_average=0.; 1522 IssmDouble n=3.0;1523 1522 int *doflist = NULL; 1524 1523 IssmDouble *xyz_list = NULL; … … 1546 1545 1547 1546 /*Get all inputs and parameters*/ 1548 if(element->material->ObjectEnum()!=MatestarEnum) n=element->GetMaterialParameter(MaterialsRheologyNEnum);1549 1547 element->GetInputValue(&converged,ConvergedEnum); 1550 1548 element->GetInputListOnNodes(&pressure[0],PressureEnum); … … 1559 1557 element->AddInput(TemperatureEnum,temperature,element->GetElementType()); 1560 1558 1559 IssmDouble* n = xNew<IssmDouble>(numnodes); 1560 if(element->material->ObjectEnum()!=MatestarEnum){ 1561 for(i=0;i<numnodes;i++) n[i]=3.; 1562 } 1563 else{ 1564 element->GetInputListOnNodes(&n[0],MaterialsRheologyNEnum); 1565 } 1566 1561 1567 /*Update Rheology only if converged (we must make sure that the temperature is below melting point 1562 1568 * otherwise the rheology could be negative*/ 1563 rheology_law=element->GetIntegerMaterialParameter(MaterialsRheologyLawEnum);1569 element->FindParam(&rheology_law,MaterialsRheologyLawEnum); 1564 1570 element->GetInputListOnNodes(&surface[0],SurfaceEnum); 1565 1571 switch(rheology_law){ … … 1576 1582 break; 1577 1583 case CuffeyTemperateEnum: 1578 for(i=0;i<numnodes;i++) B[i]=CuffeyTemperate(temperature[i], waterfraction[i],n );1584 for(i=0;i<numnodes;i++) B[i]=CuffeyTemperate(temperature[i], waterfraction[i],n[i]); 1579 1585 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 1580 1586 break; … … 1583 1589 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 1584 1590 break; 1585 case ArrheniusEnum: 1591 case ArrheniusEnum:{ 1586 1592 element->GetVerticesCoordinates(&xyz_list); 1587 for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],n );1593 for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],n[i]); 1588 1594 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 1589 1595 break; 1590 case LliboutryDuvalEnum: 1591 for(i=0;i<numnodes;i++) B[i]=LliboutryDuval(values[i],pressure[i],n,element->GetMaterialParameter(MaterialsBetaEnum),element->GetMaterialParameter(ConstantsReferencetemperatureEnum),element->GetMaterialParameter(MaterialsHeatcapacityEnum),element->GetMaterialParameter(MaterialsLatentheatEnum)); 1596 } 1597 case LliboutryDuvalEnum:{ 1598 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)); 1592 1599 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 1593 1600 break; 1601 } 1594 1602 default: _error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet"); 1595 1603 } 1604 xDelete<IssmDouble>(n); 1596 1605 } 1597 1606 else{ … … 1624 1633 IssmDouble EnthalpyAnalysis::PureIceEnthalpy(Element* element,IssmDouble pressure){/*{{{*/ 1625 1634 1626 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);1627 IssmDouble referencetemperature = element-> GetMaterialParameter(ConstantsReferencetemperatureEnum);1635 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 1636 IssmDouble referencetemperature = element->FindParam(ConstantsReferencetemperatureEnum); 1628 1637 1629 1638 return heatcapacity*(TMeltingPoint(element,pressure)-referencetemperature); … … 1631 1640 IssmDouble EnthalpyAnalysis::TMeltingPoint(Element* element,IssmDouble pressure){/*{{{*/ 1632 1641 1633 IssmDouble meltingpoint = element-> GetMaterialParameter(MaterialsMeltingpointEnum);1634 IssmDouble beta = element-> GetMaterialParameter(MaterialsBetaEnum);1642 IssmDouble meltingpoint = element->FindParam(MaterialsMeltingpointEnum); 1643 IssmDouble beta = element->FindParam(MaterialsBetaEnum); 1635 1644 1636 1645 return meltingpoint-beta*pressure; -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r23629 r23644 546 546 IssmDouble* thickness = xNew<IssmDouble>(numnodes); 547 547 IssmDouble* B = xNew<IssmDouble>(numnodes); 548 IssmDouble* n = xNew<IssmDouble>(numnodes); 548 549 IssmDouble* eplhead = xNew<IssmDouble>(numnodes); 549 550 IssmDouble* epl_slopeX = xNew<IssmDouble>(numnodes); … … 559 560 560 561 /*For now, assuming just one way to compute EPL thickness*/ 561 IssmDouble gravity = element->GetMaterialParameter(ConstantsGEnum); 562 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum); 563 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); 564 IssmDouble n = element->GetMaterialParameter(MaterialsRheologyNEnum); 565 IssmDouble latentheat = element->GetMaterialParameter(MaterialsLatentheatEnum); 566 IssmDouble epl_conductivity = element->GetMaterialParameter(HydrologydcEplConductivityEnum); 567 IssmDouble init_thick = element->GetMaterialParameter(HydrologydcEplInitialThicknessEnum); 568 IssmDouble max_thick = element->GetMaterialParameter(HydrologydcEplMaxThicknessEnum); 562 IssmDouble gravity = element->FindParam(ConstantsGEnum); 563 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 564 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 565 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 566 IssmDouble epl_conductivity = element->FindParam(HydrologydcEplConductivityEnum); 567 IssmDouble init_thick = element->FindParam(HydrologydcEplInitialThicknessEnum); 568 IssmDouble max_thick = element->FindParam(HydrologydcEplMaxThicknessEnum); 569 569 570 570 switch(domaintype){ … … 580 580 element->GetInputListOnVertices(&ice_thickness[0],ThicknessEnum); 581 581 element->GetInputListOnVertices(&bed[0],BaseEnum); 582 element->GetInputListOnVertices(&n[0],MaterialsRheologyNEnum); 582 583 583 584 if(!active_element){ … … 589 590 else{ 590 591 for(int i=0;i<numnodes;i++){ 591 A=pow(B[i],-n );592 A=pow(B[i],-n[i]); 592 593 /*Compute first the effective pressure in the EPL*/ 593 594 EPL_N=gravity*((rho_ice*ice_thickness[i])-(rho_water*(eplhead[i]-bed[i]))); … … 597 598 /*And proceed to the real thing*/ 598 599 opening=(rho_water*gravity*epl_conductivity*EPLgrad2*dt)/(rho_ice*latentheat); 599 closing=(2.0*A*dt*pow(EPL_N,n ))/(pow(n,n));600 closing=(2.0*A*dt*pow(EPL_N,n[i]))/(pow(n[i],n[i])); 600 601 /*implicit*/ 601 602 thickness[i] = old_thickness[i]/(1.0-opening+closing); … … 619 620 xDelete<IssmDouble>(bed); 620 621 xDelete<IssmDouble>(B); 622 xDelete<IssmDouble>(n); 621 623 } 622 624 }/*}}}*/ … … 679 681 IssmDouble* base =xNew<IssmDouble>(numnodes); 680 682 681 IssmDouble init_thick =basalelement-> GetMaterialParameter(HydrologydcEplInitialThicknessEnum);682 IssmDouble colapse_thick =basalelement-> GetMaterialParameter(HydrologydcEplColapseThicknessEnum);683 IssmDouble init_thick =basalelement->FindParam(HydrologydcEplInitialThicknessEnum); 684 IssmDouble colapse_thick =basalelement->FindParam(HydrologydcEplColapseThicknessEnum); 683 685 684 686 Input* active_element_input=basalelement->GetInput(HydrologydcMaskEplactiveEltEnum); _assert_(active_element_input); … … 749 751 IssmDouble water_sheet,storing; 750 752 IssmDouble epl_thickness,prestep_head,base_elev; 751 IssmDouble rho_freshwater = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);752 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);753 IssmDouble epl_porosity = element-> GetMaterialParameter(HydrologydcEplPorosityEnum);754 IssmDouble epl_compressibility = element-> GetMaterialParameter(HydrologydcEplCompressibilityEnum);755 IssmDouble water_compressibility = element-> GetMaterialParameter(HydrologydcWaterCompressibilityEnum);753 IssmDouble rho_freshwater = element->FindParam(MaterialsRhoFreshwaterEnum); 754 IssmDouble g = element->FindParam(ConstantsGEnum); 755 IssmDouble epl_porosity = element->FindParam(HydrologydcEplPorosityEnum); 756 IssmDouble epl_compressibility = element->FindParam(HydrologydcEplCompressibilityEnum); 757 IssmDouble water_compressibility = element->FindParam(HydrologydcWaterCompressibilityEnum); 756 758 757 759 epl_thick_input->GetInputValue(&epl_thickness,gauss); … … 781 783 IssmDouble water_sheet; 782 784 IssmDouble epl_thickness,base_elev,prestep_head; 783 IssmDouble epl_conductivity = element-> GetMaterialParameter(HydrologydcEplConductivityEnum);785 IssmDouble epl_conductivity = element->FindParam(HydrologydcEplConductivityEnum); 784 786 epl_thick_input->GetInputValue(&epl_thickness,gauss); 785 787 epl_head_input->GetInputValue(&prestep_head,gauss); … … 861 863 case 2: 862 864 /*Compute max*/ 863 rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);864 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);865 rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 866 rho_ice = element->FindParam(MaterialsRhoIceEnum); 865 867 element-> GetInputValue(&thickness,innode,ThicknessEnum); 866 868 element-> GetInputValue(&bed,innode,BaseEnum); -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r23629 r23644 536 536 basalelement->FindParam(&kmax,HydrologySedimentKmaxEnum); 537 537 basalelement->FindParam(&penalty_factor,HydrologydcPenaltyFactorEnum); 538 IssmDouble rho_freshwater = basalelement-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);539 IssmDouble rho_ice = basalelement-> GetMaterialParameter(MaterialsRhoIceEnum);540 IssmDouble g = basalelement-> GetMaterialParameter(ConstantsGEnum);538 IssmDouble rho_freshwater = basalelement->FindParam(MaterialsRhoFreshwaterEnum); 539 IssmDouble rho_ice = basalelement->FindParam(MaterialsRhoIceEnum); 540 IssmDouble g = basalelement->FindParam(ConstantsGEnum); 541 541 542 542 basalelement->GetInputListOnVertices(thickness,ThicknessEnum); … … 595 595 IssmDouble storing,yield; 596 596 IssmDouble base_elev,prestep_head,water_sheet; 597 IssmDouble rho_freshwater = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);598 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);599 IssmDouble sediment_porosity = element-> GetMaterialParameter(HydrologydcSedimentPorosityEnum);600 IssmDouble sediment_thickness = element-> GetMaterialParameter(HydrologydcSedimentThicknessEnum);601 IssmDouble sediment_compressibility = element-> GetMaterialParameter(HydrologydcSedimentCompressibilityEnum);602 IssmDouble water_compressibility = element-> GetMaterialParameter(HydrologydcWaterCompressibilityEnum);597 IssmDouble rho_freshwater = element->FindParam(MaterialsRhoFreshwaterEnum); 598 IssmDouble g = element->FindParam(ConstantsGEnum); 599 IssmDouble sediment_porosity = element->FindParam(HydrologydcSedimentPorosityEnum); 600 IssmDouble sediment_thickness = element->FindParam(HydrologydcSedimentThicknessEnum); 601 IssmDouble sediment_compressibility = element->FindParam(HydrologydcSedimentCompressibilityEnum); 602 IssmDouble water_compressibility = element->FindParam(HydrologydcWaterCompressibilityEnum); 603 603 element->FindParam(&unconf_scheme,HydrologydcUnconfinedFlagEnum); 604 604 switch(unconf_scheme){ … … 636 636 IssmDouble groundedice; 637 637 IssmDouble base_elev,prestep_head,water_sheet; 638 IssmDouble sediment_thickness = element-> GetMaterialParameter(HydrologydcSedimentThicknessEnum);638 IssmDouble sediment_thickness = element->FindParam(HydrologydcSedimentThicknessEnum); 639 639 640 640 element->FindParam(&unconf_scheme,HydrologydcUnconfinedFlagEnum); … … 681 681 case 2: 682 682 /*Compute max*/ 683 rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);684 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);683 rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 684 rho_ice = element->FindParam(MaterialsRhoIceEnum); 685 685 element->GetInputValue(&thickness,innode,ThicknessEnum); 686 686 element->GetInputValue(&bed,innode,BaseEnum); -
issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.cpp
r23585 r23644 108 108 /*Retrieve all inputs and parameters*/ 109 109 element->FindParam(&dt,TimesteppingTimeStepEnum); 110 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);111 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);110 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 111 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 112 112 113 113 /*Get water column and drainage rate*/ -
issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp
r23629 r23644 241 241 /*Retrieve all inputs and parameters*/ 242 242 element->GetVerticesCoordinates(&xyz_list); 243 IssmDouble latentheat = element-> GetMaterialParameter(MaterialsLatentheatEnum);244 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);245 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);246 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);243 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 244 IssmDouble g = element->FindParam(ConstantsGEnum); 245 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 246 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 247 247 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input); 248 248 Input* head_input = element->GetInput(HydrologyHeadEnum); _assert_(head_input); … … 355 355 356 356 /*Get gravity from parameters*/ 357 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);357 IssmDouble g = element->FindParam(ConstantsGEnum); 358 358 359 359 /*Fetch number of nodes for this finite element*/ … … 368 368 IssmDouble* thickness = xNew<IssmDouble>(numnodes); 369 369 IssmDouble* bed = xNew<IssmDouble>(numnodes); 370 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);371 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);370 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 371 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 372 372 element->GetInputListOnNodes(&thickness[0],ThicknessEnum); 373 373 element->GetInputListOnNodes(&bed[0],BaseEnum); … … 437 437 438 438 /*Get gravity from parameters*/ 439 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);439 IssmDouble g = element->FindParam(ConstantsGEnum); 440 440 441 441 /*Get Reynolds and gap average values*/ … … 479 479 element->GetVerticesCoordinates(&xyz_list); 480 480 element->FindParam(&dt,TimesteppingTimeStepEnum); 481 IssmDouble latentheat = element-> GetMaterialParameter(MaterialsLatentheatEnum);482 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);483 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);484 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);481 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 482 IssmDouble g = element->FindParam(ConstantsGEnum); 483 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 484 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 485 485 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input); 486 486 Input* head_input = element->GetInput(HydrologyHeadEnum); _assert_(head_input); -
issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp
r23629 r23644 105 105 106 106 /*Retrieve all inputs and parameters*/ 107 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);108 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);109 IssmDouble g = element-> GetMaterialParameter(ConstantsGEnum);110 IssmDouble mu_water = element-> GetMaterialParameter(MaterialsMuWaterEnum);107 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 108 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 109 IssmDouble g = element->FindParam(ConstantsGEnum); 110 IssmDouble mu_water = element->FindParam(MaterialsMuWaterEnum); 111 111 Input* surfaceslopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(surfaceslopex_input); 112 112 Input* surfaceslopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(surfaceslopey_input); -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r23607 r23644 719 719 Element* element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 720 720 721 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);722 rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);721 rho_ice = element->FindParam(MaterialsRhoIceEnum); 722 rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 723 723 724 724 int numnodes = element->GetNumberOfNodes(); -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r23629 r23644 750 750 /*Find MasstransportHydrostaticAdjustment to figure out how to update the geometry:*/ 751 751 basalelement->FindParam(&hydroadjustment,MasstransportHydrostaticAdjustmentEnum); 752 rho_ice = basalelement-> GetMaterialParameter(MaterialsRhoIceEnum);753 rho_water = basalelement-> GetMaterialParameter(MaterialsRhoSeawaterEnum);752 rho_ice = basalelement->FindParam(MaterialsRhoIceEnum); 753 rho_water = basalelement->FindParam(MaterialsRhoSeawaterEnum); 754 754 755 755 for(i=0;i<numnodes;i++) { -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
r23585 r23644 97 97 /*Retrieve all inputs and parameters*/ 98 98 basalelement->GetVerticesCoordinates(&xyz_list); 99 IssmDouble latentheat = element-> GetMaterialParameter(MaterialsLatentheatEnum);100 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);99 IssmDouble latentheat = element->FindParam(MaterialsLatentheatEnum); 100 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 101 101 102 102 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/SmoothAnalysis.cpp
r23585 r23644 137 137 case DrivingStressXEnum: 138 138 case DrivingStressYEnum:{ 139 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);140 gravity = element-> GetMaterialParameter(ConstantsGEnum);139 rho_ice = element->FindParam(MaterialsRhoIceEnum); 140 gravity = element->FindParam(ConstantsGEnum); 141 141 H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 142 142 surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r23629 r23644 1634 1634 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 1635 1635 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 1636 IssmDouble rhog = element-> GetMaterialParameter(MaterialsRhoIceEnum)*element->GetMaterialParameter(ConstantsGEnum);1636 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 1637 1637 1638 1638 /* Start looping on the number of gaussian points: */ … … 1699 1699 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 1700 1700 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 1701 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);1702 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);1703 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);1701 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 1702 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 1703 IssmDouble gravity = element->FindParam(ConstantsGEnum); 1704 1704 element->GetVerticesCoordinates(&xyz_list); 1705 1705 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); … … 1871 1871 1872 1872 element->FindParam(&domaintype,DomainTypeEnum); 1873 rho_ice =element-> GetMaterialParameter(MaterialsRhoIceEnum);1874 g =element-> GetMaterialParameter(ConstantsGEnum);1873 rho_ice =element->FindParam(MaterialsRhoIceEnum); 1874 g =element->FindParam(ConstantsGEnum); 1875 1875 switch(domaintype){ 1876 1876 case Domain2DhorizontalEnum: … … 2103 2103 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 2104 2104 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 2105 IssmDouble rhog = element-> GetMaterialParameter(MaterialsRhoIceEnum)*element->GetMaterialParameter(ConstantsGEnum);2105 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2106 2106 2107 2107 /* Start looping on the number of gaussian points: */ … … 2155 2155 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 2156 2156 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2157 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);2158 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);2159 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);2157 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2158 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 2159 IssmDouble gravity = element->FindParam(ConstantsGEnum); 2160 2160 element->GetVerticesCoordinates(&xyz_list); 2161 2161 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); … … 2211 2211 element->FindParam(&dim,DomainDimensionEnum); 2212 2212 element->FindParam(&domaintype,DomainTypeEnum); 2213 rho_ice =element-> GetMaterialParameter(MaterialsRhoIceEnum);2214 g =element-> GetMaterialParameter(ConstantsGEnum);2213 rho_ice =element->FindParam(MaterialsRhoIceEnum); 2214 g =element->FindParam(ConstantsGEnum); 2215 2215 if(dim==2){ 2216 2216 element->GetInputListOnVertices(thickness,ThicknessEnum); … … 2630 2630 element->GetVerticesCoordinates(&xyz_list); 2631 2631 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2632 IssmDouble rhog = element-> GetMaterialParameter(MaterialsRhoIceEnum)*element->GetMaterialParameter(ConstantsGEnum);2632 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2633 2633 2634 2634 /* Start looping on the number of gaussian points: */ … … 2687 2687 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2688 2688 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2689 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);2690 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);2691 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);2689 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2690 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 2691 IssmDouble gravity = element->FindParam(ConstantsGEnum); 2692 2692 element->GetVerticesCoordinates(&xyz_list); 2693 2693 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); … … 2873 2873 2874 2874 element->FindParam(&domaintype,DomainTypeEnum); 2875 IssmDouble rho_ice =element-> GetMaterialParameter(MaterialsRhoIceEnum);2876 IssmDouble g =element-> GetMaterialParameter(ConstantsGEnum);2875 IssmDouble rho_ice =element->FindParam(MaterialsRhoIceEnum); 2876 IssmDouble g =element->FindParam(ConstantsGEnum); 2877 2877 switch(domaintype){ 2878 2878 case Domain3DEnum: … … 3124 3124 element->FindParam(&dt,TimesteppingTimeStepEnum); 3125 3125 if(dt==0) dt=1.e+5; 3126 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);3127 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);3126 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 3127 IssmDouble gravity = element->FindParam(ConstantsGEnum); 3128 3128 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 3129 3129 … … 4018 4018 /*Retrieve all inputs and parameters*/ 4019 4019 element->GetVerticesCoordinates(&xyz_list); 4020 IssmDouble rho_ice =element-> GetMaterialParameter(MaterialsRhoIceEnum);4021 IssmDouble gravity =element-> GetMaterialParameter(ConstantsGEnum);4020 IssmDouble rho_ice =element->FindParam(MaterialsRhoIceEnum); 4021 IssmDouble gravity =element->FindParam(ConstantsGEnum); 4022 4022 Input* loadingforcex_input=element->GetInput(LoadingforceXEnum); _assert_(loadingforcex_input); 4023 4023 Input* loadingforcey_input=element->GetInput(LoadingforceYEnum); _assert_(loadingforcey_input); … … 4100 4100 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 4101 4101 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 4102 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);4103 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);4102 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 4103 IssmDouble gravity = element->FindParam(ConstantsGEnum); 4104 4104 4105 4105 /*Initialize gauss points*/ … … 4168 4168 element->GetVerticesCoordinatesBase(&xyz_list_base); 4169 4169 Input* base_input=element->GetInput(BaseEnum); _assert_(base_input); 4170 IssmDouble rho_water=element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);4171 IssmDouble gravity =element-> GetMaterialParameter(ConstantsGEnum);4170 IssmDouble rho_water=element->FindParam(MaterialsRhoSeawaterEnum); 4171 IssmDouble gravity =element->FindParam(ConstantsGEnum); 4172 4172 4173 4173 /* Start looping on the number of gaussian points: */ … … 7324 7324 /*For pressure: we have not computed pressure in this analysis, for this element. We are in 2D, 7325 7325 *so the pressure is just the pressure at the bedrock: */ 7326 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);7327 g = element-> GetMaterialParameter(ConstantsGEnum);7326 rho_ice = element->FindParam(MaterialsRhoIceEnum); 7327 g = element->FindParam(ConstantsGEnum); 7328 7328 element->GetVerticesCoordinates(&xyz_list); 7329 7329 element->GetInputListOnNodes(&surface[0],SurfaceEnum); -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
r23629 r23644 318 318 319 319 /*Retrieve all inputs and parameters*/ 320 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); 321 IssmDouble gravity = element->GetMaterialParameter(ConstantsGEnum); 322 IssmDouble n = element->GetMaterialParameter(MaterialsRheologyNEnum); 323 IssmDouble B; 320 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 321 IssmDouble gravity = element->FindParam(ConstantsGEnum); 322 IssmDouble B,n; 324 323 Input* B_input = element->GetInput(MaterialsRheologyBbarEnum);_assert_(B_input); 324 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 325 325 Input* slopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(slopex_input); 326 326 Input* slopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(slopey_input); … … 339 339 340 340 B_input->GetInputValue(&B,gauss); 341 n_input->GetInputValue(&n,gauss); 341 342 thickness_input->GetInputValue(&thickness,gauss); 342 343 surface_input->GetInputValue(&surface,gauss); … … 407 408 /*Retrieve all inputs and parameters*/ 408 409 element->GetVerticesCoordinates(&xyz_list); 409 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); 410 IssmDouble gravity = element->GetMaterialParameter(ConstantsGEnum); 411 IssmDouble n = element->GetMaterialParameter(MaterialsRheologyNEnum); 412 IssmDouble B; 410 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 411 IssmDouble gravity = element->FindParam(ConstantsGEnum); 412 IssmDouble B,n; 413 413 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 414 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 414 415 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 415 416 Input* slopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(slopex_input); … … 442 443 443 444 B_input->GetInputValue(&B,gauss); 445 n_input->GetInputValue(&n,gauss); 444 446 slopex_input->GetInputValue(&slope[0],gauss); 445 447 slopey_input->GetInputValue(&slope[1],gauss); … … 598 600 /*For pressure: we have not computed pressure in this analysis, for this element. We are in 2D, 599 601 *so the pressure is just the pressure at the bedrock: */ 600 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);601 g = element-> GetMaterialParameter(ConstantsGEnum);602 rho_ice = element->FindParam(MaterialsRhoIceEnum); 603 g = element->FindParam(ConstantsGEnum); 602 604 element->FindParam(&domaintype,DomainTypeEnum); 603 605 switch(domaintype){ -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
r23629 r23644 584 584 *so the pressure is just the pressure at the z elevation: except it this is a HOFS element */ 585 585 if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){ 586 rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);587 g = element-> GetMaterialParameter(ConstantsGEnum);586 rho_ice = element->FindParam(MaterialsRhoIceEnum); 587 g = element->FindParam(ConstantsGEnum); 588 588 element->GetInputListOnNodes(&surface[0],SurfaceEnum,0.); 589 589 for(i=0;i<numnodes;i++) pressure[i]=rho_ice*g*(surface[i]-xyz_list[i*3+2]); -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
r23629 r23644 338 338 element->GetVerticesCoordinatesBase(&xyz_list_base); 339 339 element->FindParam(&dt,TimesteppingTimeStepEnum); 340 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);341 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);342 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);343 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);344 IssmDouble mixed_layer_capacity= element-> GetMaterialParameter(MaterialsMixedLayerCapacityEnum);345 IssmDouble thermal_exchange_vel= element-> GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);340 IssmDouble gravity = element->FindParam(ConstantsGEnum); 341 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 342 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 343 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 344 IssmDouble mixed_layer_capacity= element->FindParam(MaterialsMixedLayerCapacityEnum); 345 IssmDouble thermal_exchange_vel= element->FindParam(MaterialsThermalExchangeVelocityEnum); 346 346 347 347 /* Start looping on the number of gaussian points: */ … … 394 394 element->FindParam(&dt,TimesteppingTimeStepEnum); 395 395 element->FindParam(&stabilization,ThermalStabilizationEnum); 396 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);397 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);398 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);399 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);400 IssmDouble thermalconductivity = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);396 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 397 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 398 IssmDouble gravity = element->FindParam(ConstantsGEnum); 399 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 400 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 401 401 IssmDouble kappa = thermalconductivity/(rho_ice*heatcapacity); 402 402 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); … … 538 538 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 539 539 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input); 540 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);541 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);540 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 541 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 542 542 543 543 /*Build friction element, needed later: */ … … 596 596 element->FindParam(&dt,TimesteppingTimeStepEnum); 597 597 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 598 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);599 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);600 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);601 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);602 IssmDouble mixed_layer_capacity= element-> GetMaterialParameter(MaterialsMixedLayerCapacityEnum);603 IssmDouble thermal_exchange_vel= element-> GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);598 IssmDouble gravity = element->FindParam(ConstantsGEnum); 599 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 600 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 601 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 602 IssmDouble mixed_layer_capacity= element->FindParam(MaterialsMixedLayerCapacityEnum); 603 IssmDouble thermal_exchange_vel= element->FindParam(MaterialsThermalExchangeVelocityEnum); 604 604 605 605 /* Start looping on the number of gaussian points: */ … … 650 650 /*Retrieve all inputs and parameters*/ 651 651 element->GetVerticesCoordinates(&xyz_list); 652 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);653 IssmDouble heatcapacity = element-> GetMaterialParameter(MaterialsHeatcapacityEnum);654 IssmDouble thermalconductivity = element-> GetMaterialParameter(MaterialsThermalconductivityEnum);652 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 653 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 654 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 655 655 IssmDouble kappa = thermalconductivity/(rho_ice*heatcapacity); 656 656 element->FindParam(&dt,TimesteppingTimeStepEnum); … … 807 807 int *doflist = NULL; 808 808 IssmDouble *xyz_list = NULL; 809 IssmDouble n=3.0;810 809 bool hack = false; 811 810 … … 842 841 843 842 /*Get all inputs and parameters*/ 844 if(element->material->ObjectEnum()!=MatestarEnum) n=element->GetMaterialParameter(MaterialsRheologyNEnum);845 843 element->GetInputValue(&converged,ConvergedEnum); 846 844 if(converged){ 847 845 element->AddInput(TemperatureEnum,values,element->GetElementType()); 848 846 847 IssmDouble* n = xNew<IssmDouble>(numnodes); 848 if(element->material->ObjectEnum()!=MatestarEnum){ 849 for(i=0;i<numnodes;i++) n[i]=3.; 850 } 851 else{ 852 element->GetInputListOnNodes(&n[0],MaterialsRheologyNEnum); 853 } 854 849 855 /*Update Rheology only if converged (we must make sure that the temperature is below melting point 850 856 * otherwise the rheology could be negative*/ 851 rheology_law=element->GetIntegerMaterialParameter(MaterialsRheologyLawEnum);857 element->FindParam(&rheology_law,MaterialsRheologyLawEnum); 852 858 element->GetInputListOnNodes(&surface[0],SurfaceEnum); 859 853 860 switch(rheology_law){ 854 861 case NoneEnum: … … 869 876 case ArrheniusEnum:{ 870 877 element->GetVerticesCoordinates(&xyz_list); 871 for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],n );878 for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],n[i]); 872 879 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 873 880 break; … … 876 883 _error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet"); 877 884 } 885 xDelete<IssmDouble>(n); 878 886 } 879 887 else{ -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r23629 r23644 32 32 this->vertices = NULL; 33 33 this->material = NULL; 34 this->matpar = NULL;35 34 this->parameters = NULL; 36 35 this->element_type_list=NULL; … … 403 402 else _printf_("material = NULL\n"); 404 403 405 if (matpar) matpar->DeepEcho();406 else _printf_("matpar = NULL\n");407 408 404 _printf_(" parameters\n"); 409 405 if (parameters) parameters->DeepEcho(); … … 558 554 559 555 /*Get some pdd parameters*/ 560 dpermil=this-> matpar->GetMaterialParameter(SmbDpermilEnum);556 dpermil=this->FindParam(SmbDpermilEnum); 561 557 562 558 this->parameters->FindParam(&isTemperatureScaled,SmbIstemperaturescaledEnum); … … 681 677 682 678 /*Get material parameters :*/ 683 rho_water=this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);684 rho_ice=this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);679 rho_water=this->FindParam(MaterialsRhoSeawaterEnum); 680 rho_ice=this->FindParam(MaterialsRhoIceEnum); 685 681 686 682 /*Recover parameters*/ … … 935 931 else _printf_("material = NULL\n"); 936 932 937 if (matpar) matpar->Echo();938 else _printf_("matpar = NULL\n");939 940 933 _printf_(" parameters\n"); 941 934 if (parameters) parameters->Echo(); … … 947 940 } 948 941 /*}}}*/ 949 IssmDouble Element::EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){/*{{{*/950 return matpar->GetEnthalpyDiffusionParameter(enthalpy,pressure);951 }/*}}}*/952 IssmDouble Element::EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){/*{{{*/953 return matpar->GetEnthalpyDiffusionParameterVolume(numvertices,enthalpy,pressure);954 }/*}}}*/955 void Element::EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){/*{{{*/956 matpar->EnthalpyToThermal(ptemperature,pwaterfraction,enthalpy,pressure);957 }/*}}}*/958 942 void Element::FindParam(bool* pvalue,int paramenum){/*{{{*/ 959 943 this->parameters->FindParam(pvalue,paramenum); … … 964 948 void Element::FindParam(IssmDouble* pvalue,int paramenum){/*{{{*/ 965 949 this->parameters->FindParam(pvalue,paramenum); 950 }/*}}}*/ 951 IssmDouble Element::FindParam(int paramenum){/*{{{*/ 952 return this->parameters->FindParam(paramenum); 966 953 }/*}}}*/ 967 954 void Element::FindParam(int** pvalues,int* psize,int paramenum){/*{{{*/ … … 1326 1313 } 1327 1314 1328 }/*}}}*/1329 IssmDouble Element::GetMaterialParameter(int enum_in){/*{{{*/1330 1331 _assert_(this->matpar);1332 switch(enum_in){ // FIXME: change this to material1333 case MaterialsRheologyNEnum:1334 return this->material->GetN();1335 default:1336 return this->matpar->GetMaterialParameter(enum_in);1337 }1338 }/*}}}*/1339 int Element::GetIntegerMaterialParameter(int enum_in){/*{{{*/1340 1341 return this->matpar->GetIntegerMaterialParameter(enum_in);1342 1315 }/*}}}*/ 1343 1316 void Element::GetNodesLidList(int* lidlist){/*{{{*/ … … 1678 1651 1679 1652 /*recover ice density: */ 1680 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);1653 rho_ice=FindParam(MaterialsRhoIceEnum); 1681 1654 1682 1655 return rho_ice*this->IceVolume(scaled); … … 2313 2286 GetInputListOnVertices(&sl[0],SealevelEnum); 2314 2287 GetInputListOnVertices(&phi[0],MaskGroundediceLevelsetEnum); 2315 rho_water = matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);2316 rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);2288 rho_water = FindParam(MaterialsRhoSeawaterEnum); 2289 rho_ice = FindParam(MaterialsRhoIceEnum); 2317 2290 density = rho_ice/rho_water; 2318 2291 … … 2546 2519 2547 2520 /*Get material parameters :*/ 2548 rho_water=this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);2549 rho_ice=this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);2521 rho_water=this->FindParam(MaterialsRhoSeawaterEnum); 2522 rho_ice=this->FindParam(MaterialsRhoIceEnum); 2550 2523 2551 2524 /*Get some pdd parameters*/ 2552 desfac=this-> matpar->GetMaterialParameter(SmbDesfacEnum);2553 rlaps=this-> matpar->GetMaterialParameter(SmbRlapsEnum);2554 rlapslgm=this-> matpar->GetMaterialParameter(SmbRlapslgmEnum);2525 desfac=this->FindParam(SmbDesfacEnum); 2526 rlaps=this->FindParam(SmbRlapsEnum); 2527 rlapslgm=this->FindParam(SmbRlapslgmEnum); 2555 2528 2556 2529 /*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/ … … 2733 2706 2734 2707 /*Get material parameters :*/ 2735 rho_water=this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);2736 rho_ice=this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);2708 rho_water=this->FindParam(MaterialsRhoSeawaterEnum); 2709 rho_ice=this->FindParam(MaterialsRhoIceEnum); 2737 2710 2738 2711 /*Get parameters for height corrections*/ 2739 desfac=this-> matpar->GetMaterialParameter(SmbDesfacEnum);2740 rlaps=this-> matpar->GetMaterialParameter(SmbRlapsEnum);2712 desfac=this->FindParam(SmbDesfacEnum); 2713 rlaps=this->FindParam(SmbRlapsEnum); 2741 2714 2742 2715 /*Recover monthly temperatures and precipitation*/ … … 2873 2846 } 2874 2847 /*}}}*/ 2875 IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/2876 return this->matpar->PureIceEnthalpy(pressure);2877 }/*}}}*/2878 2848 void Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/ 2879 2849 … … 3123 3093 3124 3094 /*Get material parameters :*/ 3125 rho_water=this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);3126 rho_ice=this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);3127 desfac=this-> matpar->GetMaterialParameter(SmbDesfacEnum);3128 rlaps=this-> matpar->GetMaterialParameter(SmbRlapsEnum);3129 rdl=this-> matpar->GetMaterialParameter(SmbRdlEnum);3095 rho_water=this->FindParam(MaterialsRhoSeawaterEnum); 3096 rho_ice=this->FindParam(MaterialsRhoIceEnum); 3097 desfac=this->FindParam(SmbDesfacEnum); 3098 rlaps=this->FindParam(SmbRlapsEnum); 3099 rdl=this->FindParam(SmbRdlEnum); 3130 3100 3131 3101 /* Retrieve inputs: */ … … 3319 3289 3320 3290 /*Retrieve material properties and parameters:{{{ */ 3321 rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);3322 rho_water = matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);3291 rho_ice = FindParam(MaterialsRhoIceEnum); 3292 rho_water = FindParam(MaterialsRhoFreshwaterEnum); 3323 3293 parameters->FindParam(&aSnow,SmbASnowEnum); 3324 3294 parameters->FindParam(&aIce,SmbAIceEnum); … … 3872 3842 } 3873 3843 /*}}}*/ 3874 void Element::ThermalToEnthalpy(IssmDouble* penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure){/*{{{*/3875 matpar->ThermalToEnthalpy(penthalpy,temperature,waterfraction,pressure);3876 }/*}}}*/3877 IssmDouble Element::TMeltingPoint(IssmDouble pressure){/*{{{*/3878 _assert_(matpar);3879 return this->matpar->TMeltingPoint(pressure);3880 }/*}}}*/3881 3844 IssmDouble Element::TotalFloatingBmb(IssmDouble* mask, bool scaled){/*{{{*/ 3882 3845 … … 4177 4140 } 4178 4141 /*}}}*/ 4142 4143 /*Enthalpy*/ 4144 void Element::ThermalToEnthalpy(IssmDouble * penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure){/*{{{*/ 4145 4146 /*Ouput*/ 4147 IssmDouble enthalpy; 4148 4149 /*Get necessary parameters*/ 4150 IssmDouble latentheat,referencetemperature,heatcapacity; 4151 parameters->FindParam(&latentheat,MaterialsLatentheatEnum); 4152 parameters->FindParam(&referencetemperature,ConstantsReferencetemperatureEnum); 4153 parameters->FindParam(&heatcapacity,MaterialsHeatcapacityEnum); 4154 4155 if(temperature<TMeltingPoint(pressure)){ 4156 enthalpy=heatcapacity*(temperature-referencetemperature); 4157 } 4158 else{ 4159 enthalpy=PureIceEnthalpy(pressure)+latentheat*waterfraction; 4160 } 4161 4162 /*Assign output pointers:*/ 4163 *penthalpy=enthalpy; 4164 } 4165 /*}}}*/ 4166 IssmDouble Element::TMeltingPoint(IssmDouble pressure){/*{{{*/ 4167 4168 /*Get necessary parameters*/ 4169 IssmDouble beta,meltingpoint; 4170 parameters->FindParam(&beta,MaterialsBetaEnum); 4171 parameters->FindParam(&meltingpoint,MaterialsMeltingpointEnum); 4172 4173 return meltingpoint-beta*pressure; 4174 } 4175 /*}}}*/ 4176 void Element::EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){/*{{{*/ 4177 4178 /*Ouput*/ 4179 IssmDouble temperature,waterfraction; 4180 4181 /*Get necessary parameters*/ 4182 IssmDouble latentheat,referencetemperature,heatcapacity; 4183 parameters->FindParam(&latentheat,MaterialsLatentheatEnum); 4184 parameters->FindParam(&referencetemperature,ConstantsReferencetemperatureEnum); 4185 parameters->FindParam(&heatcapacity,MaterialsHeatcapacityEnum); 4186 4187 if(enthalpy<PureIceEnthalpy(pressure)){ 4188 temperature=referencetemperature+enthalpy/heatcapacity; 4189 waterfraction=0.; 4190 } 4191 else{ 4192 temperature=TMeltingPoint(pressure); 4193 waterfraction=(enthalpy-PureIceEnthalpy(pressure))/latentheat; 4194 } 4195 4196 /*Assign output pointers:*/ 4197 *pwaterfraction=waterfraction; 4198 *ptemperature=temperature; 4199 } 4200 /*}}}*/ 4201 IssmDouble Element::EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){/*{{{*/ 4202 4203 /*Get necessary parameters*/ 4204 IssmDouble heatcapacity,thermalconductivity,temperateiceconductivity; 4205 parameters->FindParam(&heatcapacity,MaterialsHeatcapacityEnum); 4206 parameters->FindParam(&thermalconductivity,MaterialsThermalconductivityEnum); 4207 parameters->FindParam(&temperateiceconductivity,MaterialsTemperateiceconductivityEnum); 4208 4209 if(enthalpy<PureIceEnthalpy(pressure)){ 4210 return thermalconductivity/heatcapacity; 4211 } 4212 else{ 4213 return temperateiceconductivity/heatcapacity; 4214 } 4215 } 4216 /*}}}*/ 4217 IssmDouble Element::EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){/*{{{*/ 4218 4219 IssmDouble lambda; // fraction of cold ice 4220 IssmDouble kappa,kappa_c,kappa_t; //enthalpy conductivities 4221 IssmDouble Hc,Ht; 4222 IssmDouble* PIE = xNew<IssmDouble>(numvertices); 4223 IssmDouble* dHpmp = xNew<IssmDouble>(numvertices); 4224 4225 for(int iv=0; iv<numvertices; iv++){ 4226 PIE[iv]=PureIceEnthalpy(pressure[iv]); 4227 dHpmp[iv]=enthalpy[iv]-PIE[iv]; 4228 } 4229 4230 bool allequalsign=true; 4231 if(dHpmp[0]<0){ 4232 for(int iv=1; iv<numvertices;iv++) allequalsign=(allequalsign && (dHpmp[iv]<0)); 4233 } 4234 else{ 4235 for(int iv=1; iv<numvertices;iv++) allequalsign=(allequalsign && (dHpmp[iv]>=0)); 4236 } 4237 4238 if(allequalsign){ 4239 kappa=EnthalpyDiffusionParameter(enthalpy[0], pressure[0]); 4240 } 4241 else { 4242 /* return harmonic mean of thermal conductivities, weighted by fraction of cold/temperate ice, 4243 cf Patankar 1980, pp44 */ 4244 kappa_c=EnthalpyDiffusionParameter(PureIceEnthalpy(0.)-1.,0.); 4245 kappa_t=EnthalpyDiffusionParameter(PureIceEnthalpy(0.)+1.,0.); 4246 Hc=0.; Ht=0.; 4247 for(int iv=0; iv<numvertices;iv++){ 4248 if(enthalpy[iv]<PIE[iv]) 4249 Hc+=(PIE[iv]-enthalpy[iv]); 4250 else 4251 Ht+=(enthalpy[iv]-PIE[iv]); 4252 } 4253 _assert_((Hc+Ht)>0.); 4254 lambda = Hc/(Hc+Ht); 4255 kappa = 1./(lambda/kappa_c + (1.-lambda)/kappa_t); 4256 } 4257 4258 /*Clean up and return*/ 4259 xDelete<IssmDouble>(PIE); 4260 xDelete<IssmDouble>(dHpmp); 4261 return kappa; 4262 } 4263 /*}}}*/ 4264 IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/ 4265 4266 /*Get necessary parameters*/ 4267 IssmDouble referencetemperature,heatcapacity; 4268 parameters->FindParam(&referencetemperature,ConstantsReferencetemperatureEnum); 4269 parameters->FindParam(&heatcapacity,MaterialsHeatcapacityEnum); 4270 4271 return heatcapacity*(TMeltingPoint(pressure)-referencetemperature); 4272 } 4273 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r23629 r23644 23 23 class Materials; 24 24 class Material; 25 class Matpar;26 25 class Inputs; 27 26 class Input; … … 44 43 Vertex **vertices; 45 44 Material *material; 46 Matpar *matpar;47 45 Parameters *parameters; 48 46 … … 75 73 void dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 76 74 void Echo(); 77 IssmDouble EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure);78 IssmDouble EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure);79 void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure);80 75 void FindParam(bool* pvalue,int paramenum); 81 76 void FindParam(int* pvalue,int paramenum); 82 77 void FindParam(IssmDouble* pvalue,int paramenum); 78 IssmDouble FindParam(int paramenum); 83 79 void FindParam(int** pvalues,int* psize,int paramenum); 84 80 IssmDouble FloatingArea(IssmDouble* mask, bool scaled); … … 102 98 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int enum_type); 103 99 void GetInputsInterpolations(Vector<IssmDouble>* interps); 104 IssmDouble GetMaterialParameter(int enum_in);105 int GetIntegerMaterialParameter(int enum_in);106 100 void GetNodesLidList(int* lidlist); 107 101 void GetNodesSidList(int* sidlist); … … 151 145 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm,bool issetpddfac); 152 146 void PositiveDegreeDaySicopolis(bool isfirnwarming); 153 IssmDouble PureIceEnthalpy(IssmDouble pressure);154 147 void ResultInterpolation(int* pinterpolation,int*nodesperelement,int* parray_size, int output_enum); 155 148 void ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum); … … 167 160 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input); 168 161 void StressMaxPrincipalCreateInput(void); 169 void ThermalToEnthalpy(IssmDouble* penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure);170 IssmDouble TMeltingPoint(IssmDouble pressure);171 162 IssmDouble TotalFloatingBmb(IssmDouble* mask, bool scaled); 172 163 IssmDouble TotalGroundedBmb(IssmDouble* mask, bool scaled); … … 193 184 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");};/*Tiling only*/ 194 185 void ViscousHeatingCreateInput(void); 186 void ThermalToEnthalpy(IssmDouble * penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure); 187 IssmDouble TMeltingPoint(IssmDouble pressure); 188 void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure); 189 IssmDouble EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure); 190 IssmDouble EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure); 191 IssmDouble PureIceEnthalpy(IssmDouble pressure); 195 192 196 193 -
issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp
r23532 r23644 21 21 this->hvertices = NULL; 22 22 this->hmaterial = NULL; 23 this->hmatpar = NULL;24 23 this->hneighbors = NULL; 25 24 } … … 35 34 delete hvertices; 36 35 delete hmaterial; 37 delete hmatpar;38 36 delete hneighbors; 39 37 } … … 41 39 ElementHook::ElementHook(int in_numanalyses,int element_id,int numvertices,IoModel* iomodel){/*{{{*/ 42 40 43 /*intermediary: */ 44 int matpar_id; 41 /*retrieve material_id*/ 45 42 int material_id; 46 47 /*retrieve material_id: */48 matpar_id = iomodel->numberofelements+1;49 50 /*retrieve material_id*/51 43 material_id = element_id; 52 44 … … 61 53 this->hvertices = new Hook(&vertex_ids[0],numvertices); 62 54 this->hmaterial = new Hook(&material_id,1); 63 this->hmatpar = new Hook(&matpar_id,1);64 55 this->hneighbors = NULL; 65 56 … … 109 100 this->hvertices = new Hook(); 110 101 this->hmaterial = new Hook(); 111 this->hmatpar = new Hook();112 102 if(!hneighbors_null)this->hneighbors = new Hook(); 113 103 else this->hneighbors=NULL; … … 127 117 this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 128 118 this->hmaterial->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 129 this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);130 119 if(this->hneighbors)this->hneighbors->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 131 120 … … 158 147 else _printf_(" hmaterial = NULL\n"); 159 148 160 _printf_(" hmatpar:\n");161 if(hmatpar) hmatpar->DeepEcho();162 else _printf_(" hmatpar = NULL\n");163 164 149 _printf_(" hneighbors:\n"); 165 150 if(hneighbors) hneighbors->DeepEcho(); … … 189 174 if(hmaterial) hmaterial->Echo(); 190 175 else _printf_(" hmaterial = NULL\n"); 191 192 _printf_(" hmatpar:\n");193 if(hmatpar) hmatpar->Echo();194 else _printf_(" hmatpar = NULL\n");195 176 196 177 _printf_(" hneighbors:\n"); … … 232 213 triahook->hmaterial=NULL; 233 214 triahook->hvertices=(Hook*)this->hvertices->Spawn(indices,2); 234 triahook->hmatpar=(Hook*)this->hmatpar->copy();235 215 } 236 216 /*}}}*/ … … 260 240 triahook->hmaterial=NULL; 261 241 triahook->hvertices=(Hook*)this->hvertices->Spawn(indices,3); 262 triahook->hmatpar=(Hook*)this->hmatpar->copy(); 263 } 264 /*}}}*/ 242 } 243 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/ElementHook.h
r21508 r23644 16 16 Hook *hvertices; // vertices 17 17 Hook *hmaterial; // 1 ice material 18 Hook *hmatpar; // 1 material parameter19 18 Hook *hneighbors; // 2 elements, first down, second up in 3d only 20 19 -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r23638 r23644 54 54 this->vertices = NULL; 55 55 this->material = NULL; 56 this->matpar = NULL;57 56 this->verticalneighbors = NULL; 58 57 … … 93 92 penta->hvertices = (Hook*)this->hvertices->copy(); 94 93 penta->hmaterial = (Hook*)this->hmaterial->copy(); 95 penta->hmatpar = (Hook*)this->hmatpar->copy();96 94 if (this->hneighbors) penta->hneighbors = (Hook*)(this->hneighbors->copy()); 97 95 else penta->hneighbors = NULL; … … 116 114 penta->vertices = (Vertex**)this->hvertices->deliverp(); 117 115 penta->material = (Material*)this->hmaterial->delivers(); 118 penta->matpar = (Matpar*)this->hmatpar->delivers();119 116 penta->verticalneighbors = (Penta**)this->hneighbors->deliverp(); 120 117 … … 134 131 vertices = (Vertex**)this->hvertices->deliverp(); 135 132 material = (Material*)this->hmaterial->delivers(); 136 matpar = (Matpar*)this->hmatpar->delivers();137 133 verticalneighbors = (Penta**)this->hneighbors->deliverp(); 138 134 … … 192 188 IssmDouble calvingrate[NUMVERTICES]; 193 189 IssmDouble lambda1,lambda2,ex,ey,vx,vy,vel; 194 IssmDouble B,sigma_vm,sigma_max,sigma_max_floating,sigma_max_grounded ;190 IssmDouble B,sigma_vm,sigma_max,sigma_max_floating,sigma_max_grounded,n; 195 191 IssmDouble epse_2,groundedice,bed; 196 192 … … 209 205 Input* bs_input = inputs->GetInput(BaseEnum); _assert_(bs_input); 210 206 Input* B_input = inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 207 Input* n_input = inputs->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 211 208 Input* smax_fl_input = inputs->GetInput(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input); 212 209 Input* smax_gr_input = inputs->GetInput(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input); 213 IssmDouble n = this->GetMaterialParameter(MaterialsRheologyNEnum);214 210 215 211 /* Start looping on the number of vertices: */ … … 220 216 /*Get velocity components and thickness*/ 221 217 B_input->GetInputValue(&B,gauss); 218 n_input->GetInputValue(&n,gauss); 222 219 vx_input->GetInputValue(&vx,gauss); 223 220 vy_input->GetInputValue(&vy,gauss); … … 366 363 367 364 /*recovre material parameters: */ 368 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);369 gravity= matpar->GetMaterialParameter(ConstantsGEnum);365 rho_ice=FindParam(MaterialsRhoIceEnum); 366 gravity=FindParam(ConstantsGEnum); 370 367 371 368 /* Get node coordinates and dof list: */ … … 542 539 this->hvertices->configure(verticesin); 543 540 this->hmaterial->configure(materialsin); 544 this->hmatpar->configure(materialsin);545 541 this->hneighbors->configure(elementsin); 546 542 … … 550 546 this->vertices = (Vertex**)this->hvertices->deliverp(); 551 547 this->material = (Material*)this->hmaterial->delivers(); 552 this->matpar = (Matpar*)this->hmatpar->delivers();553 548 this->verticalneighbors = (Penta**)this->hneighbors->deliverp(); 554 549 … … 762 757 GetInputListOnVertices(&pressure[0],PressureEnum); 763 758 GetInputListOnVertices(&phi[0],MaskGroundediceLevelsetEnum); 764 IssmDouble rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);765 IssmDouble rho_water = matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);766 IssmDouble gravity = matpar->GetMaterialParameter(ConstantsGEnum);759 IssmDouble rho_ice = FindParam(MaterialsRhoIceEnum); 760 IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum); 761 IssmDouble gravity = FindParam(ConstantsGEnum); 767 762 768 763 /* Get node coordinates and dof list: */ … … 1331 1326 if(!IsIceInElement() || IsFloating() || !IsOnBase())return 0; 1332 1327 1333 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);1334 rho_water= matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);1328 rho_ice=FindParam(MaterialsRhoIceEnum); 1329 rho_water=FindParam(MaterialsRhoSeawaterEnum); 1335 1330 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 1336 1331 … … 2129 2124 2130 2125 /*material parameters: */ 2131 rho_water= matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);2132 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2126 rho_water=FindParam(MaterialsRhoSeawaterEnum); 2127 rho_ice=FindParam(MaterialsRhoIceEnum); 2133 2128 density=rho_ice/rho_water; 2134 2129 GetInputListOnVertices(&h[0],ThicknessEnum); … … 2277 2272 this->vertices=NULL; 2278 2273 this->material=NULL; 2279 this->matpar=NULL;2280 2274 this->verticalneighbors=NULL; 2281 2275 this->parameters=NULL; … … 2285 2279 this->hvertices->reset(); 2286 2280 this->hmaterial->reset(); 2287 this->hmatpar->reset();2288 2281 if(this->hneighbors) this->hneighbors->reset(); 2289 2282 … … 2461 2454 tria->material=(Material*)this->material->copy2(tria); 2462 2455 2463 /*recover nodes, material and matpar:*/2456 /*recover nodes, material*/ 2464 2457 tria->nodes=(Node**)tria->hnodes[analysis_counter]->deliverp(); 2465 2458 tria->vertices=(Vertex**)tria->hvertices->deliverp(); 2466 tria->matpar=(Matpar*)tria->hmatpar->delivers();2467 2459 2468 2460 /*Return new Tria*/ … … 2751 2743 2752 2744 /*Get material parameters :*/ 2753 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2745 rho_ice=FindParam(MaterialsRhoIceEnum); 2754 2746 Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 2755 2747 Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); … … 2796 2788 2797 2789 /*Get material parameters :*/ 2798 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2790 rho_ice=FindParam(MaterialsRhoIceEnum); 2799 2791 Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 2800 2792 Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); … … 2835 2827 2836 2828 /*Get material parameters :*/ 2837 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2829 rho_ice=FindParam(MaterialsRhoIceEnum); 2838 2830 2839 2831 if(!IsIceInElement() || !IsOnSurface()) return 0.; … … 3492 3484 /*hydrostatic equilibrium: */ 3493 3485 IssmDouble rho_ice,rho_water,di; 3494 rho_ice=this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);3495 rho_water=this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);3486 rho_ice=this->FindParam(MaterialsRhoIceEnum); 3487 rho_water=this->FindParam(MaterialsRhoSeawaterEnum); 3496 3488 3497 3489 di=rho_ice/rho_water; -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r23599 r23644 19 19 class Node; 20 20 class Material; 21 class Matpar;22 21 class Tria; 23 22 class ElementMatrix; -
issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
r23066 r23644 36 36 this->vertices = NULL; 37 37 this->material = NULL; 38 this->matpar = NULL;39 38 40 39 /*Only allocate pointer*/ … … 78 77 seg->hvertices = (Hook*)this->hvertices->copy(); 79 78 seg->hmaterial = (Hook*)this->hmaterial->copy(); 80 seg->hmatpar = (Hook*)this->hmatpar->copy();81 79 seg->hneighbors = NULL; 82 80 … … 100 98 seg->vertices = (Vertex**)this->hvertices->deliverp(); 101 99 seg->material = (Material*)this->hmaterial->delivers(); 102 seg->matpar = (Matpar*)this->hmatpar->delivers();103 100 104 101 return seg; … … 117 114 vertices = (Vertex**)this->hvertices->deliverp(); 118 115 material = (Material*)this->hmaterial->delivers(); 119 matpar = (Matpar*)this->hmatpar->delivers();120 116 121 117 } -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r22990 r23644 17 17 class Node; 18 18 class Material; 19 class Matpar;20 19 class ElementMatrix; 21 20 class ElementVector; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
r23629 r23644 37 37 this->vertices = NULL; 38 38 this->material = NULL; 39 this->matpar = NULL;40 39 41 40 /*Only allocate pointer*/ … … 79 78 tetra->hvertices = (Hook*)this->hvertices->copy(); 80 79 tetra->hmaterial = (Hook*)this->hmaterial->copy(); 81 tetra->hmatpar = (Hook*)this->hmatpar->copy();82 80 tetra->hneighbors = NULL; 83 81 … … 98 96 tetra->vertices = (Vertex**)this->hvertices->deliverp(); 99 97 tetra->material = (Material*)this->hmaterial->delivers(); 100 tetra->matpar = (Matpar*)this->hmatpar->delivers();101 98 102 99 return tetra; … … 114 111 vertices = (Vertex**)this->hvertices->deliverp(); 115 112 material = (Material*)this->hmaterial->delivers(); 116 matpar = (Matpar*)this->hmatpar->delivers();117 113 118 114 } … … 141 137 this->hvertices->configure(verticesin); 142 138 this->hmaterial->configure(materialsin); 143 this->hmatpar->configure(materialsin);144 139 145 140 /*Now, go pick up the objects inside the hooks: */ … … 148 143 this->vertices = (Vertex**)this->hvertices->deliverp(); 149 144 this->material = (Material*)this->hmaterial->delivers(); 150 this->matpar = (Matpar*)this->hmatpar->delivers();151 145 152 146 /*point parameters to real dataset: */ … … 812 806 this->vertices=NULL; 813 807 this->material=NULL; 814 this->matpar=NULL;815 808 this->parameters=NULL; 816 809 … … 819 812 this->hvertices->reset(); 820 813 this->hmaterial->reset(); 821 this->hmatpar->reset();822 814 if(this->hneighbors) this->hneighbors->reset(); 823 815 } … … 872 864 tria->material=(Material*)this->material->copy2(tria); 873 865 874 /*recover nodes, material and matpar:*/866 /*recover nodes, material*/ 875 867 tria->nodes = (Node**)tria->hnodes[analysis_counter]->deliverp(); 876 868 tria->vertices = (Vertex**)tria->hvertices->deliverp(); 877 tria->matpar = (Matpar*)tria->hmatpar->delivers();878 869 879 870 /*Return new Tria*/ -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r22990 r23644 17 17 class Node; 18 18 class Material; 19 class Matpar;20 19 class ElementMatrix; 21 20 class ElementVector; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r23629 r23644 42 42 this->vertices = NULL; 43 43 this->material = NULL; 44 this->matpar = NULL;45 44 if(nummodels>0){ 46 45 this->element_type_list=xNew<int>(nummodels); … … 87 86 tria->hvertices = (Hook*)this->hvertices->copy(); 88 87 tria->hmaterial = (Hook*)this->hmaterial->copy(); 89 tria->hmatpar = (Hook*)this->hmatpar->copy();90 88 tria->hneighbors = NULL; 91 89 … … 109 107 tria->vertices = (Vertex**)this->hvertices->deliverp(); 110 108 tria->material = (Material*)this->hmaterial->delivers(); 111 tria->matpar = (Matpar*)this->hmatpar->delivers();112 109 113 110 return tria; … … 125 122 vertices = (Vertex**)this->hvertices->deliverp(); 126 123 material = (Material*)this->hmaterial->delivers(); 127 matpar = (Matpar*)this->hmatpar->delivers();128 124 129 125 } … … 247 243 IssmDouble lambda1,lambda2,ex,ey,vx,vy,vel; 248 244 IssmDouble sigma_vm[NUMVERTICES]; 249 IssmDouble B,sigma_max,sigma_max_floating,sigma_max_grounded ;245 IssmDouble B,sigma_max,sigma_max_floating,sigma_max_grounded,n; 250 246 IssmDouble epse_2,groundedice,bed; 251 247 … … 261 257 Input* smax_fl_input = inputs->GetInput(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input); 262 258 Input* smax_gr_input = inputs->GetInput(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input); 263 I ssmDouble n = this->GetMaterialParameter(MaterialsRheologyNEnum);259 Input* n_input = inputs->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 264 260 265 261 /* Start looping on the number of vertices: */ … … 270 266 /*Get velocity components and thickness*/ 271 267 B_input->GetInputValue(&B,gauss); 268 n_input->GetInputValue(&n,gauss); 272 269 vx_input->GetInputValue(&vx,gauss); 273 270 vy_input->GetInputValue(&vy,gauss); … … 334 331 IssmDouble water_height, bed,Ho,thickness,surface; 335 332 IssmDouble surface_crevasse[NUMVERTICES], basal_crevasse[NUMVERTICES], crevasse_depth[NUMVERTICES], H_surf, H_surfbasal; 336 IssmDouble B, strainparallel, straineffective ;333 IssmDouble B, strainparallel, straineffective,n; 337 334 IssmDouble s_xx,s_xy,s_yy,s1,s2,stmp; 338 335 int crevasse_opening_stress; … … 344 341 this->parameters->FindParam(&crevasse_opening_stress,CalvingCrevasseDepthEnum); 345 342 346 IssmDouble rho_ice = this->GetMaterialParameter(MaterialsRhoIceEnum); 347 IssmDouble rho_seawater = this->GetMaterialParameter(MaterialsRhoSeawaterEnum); 348 IssmDouble rho_freshwater = this->GetMaterialParameter(MaterialsRhoFreshwaterEnum); 349 IssmDouble constant_g = this->GetMaterialParameter(ConstantsGEnum); 350 IssmDouble rheology_n = this->GetMaterialParameter(MaterialsRheologyNEnum); 343 IssmDouble rho_ice = this->FindParam(MaterialsRhoIceEnum); 344 IssmDouble rho_seawater = this->FindParam(MaterialsRhoSeawaterEnum); 345 IssmDouble rho_freshwater = this->FindParam(MaterialsRhoFreshwaterEnum); 346 IssmDouble constant_g = this->FindParam(ConstantsGEnum); 351 347 352 348 Input* H_input = inputs->GetInput(ThicknessEnum); _assert_(H_input); … … 362 358 Input* s_yy_input = inputs->GetInput(DeviatoricStressyyEnum); _assert_(s_yy_input); 363 359 Input* B_input = inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 360 Input* n_input = inputs->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 364 361 365 362 /*Loop over all elements of this partition*/ … … 380 377 s_yy_input->GetInputValue(&s_yy,gauss); 381 378 B_input->GetInputValue(&B,gauss); 379 n_input->GetInputValue(&n,gauss); 382 380 383 381 vel=sqrt(vx*vx+vy*vy)+1.e-14; … … 391 389 392 390 if(crevasse_opening_stress==0){ /*Otero2010: balance between the tensile deviatoric stress and ice overburden pressure*/ 393 surface_crevasse[iv] = B * strainparallel * pow(straineffective, ((1 / rheology_n)-1)) / (rho_ice * constant_g);394 basal_crevasse[iv] = (rho_ice/(rho_seawater-rho_ice)) * (B * strainparallel * pow(straineffective,((1/ rheology_n)-1)) / (rho_ice*constant_g) - Ho);391 surface_crevasse[iv] = B * strainparallel * pow(straineffective, ((1 / n)-1)) / (rho_ice * constant_g); 392 basal_crevasse[iv] = (rho_ice/(rho_seawater-rho_ice)) * (B * strainparallel * pow(straineffective,((1/n)-1)) / (rho_ice*constant_g) - Ho); 395 393 } 396 394 else if(crevasse_opening_stress==1){ /*Benn2017,Todd2018: maximum principal stress */ … … 730 728 this->hvertices->configure(verticesin); 731 729 this->hmaterial->configure(materialsin); 732 this->hmatpar->configure(materialsin);733 730 734 731 /*Now, go pick up the objects inside the hooks: */ … … 737 734 this->vertices = (Vertex**)this->hvertices->deliverp(); 738 735 this->material = (Material*)this->hmaterial->delivers(); 739 this->matpar = (Matpar*)this->hmatpar->delivers();740 736 741 737 /*point parameters to real dataset: */ … … 1029 1025 GetInputListOnVertices(&pressure[0],PressureEnum); 1030 1026 GetInputListOnVertices(&phi[0],MaskGroundediceLevelsetEnum); 1031 IssmDouble rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);1032 IssmDouble rho_water = matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);1033 IssmDouble gravity = matpar->GetMaterialParameter(ConstantsGEnum);1027 IssmDouble rho_ice = FindParam(MaterialsRhoIceEnum); 1028 IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum); 1029 IssmDouble gravity = FindParam(ConstantsGEnum); 1034 1030 1035 1031 /* Get node coordinates and dof list: */ … … 1965 1961 if(!IsIceInElement() || IsFloating())return 0; 1966 1962 1967 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);1968 rho_water= matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);1963 rho_ice=FindParam(MaterialsRhoIceEnum); 1964 rho_water=FindParam(MaterialsRhoSeawaterEnum); 1969 1965 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 1970 1966 … … 2419 2415 2420 2416 /*Retrieve material parameters: */ 2421 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2417 rho_ice=FindParam(MaterialsRhoIceEnum); 2422 2418 2423 2419 /*Retrieve values of the levelset defining the masscon: */ … … 2462 2458 2463 2459 /*Get material parameters :*/ 2464 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2460 rho_ice=FindParam(MaterialsRhoIceEnum); 2465 2461 2466 2462 /*First off, check that this segment belongs to this element: */ … … 2525 2521 2526 2522 /*Get material parameters :*/ 2527 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);2523 rho_ice=FindParam(MaterialsRhoIceEnum); 2528 2524 2529 2525 /*First off, check that this segment belongs to this element: */ … … 2914 2910 2915 2911 /*Get variables*/ 2916 IssmDouble rhoi = this-> GetMaterialParameter(MaterialsRhoIceEnum);2917 IssmDouble rhow = this-> GetMaterialParameter(MaterialsRhoSeawaterEnum);2918 IssmDouble earth_grav = this-> GetMaterialParameter(ConstantsGEnum);2912 IssmDouble rhoi = this->FindParam(MaterialsRhoIceEnum); 2913 IssmDouble rhow = this->FindParam(MaterialsRhoSeawaterEnum); 2914 IssmDouble earth_grav = this->FindParam(ConstantsGEnum); 2919 2915 IssmDouble rho_star = 1033.; // kg/m^3 2920 2916 IssmDouble nu = rhoi/rhow; 2921 IssmDouble latentheat = this-> GetMaterialParameter(MaterialsLatentheatEnum);2922 IssmDouble c_p_ocean = this-> GetMaterialParameter(MaterialsMixedLayerCapacityEnum);2917 IssmDouble latentheat = this->FindParam(MaterialsLatentheatEnum); 2918 IssmDouble c_p_ocean = this->FindParam(MaterialsMixedLayerCapacityEnum); 2923 2919 IssmDouble lambda = latentheat/c_p_ocean; 2924 2920 IssmDouble a = -0.0572; // K/psu 2925 IssmDouble b = 0.0788 + this-> GetMaterialParameter(MaterialsMeltingpointEnum); //K2921 IssmDouble b = 0.0788 + this->FindParam(MaterialsMeltingpointEnum); //K 2926 2922 IssmDouble c = 7.77e-4; 2927 2923 IssmDouble alpha = 7.5e-5; // 1/K … … 3139 3135 3140 3136 /*material parameters: */ 3141 rho_water= matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);3142 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);3137 rho_water=FindParam(MaterialsRhoSeawaterEnum); 3138 rho_ice=FindParam(MaterialsRhoIceEnum); 3143 3139 density=rho_ice/rho_water; 3144 3140 GetInputListOnVertices(&h[0],ThicknessEnum); … … 3256 3252 this->vertices=NULL; 3257 3253 this->material=NULL; 3258 this->matpar=NULL;3259 3254 this->parameters=NULL; 3260 3255 … … 3263 3258 this->hvertices->reset(); 3264 3259 this->hmaterial->reset(); 3265 this->hmatpar->reset();3266 3260 if(this->hneighbors) this->hneighbors->reset(); 3267 3261 … … 3413 3407 seg->material=(Material*)this->material->copy2(seg); 3414 3408 3415 /*recover nodes, material and matpar:*/3409 /*recover nodes, material*/ 3416 3410 seg->nodes = (Node**)seg->hnodes[analysis_counter]->deliverp(); 3417 3411 seg->vertices = (Vertex**)seg->hvertices->deliverp(); 3418 seg->matpar = (Matpar*)seg->hmatpar->delivers();3419 3412 3420 3413 /*Return new Seg*/ … … 3618 3611 3619 3612 /*Get material parameters :*/ 3620 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);3613 rho_ice=FindParam(MaterialsRhoIceEnum); 3621 3614 Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 3622 3615 Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); … … 3663 3656 3664 3657 /*Get material parameters :*/ 3665 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);3658 rho_ice=FindParam(MaterialsRhoIceEnum); 3666 3659 Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 3667 3660 Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); … … 3702 3695 3703 3696 /*Get material parameters :*/ 3704 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);3697 rho_ice=FindParam(MaterialsRhoIceEnum); 3705 3698 3706 3699 if(!IsIceInElement())return 0; … … 4076 4069 4077 4070 /*recover material parameters: */ 4078 lithosphere_shear_modulus= matpar->GetMaterialParameter(MaterialsLithosphereShearModulusEnum);4079 lithosphere_density= matpar->GetMaterialParameter(MaterialsLithosphereDensityEnum);4080 mantle_shear_modulus= matpar->GetMaterialParameter(MaterialsMantleShearModulusEnum);4081 mantle_density= matpar->GetMaterialParameter(MaterialsMantleDensityEnum);4082 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4071 lithosphere_shear_modulus=FindParam(MaterialsLithosphereShearModulusEnum); 4072 lithosphere_density=FindParam(MaterialsLithosphereDensityEnum); 4073 mantle_shear_modulus=FindParam(MaterialsMantleShearModulusEnum); 4074 mantle_density=FindParam(MaterialsMantleDensityEnum); 4075 rho_ice=FindParam(MaterialsRhoIceEnum); 4083 4076 4084 4077 /*pull thickness averages: */ … … 4185 4178 4186 4179 /*recover material parameters: */ 4187 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4188 rho_earth= matpar->GetMaterialParameter(MaterialsEarthDensityEnum);4180 rho_ice=FindParam(MaterialsRhoIceEnum); 4181 rho_earth=FindParam(MaterialsEarthDensityEnum); 4189 4182 4190 4183 /*how many dofs are we working with here? */ … … 4323 4316 4324 4317 /*recover material parameters: */ 4325 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4326 rho_earth= matpar->GetMaterialParameter(MaterialsEarthDensityEnum);4318 rho_ice=FindParam(MaterialsRhoIceEnum); 4319 rho_earth=FindParam(MaterialsEarthDensityEnum); 4327 4320 4328 4321 /*how many dofs are we working with here? */ … … 4528 4521 4529 4522 /*recover material parameters: */ 4530 rho_water= matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);4523 rho_water=FindParam(MaterialsRhoFreshwaterEnum); 4531 4524 4532 4525 /*From Sg_old, recover water sea level rise:*/ … … 4546 4539 4547 4540 /*recover material parameters: */ 4548 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4541 rho_ice=FindParam(MaterialsRhoIceEnum); 4549 4542 4550 4543 /*Compute ice thickness change: */ … … 4614 4607 4615 4608 /*recover material parameters: */ 4616 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4617 rho_water= matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);4618 rho_earth= matpar->GetMaterialParameter(MaterialsEarthDensityEnum);4609 rho_ice=FindParam(MaterialsRhoIceEnum); 4610 rho_water=FindParam(MaterialsRhoFreshwaterEnum); 4611 rho_earth=FindParam(MaterialsEarthDensityEnum); 4619 4612 4620 4613 /*recover love numbers and computational flags: */ … … 4808 4801 4809 4802 /*recover material parameters: */ 4810 rho_water= matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);4811 rho_earth= matpar->GetMaterialParameter(MaterialsEarthDensityEnum);4803 rho_water=FindParam(MaterialsRhoFreshwaterEnum); 4804 rho_earth=FindParam(MaterialsEarthDensityEnum); 4812 4805 4813 4806 /*how many dofs are we working with here? */ … … 4960 4953 4961 4954 /*recover material parameters: */ 4962 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);4963 rho_water= matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);4964 rho_earth= matpar->GetMaterialParameter(MaterialsEarthDensityEnum);4955 rho_ice=FindParam(MaterialsRhoIceEnum); 4956 rho_water=FindParam(MaterialsRhoFreshwaterEnum); 4957 rho_earth=FindParam(MaterialsEarthDensityEnum); 4965 4958 4966 4959 /*how many dofs are we working with here? */ … … 5193 5186 /*hydrostatic equilibrium: */ 5194 5187 IssmDouble rho_ice,rho_water,di; 5195 rho_ice = this-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);5196 rho_water = this-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);5188 rho_ice = this->FindParam(MaterialsRhoIceEnum); 5189 rho_water = this->FindParam(MaterialsRhoSeawaterEnum); 5197 5190 di = rho_ice/rho_water; 5198 5191 -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r23599 r23644 17 17 class Node; 18 18 class Material; 19 class Matpar;20 19 class Seg; 21 20 class ElementMatrix; -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r23642 r23644 2993 2993 element->GetInputListOnVertices(&r[0],BedEnum); 2994 2994 element->GetInputListOnVertices(&sl[0],SealevelEnum); 2995 rho_water = element-> matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);2996 rho_ice = element-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);2995 rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2996 rho_ice = element->FindParam(MaterialsRhoIceEnum); 2997 2997 density = rho_ice/rho_water; 2998 2998 … … 3370 3370 newtria->vertices=NULL; 3371 3371 newtria->material=NULL; 3372 newtria->matpar=NULL;3373 3372 if(this->nummodels>0){ 3374 3373 newtria->element_type_list=xNew<int>(this->nummodels); … … 3378 3377 3379 3378 /*Element hook*/ 3380 int matpar_id=newnumberofelements+1; //retrieve material parameter id (last pointer in femodel->materials)3381 3379 int material_id=i+1; // retrieve material_id = i+1; 3382 3380 /*retrieve vertices ids*/ … … 3388 3386 newtria->hvertices =new Hook(&vertex_ids[0],elementswidth); 3389 3387 newtria->hmaterial =new Hook(&material_id,1); 3390 newtria->hmatpar =new Hook(&matpar_id,1);3391 3388 newtria->hneighbors =NULL; 3392 3389 /*Initialize hnodes as NULL*/ … … 3408 3405 } 3409 3406 } 3410 3411 /*Add new constant material property to materials, at the end: */3412 Matpar *newmatpar=static_cast<Matpar*>(this->materials->GetObjectByOffset(this->materials->Size()-1)->copy());3413 newmatpar->SetMid(newnumberofelements+1);3414 materials->AddObject(newmatpar);//put it at the end of the materials3415 3407 } 3416 3408 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r23538 r23644 263 263 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 264 264 element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum); 265 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);266 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);267 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);265 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 266 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 267 IssmDouble gravity = element->FindParam(ConstantsGEnum); 268 268 269 269 //compute r and q coefficients: */ … … 398 398 element->GetInputValue(&sealevel, gauss,SealevelEnum); 399 399 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 400 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoFreshwaterEnum);401 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);402 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);400 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 401 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 402 IssmDouble gravity = element->FindParam(ConstantsGEnum); 403 403 404 404 //From base and thickness, compute effective pressure when drag is viscous: … … 564 564 element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum); 565 565 element->GetInputValue(&water_layer, gauss,FrictionWaterLayerEnum); 566 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);567 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);568 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);566 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 567 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 568 IssmDouble gravity = element->FindParam(ConstantsGEnum); 569 569 570 570 //compute r and q coefficients: */ … … 700 700 element->GetInputValue(&base, gauss,BaseEnum); 701 701 //element->GetInputValue(&sealevel, gauss,SealevelEnum); 702 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);703 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);702 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 703 IssmDouble gravity = element->FindParam(ConstantsGEnum); 704 704 P0 = gravity*rho_ice*thickness; 705 705 … … 764 764 element->GetInputValue(&base, gauss,BaseEnum); 765 765 element->GetInputValue(&sealevel, gauss,SealevelEnum); 766 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);767 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);768 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);766 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 767 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 768 IssmDouble gravity = element->FindParam(ConstantsGEnum); 769 769 p_ice = gravity*rho_ice*thickness; 770 770 p_water = rho_water*gravity*(sealevel-base); … … 774 774 case 1:{ 775 775 element->GetInputValue(&thickness, gauss,ThicknessEnum); 776 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);777 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);776 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 777 IssmDouble gravity = element->FindParam(ConstantsGEnum); 778 778 p_ice = gravity*rho_ice*thickness; 779 779 p_water = 0.; … … 785 785 element->GetInputValue(&base, gauss,BaseEnum); 786 786 element->GetInputValue(&sealevel, gauss,SealevelEnum); 787 IssmDouble rho_water = element-> GetMaterialParameter(MaterialsRhoSeawaterEnum);788 IssmDouble rho_ice = element-> GetMaterialParameter(MaterialsRhoIceEnum);789 IssmDouble gravity = element-> GetMaterialParameter(ConstantsGEnum);787 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 788 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 789 IssmDouble gravity = element->FindParam(ConstantsGEnum); 790 790 p_ice = gravity*rho_ice*thickness; 791 791 p_water = max(0.,rho_water*gravity*(sealevel-base)); -
issm/trunk-jpl/src/c/classes/Loads/Friction.h
r23020 r23644 7 7 8 8 /*Headers:*/ 9 /*{{{*/10 9 class Inputs; 11 class Matpar;12 10 class GaussPenta; 13 11 class GaussTria; 14 /*}}}*/15 12 16 13 class Friction{ -
issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp
r23612 r23644 26 26 this->helement=NULL; 27 27 this->element=NULL; 28 this->hmatpar=NULL;29 this->matpar=NULL;30 28 } 31 29 /*}}}*/ … … 33 31 34 32 int pengrid_node_id; 35 int pengrid_matpar_id;36 33 int pengrid_element_id; 37 34 … … 49 46 pengrid_element_id=iomodel->singlenodetoelementconnectivity[index]; 50 47 _assert_(pengrid_element_id); 51 pengrid_matpar_id=iomodel->numberofelements+1; //refers to the constant material parameters object52 48 53 49 this->hnode=new Hook(&pengrid_node_id,1); 54 50 this->helement=new Hook(&pengrid_element_id,1); 55 this->hmatpar=new Hook(&pengrid_matpar_id,1);56 51 57 52 //this->parameters: we still can't point to it, it may not even exist. Configure will handle this. … … 59 54 this->node=NULL; 60 55 this->element=NULL; 61 this->matpar=NULL;62 56 } 63 57 /*}}}*/ … … 65 59 delete hnode; 66 60 delete helement; 67 delete hmatpar;68 61 return; 69 62 } … … 86 79 /*now deal with hooks and objects: */ 87 80 pengrid->hnode=(Hook*)this->hnode->copy(); 88 pengrid->hmatpar=(Hook*)this->hmatpar->copy();89 81 pengrid->helement=(Hook*)this->helement->copy(); 90 82 91 83 /*corresponding fields*/ 92 84 pengrid->node =(Node*)pengrid->hnode->delivers(); 93 pengrid->matpar =(Matpar*)pengrid->hmatpar->delivers();94 85 pengrid->element=(Element*)pengrid->helement->delivers(); 95 86 … … 104 95 hnode->DeepEcho(); 105 96 helement->DeepEcho(); 106 hmatpar->DeepEcho();107 97 _printf_(" parameters\n"); 108 98 parameters->DeepEcho(); … … 127 117 this->hnode = new Hook(); 128 118 this->helement = new Hook(); 129 this->hmatpar = new Hook();130 119 } 131 120 132 121 this->hnode->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 133 122 this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 134 this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);135 123 136 124 /*corresponding fields*/ 137 125 node =(Node*)this->hnode->delivers(); 138 matpar =(Matpar*)this->hmatpar->delivers();139 126 element=(Element*)this->helement->delivers(); 140 127 } … … 153 140 hnode->configure(nodesin); 154 141 helement->configure(elementsin); 155 hmatpar->configure(materialsin);156 142 157 143 /*Get corresponding fields*/ 158 144 node=(Node*)hnode->delivers(); 159 145 element=(Element*)helement->delivers(); 160 matpar=(Matpar*)hmatpar->delivers();161 146 162 147 /*point parameters to real dataset: */ … … 240 225 this->node=NULL; 241 226 this->element=NULL; 242 this->matpar=NULL;243 227 this->parameters=NULL; 244 228 … … 246 230 this->hnode->reset(); 247 231 this->helement->reset(); 248 this->hmatpar->reset();249 232 250 233 } -
issm/trunk-jpl/src/c/classes/Loads/Moulin.h
r23588 r23644 29 29 Hook* hnode; //hook to 1 node 30 30 Hook* helement; //hook to 1 element 31 Hook* hmatpar; //hook to 1 matpar32 31 33 32 /*Corresponding fields*/ 34 33 Node *node; 35 34 Element *element; 36 Matpar *matpar;37 35 38 36 Parameters* parameters; //pointer to solution parameters -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r23612 r23644 26 26 this->helement=NULL; 27 27 this->element=NULL; 28 this->hmatpar=NULL;29 this->matpar=NULL;30 28 31 29 /*not active, not zigzagging: */ … … 38 36 39 37 int pengrid_node_id; 40 int pengrid_matpar_id;41 38 int pengrid_element_id; 42 39 … … 54 51 pengrid_element_id=iomodel->singlenodetoelementconnectivity[index]; 55 52 _assert_(pengrid_element_id); 56 pengrid_matpar_id=iomodel->numberofelements+1; //refers to the constant material parameters object57 53 58 54 this->hnode=new Hook(&pengrid_node_id,1); 59 55 this->helement=new Hook(&pengrid_element_id,1); 60 this->hmatpar=new Hook(&pengrid_matpar_id,1);61 56 62 57 //this->parameters: we still can't point to it, it may not even exist. Configure will handle this. … … 64 59 this->node=NULL; 65 60 this->element=NULL; 66 this->matpar=NULL;67 61 68 62 //let's not forget internals … … 75 69 delete hnode; 76 70 delete helement; 77 delete hmatpar;78 71 return; 79 72 } … … 96 89 /*now deal with hooks and objects: */ 97 90 pengrid->hnode=(Hook*)this->hnode->copy(); 98 pengrid->hmatpar=(Hook*)this->hmatpar->copy();99 91 pengrid->helement=(Hook*)this->helement->copy(); 100 92 101 93 /*corresponding fields*/ 102 94 pengrid->node =(Node*)pengrid->hnode->delivers(); 103 pengrid->matpar =(Matpar*)pengrid->hmatpar->delivers();104 95 pengrid->element=(Element*)pengrid->helement->delivers(); 105 96 … … 119 110 hnode->DeepEcho(); 120 111 helement->DeepEcho(); 121 hmatpar->DeepEcho();122 112 _printf_(" active " << this->active << "\n"); 123 113 _printf_(" zigzag_counter " << this->zigzag_counter << "\n"); … … 144 134 this->hnode = new Hook(); 145 135 this->helement = new Hook(); 146 this->hmatpar = new Hook();147 136 } 148 137 149 138 this->hnode->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 150 139 this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 151 this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);152 140 153 141 /*corresponding fields*/ 154 142 node =(Node*)this->hnode->delivers(); 155 matpar =(Matpar*)this->hmatpar->delivers();156 143 element=(Element*)this->helement->delivers(); 157 144 … … 174 161 hnode->configure(nodesin); 175 162 helement->configure(elementsin); 176 hmatpar->configure(materialsin);177 163 178 164 /*Get corresponding fields*/ 179 165 node=(Node*)hnode->delivers(); 180 166 element=(Element*)helement->delivers(); 181 matpar=(Matpar*)hmatpar->delivers();182 167 183 168 /*point parameters to real dataset: */ … … 285 270 this->node=NULL; 286 271 this->element=NULL; 287 this->matpar=NULL;288 272 this->parameters=NULL; 289 273 … … 291 275 this->hnode->reset(); 292 276 this->helement->reset(); 293 this->hmatpar->reset();294 277 295 278 } … … 464 447 465 448 //Compute pressure melting point 466 t_pmp= matpar->TMeltingPoint(pressure);449 t_pmp=element->TMeltingPoint(pressure); 467 450 468 451 //Figure out if temperature is over melting_point, in which case, this penalty needs to be activated. … … 532 515 533 516 /*Compute pressure melting point*/ 534 t_pmp= matpar->GetMaterialParameter(MaterialsMeltingpointEnum)-matpar->GetMaterialParameter(MaterialsBetaEnum)*pressure;517 t_pmp=parameters->FindParam(MaterialsMeltingpointEnum)-parameters->FindParam(MaterialsBetaEnum)*pressure; 535 518 536 519 /*Add penalty load*/ … … 607 590 608 591 /*Compute pressure melting point*/ 609 t_pmp= matpar->GetMaterialParameter(MaterialsMeltingpointEnum)-matpar->GetMaterialParameter(MaterialsBetaEnum)*pressure;592 t_pmp=parameters->FindParam(MaterialsMeltingpointEnum)-parameters->FindParam(MaterialsBetaEnum)*pressure; 610 593 611 594 /*Add penalty load … … 642 625 643 626 /*Compute pressure melting point*/ 644 t_pmp= matpar->GetMaterialParameter(MaterialsMeltingpointEnum)-matpar->GetMaterialParameter(MaterialsBetaEnum)*pressure;627 t_pmp=parameters->FindParam(MaterialsMeltingpointEnum)-parameters->FindParam(MaterialsBetaEnum)*pressure; 645 628 646 629 pe->values[0]=kmax*pow(10.,penalty_factor)*t_pmp; -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.h
r23588 r23644 29 29 Hook* hnode; //hook to 1 node 30 30 Hook* helement; //hook to 1 element 31 Hook* hmatpar; //hook to 1 matpar32 31 33 32 /*Corresponding fields*/ 34 33 Node *node; 35 34 Element *element; 36 Matpar *matpar;37 35 38 36 Parameters* parameters; //pointer to solution parameters -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp
r23612 r23644 24 24 this->hnodes=NULL; 25 25 this->helements=NULL; 26 this->hmatpar=NULL;27 26 this->nodes=NULL; 28 27 this->elements=NULL; 29 this->matpar=NULL;30 28 } 31 29 /*}}}*/ … … 36 34 int riftfront_node_ids[2]; 37 35 int riftfront_elem_ids[2]; 38 int riftfront_matpar_id;39 36 IssmDouble riftfront_friction; 40 37 IssmDouble riftfront_fractionincrement; … … 64 61 riftfront_elem_ids[0]=el1; 65 62 riftfront_elem_ids[1]=el2; 66 riftfront_matpar_id=iomodel->numberofelements+1; //matlab indexing67 63 68 64 /*Hooks: */ 69 65 this->hnodes=new Hook(riftfront_node_ids,2); 70 66 this->helements=new Hook(riftfront_elem_ids,2); 71 this->hmatpar=new Hook(&riftfront_matpar_id,1);72 67 73 68 /*computational parameters: */ … … 95 90 this->nodes= NULL; 96 91 this->elements= NULL; 97 this->matpar= NULL;98 92 99 93 } … … 103 97 delete hnodes; 104 98 delete helements; 105 delete hmatpar;106 99 } 107 100 /*}}}*/ … … 129 122 riftfront->hnodes=(Hook*)this->hnodes->copy(); 130 123 riftfront->helements=(Hook*)this->helements->copy(); 131 riftfront->hmatpar=(Hook*)this->hmatpar->copy();132 124 133 125 /*corresponding fields*/ 134 126 riftfront->nodes =(Node**)riftfront->hnodes->deliverp(); 135 127 riftfront->elements=(Element**)riftfront->helements->deliverp(); 136 riftfront->matpar =(Matpar*)riftfront->hmatpar->delivers();137 128 138 129 /*internal data: */ … … 160 151 hnodes->DeepEcho(); 161 152 helements->DeepEcho(); 162 hmatpar->DeepEcho();163 153 _printf_(" parameters\n"); 164 154 if(parameters)parameters->DeepEcho(); … … 172 162 _printf_(" hnodes: " << hnodes << "\n"); 173 163 _printf_(" helements: " << helements << "\n"); 174 _printf_(" hmatpar: " << hmatpar << "\n");175 164 _printf_(" parameters: " << parameters << "\n"); 176 165 _printf_(" internal parameters: \n"); … … 209 198 if(marshall_direction==MARSHALLING_BACKWARD){ 210 199 this->hnodes = new Hook(); 211 this->hmatpar = new Hook();212 200 this->helements = new Hook(); 213 201 } 214 202 215 203 this->hnodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 216 this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);217 204 this->helements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 218 205 219 206 /*corresponding fields*/ 220 207 nodes =(Node**)this->hnodes->deliverp(); 221 matpar =(Matpar*)this->hmatpar->delivers();222 208 elements =(Element**)this->helements->deliverp(); 223 209 … … 265 251 hnodes->configure(nodesin); 266 252 helements->configure(elementsin); 267 hmatpar->configure(materialsin);268 253 269 254 /*Initialize hooked fields*/ 270 255 this->nodes =(Node**)hnodes->deliverp(); 271 256 this->elements=(Element**)helements->deliverp(); 272 this->matpar =(Matpar*)hmatpar->delivers();273 257 274 258 /*point parameters to real dataset: */ … … 366 350 this->nodes=NULL; 367 351 this->elements=NULL; 368 this->matpar=NULL;369 352 this->parameters=NULL; 370 353 … … 372 355 this->hnodes->reset(); 373 356 this->helements->reset(); 374 this->hmatpar->reset();375 357 376 358 } … … 543 525 544 526 /*Get some inputs: */ 545 rho_ice= matpar->GetMaterialParameter(MaterialsRhoIceEnum);546 rho_water= matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);547 gravity= matpar->GetMaterialParameter(ConstantsGEnum);527 rho_ice=tria1->FindParam(MaterialsRhoIceEnum); 528 rho_water=tria1->FindParam(MaterialsRhoSeawaterEnum); 529 gravity=tria1->FindParam(ConstantsGEnum); 548 530 tria1->GetInputValue(&h[0],nodes[0],ThicknessEnum); 549 531 tria2->GetInputValue(&h[1],nodes[1],ThicknessEnum); -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.h
r23588 r23644 30 30 Hook* hnodes; 31 31 Hook* helements; 32 Hook* hmatpar;33 32 34 33 /*Corresponding fields*/ 35 Matpar *matpar;36 34 Node **nodes; 37 35 Element **elements; -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r23524 r23644 768 768 surface_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss); 769 769 z=this->element->GetZcoord(xyz_list,gauss); 770 tau_perp = element-> matpar->GetMaterialParameter(MaterialsRhoIceEnum) * element->matpar->GetMaterialParameter(ConstantsGEnum) * fabs(s-z)*sqrt(slope[0]*slope[0]+slope[1]*slope[1]);770 tau_perp = element->FindParam(MaterialsRhoIceEnum) * element->FindParam(ConstantsGEnum) * fabs(s-z)*sqrt(slope[0]*slope[0]+slope[1]*slope[1]); 771 771 772 772 /* Get eps_b*/ -
issm/trunk-jpl/src/c/classes/Materials/Matlitho.h
r23524 r23644 74 74 75 75 /*}}}*/ 76 /*Numerics: {{{*/77 void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){_error_("not supported");};78 IssmDouble GetEnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){_error_("not supported");};79 IssmDouble GetEnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){_error_("not supported");};80 IssmDouble GetMaterialParameter(int in_enum){_error_("not supported");};81 IssmDouble PureIceEnthalpy(IssmDouble pressure){_error_("not supported");};82 void ThermalToEnthalpy(IssmDouble* penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure){_error_("not supported");};83 IssmDouble TMeltingPoint(IssmDouble pressure){_error_("not supported");};84 /*}}}*/85 76 86 77 }; -
issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
r23370 r23644 485 485 } 486 486 /*}}}*/ 487 IssmDouble Parameters::FindParam(int param_enum){ _assert_(this);/*{{{*/ 488 #ifdef _ISSM_DEBUG_ 489 if(param_enum<ParametersSTARTEnum || param_enum>ParametersENDEnum){ 490 _error_(EnumToStringx(param_enum) <<" is not with the parameter Enums"); 491 } 492 #endif 493 _assert_(param_enum>ParametersSTARTEnum); 494 _assert_(param_enum<ParametersENDEnum); 495 496 int index = param_enum - ParametersSTARTEnum -1; 497 if(!this->params[index]) _error_("Parameter " << EnumToStringx(param_enum) <<" not set"); 498 499 IssmDouble value; 500 this->params[index]->GetParameterValue(&value); 501 return value; 502 } 503 /*}}}*/ 487 504 488 505 void Parameters::SetParam(bool boolean,int enum_type){/*{{{*/ -
issm/trunk-jpl/src/c/classes/Params/Parameters.h
r23310 r23644 55 55 void FindParamAndMakePassive(IssmPDouble** pvec,int* pM,int enum_type); 56 56 void FindParamInDataset(IssmDouble** pIssmDoublearray,int* pM,int* pN,int dataset_type,int enum_type); 57 IssmDouble FindParam(int enum_type); 57 58 58 59 void SetParam(bool boolean,int enum_type); -
issm/trunk-jpl/src/c/classes/classes.h
r23612 r23644 90 90 #include "./Materials/Matlitho.h" 91 91 #include "./Materials/Matestar.h" 92 #include "./Materials/Matpar.h"93 92 94 93 /*Params: */ -
issm/trunk-jpl/src/c/datastructures/DataSet.cpp
r23551 r23644 173 173 this->AddObject(matestar); 174 174 } 175 else if(obj_enum==MatparEnum){176 Matpar* matpar=NULL;177 matpar=new Matpar();178 matpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);179 this->AddObject(matpar);180 }181 175 else if(obj_enum==SpcStaticEnum){ 182 176 SpcStatic* spcstatic=NULL; -
issm/trunk-jpl/src/c/main/esmfbinders.cpp
r23066 r23644 72 72 73 73 /*Recover rho_ice: */ 74 rho_ice=element-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);74 rho_ice=element->FindParam(MaterialsRhoIceEnum); 75 75 76 76 /*Recover area of element: */ -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp
r23524 r23644 8 8 9 9 void InputUpdateFromConstantx(FemModel* femmodel,bool constant, int name){ 10 11 int i;12 10 if(VerboseModule()) _printf0_(" Input updates from constant\n"); 13 11 14 12 /*Elements and loads drive the update: */ 15 for(i =0;i<femmodel->elements->Size();i++){13 for(int i=0;i<femmodel->elements->Size();i++){ 16 14 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 17 15 element->InputUpdateFromConstant(constant,name); 18 }19 20 for(i=0;i<femmodel->materials->Size();i++){21 Material* material=(Material*)femmodel->materials->GetObjectByOffset(i);22 if(material->ObjectEnum()==MatparEnum){23 ((Matpar*)material)->InputUpdateFromConstant(constant,name);24 }25 16 } 26 17 } 27 18 void InputUpdateFromConstantx(FemModel* femmodel,int constant, int name){ 28 19 29 int i;30 20 if(VerboseModule()) _printf0_(" Input updates from constant\n"); 31 21 32 22 /*Elements and loads drive the update: */ 33 for(i =0;i<femmodel->elements->Size();i++){23 for(int i=0;i<femmodel->elements->Size();i++){ 34 24 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 35 25 element->InputUpdateFromConstant(constant,name); 36 }37 for(i=0;i<femmodel->materials->Size();i++){38 Material* material=(Material*)femmodel->materials->GetObjectByOffset(i);39 if(material->ObjectEnum()==MatparEnum){40 ((Matpar*)material)->InputUpdateFromConstant(constant,name);41 }42 26 } 43 27 } 44 28 void InputUpdateFromConstantx(FemModel* femmodel,IssmDouble constant, int name){ 45 29 46 int i;47 30 if(VerboseModule()) _printf0_(" Input updates from constant\n"); 48 31 49 32 /*Elements and loads drive the update: */ 50 for(i =0;i<femmodel->elements->Size();i++){33 for(int i=0;i<femmodel->elements->Size();i++){ 51 34 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 52 35 element->InputUpdateFromConstant(constant,name); 53 36 } 54 for(i=0;i<femmodel->materials->Size();i++){55 Material* material=(Material*)femmodel->materials->GetObjectByOffset(i);56 if(material->ObjectEnum()==MatparEnum){57 ((Matpar*)material)->InputUpdateFromConstant(constant,name);58 }59 }60 61 37 } 62 38 void InputUpdateFromConstantx(Elements* elements,IssmDouble constant, int name){ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r23640 r23644 254 254 /*Free data: */ 255 255 iomodel->DeleteData(3,"md.material.rheology_B","md.material.rheology_n","md.damage.D"); 256 257 /*Add new constant material property to materials, at the end: */258 materials->AddObject(new Matpar(iomodel));//put it at the end of the materials259 260 261 256 }/*}}}*/ 262 257 void CreateVertices(Elements* elements,Vertices* vertices,IoModel* iomodel,int solution_type,bool isamr){/*{{{*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r23601 r23644 19 19 20 20 int i,j,m,k; 21 int numoutputs, materialtype,smb_model,basalforcing_model,timestepping_type;21 int numoutputs,basalforcing_model,timestepping_type; 22 22 char** requestedoutputs = NULL; 23 23 char* fieldname = NULL; … … 272 272 iomodel->DeleteData(&requestedoutputs,numoutputs,"md.steadystate.requested_outputs"); 273 273 274 iomodel->FindConstant(&materialtype,"md.materials.type"); 275 if(materialtype==MatdamageiceEnum || materialtype==MaticeEnum || materialtype==MatenhancediceEnum){ 276 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rho_ice",MaterialsRhoIceEnum)); 277 } 278 if(materialtype==MatdamageiceEnum){ 274 int materialstype; 275 iomodel->FindConstant(&materialstype,"md.materials.type"); 276 switch(materialstype){ 277 case MaticeEnum: 278 case MatdamageiceEnum: 279 case MatenhancediceEnum: 280 case MatestarEnum: 281 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rho_ice",MaterialsRhoIceEnum)); 282 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rho_water",MaterialsRhoSeawaterEnum)); 283 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rho_freshwater",MaterialsRhoFreshwaterEnum)); 284 parameters->AddObject(iomodel->CopyConstantObject("md.materials.mu_water",MaterialsMuWaterEnum)); 285 parameters->AddObject(iomodel->CopyConstantObject("md.materials.heatcapacity",MaterialsHeatcapacityEnum)); 286 parameters->AddObject(iomodel->CopyConstantObject("md.materials.thermalconductivity",MaterialsThermalconductivityEnum)); 287 parameters->AddObject(iomodel->CopyConstantObject("md.materials.temperateiceconductivity",MaterialsTemperateiceconductivityEnum)); 288 parameters->AddObject(iomodel->CopyConstantObject("md.materials.latentheat",MaterialsLatentheatEnum)); 289 parameters->AddObject(iomodel->CopyConstantObject("md.materials.beta",MaterialsBetaEnum)); 290 parameters->AddObject(iomodel->CopyConstantObject("md.materials.meltingpoint",MaterialsMeltingpointEnum)); 291 parameters->AddObject(iomodel->CopyConstantObject("md.constants.referencetemperature",ConstantsReferencetemperatureEnum)); 292 parameters->AddObject(iomodel->CopyConstantObject("md.materials.mixed_layer_capacity",MaterialsMixedLayerCapacityEnum)); 293 parameters->AddObject(iomodel->CopyConstantObject("md.materials.thermal_exchange_velocity",MaterialsThermalExchangeVelocityEnum)); 294 parameters->AddObject(iomodel->CopyConstantObject("md.constants.g",ConstantsGEnum)); 295 parameters->AddObject(iomodel->CopyConstantObject("md.materials.rheology_law",MaterialsRheologyLawEnum)); 296 297 /*gia: */ 298 parameters->AddObject(iomodel->CopyConstantObject("md.materials.lithosphere_shear_modulus",MaterialsLithosphereShearModulusEnum)); 299 parameters->AddObject(iomodel->CopyConstantObject("md.materials.lithosphere_density",MaterialsLithosphereDensityEnum)); 300 parameters->AddObject(iomodel->CopyConstantObject("md.materials.mantle_shear_modulus",MaterialsMantleShearModulusEnum)); 301 parameters->AddObject(iomodel->CopyConstantObject("md.materials.mantle_density",MaterialsMantleDensityEnum)); 302 303 /*slr:*/ 304 parameters->AddObject(iomodel->CopyConstantObject("md.materials.earth_density",MaterialsEarthDensityEnum)); 305 break; 306 default: 307 _error_("Material "<< EnumToStringx(materialstype) <<" not supported yet"); 308 } 309 310 int smb_model; 311 iomodel->FindConstant(&smb_model,"md.smb.model"); 312 switch(smb_model){ 313 case SMBforcingEnum: 314 case SMBgradientsEnum: 315 case SMBgradientselaEnum: 316 case SMBhenningEnum: 317 case SMBcomponentsEnum: 318 case SMBmeltcomponentsEnum: 319 case SMBgradientscomponentsEnum: 320 /*Nothing to add*/ 321 break; 322 case SMBgembEnum: 323 parameters->AddObject(iomodel->CopyConstantObject("md.smb.aIce",SmbAIceEnum)); 324 parameters->AddObject(iomodel->CopyConstantObject("md.smb.aSnow",SmbASnowEnum)); 325 break; 326 case SMBpddEnum: 327 parameters->AddObject(iomodel->CopyConstantObject("md.smb.desfac",SmbDesfacEnum)); 328 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlaps",SmbRlapsEnum)); 329 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlapslgm",SmbRlapslgmEnum)); 330 break; 331 case SMBpddSicopolisEnum: 332 parameters->AddObject(iomodel->CopyConstantObject("md.smb.desfac",SmbDesfacEnum)); 333 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlaps",SmbRlapsEnum)); 334 break; 335 case SMBd18opddEnum: 336 parameters->AddObject(iomodel->CopyConstantObject("md.smb.desfac",SmbDesfacEnum)); 337 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlaps",SmbRlapsEnum)); 338 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlapslgm",SmbRlapslgmEnum)); 339 parameters->AddObject(iomodel->CopyConstantObject("md.smb.dpermil",SmbDpermilEnum)); 340 break; 341 case SMBsemicEnum: 342 parameters->AddObject(iomodel->CopyConstantObject("md.smb.desfac",SmbDesfacEnum)); 343 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rlaps",SmbRlapsEnum)); 344 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rdl",SmbRdlEnum)); 345 break; 346 default: 347 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); 348 } 349 350 int hydrology_model; 351 iomodel->FindConstant(&hydrology_model,"md.hydrology.model"); 352 if(hydrology_model==HydrologydcEnum){ 353 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.sediment_compressibility",HydrologydcSedimentCompressibilityEnum)); 354 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.sediment_porosity",HydrologydcSedimentPorosityEnum)); 355 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.sediment_thickness",HydrologydcSedimentThicknessEnum)); 356 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.water_compressibility",HydrologydcWaterCompressibilityEnum)); 357 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.isefficientlayer",HydrologydcIsefficientlayerEnum)); 358 359 bool isefficientlayer; 360 iomodel->FindConstant(&isefficientlayer,"md.hydrology.isefficientlayer"); 361 if(isefficientlayer){ 362 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_compressibility",HydrologydcEplCompressibilityEnum)); 363 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_porosity",HydrologydcEplPorosityEnum)); 364 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_initial_thickness",HydrologydcEplInitialThicknessEnum)); 365 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_colapse_thickness",HydrologydcEplColapseThicknessEnum)); 366 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_max_thickness",HydrologydcEplMaxThicknessEnum)); 367 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.epl_conductivity",HydrologydcEplConductivityEnum)); 368 } 369 } 370 else if(hydrology_model==HydrologyshreveEnum){ 371 /*Nothing to add*/ 372 } 373 else if(hydrology_model==HydrologyshaktiEnum){ 374 /*Nothing to add*/ 375 } 376 else if(hydrology_model==HydrologypismEnum){ 377 /*Nothing to add*/ 378 } 379 else{ 380 _error_("Hydrology model "<<EnumToStringx(hydrology_model)<<" not supported yet"); 381 } 382 383 if(materialstype==MatdamageiceEnum){ 279 384 iomodel->FindConstant(&requestedoutputs,&numoutputs,"md.damage.requested_outputs"); 280 385 parameters->AddObject(new IntParam(DamageEvolutionNumRequestedOutputsEnum,numoutputs)); -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
r23540 r23644 41 41 42 42 /*Get material parameters :*/ 43 rho_ice=element-> matpar->GetMaterialParameter(MaterialsRhoIceEnum);44 rho_water=element-> matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);43 rho_ice=element->FindParam(MaterialsRhoIceEnum); 44 rho_water=element->FindParam(MaterialsRhoFreshwaterEnum); 45 45 46 46 /* Get constants */ -
issm/trunk-jpl/src/c/modules/SystemMatricesx/SystemMatricesx.cpp
r23637 r23644 71 71 } 72 72 73 if(VerboseModule()) _printf0_(" Generating matrices\n");73 if(VerboseModule()) _printf0_(" Assembling matrices\n"); 74 74 75 75 /*Fill stiffness matrix and load vector from elements*/ -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r23508 r23644 44 44 IssmDouble StressIntensityIntegralWeight(IssmDouble depth, IssmDouble water_depth, IssmDouble thickness); 45 45 46 /*Enthalphy*/ 47 void EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure); 48 46 49 /*Print arrays*/ 47 50 void printarray(IssmPDouble* array,int lines,int cols=1); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23540 r23644 93 93 CalvingMinthicknessEnum, 94 94 ConfigurationTypeEnum, 95 ConstantsGEnum, 96 ConstantsReferencetemperatureEnum, 95 97 ConstantsYtsEnum, 96 98 DamageC1Enum, … … 138 140 HydrologydcEplflipLockEnum, 139 141 HydrologydcEplThickCompEnum, 142 HydrologydcEplColapseThicknessEnum, 143 HydrologydcEplCompressibilityEnum, 144 HydrologydcEplConductivityEnum, 145 HydrologydcEplInitialThicknessEnum, 146 HydrologydcEplMaxThicknessEnum, 147 HydrologydcEplPorosityEnum, 140 148 HydrologydcIsefficientlayerEnum, 141 149 HydrologydcLeakageFactorEnum, 150 HydrologydcSedimentCompressibilityEnum, 151 HydrologydcSedimentPorosityEnum, 152 HydrologydcSedimentThicknessEnum, 142 153 HydrologydcMaxIterEnum, 143 154 HydrologydcPenaltyFactorEnum, 155 HydrologydcWaterCompressibilityEnum, 144 156 HydrologydcPenaltyLockEnum, 145 157 HydrologydcRelTolEnum, … … 208 220 MasstransportRequestedOutputsEnum, 209 221 MasstransportStabilizationEnum, 222 MaterialsBetaEnum, 223 MaterialsEarthDensityEnum, 224 MaterialsHeatcapacityEnum, 225 MaterialsLatentheatEnum, 226 MaterialsLithosphereDensityEnum, 227 MaterialsLithosphereShearModulusEnum, 228 MaterialsMantleDensityEnum, 229 MaterialsMantleShearModulusEnum, 230 MaterialsMeltingpointEnum, 231 MaterialsMixedLayerCapacityEnum, 232 MaterialsMuWaterEnum, 233 MaterialsRheologyLawEnum, 210 234 MaterialsRhoIceEnum, 235 MaterialsRhoFreshwaterEnum, 236 MaterialsRhoSeawaterEnum, 237 MaterialsTemperateiceconductivityEnum, 238 MaterialsThermalconductivityEnum, 239 MaterialsThermalExchangeVelocityEnum, 211 240 MeltingOffsetEnum, 212 241 MeshAverageVertexConnectivityEnum, … … 280 309 SmbAIceEnum, 281 310 SmbAIdxEnum, 311 SmbDesfacEnum, 312 SmbDpermilEnum, 282 313 SmbDsnowIdxEnum, 283 314 SmbASnowEnum, … … 309 340 SmbPfacEnum, 310 341 SmbRequestedOutputsEnum, 342 SmbRdlEnum, 343 SmbRlapsEnum, 344 SmbRlapslgmEnum, 311 345 SmbRunoffaltiEnum, 312 346 SmbRunoffgradEnum, … … 727 761 ClosedEnum, 728 762 ColinearEnum, 729 ConstantsGEnum,730 ConstantsReferencetemperatureEnum,731 763 ConstraintsEnum, 732 764 ContactEnum, … … 822 854 HydrologyDCEfficientAnalysisEnum, 823 855 HydrologydcEnum, 824 HydrologydcEplColapseThicknessEnum,825 HydrologydcEplCompressibilityEnum,826 HydrologydcEplConductivityEnum,827 HydrologydcEplInitialThicknessEnum,828 HydrologydcEplMaxThicknessEnum,829 HydrologydcEplPorosityEnum,830 856 HydrologydcEplThicknessStackedEnum, 831 857 HydrologydcEplThicknessEnum, 832 858 HydrologyDCInefficientAnalysisEnum, 833 HydrologydcSedimentCompressibilityEnum,834 HydrologydcSedimentPorosityEnum,835 HydrologydcSedimentThicknessEnum,836 HydrologydcWaterCompressibilityEnum,837 859 HydrologyShreveAnalysisEnum, 838 860 HydrologyshreveEnum, … … 893 915 MatdamageiceEnum, 894 916 MatenhancediceEnum, 895 MaterialsBetaEnum, 896 MaterialsEarthDensityEnum, 917 MatestarEnum, 897 918 MaterialsEnum, 898 MaterialsHeatcapacityEnum,899 MaterialsLatentheatEnum,900 MaterialsLithosphereDensityEnum,901 MaterialsLithosphereShearModulusEnum,902 MaterialsMantleDensityEnum,903 MaterialsMantleShearModulusEnum,904 MaterialsMeltingpointEnum,905 MaterialsMixedLayerCapacityEnum,906 MaterialsMuWaterEnum,907 MaterialsRheologyLawEnum,908 MaterialsRhoFreshwaterEnum,909 MaterialsRhoSeawaterEnum,910 MaterialsTemperateiceconductivityEnum,911 MaterialsThermalconductivityEnum,912 MaterialsThermalExchangeVelocityEnum,913 MatestarEnum,914 919 MaticeEnum, 915 920 MatlithoEnum, 916 MatparEnum,917 921 MatrixParamEnum, 918 922 MaxAbsVxEnum, … … 1106 1110 SMBcomponentsEnum, 1107 1111 SMBd18opddEnum, 1108 SmbDesfacEnum,1109 SmbDpermilEnum,1110 1112 SmbDzAddEnum, 1111 1113 SmbFACEnum, … … 1121 1123 SMBpddSicopolisEnum, 1122 1124 SMBgradientscomponentsEnum, 1123 SmbRdlEnum,1124 SmbRlapsEnum,1125 SmbRlapslgmEnum,1126 1125 SmbSolutionEnum, 1127 1126 SmoothAnalysisEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23540 r23644 101 101 case CalvingMinthicknessEnum : return "CalvingMinthickness"; 102 102 case ConfigurationTypeEnum : return "ConfigurationType"; 103 case ConstantsGEnum : return "ConstantsG"; 104 case ConstantsReferencetemperatureEnum : return "ConstantsReferencetemperature"; 103 105 case ConstantsYtsEnum : return "ConstantsYts"; 104 106 case DamageC1Enum : return "DamageC1"; … … 146 148 case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock"; 147 149 case HydrologydcEplThickCompEnum : return "HydrologydcEplThickComp"; 150 case HydrologydcEplColapseThicknessEnum : return "HydrologydcEplColapseThickness"; 151 case HydrologydcEplCompressibilityEnum : return "HydrologydcEplCompressibility"; 152 case HydrologydcEplConductivityEnum : return "HydrologydcEplConductivity"; 153 case HydrologydcEplInitialThicknessEnum : return "HydrologydcEplInitialThickness"; 154 case HydrologydcEplMaxThicknessEnum : return "HydrologydcEplMaxThickness"; 155 case HydrologydcEplPorosityEnum : return "HydrologydcEplPorosity"; 148 156 case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer"; 149 157 case HydrologydcLeakageFactorEnum : return "HydrologydcLeakageFactor"; 158 case HydrologydcSedimentCompressibilityEnum : return "HydrologydcSedimentCompressibility"; 159 case HydrologydcSedimentPorosityEnum : return "HydrologydcSedimentPorosity"; 160 case HydrologydcSedimentThicknessEnum : return "HydrologydcSedimentThickness"; 150 161 case HydrologydcMaxIterEnum : return "HydrologydcMaxIter"; 151 162 case HydrologydcPenaltyFactorEnum : return "HydrologydcPenaltyFactor"; 163 case HydrologydcWaterCompressibilityEnum : return "HydrologydcWaterCompressibility"; 152 164 case HydrologydcPenaltyLockEnum : return "HydrologydcPenaltyLock"; 153 165 case HydrologydcRelTolEnum : return "HydrologydcRelTol"; … … 216 228 case MasstransportRequestedOutputsEnum : return "MasstransportRequestedOutputs"; 217 229 case MasstransportStabilizationEnum : return "MasstransportStabilization"; 230 case MaterialsBetaEnum : return "MaterialsBeta"; 231 case MaterialsEarthDensityEnum : return "MaterialsEarthDensity"; 232 case MaterialsHeatcapacityEnum : return "MaterialsHeatcapacity"; 233 case MaterialsLatentheatEnum : return "MaterialsLatentheat"; 234 case MaterialsLithosphereDensityEnum : return "MaterialsLithosphereDensity"; 235 case MaterialsLithosphereShearModulusEnum : return "MaterialsLithosphereShearModulus"; 236 case MaterialsMantleDensityEnum : return "MaterialsMantleDensity"; 237 case MaterialsMantleShearModulusEnum : return "MaterialsMantleShearModulus"; 238 case MaterialsMeltingpointEnum : return "MaterialsMeltingpoint"; 239 case MaterialsMixedLayerCapacityEnum : return "MaterialsMixedLayerCapacity"; 240 case MaterialsMuWaterEnum : return "MaterialsMuWater"; 241 case MaterialsRheologyLawEnum : return "MaterialsRheologyLaw"; 218 242 case MaterialsRhoIceEnum : return "MaterialsRhoIce"; 243 case MaterialsRhoFreshwaterEnum : return "MaterialsRhoFreshwater"; 244 case MaterialsRhoSeawaterEnum : return "MaterialsRhoSeawater"; 245 case MaterialsTemperateiceconductivityEnum : return "MaterialsTemperateiceconductivity"; 246 case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity"; 247 case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity"; 219 248 case MeltingOffsetEnum : return "MeltingOffset"; 220 249 case MeshAverageVertexConnectivityEnum : return "MeshAverageVertexConnectivity"; … … 288 317 case SmbAIceEnum : return "SmbAIce"; 289 318 case SmbAIdxEnum : return "SmbAIdx"; 319 case SmbDesfacEnum : return "SmbDesfac"; 320 case SmbDpermilEnum : return "SmbDpermil"; 290 321 case SmbDsnowIdxEnum : return "SmbDsnowIdx"; 291 322 case SmbASnowEnum : return "SmbASnow"; … … 317 348 case SmbPfacEnum : return "SmbPfac"; 318 349 case SmbRequestedOutputsEnum : return "SmbRequestedOutputs"; 350 case SmbRdlEnum : return "SmbRdl"; 351 case SmbRlapsEnum : return "SmbRlaps"; 352 case SmbRlapslgmEnum : return "SmbRlapslgm"; 319 353 case SmbRunoffaltiEnum : return "SmbRunoffalti"; 320 354 case SmbRunoffgradEnum : return "SmbRunoffgrad"; … … 731 765 case ClosedEnum : return "Closed"; 732 766 case ColinearEnum : return "Colinear"; 733 case ConstantsGEnum : return "ConstantsG";734 case ConstantsReferencetemperatureEnum : return "ConstantsReferencetemperature";735 767 case ConstraintsEnum : return "Constraints"; 736 768 case ContactEnum : return "Contact"; … … 826 858 case HydrologyDCEfficientAnalysisEnum : return "HydrologyDCEfficientAnalysis"; 827 859 case HydrologydcEnum : return "Hydrologydc"; 828 case HydrologydcEplColapseThicknessEnum : return "HydrologydcEplColapseThickness";829 case HydrologydcEplCompressibilityEnum : return "HydrologydcEplCompressibility";830 case HydrologydcEplConductivityEnum : return "HydrologydcEplConductivity";831 case HydrologydcEplInitialThicknessEnum : return "HydrologydcEplInitialThickness";832 case HydrologydcEplMaxThicknessEnum : return "HydrologydcEplMaxThickness";833 case HydrologydcEplPorosityEnum : return "HydrologydcEplPorosity";834 860 case HydrologydcEplThicknessStackedEnum : return "HydrologydcEplThicknessStacked"; 835 861 case HydrologydcEplThicknessEnum : return "HydrologydcEplThickness"; 836 862 case HydrologyDCInefficientAnalysisEnum : return "HydrologyDCInefficientAnalysis"; 837 case HydrologydcSedimentCompressibilityEnum : return "HydrologydcSedimentCompressibility";838 case HydrologydcSedimentPorosityEnum : return "HydrologydcSedimentPorosity";839 case HydrologydcSedimentThicknessEnum : return "HydrologydcSedimentThickness";840 case HydrologydcWaterCompressibilityEnum : return "HydrologydcWaterCompressibility";841 863 case HydrologyShreveAnalysisEnum : return "HydrologyShreveAnalysis"; 842 864 case HydrologyshreveEnum : return "Hydrologyshreve"; … … 897 919 case MatdamageiceEnum : return "Matdamageice"; 898 920 case MatenhancediceEnum : return "Matenhancedice"; 899 case MaterialsBetaEnum : return "MaterialsBeta"; 900 case MaterialsEarthDensityEnum : return "MaterialsEarthDensity"; 921 case MatestarEnum : return "Matestar"; 901 922 case MaterialsEnum : return "Materials"; 902 case MaterialsHeatcapacityEnum : return "MaterialsHeatcapacity";903 case MaterialsLatentheatEnum : return "MaterialsLatentheat";904 case MaterialsLithosphereDensityEnum : return "MaterialsLithosphereDensity";905 case MaterialsLithosphereShearModulusEnum : return "MaterialsLithosphereShearModulus";906 case MaterialsMantleDensityEnum : return "MaterialsMantleDensity";907 case MaterialsMantleShearModulusEnum : return "MaterialsMantleShearModulus";908 case MaterialsMeltingpointEnum : return "MaterialsMeltingpoint";909 case MaterialsMixedLayerCapacityEnum : return "MaterialsMixedLayerCapacity";910 case MaterialsMuWaterEnum : return "MaterialsMuWater";911 case MaterialsRheologyLawEnum : return "MaterialsRheologyLaw";912 case MaterialsRhoFreshwaterEnum : return "MaterialsRhoFreshwater";913 case MaterialsRhoSeawaterEnum : return "MaterialsRhoSeawater";914 case MaterialsTemperateiceconductivityEnum : return "MaterialsTemperateiceconductivity";915 case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity";916 case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity";917 case MatestarEnum : return "Matestar";918 923 case MaticeEnum : return "Matice"; 919 924 case MatlithoEnum : return "Matlitho"; 920 case MatparEnum : return "Matpar";921 925 case MatrixParamEnum : return "MatrixParam"; 922 926 case MaxAbsVxEnum : return "MaxAbsVx"; … … 1110 1114 case SMBcomponentsEnum : return "SMBcomponents"; 1111 1115 case SMBd18opddEnum : return "SMBd18opdd"; 1112 case SmbDesfacEnum : return "SmbDesfac";1113 case SmbDpermilEnum : return "SmbDpermil";1114 1116 case SmbDzAddEnum : return "SmbDzAdd"; 1115 1117 case SmbFACEnum : return "SmbFAC"; … … 1125 1127 case SMBpddSicopolisEnum : return "SMBpddSicopolis"; 1126 1128 case SMBgradientscomponentsEnum : return "SMBgradientscomponents"; 1127 case SmbRdlEnum : return "SmbRdl";1128 case SmbRlapsEnum : return "SmbRlaps";1129 case SmbRlapslgmEnum : return "SmbRlapslgm";1130 1129 case SmbSolutionEnum : return "SmbSolution"; 1131 1130 case SmoothAnalysisEnum : return "SmoothAnalysis"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23540 r23644 101 101 else if (strcmp(name,"CalvingMinthickness")==0) return CalvingMinthicknessEnum; 102 102 else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum; 103 else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum; 104 else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum; 103 105 else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum; 104 106 else if (strcmp(name,"DamageC1")==0) return DamageC1Enum; … … 135 137 else if (strcmp(name,"FrictionF")==0) return FrictionFEnum; 136 138 else if (strcmp(name,"FrictionGamma")==0) return FrictionGammaEnum; 137 else if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum;138 else if (strcmp(name,"FrictionPseudoplasticityExponent")==0) return FrictionPseudoplasticityExponentEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"FrictionThresholdSpeed")==0) return FrictionThresholdSpeedEnum; 142 if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum; 143 else if (strcmp(name,"FrictionPseudoplasticityExponent")==0) return FrictionPseudoplasticityExponentEnum; 144 else if (strcmp(name,"FrictionThresholdSpeed")==0) return FrictionThresholdSpeedEnum; 143 145 else if (strcmp(name,"FrictionDelta")==0) return FrictionDeltaEnum; 144 146 else if (strcmp(name,"FrictionVoidRatio")==0) return FrictionVoidRatioEnum; … … 149 151 else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum; 150 152 else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum; 153 else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum; 154 else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum; 155 else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum; 156 else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum; 157 else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum; 158 else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum; 151 159 else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum; 152 160 else if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum; 161 else if (strcmp(name,"HydrologydcSedimentCompressibility")==0) return HydrologydcSedimentCompressibilityEnum; 162 else if (strcmp(name,"HydrologydcSedimentPorosity")==0) return HydrologydcSedimentPorosityEnum; 163 else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum; 153 164 else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum; 154 165 else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum; 166 else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum; 155 167 else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum; 156 168 else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum; … … 219 231 else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum; 220 232 else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum; 233 else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum; 234 else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum; 235 else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum; 236 else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum; 237 else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum; 238 else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum; 239 else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum; 240 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum; 241 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 242 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum; 243 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; 244 else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum; 221 245 else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum; 246 else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum; 247 else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum; 248 else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum; 249 else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum; 250 else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum; 222 251 else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum; 223 252 else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum; … … 231 260 else if (strcmp(name,"OceanGridNy")==0) return OceanGridNyEnum; 232 261 else if (strcmp(name,"OceanGridX")==0) return OceanGridXEnum; 233 else if (strcmp(name,"OceanGridY")==0) return OceanGridYEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"OceanGridY")==0) return OceanGridYEnum; 234 266 else if (strcmp(name,"OutputBufferPointer")==0) return OutputBufferPointerEnum; 235 267 else if (strcmp(name,"OutputBufferSizePointer")==0) return OutputBufferSizePointerEnum; … … 260 292 else if (strcmp(name,"SealevelriseFluidLove")==0) return SealevelriseFluidLoveEnum; 261 293 else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"SealevelriseGeodetic")==0) return SealevelriseGeodeticEnum; 294 else if (strcmp(name,"SealevelriseGeodetic")==0) return SealevelriseGeodeticEnum; 266 295 else if (strcmp(name,"SealevelriseGeodeticRunFrequency")==0) return SealevelriseGeodeticRunFrequencyEnum; 267 296 else if (strcmp(name,"SealevelriseHElastic")==0) return SealevelriseHElasticEnum; … … 294 323 else if (strcmp(name,"SmbAIce")==0) return SmbAIceEnum; 295 324 else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum; 325 else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum; 326 else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum; 296 327 else if (strcmp(name,"SmbDsnowIdx")==0) return SmbDsnowIdxEnum; 297 328 else if (strcmp(name,"SmbASnow")==0) return SmbASnowEnum; … … 323 354 else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum; 324 355 else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum; 356 else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum; 357 else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum; 358 else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum; 325 359 else if (strcmp(name,"SmbRunoffalti")==0) return SmbRunoffaltiEnum; 326 360 else if (strcmp(name,"SmbRunoffgrad")==0) return SmbRunoffgradEnum; … … 349 383 else if (strcmp(name,"StressbalanceRestol")==0) return StressbalanceRestolEnum; 350 384 else if (strcmp(name,"StressbalanceRiftPenaltyThreshold")==0) return StressbalanceRiftPenaltyThresholdEnum; 351 else if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum; 352 389 else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum; 353 390 else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum; … … 383 420 else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum; 384 421 else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum; 422 else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum; 389 423 else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum; 390 424 else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum; … … 472 506 else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum; 473 507 else if (strcmp(name,"FrictionM")==0) return FrictionMEnum; 474 else if (strcmp(name,"FrictionP")==0) return FrictionPEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"FrictionP")==0) return FrictionPEnum; 475 512 else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum; 476 513 else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum; … … 506 543 else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 507 544 else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"Ice")==0) return IceEnum; 545 else if (strcmp(name,"Ice")==0) return IceEnum; 512 546 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 513 547 else if (strcmp(name,"Input")==0) return InputEnum; … … 595 629 else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum; 596 630 else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum; 597 else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 598 635 else if (strcmp(name,"SmbEC")==0) return SmbECEnum; 599 636 else if (strcmp(name,"SmbECini")==0) return SmbECiniEnum; … … 629 666 else if (strcmp(name,"SmbSmbCorr")==0) return SmbSmbCorrEnum; 630 667 else if (strcmp(name,"SmbTa")==0) return SmbTaEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"SmbTemperaturesAnomaly")==0) return SmbTemperaturesAnomalyEnum; 668 else if (strcmp(name,"SmbTemperaturesAnomaly")==0) return SmbTemperaturesAnomalyEnum; 635 669 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 636 670 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; … … 718 752 else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum; 719 753 else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum; 720 else if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum; 721 758 else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum; 722 759 else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum; … … 746 783 else if (strcmp(name,"Closed")==0) return ClosedEnum; 747 784 else if (strcmp(name,"Colinear")==0) return ColinearEnum; 748 else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;749 else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;750 785 else if (strcmp(name,"Constraints")==0) return ConstraintsEnum; 751 786 else if (strcmp(name,"Contact")==0) return ContactEnum; 752 787 else if (strcmp(name,"Contour")==0) return ContourEnum; 753 788 else if (strcmp(name,"Contours")==0) return ContoursEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 789 else if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 758 790 else if (strcmp(name,"ControlInputValues")==0) return ControlInputValuesEnum; 759 791 else if (strcmp(name,"ControlInputMins")==0) return ControlInputMinsEnum; … … 843 875 else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum; 844 876 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 845 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 846 else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum; 847 else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum; 848 else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum; 849 else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum; 850 else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum; 851 else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 852 881 else if (strcmp(name,"HydrologydcEplThicknessStacked")==0) return HydrologydcEplThicknessStackedEnum; 853 882 else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum; 854 883 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; 855 else if (strcmp(name,"HydrologydcSedimentCompressibility")==0) return HydrologydcSedimentCompressibilityEnum;856 else if (strcmp(name,"HydrologydcSedimentPorosity")==0) return HydrologydcSedimentPorosityEnum;857 else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;858 else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;859 884 else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 860 885 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum; … … 875 900 else if (strcmp(name,"Intersect")==0) return IntersectEnum; 876 901 else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"IntInput")==0) return IntInputEnum; 902 else if (strcmp(name,"IntInput")==0) return IntInputEnum; 881 903 else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum; 882 904 else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum; … … 918 940 else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum; 919 941 else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum; 920 else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum; 921 else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum; 942 else if (strcmp(name,"Matestar")==0) return MatestarEnum; 922 943 else if (strcmp(name,"Materials")==0) return MaterialsEnum; 923 else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;924 else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;925 else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum;926 else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;927 else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;928 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;929 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;930 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;931 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;932 else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum;933 else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;934 else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;935 else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;936 else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;937 else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;938 else if (strcmp(name,"Matestar")==0) return MatestarEnum;939 944 else if (strcmp(name,"Matice")==0) return MaticeEnum; 940 945 else if (strcmp(name,"Matlitho")==0) return MatlithoEnum; 941 else if (strcmp(name,"Matpar")==0) return MatparEnum;942 946 else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum; 943 947 else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; … … 994 998 else if (strcmp(name,"Outputdefinition21")==0) return Outputdefinition21Enum; 995 999 else if (strcmp(name,"Outputdefinition22")==0) return Outputdefinition22Enum; 996 else if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum; 997 1004 else if (strcmp(name,"Outputdefinition24")==0) return Outputdefinition24Enum; 998 1005 else if (strcmp(name,"Outputdefinition25")==0) return Outputdefinition25Enum; 999 1006 else if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum; 1007 else if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum; 1004 1008 else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum; 1005 1009 else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum; … … 1117 1121 else if (strcmp(name,"SealevelNmotion")==0) return SealevelNmotionEnum; 1118 1122 else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum; 1119 else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum; 1120 1127 else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum; 1121 1128 else if (strcmp(name,"SealevelUmotion")==0) return SealevelUmotionEnum; 1122 1129 else if (strcmp(name,"SedimentHeadStacked")==0) return SedimentHeadStackedEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 1130 else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 1127 1131 else if (strcmp(name,"Seg")==0) return SegEnum; 1128 1132 else if (strcmp(name,"SegInput")==0) return SegInputEnum; … … 1137 1141 else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum; 1138 1142 else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum; 1139 else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum;1140 else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;1141 1143 else if (strcmp(name,"SmbDzAdd")==0) return SmbDzAddEnum; 1142 1144 else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum; … … 1152 1154 else if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum; 1153 1155 else if (strcmp(name,"SMBgradientscomponents")==0) return SMBgradientscomponentsEnum; 1154 else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum;1155 else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum;1156 else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum;1157 1156 else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum; 1158 1157 else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
Note:
See TracChangeset
for help on using the changeset viewer.