Changeset 22474


Ignore:
Timestamp:
02/26/18 13:58:20 (7 years ago)
Author:
youngmc3
Message:

CHG: some changes for calvinghab

Location:
issm/trunk-jpl/src/c
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp

    r22421 r22474  
    7070                case CalvingHabEnum:
    7171                        iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
     72                        iomodel->FetchDataToInput(elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
    7273                        break;
    7374                case CalvingCrevasseDepthEnum:
     
    100101                        break;
    101102                case CalvingHabEnum:
    102                         parameters->AddObject(iomodel->CopyConstantObject("md.calving.flotation_fraction",CalvingHabEnum));
    103103                        break;
    104104                case CalvingCrevasseDepthEnum:
     
    740740        /*Intermediaries*/
    741741        int         calvinglaw;
    742         IssmDouble  min_thickness,thickness,flotation_fraction;
     742        IssmDouble  min_thickness,thickness,hab_fraction;
    743743        IssmDouble  rho_ice,rho_water,constant_g,rheology_B,rheology_n;
    744744        IssmDouble  bed,water_depth;
     745        IssmDouble  levelset;
    745746
    746747        femmodel->parameters->FindParam(&calvinglaw,CalvingLawEnum);
     
    779780
    780781                /*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               
    783785                /*Loop over all elements of this partition*/
    784786                for(int i=0;i<femmodel->elements->Size();i++){
     
    788790                        rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
    789791
    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);
    794798
    795799                        /*Potentially constrain nodes of this element*/
     
    799803                                H_input->GetInputValue(&thickness,gauss);
    800804                                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){
    802809                                        node->ApplyConstraint(0,+1.);
    803810                                }
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r22466 r22474  
    282282        CalvingMinthicknessEnum,
    283283        CalvingHabEnum,
     284        CalvingHabFractionEnum,
    284285        CalvingCrevasseDepthEnum,
    285286        CalvingDev2Enum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r22471 r22474  
    288288                case CalvingMinthicknessEnum : return "CalvingMinthickness";
    289289                case CalvingHabEnum : return "CalvingHab";
     290                case CalvingHabFractionEnum : return "CalvingHabFraction";
    290291                case CalvingCrevasseDepthEnum : return "CalvingCrevasseDepth";
    291292                case CalvingDev2Enum : return "CalvingDev2";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r22471 r22474  
    294294              else if (strcmp(name,"CalvingMinthickness")==0) return CalvingMinthicknessEnum;
    295295              else if (strcmp(name,"CalvingHab")==0) return CalvingHabEnum;
     296              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
    296297              else if (strcmp(name,"CalvingCrevasseDepth")==0) return CalvingCrevasseDepthEnum;
    297298              else if (strcmp(name,"CalvingDev2")==0) return CalvingDev2Enum;
     
    382383              else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
    383384              else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
    384               else if (strcmp(name,"ThermalReltol")==0) return ThermalReltolEnum;
    385385         else stage=4;
    386386   }
    387387   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;
    389390              else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
    390391              else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
     
    505506              else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum;
    506507              else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum;
    507               else if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum;
    508508         else stage=5;
    509509   }
    510510   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;
    512513              else if (strcmp(name,"SmbPddfacIce")==0) return SmbPddfacIceEnum;
    513514              else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum;
     
    628629              else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum;
    629630              else if (strcmp(name,"LambdaS")==0) return LambdaSEnum;
    630               else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
    631631         else stage=6;
    632632   }
    633633   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;
    635636              else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
    636637              else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
     
    751752              else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;
    752753              else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum;
    753               else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
    754754         else stage=7;
    755755   }
    756756   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;
    758759              else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
    759760              else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
     
    874875              else if (strcmp(name,"LoveG0")==0) return LoveG0Enum;
    875876              else if (strcmp(name,"LoveR0")==0) return LoveR0Enum;
    876               else if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum;
    877877         else stage=8;
    878878   }
    879879   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;
    881882              else if (strcmp(name,"LoveForcingType")==0) return LoveForcingTypeEnum;
    882883              else if (strcmp(name,"LoveHr")==0) return LoveHrEnum;
     
    997998              else if (strcmp(name,"Vertex")==0) return VertexEnum;
    998999              else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
    999               else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
    10001000         else stage=9;
    10011001   }
    10021002   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;
    10041005              else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
    10051006              else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
     
    11201121              else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
    11211122              else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
    1122               else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
    11231123         else stage=10;
    11241124   }
    11251125   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;
    11271128              else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
    11281129              else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
Note: See TracChangeset for help on using the changeset viewer.