Changeset 22474
- Timestamp:
- 02/26/18 13:58:20 (7 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r22421 r22474 70 70 case CalvingHabEnum: 71 71 iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum); 72 iomodel->FetchDataToInput(elements,"md.calving.flotation_fraction",CalvingHabFractionEnum); 72 73 break; 73 74 case CalvingCrevasseDepthEnum: … … 100 101 break; 101 102 case CalvingHabEnum: 102 parameters->AddObject(iomodel->CopyConstantObject("md.calving.flotation_fraction",CalvingHabEnum));103 103 break; 104 104 case CalvingCrevasseDepthEnum: … … 740 740 /*Intermediaries*/ 741 741 int calvinglaw; 742 IssmDouble min_thickness,thickness, flotation_fraction;742 IssmDouble min_thickness,thickness,hab_fraction; 743 743 IssmDouble rho_ice,rho_water,constant_g,rheology_B,rheology_n; 744 744 IssmDouble bed,water_depth; 745 IssmDouble levelset; 745 746 746 747 femmodel->parameters->FindParam(&calvinglaw,CalvingLawEnum); … … 779 780 780 781 /*Get the fraction of the flotation thickness at the terminus*/ 781 femmodel->parameters->FindParam(&flotation_fraction,CalvingHabEnum); 782 782 femmodel->elements->InputDuplicate(MaskIceLevelsetEnum, DistanceToCalvingfrontEnum); 783 femmodel->DistanceToFieldValue(MaskIceLevelsetEnum,0,DistanceToCalvingfrontEnum); 784 783 785 /*Loop over all elements of this partition*/ 784 786 for(int i=0;i<femmodel->elements->Size();i++){ … … 788 790 rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum); 789 791 790 int numnodes = element->GetNumberOfNodes(); 791 Gauss* gauss = element->NewGauss(); 792 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 793 Input* bed = element->GetInput(BedEnum); _assert_(bed); 792 int numnodes = element->GetNumberOfNodes(); 793 Gauss* gauss = element->NewGauss(); 794 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 795 Input* bed = element->GetInput(BedEnum); _assert_(bed); 796 Input* hab_fraction_input = element->GetInput(CalvingHabFractionEnum); _assert_(hab_fraction_input); 797 Input* ls_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(ls_input); 794 798 795 799 /*Potentially constrain nodes of this element*/ … … 799 803 H_input->GetInputValue(&thickness,gauss); 800 804 bed->GetInputValue(&water_depth,gauss); 801 if(thickness<((rho_water/rho_ice)*(1+flotation_fraction)*-water_depth)){ 805 ls_input->GetInputValue(&levelset,gauss); 806 hab_fraction_input->GetInputValue(&hab_fraction,gauss); 807 808 if(thickness<((rho_water/rho_ice)*(1+hab_fraction)*-water_depth) && levelset>-300){ 802 809 node->ApplyConstraint(0,+1.); 803 810 } -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22466 r22474 282 282 CalvingMinthicknessEnum, 283 283 CalvingHabEnum, 284 CalvingHabFractionEnum, 284 285 CalvingCrevasseDepthEnum, 285 286 CalvingDev2Enum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22471 r22474 288 288 case CalvingMinthicknessEnum : return "CalvingMinthickness"; 289 289 case CalvingHabEnum : return "CalvingHab"; 290 case CalvingHabFractionEnum : return "CalvingHabFraction"; 290 291 case CalvingCrevasseDepthEnum : return "CalvingCrevasseDepth"; 291 292 case CalvingDev2Enum : return "CalvingDev2"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22471 r22474 294 294 else if (strcmp(name,"CalvingMinthickness")==0) return CalvingMinthicknessEnum; 295 295 else if (strcmp(name,"CalvingHab")==0) return CalvingHabEnum; 296 else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; 296 297 else if (strcmp(name,"CalvingCrevasseDepth")==0) return CalvingCrevasseDepthEnum; 297 298 else if (strcmp(name,"CalvingDev2")==0) return CalvingDev2Enum; … … 382 383 else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum; 383 384 else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum; 384 else if (strcmp(name,"ThermalReltol")==0) return ThermalReltolEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum; 388 if (strcmp(name,"ThermalReltol")==0) return ThermalReltolEnum; 389 else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum; 389 390 else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum; 390 391 else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum; … … 505 506 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; 506 507 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 507 else if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"SmbPddfacSnow")==0) return SmbPddfacSnowEnum; 511 if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum; 512 else if (strcmp(name,"SmbPddfacSnow")==0) return SmbPddfacSnowEnum; 512 513 else if (strcmp(name,"SmbPddfacIce")==0) return SmbPddfacIceEnum; 513 514 else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum; … … 628 629 else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum; 629 630 else if (strcmp(name,"LambdaS")==0) return LambdaSEnum; 630 else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum; 634 if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 635 else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum; 635 636 else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum; 636 637 else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum; … … 751 752 else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum; 752 753 else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum; 753 else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum; 757 if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum; 758 else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum; 758 759 else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum; 759 760 else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum; … … 874 875 else if (strcmp(name,"LoveG0")==0) return LoveG0Enum; 875 876 else if (strcmp(name,"LoveR0")==0) return LoveR0Enum; 876 else if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"LoveAllowLayerDeletion")==0) return LoveAllowLayerDeletionEnum; 880 if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum; 881 else if (strcmp(name,"LoveAllowLayerDeletion")==0) return LoveAllowLayerDeletionEnum; 881 882 else if (strcmp(name,"LoveForcingType")==0) return LoveForcingTypeEnum; 882 883 else if (strcmp(name,"LoveHr")==0) return LoveHrEnum; … … 997 998 else if (strcmp(name,"Vertex")==0) return VertexEnum; 998 999 else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum; 999 else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Option")==0) return OptionEnum; 1003 if (strcmp(name,"VertexSId")==0) return VertexSIdEnum; 1004 else if (strcmp(name,"Option")==0) return OptionEnum; 1004 1005 else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; 1005 1006 else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum; … … 1120 1121 else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum; 1121 1122 else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum; 1122 else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum; 1126 if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum; 1127 else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum; 1127 1128 else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum; 1128 1129 else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
Note:
See TracChangeset
for help on using the changeset viewer.