Changeset 26461
- Timestamp:
- 09/24/21 08:24:14 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r26450 r26461 561 561 /*Intermediaries*/ 562 562 IssmDouble levelset,crevassedepth,bed,surface_crevasse,thickness,surface; 563 int nflipped,local_nflipped;564 563 IssmDouble* constraint_nodes = NULL; 565 564 … … 573 572 Vector<IssmDouble>* vec_constraint_nodes = vec_constraint_nodes=new Vector<IssmDouble>(localmasters,numnodes); 574 573 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 576 578 577 579 for(Object* & object : femmodel->elements->objects){ … … 611 613 femmodel->GetLocalVectorWithClonesNodes(&constraint_nodes,vec_constraint_nodes); 612 614 613 nflipped=1;615 int nflipped=1; 614 616 while(nflipped){ 615 local_nflipped=0;617 int local_nflipped=0; 616 618 for(Object* & object : femmodel->elements->objects){ 617 619 Element* element = xDynamicCast<Element*>(object); … … 630 632 for(int in=0;in<numnodes;in++){ 631 633 Node* node=element->GetNode(in); 632 if(constraint_nodes[node->Lid()] ==1.){634 if(constraint_nodes[node->Lid()]>0.){ 633 635 isconnected = true; 634 636 break; … … 648 650 surface_input->GetInputValue(&surface,gauss); 649 651 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.){ 651 653 local_nflipped++; 652 654 vec_constraint_nodes->SetValue(node->Pid(),1.0,INS_VAL);
Note:
See TracChangeset
for help on using the changeset viewer.