Index: ../trunk-jpl/src/c/cores/movingfront_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/movingfront_core.cpp (revision 20981) +++ ../trunk-jpl/src/c/cores/movingfront_core.cpp (revision 20982) @@ -13,7 +13,7 @@ /* intermediaries */ bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,ismovingfront; - int domaintype, num_extrapol_vars, index; + int domaintype, num_extrapol_vars, index,reinit_frequency,step; int* extrapol_vars=NULL; Analysis *analysis=NULL; @@ -24,13 +24,16 @@ femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum); femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum); femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum); + femmodel->parameters->FindParam(&reinit_frequency,LevelsetReinitFrequencyEnum); + femmodel->parameters->FindParam(&step,StepEnum); if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum); if(!ismovingfront) return; /* start the work from here */ Calvingx(femmodel); - if(VerboseSolution()) _printf0_(" computing levelset transport\n"); + if(VerboseSolution()) _printf0_(" computing level set transport\n"); + /* smoothen slope of lsf for computation of normal on ice domain*/ levelsetfunctionslope_core(femmodel); @@ -66,6 +69,12 @@ analysis->Core(femmodel); delete analysis; + /*Reset levelset if needed*/ + if(reinit_frequency && (step%reinit_frequency==0)){ + if(VerboseSolution()) _printf0_(" reinitializing level set\n"); + femmodel->ResetLevelset(); + } + /* update vertices included for next calculation */ GetMaskOfIceVerticesLSMx(femmodel);