Changeset 26461


Ignore:
Timestamp:
09/24/21 08:24:14 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added migration max to crevasse depth law

File:
1 edited

Legend:

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

    r26450 r26461  
    561561                /*Intermediaries*/
    562562                IssmDouble  levelset,crevassedepth,bed,surface_crevasse,thickness,surface;
    563                 int         nflipped,local_nflipped;
    564563                IssmDouble* constraint_nodes = NULL;
    565564
     
    573572      Vector<IssmDouble>* vec_constraint_nodes = vec_constraint_nodes=new Vector<IssmDouble>(localmasters,numnodes);
    574573
    575       IssmDouble crevasse_threshold = femmodel->parameters->FindParam(CalvingCrevasseThresholdEnum);
     574                IssmDouble crevasse_threshold = femmodel->parameters->FindParam(CalvingCrevasseThresholdEnum);
     575                IssmDouble mig_max            = femmodel->parameters->FindParam(MigrationMaxEnum);
     576                IssmDouble dt                 = femmodel->parameters->FindParam(TimesteppingTimeStepEnum);
     577
    576578
    577579                for(Object* & object : femmodel->elements->objects){
     
    611613      femmodel->GetLocalVectorWithClonesNodes(&constraint_nodes,vec_constraint_nodes);
    612614
    613                 nflipped=1;
     615                int nflipped=1;
    614616                while(nflipped){
    615                         local_nflipped=0;
     617                        int local_nflipped=0;
    616618                        for(Object* & object : femmodel->elements->objects){
    617619                                Element* element  = xDynamicCast<Element*>(object);
     
    630632                                for(int in=0;in<numnodes;in++){
    631633                                        Node* node=element->GetNode(in);
    632                                         if(constraint_nodes[node->Lid()]==1.){
     634                                        if(constraint_nodes[node->Lid()]>0.){
    633635                                                isconnected = true;
    634636                                                break;
     
    648650                                                surface_input->GetInputValue(&surface,gauss);
    649651
    650                   if((surface_crevasse>surface || crevassedepth>crevasse_threshold*thickness) && bed<0. && levelset>-300. && levelset<0. && constraint_nodes[node->Lid()]==0.){
     652                  if((surface_crevasse>surface || crevassedepth>crevasse_threshold*thickness) && bed<0. && levelset<0. && levelset>-mig_max*dt && constraint_nodes[node->Lid()]==0.){
    651653                                                        local_nflipped++;
    652654                                                        vec_constraint_nodes->SetValue(node->Pid(),1.0,INS_VAL);
Note: See TracChangeset for help on using the changeset viewer.