Changeset 19009


Ignore:
Timestamp:
01/15/15 18:06:35 (10 years ago)
Author:
bdef
Message:

CHG: change in the solution sequecence for a better gestion of the epl colapse

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r18975 r19009  
    18711871/*}}}*/
    18721872#endif
    1873 void FemModel::HydrologyEPLupdateDomainx(void){ /*{{{*/
     1873void FemModel::HydrologyEPLupdateDomainx(IssmDouble* pEplcount){ /*{{{*/
    18741874
    18751875        Vector<IssmDouble>* mask                                                        = NULL;
     
    19331933        ISSM_MPI_Bcast(&sum_counter,1,ISSM_MPI_INT,0,IssmComm::GetComm());               
    19341934        counter=sum_counter;
     1935        *pEplcount = counter;
    19351936        if(VerboseSolution()) _printf0_("   Number of active nodes in EPL layer: "<< counter <<"\n");
    19361937
     
    19401941}
    19411942/*}}}*/
    1942 void FemModel::UpdateConstraintsL2ProjectionEPLx(void){ /*{{{*/
     1943void FemModel::UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count){ /*{{{*/
    19431944
    19441945        Vector<IssmDouble>* active        = NULL;
     
    19781979        ISSM_MPI_Bcast(&sum_counter,1,ISSM_MPI_INT,0,IssmComm::GetComm());               
    19791980        counter=sum_counter;
     1981        *pL2count = counter;
    19801982        if(VerboseSolution()) _printf0_("   Number of active nodes L2 Projection: "<< counter <<"\n");
    19811983}
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r18953 r19009  
    107107                void UpdateConstraintsExtrudeFromBasex();
    108108                void UpdateConstraintsExtrudeFromTopx();
    109                 void HydrologyEPLupdateDomainx(void);
    110                 //              void HydrologyEPLThicknessx(void);
    111                 void UpdateConstraintsL2ProjectionEPLx(void);
     109                void HydrologyEPLupdateDomainx(IssmDouble* pEplcount);
     110                void UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count);
    112111};
    113112
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r18975 r19009  
    4646        IssmDouble ndu_sed,nu_sed;
    4747        IssmDouble ndu_epl,nu_epl;
    48 
     48        IssmDouble ThickCount,L2Count;
     49       
    4950        /*Recover parameters: */
    5051        femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
     
    157158                        femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum);
    158159                        /*updating mask*/
    159                         femmodel->HydrologyEPLupdateDomainx();
     160                        femmodel->HydrologyEPLupdateDomainx(&ThickCount);
    160161                        inefanalysis->ElementizeEplMask(femmodel);
    161162                        InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum);
     
    169170                                /*{{{*//*Retrieve the EPL head slopes and compute EPL Thickness*/
    170171                                if(VerboseSolution()) _printf0_("computing EPL Head slope...\n");
    171                                 //                              inefanalysis->ElementizeEplMask(femmodel);
     172                                //inefanalysis->ElementizeEplMask(femmodel);
    172173                                femmodel->SetCurrentConfiguration(L2ProjectionEPLAnalysisEnum);
    173                                 femmodel->UpdateConstraintsL2ProjectionEPLx();
     174                                femmodel->UpdateConstraintsL2ProjectionEPLx(&L2Count);
    174175                                inefanalysis->ElementizeEplMask(femmodel);
    175176                                femmodel->parameters->SetParam(EplHeadSlopeXEnum,InputToL2ProjectEnum);
     
    181182                                effanalysis->ComputeEPLThickness(femmodel);
    182183                                //updating mask after the computation of the epl thickness (Allow to close too thin EPL)
    183                                 femmodel->HydrologyEPLupdateDomainx();
     184                                femmodel->HydrologyEPLupdateDomainx(&ThickCount);
    184185                                inefanalysis->ElementizeEplMask(femmodel);
    185186                                /*}}}*/
     
    213214                                        _error_("   maximum number of EPL iterations (" << hydro_maxiter << ") exceeded");
    214215                                }
     216                                //If there is some colapse go through sediment again
     217                                if(ThickCount<L2Count)eplconverged=true;
    215218                                eplcount++;
    216219                               
Note: See TracChangeset for help on using the changeset viewer.