Changeset 17192


Ignore:
Timestamp:
01/29/14 09:02:20 (11 years ago)
Author:
bdef
Message:

NEW: changing the maxiter parameter from hard codded to Enum

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp

    r17176 r17192  
    323323       
    324324        IssmDouble* eplHeads    = xNew<IssmDouble>(numnodes);
    325         IssmDouble* eplOldHeads    = xNew<IssmDouble>(numnodes);
     325        /* IssmDouble* relaxed    = xNew<IssmDouble>(numnodes); */
     326        /* IssmDouble* eplOldHeads    = xNew<IssmDouble>(numnodes); */
    326327        IssmDouble  Stepping;
    327328
     329
     330        /*Get previous water head*/
     331        //basalelement->GetInputListOnNodes(&eplOldHeads[0],EplHeadEnum);
    328332
    329333        /*Use the dof list to index into the solution vector: */
     
    332336                if(xIsNan<IssmDouble>(eplHeads[i])) _error_("NaN found in solution vector");
    333337        }
    334 
    335         /*Get previous water head*/
    336         /* basalelement->GetInputListOnNodes(&eplOldHeads[0],EplHeadEnum); */
    337338       
    338339        /* for(i=0;i<numnodes;i++) { */
    339         /*      eplHeads[i] = eplOldHeads[i]+0.8*(eplHeads[i]-eplOldHeads[i]); */
     340        /*      relaxed[i] = eplOldHeads[i]+0.8*(eplHeads[i]-eplOldHeads[i]); */
    340341        /* } */
    341342        /*Add input to the element: */
     
    344345        /*Free ressources:*/
    345346        xDelete<IssmDouble>(eplHeads);
    346         xDelete<IssmDouble>(eplOldHeads);
     347        //      xDelete<IssmDouble>(eplOldHeads);
    347348        xDelete<int>(doflist);
    348349        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp

    r17030 r17192  
    1515        int         transfer_flag;
    1616        int         penalty_lock;
     17        int         hydro_maxiter;
    1718        bool        isefficientlayer;
    1819        IssmDouble  sedimentlimit;
     
    3334        iomodel->FetchData(&rel_tol,HydrologydcRelTolEnum);
    3435        iomodel->FetchData(&penalty_lock,HydrologydcPenaltyLockEnum);
     36        iomodel->FetchData(&hydro_maxiter,HydrologydcMaxIterEnum);
    3537
    3638        if(sedimentlimit_flag==1){
     
    5153        parameters->AddObject(new DoubleParam(HydrologydcRelTolEnum,rel_tol));
    5254        parameters->AddObject(new IntParam(HydrologydcPenaltyLockEnum,penalty_lock));
     55        parameters->AddObject(new IntParam(HydrologydcMaxIterEnum,hydro_maxiter));
    5356
    5457}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r17177 r17192  
    47514751        IssmDouble wh_trans,sed_thick;
    47524752        IssmDouble epl_specificstoring,sedstoring;
    4753         IssmDouble activeEpl[numdof],epl_thickness[numdof];
     4753        IssmDouble activeEpl[numdof],epl_thickness[numdof],old_epl_thickness[numdof];
    47544754        IssmDouble epl_head[numdof],sed_head[numdof];
    47554755        IssmDouble preceding_transfer[numdof],sed_trans[numdof];
     
    47814781                        GetInputListOnVertices(&sed_trans[0],HydrologydcSedimentTransmitivityEnum);
    47824782                        GetInputListOnVertices(&epl_head[0],EplHeadEnum);
    4783                         GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);
     4783                        GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);                 
    47844784
    47854785                        this->parameters->FindParam(&leakage,HydrologydcLeakageFactorEnum);
     
    48014801                                        if(epl_head[i]>sed_head[i]){
    48024802                                                wh_trans=epl_specificstoring*epl_thickness[i]*sed_trans[i]*(epl_head[i]-sed_head[i])/(leakage*sed_thick);
     4803                                               
    48034804                                                /*No transfer if the sediment head is allready at the maximum*/
    48044805                                                if(sed_head[i]>=h_max){
     
    48124813                                       
    48134814                                        /*Relaxation stuff*/
    4814                                         //                                      wh_trans=preceding_transfer[i]+0.8*(wh_trans-preceding_transfer[i]);
     4815                                        wh_trans=preceding_transfer[i]+0.8*(wh_trans-preceding_transfer[i]);
    48154816                                       
    48164817                                        /*Assign output pointer*/
     
    49774978                                       
    49784979                                /*Relaxation stuff*/
    4979                                 //                              thickness[i] = preceding_thickness[i]+0.8*(thickness[i]-preceding_thickness[i]);
     4980                                thickness[i] = preceding_thickness[i]+0.8*(thickness[i]-preceding_thickness[i]);
    49804981                        }
    49814982                }
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17159 r17192  
    102102  EplHeadSlopeXEnum,
    103103        EplHeadSlopeYEnum,
     104        HydrologydcMaxIterEnum,
    104105        HydrologydcRelTolEnum,
    105106        HydrologydcSpcsedimentHeadEnum,
     
    185186        MaterialsThermalExchangeVelocityEnum,
    186187        MaterialsThermalconductivityEnum,
    187         MaterialsTemperateiceconductivityEnum,
     188        MaterialsTemperateiceconductivityEnum,
    188189        MaterialsLithosphereShearModulusEnum,
    189190        MaterialsLithosphereDensityEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17159 r17192  
    110110                case EplHeadSlopeXEnum : return "EplHeadSlopeX";
    111111                case EplHeadSlopeYEnum : return "EplHeadSlopeY";
     112                case HydrologydcMaxIterEnum : return "HydrologydcMaxIter";
    112113                case HydrologydcRelTolEnum : return "HydrologydcRelTol";
    113114                case HydrologydcSpcsedimentHeadEnum : return "HydrologydcSpcsedimentHead";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17159 r17192  
    110110              else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
    111111              else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
     112              else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
    112113              else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
    113114              else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum;
     
    136137              else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
    137138              else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
    138               else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"WaterTransfer")==0) return WaterTransferEnum;
     142              if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
     143              else if (strcmp(name,"WaterTransfer")==0) return WaterTransferEnum;
    143144              else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
    144145              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
     
    259260              else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
    260261              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    261               else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
     265              if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
     266              else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
    266267              else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
    267268              else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
     
    382383              else if (strcmp(name,"Results")==0) return ResultsEnum;
    383384              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
    384               else if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
     388              if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
     389              else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
    389390              else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
    390391              else if (strcmp(name,"Contour")==0) return ContourEnum;
     
    505506              else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
    506507              else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
    507               else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
     511              if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
     512              else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
    512513              else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
    513514              else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
     
    628629              else if (strcmp(name,"Sset")==0) return SsetEnum;
    629630              else if (strcmp(name,"Verbose")==0) return VerboseEnum;
    630               else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
     634              if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
     635              else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
    635636              else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
    636637              else if (strcmp(name,"XY")==0) return XYEnum;
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r17165 r17192  
    4949        femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
    5050        femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
     51        femmodel->parameters->FindParam(&hydro_maxiter,HydrologydcMaxIterEnum);
    5152        femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum);
    5253        femmodel->parameters->FindParam(&time,TimeEnum);
    53 
    54         /*FIXME, hardcoded, put on an enum*/
    55         hydro_maxiter=100;
    5654
    5755        hydrocount=1;
Note: See TracChangeset for help on using the changeset viewer.