Changeset 27016
- Timestamp:
- 05/20/22 08:39:56 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r27015 r27016 649 649 IssmDouble dt = femmodel->parameters->FindParam(TimesteppingTimeStepEnum); 650 650 651 652 651 /*Get current distance to terminus*/ 653 652 InputDuplicatex(femmodel,MaskIceLevelsetEnum,DistanceToCalvingfrontEnum); 654 653 femmodel->DistanceToFieldValue(MaskIceLevelsetEnum,0,DistanceToCalvingfrontEnum); 655 654 656 657 655 if(calvinglaw==CalvingMinthicknessEnum || calvinglaw==CalvingVonmisesEnum){ 658 656 659 657 /*Intermediaries*/ 660 IssmDouble thickness,bed,sealevel,distance ;658 IssmDouble thickness,bed,sealevel,distance,levelset; 661 659 IssmDouble min_thickness = femmodel->parameters->FindParam(CalvingMinthicknessEnum); 662 660 … … 665 663 Element* element = xDynamicCast<Element*>(object); 666 664 667 int numnodes = element->GetNumberOfNodes(); 668 Gauss* gauss = element->NewGauss(); 669 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 670 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 671 Input* sl_input = element->GetInput(SealevelEnum); _assert_(sl_input); 672 Input* dis_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(dis_input); 665 int numnodes = element->GetNumberOfNodes(); 666 Gauss* gauss = element->NewGauss(); 667 668 Input *H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 669 Input *b_input = element->GetInput(BedEnum); _assert_(b_input); 670 Input *sl_input = element->GetInput(SealevelEnum); _assert_(sl_input); 671 Input *dis_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(dis_input); 672 Input *levelset_input = element->GetInput(MaskIceLevelsetEnum); _assert_(levelset_input); 673 673 674 674 /*Potentially constrain nodes of this element*/ … … 682 682 sl_input->GetInputValue(&sealevel,gauss); 683 683 dis_input->GetInputValue(&distance,gauss); 684 if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt){ 684 levelset_input->GetInputValue(&levelset,gauss); 685 if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt && levelset<0){ 685 686 node->ApplyConstraint(0,+1.); 686 687 } 687 else 688 else{ 688 689 /* no ice, set no spc */ 689 690 node->DofInFSet(0);
Note:
See TracChangeset
for help on using the changeset viewer.