Changeset 28119
- Timestamp:
- 02/29/24 16:32:59 (13 months ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r28115 r28119 467 467 } 468 468 else if(melt_style==IntrusionMeltEnum){ 469 Input* gldistance_input = basalelement->GetInput(DistanceToGroundinglineEnum); 470 471 if (intrusiondist==0)469 Input* gldistance_input = basalelement->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 470 gldistance_input->GetInputValue(&gldistance,gauss); 471 if(intrusiondist==0){ 472 472 if(gllevelset>0.) mb=gmb; 473 473 else mb=fmb; 474 else if(gldistance>intrusiondist) 474 } 475 else if(gldistance>intrusiondist) { 475 476 mb=gmb; 476 else if(gldistance<=intrusiondist && gldistance>0) 477 } 478 else if(gldistance<=intrusiondist && gldistance>0) { 477 479 mb=fmb*(1-gldistance/intrusiondist); 478 else 480 } 481 else{ 479 482 mb=fmb; 480 } 481 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 483 } 484 } 485 else{ 486 _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 487 } 482 488 483 489 for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(bed+dt*(mb) + dt*vz)*basis[i]; -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r28115 r28119 712 712 else mb=gmb; 713 713 } 714 715 Input* gldistance_input = element->GetInput(DistanceToGroundinglineEnum); 716 717 if (intrusiondist==0)714 else if(melt_style==IntrusionMeltEnum){ 715 Input* gldistance_input = element->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 716 gldistance_input->GetInputValue(&gldistance,gauss); 717 if(intrusiondist==0){ 718 718 if(gllevelset>0.) mb=gmb; 719 719 else mb=fmb; 720 else if(gldistance>intrusiondist) 720 } 721 else if(gldistance>intrusiondist) { 721 722 mb=gmb; 722 else if(gldistance<=intrusiondist && gldistance>0) 723 } 724 else if(gldistance<=intrusiondist && gldistance>0) { 723 725 mb=fmb*(1-gldistance/intrusiondist); 724 else 726 } 727 else{ 725 728 mb=fmb; 726 } 727 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 729 } 730 } 731 else{ 732 _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 733 } 728 734 729 735 for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(thickness+dt*(ms-mb))*basis[i]; -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
r28115 r28119 17 17 18 18 /*First, get melt_interpolation model from parameters*/ 19 femmodel->parameters->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 20 21 switch(melt_style){ 22 case IntrusionMeltEnum: 23 if(VerboseSolution())_printf0_(" call Intrusion melting module\n"); 24 DistanceToGroundingline(femmodel); 25 break; 26 default: 27 /*Nothing to be done*/ 28 break; 19 femmodel->parameters->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 20 if(melt_style==IntrusionMeltEnum){ 21 InputDuplicatex(femmodel,MaskOceanLevelsetEnum,DistanceToGroundinglineEnum);//FIXME Duplicate first so that it can preserve the sign 22 femmodel->DistanceToFieldValue(MaskOceanLevelsetEnum,0.,DistanceToGroundinglineEnum); 29 23 } 30 24 … … 304 298 xDelete<IssmDouble>(perturbation); 305 299 }/*}}}*/ 306 307 void DistanceToGroundingline(FemModel* femmodel){/*{{{*/308 309 int numvertices;310 IssmDouble* distances=NULL;311 312 InputDuplicatex(femmodel,MaskOceanLevelsetEnum,DistanceToGroundinglineEnum);313 femmodel->DistanceToFieldValue(MaskOceanLevelsetEnum,0.,DistanceToGroundinglineEnum);314 }315 /*}}}*/ -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h
r28115 r28119 18 18 void BeckmannGoosseFloatingiceMeltingRatex(FemModel* femmodel); 19 19 void LinearFloatingiceMeltingRatearmax(FemModel* femmodel); 20 void DistanceToGroundingline(FemModel* femmodel);21 20 22 21 #endif /* _FloatingiceMeltingRatex_H*/
Note:
See TracChangeset
for help on using the changeset viewer.