Changeset 24977


Ignore:
Timestamp:
06/07/20 21:57:08 (5 years ago)
Author:
Eric.Larour
Message:

CHG: making sure to optimize Dakota cores by hacking. Need to rethink this.

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

Legend:

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

    r24959 r24977  
    474474        xDelete<IssmDouble>(H_elastic);
    475475        xDelete<IssmDouble>(H_elastic_local);
     476       
     477        /*Indicate we have not yet ran the Geometry Core module: */
     478        parameters->AddObject(new BoolParam(SealevelriseGeometryDoneEnum,false));
     479
    476480/*}}}*/
    477481        /*Transitions:{{{ */
  • issm/trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.cpp

    r24440 r24977  
    2424                if(world_rank!=0){
    2525                        femmodel_init= new FemModel(argc,argv,evaluation_comm);
     26
     27                        /*hack: we don't have any place to put solution modules that fit between the model processor
     28                         *and the cores:*/
     29                        for (int i=0;i<femmodel_init->nummodels;i++){
     30                                if(femmodel_init->analysis_type_list[i]==SealevelriseAnalysisEnum)sealevelrise_core_geometry(femmodel_init);
     31                                }
     32                        }
     33
    2634                        femmodel_init->profiler->Start(CORE);
    2735                }
  • issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp

    r24950 r24977  
    4242        femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
    4343
    44         /*run geometry core:*/
    45         if (solution_type!=TransientSolutionEnum) sealevelrise_core_geometry(femmodel);
     44        /*run geometry core: */
     45        sealevelrise_core_geometry(femmodel);
    4646
    4747        /*Run geodetic:*/
     
    260260        IssmDouble *zz    = NULL;
    261261        int  horiz;
     262        bool geometrydone = false;
     263
     264               
     265        /*retrieve parameters:*/
     266        femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum);
     267        femmodel->parameters->FindParam(&geometrydone,SealevelriseGeometryDoneEnum);
     268
     269        if(geometrydone){
     270                if(VerboseSolution()) _printf0_("         geometrical offsets have already been computed, skipping \n");
     271                return; //don't need to run this again.
     272        }
    262273
    263274        /*Verbose: */
    264275        if(VerboseSolution()) _printf0_("         computing geometrical offsets into precomputed Green tables \n");
    265        
    266         femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum);
    267276
    268277        /*first, recover lat,long and radius vectors from vertices: */
    269278        VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical);
    270279        if(horiz) VertexCoordinatesx(&xx,&yy,&zz,femmodel->vertices);
    271 
    272280
    273281        /*call the FemModel geometry module: */
     
    282290        xDelete<IssmDouble>(longitude);
    283291        xDelete<IssmDouble>(radius);
     292
     293        /*Record the fact that we ran this module already: */
     294        femmodel->parameters->SetParam(true,SealevelriseGeometryDoneEnum);
    284295
    285296
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24959 r24977  
    308308syn keyword cConstant SealevelriseAngularVelocityEnum
    309309syn keyword cConstant SealevelriseElasticEnum
     310syn keyword cConstant SealevelriseGeometryDoneEnum
    310311syn keyword cConstant SealevelriseEquatorialMoiEnum
    311312syn keyword cConstant SealevelriseFluidLoveEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24959 r24977  
    302302        SealevelriseAngularVelocityEnum,
    303303        SealevelriseElasticEnum,
     304        SealevelriseGeometryDoneEnum,
    304305        SealevelriseEquatorialMoiEnum,
    305306        SealevelriseFluidLoveEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24959 r24977  
    310310                case SealevelriseAngularVelocityEnum : return "SealevelriseAngularVelocity";
    311311                case SealevelriseElasticEnum : return "SealevelriseElastic";
     312                case SealevelriseGeometryDoneEnum : return "SealevelriseGeometryDone";
    312313                case SealevelriseEquatorialMoiEnum : return "SealevelriseEquatorialMoi";
    313314                case SealevelriseFluidLoveEnum : return "SealevelriseFluidLove";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24959 r24977  
    316316              else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum;
    317317              else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
     318              else if (strcmp(name,"SealevelriseGeometryDone")==0) return SealevelriseGeometryDoneEnum;
    318319              else if (strcmp(name,"SealevelriseEquatorialMoi")==0) return SealevelriseEquatorialMoiEnum;
    319320              else if (strcmp(name,"SealevelriseFluidLove")==0) return SealevelriseFluidLoveEnum;
     
    382383              else if (strcmp(name,"SmbK")==0) return SmbKEnum;
    383384              else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
    384               else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum;
     388              if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
     389              else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum;
    389390              else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
    390391              else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum;
     
    505506              else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
    506507              else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
    507               else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
     511              if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
     512              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
    512513              else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
    513514              else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum;
     
    628629              else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    629630              else if (strcmp(name,"Ice")==0) return IceEnum;
    630               else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Input")==0) return InputEnum;
     634              if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
     635              else if (strcmp(name,"Input")==0) return InputEnum;
    635636              else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
    636637              else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum;
     
    751752              else if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum;
    752753              else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
    753               else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
     757              if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
     758              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    758759              else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
    759760              else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
     
    874875              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    875876              else if (strcmp(name,"Waterheight")==0) return WaterheightEnum;
    876               else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
     880              if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
     881              else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
    881882              else if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum;
    882883              else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum;
     
    997998              else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
    998999              else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
    999               else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
     1003              if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
     1004              else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
    10041005              else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
    10051006              else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum;
     
    11201121              else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
    11211122              else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
    1122               else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum;
     1126              if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
     1127              else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum;
    11271128              else if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum;
    11281129              else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
     
    12431244              else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
    12441245              else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
    1245               else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
     1249              if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
     1250              else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
    12501251              else if (strcmp(name,"Paterson")==0) return PatersonEnum;
    12511252              else if (strcmp(name,"Pengrid")==0) return PengridEnum;
     
    13661367              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    13671368              else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum;
    1368               else if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
     1372              if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum;
     1373              else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
    13731374              else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
    13741375              else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
Note: See TracChangeset for help on using the changeset viewer.