Changeset 26877


Ignore:
Timestamp:
02/10/22 12:02:14 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: simplifying calving parameterization

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

Legend:

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

    r26850 r26877  
    8888   iomodel->FindConstant(&isstochastic,"md.stochasticforcing.isstochasticforcing");
    8989   switch(calvinglaw){
     90
     91                /*"Continuous" calving laws*/
    9092      case DefaultCalvingEnum:
    9193         iomodel->FetchDataToInput(inputs,elements,"md.calving.calvingrate",CalvingCalvingrateEnum);
     
    103105                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    104106                        break;
    105                 case CalvingMinthicknessEnum:
    106                         iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    107                         break;
    108                 case CalvingHabEnum:
    109                         iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
    110                         break;
    111                 case CalvingCrevasseDepthEnum:
    112                         iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum);
    113                         break;
    114107                case CalvingDev2Enum:
    115108                        iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
     
    123116                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    124117                        break;
     118
     119                /*"Discrete" calving laws (need to specify rate as 0 so that we can still solve the level set equation)*/
     120                case CalvingMinthicknessEnum:
     121                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
     122                        iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
     123                        iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
     124                        break;
     125                case CalvingHabEnum:
     126                        iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
     127                        iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
     128                        iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
     129                        break;
     130                case CalvingCrevasseDepthEnum:
     131                        iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum);
     132                        iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
     133                        iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
     134                        break;
     135
    125136                default:
    126137                        _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r26876 r26877  
    43164316        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    43174317
    4318         Input* vx_input           = NULL;
    4319         Input* vy_input           = NULL;
    43204318        Input* calvingratex_input = NULL;
    43214319        Input* calvingratey_input = NULL;
    4322         Input* lsf_slopey_input   = NULL;
    43234320        Input* calvingrate_input  = NULL;
    43244321        Input* meltingrate_input  = NULL;
    4325         Input* gr_input           = NULL;
    4326 
    43274322
    43284323        /*Get problem dimension and whether there is moving front or not*/
     
    43384333
    43394334        /*Load levelset function gradients*/
    4340         Input* lsf_slopex_input  = this->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    4341         if(dim==2){lsf_slopey_input  = this->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);}
    4342 
    4343         /*Load velocities*/
    4344         switch(domaintype){
    4345                 case Domain2DverticalEnum:
    4346                         vx_input=this->GetInput(VxEnum); _assert_(vx_input);
    4347                         break;
    4348                 case Domain2DhorizontalEnum:
    4349                         vx_input=this->GetInput(VxEnum); _assert_(vx_input);
    4350                         vy_input=this->GetInput(VyEnum); _assert_(vy_input);
    4351                         gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
    4352                         break;
    4353                 case Domain3DEnum:
    4354                         vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
    4355                         vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
    4356                         gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
    4357                         break;
    4358                 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
     4335   Input *gr_input         = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
     4336        Input *lsf_slopex_input = this->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
     4337        Input *vx_input         = this->GetInput(VxEnum);                     _assert_(vx_input);
     4338        Input *lsf_slopey_input = NULL;
     4339        Input *vy_input         = NULL;
     4340        if(dim==2){
     4341                lsf_slopey_input = this->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
     4342                vy_input         = this->GetInput(VyEnum); _assert_(vy_input);
    43594343        }
    43604344
Note: See TracChangeset for help on using the changeset viewer.