Changeset 17078


Ignore:
Timestamp:
01/09/14 11:27:48 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added 2 more SMB classes

Location:
issm/trunk-jpl/src
Files:
8 added
10 edited

Legend:

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

    r17072 r17078  
    8989                case SMBEnum:
    9090                        iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
     91                        break;
     92                case SMBpddEnum:
     93                        iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     94                        iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
     95                        if(isdelta18o){
     96                                iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
     97                                iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
     98                                iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
     99                        }
     100                        else{
     101                                iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
     102                                iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
     103                        }
     104                        break;
     105                case SMBgradientsEnum:
     106                        iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
     107                        iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
     108                        iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum);
     109                        iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum);
    91110                        break;
    92111                case SurfaceforcingsEnum: /*To Be REMOVED*/
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp

    r17072 r17078  
    4545        switch(smb_model){
    4646                case SMBEnum:
     47                        /*Nothing to add*/
     48                        break;
     49                case SMBpddEnum:
     50                        iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
     51                        iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     52                        break;
     53                case SMBgradientsEnum:
    4754                        /*Nothing to add*/
    4855                        break;
  • issm/trunk-jpl/src/c/cores/masstransport_core.cpp

    r17072 r17078  
    4444                case SMBEnum:
    4545                        /*Nothing to be done*/
     46                        break;
     47                case SMBpddEnum:
     48                        femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     49                        if(isdelta18o){
     50                                if(VerboseSolution()) _printf0_("   call Delta18oParametrization module\n");
     51                                Delta18oParameterizationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     52                        }
     53                        if(VerboseSolution()) _printf0_("   call positive degree day module\n");
     54                        PositiveDegreeDayx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     55                        break;
     56                case SMBgradientsEnum:
     57                        if(VerboseSolution())_printf_(" call smb gradients module\n\n");
     58                        SmbGradientsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
    4659                        break;
    4760                case SurfaceforcingsEnum: /*To Be REMOVED*/
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r17075 r17078  
    2222        int    i;
    2323        IssmDouble starttime,finaltime,dt,yts;
    24         bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isdelta18o,isgia,islevelset;
     24        bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset;
    2525        bool   save_results,dakota_analysis;
    2626        bool   time_adapt=false;
    2727        int    output_frequency;
    28         int    meshtype,groundingline_migration;
     28        int    meshtype,groundingline_migration,smb_model;
    2929        int    numoutputs         = 0;
    3030  Analysis *analysis = NULL;
     
    5454        femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
    5555        if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
    56         femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    5756
    5857        /*initialize: */
     
    170169                if(VerboseSolution()) _printf0_("   computing requested outputs\n");
    171170                femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results);
    172                 if(isdelta18o){
    173                         int outputs[2] = {SurfaceforcingsMonthlytemperaturesEnum,SurfaceforcingsPrecipitationEnum};
    174                         femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2,save_results);
    175                 }
    176171                if(isgroundingline && (groundingline_migration==SubelementMigrationEnum || groundingline_migration==SubelementMigration2Enum)){
    177172                        int outputs[1] = {MaskGroundediceLevelsetEnum};
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r17072 r17078  
    9191                        /*Nothing to add to parameters*/
    9292                        break;
     93                case SMBpddEnum:
     94                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
     95                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
     96                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
     97                        iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     98                        if(isdelta18o){
     99                                IssmDouble *temp = NULL;
     100                                IssmDouble  yts;
     101                                int         N,M;
     102                                iomodel->Constant(&yts,ConstantsYtsEnum);
     103                                iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
     104                                for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     105                                parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
     106                                iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
     107
     108                                iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
     109                                for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     110                                parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
     111                                iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
     112                        }
     113                        break;
     114                case SMBgradientsEnum:
     115                        /*Nothing to add to parameters*/
     116                        break;
    93117                case SurfaceforcingsEnum: /*To Be REMOVED*/
    94118                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum));
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17075 r17078  
    281281        SMBEnum,
    282282        SurfaceforcingsMassBalanceEnum,
    283 
     283        SMBpddEnum,
    284284        SurfaceforcingsDelta18oEnum,
    285285        SurfaceforcingsDelta18oSurfaceEnum,
     
    289289        SurfaceforcingsTemperaturesLgmEnum,
    290290        SurfaceforcingsPrecipitationEnum,
    291         SurfaceforcingsIspddEnum,
    292291        SurfaceforcingsDesfacEnum,
    293292        SurfaceforcingsS0pEnum,
    294         SurfaceforcingsIssmbgradientsEnum,
     293        SMBgradientsEnum,
    295294        SurfaceforcingsMonthlytemperaturesEnum,
    296295        SurfaceforcingsHrefEnum,
     
    298297        SurfaceforcingsBPosEnum,
    299298        SurfaceforcingsBNegEnum,
     299        SMBlapserate,
     300        /*TO BE REMOVED*/
     301        SurfaceforcingsIspddEnum,
     302        SurfaceforcingsIssmbgradientsEnum,
    300303        /*}}}*/
    301304        /*Solutions and Analyses{{{ */
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17075 r17078  
    285285                case SMBEnum : return "SMB";
    286286                case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
     287                case SMBpddEnum : return "SMBpdd";
    287288                case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o";
    288289                case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface";
     
    292293                case SurfaceforcingsTemperaturesLgmEnum : return "SurfaceforcingsTemperaturesLgm";
    293294                case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
    294                 case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
    295295                case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
    296296                case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
    297                 case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
     297                case SMBgradientsEnum : return "SMBgradients";
    298298                case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
    299299                case SurfaceforcingsHrefEnum : return "SurfaceforcingsHref";
     
    301301                case SurfaceforcingsBPosEnum : return "SurfaceforcingsBPos";
    302302                case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg";
     303                case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
     304                case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
    303305                case SolutionTypeEnum : return "SolutionType";
    304306                case AnalysisTypeEnum : return "AnalysisType";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17075 r17078  
    291291              else if (strcmp(name,"SMB")==0) return SMBEnum;
    292292              else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
     293              else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
    293294              else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
    294295              else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
     
    298299              else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
    299300              else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
    300               else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
    301301              else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
    302302              else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
    303               else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
     303              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
    304304              else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    305305              else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
     
    307307              else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    308308              else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
     309              else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
     310              else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
    309311              else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
    310312              else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
     
    381383              else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
    382384              else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
    383               else if (strcmp(name,"Contour")==0) return ContourEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"Contour")==0) return ContourEnum;
    384389              else if (strcmp(name,"ControlInput")==0) return ControlInputEnum;
    385390              else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    386391              else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;
    387          else stage=4;
    388    }
    389    if(stage==4){
    390               if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
     392              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    391393              else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
    392394              else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
     
    504506              else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
    505507              else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
    506               else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
    507512              else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
    508513              else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
    509514              else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
    510          else stage=5;
    511    }
    512    if(stage==5){
    513               if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
     515              else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    514516              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    515517              else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
     
    627629              else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
    628630              else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
    629               else if (strcmp(name,"XY")==0) return XYEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"XY")==0) return XYEnum;
    630635              else if (strcmp(name,"XYZ")==0) return XYZEnum;
    631636              else if (strcmp(name,"Dense")==0) return DenseEnum;
    632637              else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
    633          else stage=6;
    634    }
    635    if(stage==6){
    636               if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
     638              else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
    637639              else if (strcmp(name,"Seq")==0) return SeqEnum;
    638640              else if (strcmp(name,"Mpi")==0) return MpiEnum;
  • issm/trunk-jpl/src/m/classes/model.py

    r17074 r17078  
    99from surfaceforcings import surfaceforcings
    1010from SMB import SMB
     11from SMBpdd import SMBpdd
     12from SMBgradients import SMBgradients
    1113from basalforcings import basalforcings
    1214from matice import matice
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17075 r17078  
    277277def SMBEnum(): return StringToEnum("SMB")[0]
    278278def SurfaceforcingsMassBalanceEnum(): return StringToEnum("SurfaceforcingsMassBalance")[0]
     279def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
    279280def SurfaceforcingsDelta18oEnum(): return StringToEnum("SurfaceforcingsDelta18o")[0]
    280281def SurfaceforcingsDelta18oSurfaceEnum(): return StringToEnum("SurfaceforcingsDelta18oSurface")[0]
     
    284285def SurfaceforcingsTemperaturesLgmEnum(): return StringToEnum("SurfaceforcingsTemperaturesLgm")[0]
    285286def SurfaceforcingsPrecipitationEnum(): return StringToEnum("SurfaceforcingsPrecipitation")[0]
    286 def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
    287287def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
    288288def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
    289 def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
     289def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
    290290def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
    291291def SurfaceforcingsHrefEnum(): return StringToEnum("SurfaceforcingsHref")[0]
     
    293293def SurfaceforcingsBPosEnum(): return StringToEnum("SurfaceforcingsBPos")[0]
    294294def SurfaceforcingsBNegEnum(): return StringToEnum("SurfaceforcingsBNeg")[0]
     295def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
     296def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
    295297def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
    296298def AnalysisTypeEnum(): return StringToEnum("AnalysisType")[0]
Note: See TracChangeset for help on using the changeset viewer.