Changeset 16592


Ignore:
Timestamp:
10/31/13 12:08:07 (11 years ago)
Author:
bdef
Message:

Adding a slope computation for the EPL head

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

Legend:

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

    r16589 r16592  
    573573                case BedSlopeXEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
    574574                case BedSlopeYEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
     575                case EplHeadSlopeXEnum: input2 = inputs->GetInput(EplHeadEnum); _assert_(input2); break;
     576                case EplHeadSlopeYEnum: input2 = inputs->GetInput(EplHeadEnum); _assert_(input2); break;
    575577                default: input = inputs->GetInput(input_enum);
    576578        }
     
    587589                if(input2) input2->GetInputDerivativeValue(&slopes[0],&xyz_list[0][0],gauss);
    588590                switch(input_enum){
    589                         case SurfaceSlopeXEnum: case BedSlopeXEnum: value = slopes[0]; break;
    590                         case SurfaceSlopeYEnum: case BedSlopeYEnum: value = slopes[1]; break;
     591                        case SurfaceSlopeXEnum: case BedSlopeXEnum: case EplHeadSlopeXEnum: value = slopes[0]; break;
     592                        case SurfaceSlopeYEnum: case BedSlopeYEnum: case EplHeadSlopeYEnum: value = slopes[1]; break;
    591593                        default: input->GetInputValue(&value,gauss);
    592594                }
  • issm/trunk-jpl/src/c/cores/hydrology_core.cpp

    r16591 r16592  
    5757                femmodel->parameters->SetParam(step,StepEnum);
    5858
     59                /*Using the Shreve based Model*/
    5960                if (hydrology_model==HydrologyshreveEnum){
    6061                        if(VerboseSolution()) _printf0_("   computing water column\n");
     
    7778                }
    7879
     80                /*Using the double continuum model*/
    7981                else if (hydrology_model==HydrologydcEnum){
    8082                        InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
     
    8385                                InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
    8486                        }
    85 
     87                       
     88                        /*Proceed now to heads computations*/
    8689                        if(VerboseSolution()) _printf0_("   computing water head\n");
    8790                        solutionsequence_hydro_nonlinear(femmodel);
     
    8992                                if(VerboseSolution()) _printf0_("   saving results \n");
    9093                                if(isefficientlayer){
    91                                         int outputs[4] = {SedimentHeadEnum,SedimentHeadResidualEnum,EplHeadEnum,HydrologydcMaskEplactiveEnum};
    92                                         femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],4);
     94                                        int outputs[6] = {SedimentHeadEnum,SedimentHeadResidualEnum,EplHeadEnum,HydrologydcMaskEplactiveEnum,EplHeadSlopeXEnum,EplHeadSlopeYEnum};
     95                                        femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],6);
    9396                                }
    9497                                else{
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r16590 r16592  
    100100        EplHeadEnum,
    101101        EplHeadOldEnum,
    102   HydrologydcRelTolEnum,
     102  EplHeadSlopeXEnum,
     103        EplHeadSlopeYEnum,
     104        HydrologydcRelTolEnum,
    103105        HydrologydcSpcsedimentHeadEnum,
    104106        HydrologydcSedimentCompressibilityEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r16590 r16592  
    108108                case EplHeadEnum : return "EplHead";
    109109                case EplHeadOldEnum : return "EplHeadOld";
     110                case EplHeadSlopeXEnum : return "EplHeadSlopeX";
     111                case EplHeadSlopeYEnum : return "EplHeadSlopeY";
    110112                case HydrologydcRelTolEnum : return "HydrologydcRelTol";
    111113                case HydrologydcSpcsedimentHeadEnum : return "HydrologydcSpcsedimentHead";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r16590 r16592  
    108108              else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
    109109              else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
     110              else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
     111              else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
    110112              else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
    111113              else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum;
     
    135137              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
    136138              else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum;
    137               else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
    138               else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
     142              if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
     143              else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
     144              else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
    143145              else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
    144146              else if (strcmp(name,"InversionTao")==0) return InversionTaoEnum;
     
    258260              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    259261              else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
    260               else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
    261               else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
     265              if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
     266              else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
     267              else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
    266268              else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
    267269              else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
     
    381383              else if (strcmp(name,"FileParam")==0) return FileParamEnum;
    382384              else if (strcmp(name,"Input")==0) return InputEnum;
    383               else if (strcmp(name,"IntInput")==0) return IntInputEnum;
    384               else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
     388              if (strcmp(name,"IntInput")==0) return IntInputEnum;
     389              else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
     390              else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
    389391              else if (strcmp(name,"IntParam")==0) return IntParamEnum;
    390392              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
     
    504506              else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    505507              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    506               else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
    507               else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
     511              if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
     512              else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
     513              else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
    512514              else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
    513515              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r16570 r16592  
    77#include "../shared/shared.h"
    88#include "../modules/modules.h"
     9/*FIXME, dirty hack to get the solutionsequence linear needed to compute the slopes*/
     10#include "../solutionsequences/solutionsequences.h"
    911
    1012void solutionsequence_hydro_nonlinear(FemModel* femmodel){
     
    9294                        InputUpdateFromSolutionx(femmodel,ug_sed);
    9395                        ConstraintsStatex(&constraints_converged,&num_unstable_constraints,femmodel);
    94 
    9596                        if (!sedconverged){
    9697                                if(VerboseConvergence()) _printf0_("   # Sediment unstable constraints = " << num_unstable_constraints << "\n");
     
    113114                /*Second layer*/
    114115                if(isefficientlayer){
     116
     117                        /*Start by retrieving the EPL head slopes*/
     118                        if(VerboseSolution()) _printf0_("computing EPL Head slope...\n");
     119                        femmodel->SetCurrentConfiguration(L2ProjectionBaseAnalysisEnum);
     120                        femmodel->parameters->SetParam(EplHeadSlopeXEnum,InputToL2ProjectEnum);
     121                        solutionsequence_linear(femmodel);
     122                        femmodel->parameters->SetParam(EplHeadSlopeYEnum,InputToL2ProjectEnum);
     123                        solutionsequence_linear(femmodel);
     124                       
    115125                        femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum);
    116126                        InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum);
  • issm/trunk-jpl/src/m/classes/clusters/greenplanet.m

    r15999 r16592  
    147147
    148148                         disp('launching solution sequence on remote cluster');
    149                          launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
    150                                  ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
     149                         % launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
     150                         %       ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
    151151                         issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
    152152                 end %}}}
  • issm/trunk-jpl/src/m/contrib/paraview/exportVTK.m

    r16571 r16592  
    118118                fieldnames=fields(res_struct);
    119119                num_of_fields=length(fieldnames);
    120                 for k=1:num_of_sols
     120                for k=1:num_of_fields
    121121                        if ((length(res_struct.(fieldnames{k})))==num_of_points);
    122122                                %paraview does not like NaN, replacing
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r16590 r16592  
    100100def EplHeadEnum(): return StringToEnum("EplHead")[0]
    101101def EplHeadOldEnum(): return StringToEnum("EplHeadOld")[0]
     102def EplHeadSlopeXEnum(): return StringToEnum("EplHeadSlopeX")[0]
     103def EplHeadSlopeYEnum(): return StringToEnum("EplHeadSlopeY")[0]
    102104def HydrologydcRelTolEnum(): return StringToEnum("HydrologydcRelTol")[0]
    103105def HydrologydcSpcsedimentHeadEnum(): return StringToEnum("HydrologydcSpcsedimentHead")[0]
  • issm/trunk-jpl/src/m/plot/plot_contour.m

    r16349 r16592  
    230230                        h=patch('Xdata',[xc;NaN],'Ydata',[yc;NaN],'facecolor','none','edgecolor',color,'linewidth',linewidth);
    231231                        c = horzcat([level, xc'; length(xc), yc']);
    232                         clabel(c,h,'FontSize',10,'labelspacing',20000,'color',color);
     232                        %clabel(c,h,'FontSize',10,'labelspacing',20000,'color',color);
    233233                        hold on
    234234                end
Note: See TracChangeset for help on using the changeset viewer.