Changeset 19720


Ignore:
Timestamp:
Nov 16, 2015, 1:42:15 PM (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: working on new subglacial hydrology model with Aleah, not working just yet

Location:
issm/trunk-jpl
Files:
12 added
12 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/m4/analyses.m4

    r19528 r19720  
    478478
    479479dnl }}}
     480dnl with-HydrologySommers{{{
     481
     482AC_ARG_WITH([HydrologySommers],
     483
     484        AS_HELP_STRING([--with-HydrologySommers = YES], [compile with HydrologySommers capabilities (default is yes)]),
     485
     486        [HYDROLOGYSOMMERS=$withval],[HYDROLOGYSOMMERS=yes])
     487
     488AC_MSG_CHECKING(for HydrologySommers capability compilation)
     489
     490
     491HAVE_HYDROLOGYSOMMERS=no
     492
     493if test "x$HYDROLOGYSOMMERS" = "xyes"; then
     494
     495        HAVE_HYDROLOGYSOMMERS=yes
     496
     497        AC_DEFINE([_HAVE_HYDROLOGYSOMMERS_],[1],[with HydrologySommers capability])
     498
     499fi
     500
     501AM_CONDITIONAL([HYDROLOGYSOMMERS], [test x$HAVE_HYDROLOGYSOMMERS = xyes])
     502
     503AC_MSG_RESULT($HAVE_HYDROLOGYSOMMERS)
     504
     505dnl }}}
    480506dnl with-Melting{{{
    481507
  • issm/trunk-jpl/src/c/Makefile.am

    r19702 r19720  
    391391issm_sources += ./analyses/HydrologyShreveAnalysis.cpp
    392392endif
     393if HYDROLOGYSOMMERS
     394issm_sources += ./analyses/HydrologySommersAnalysis.cpp
     395endif
    393396if HYDROLOGYDCINEFFICIENT
    394397issm_sources += ./analyses/HydrologyDCInefficientAnalysis.cpp
  • issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp

    r19528 r19720  
    6868                case HydrologyDCEfficientAnalysisEnum : return new HydrologyDCEfficientAnalysis();
    6969                #endif
     70                #ifdef _HAVE_HYDROLOGYSOMMERS_
     71                case HydrologySommersAnalysisEnum : return new HydrologySommersAnalysis();
     72                #endif
    7073                #ifdef _HAVE_MELTING_
    7174                case MeltingAnalysisEnum : return new MeltingAnalysis();
  • issm/trunk-jpl/src/c/analyses/analyses.h

    r19528 r19720  
    2727#include "./HydrologyDCInefficientAnalysis.h"
    2828#include "./HydrologyShreveAnalysis.h"
     29#include "./HydrologySommersAnalysis.h"
    2930#include "./LevelsetAnalysis.h"
    3031#include "./LsfReinitializationAnalysis.h"
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r19651 r19720  
    586586                        if(ishydrology){
    587587                                analyses_temp[numanalyses++]=HydrologyShreveAnalysisEnum;
     588                                analyses_temp[numanalyses++]=HydrologySommersAnalysisEnum;
    588589                                analyses_temp[numanalyses++]=HydrologyDCInefficientAnalysisEnum;
    589590                                analyses_temp[numanalyses++]=HydrologyDCEfficientAnalysisEnum;
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp

    r19554 r19720  
    146146                        }
    147147                        else if(hydrology_model==HydrologyshreveEnum){
     148                                /*Nothing to add*/
     149                        }
     150                        else if(hydrology_model==HydrologysommersEnum){
    148151                                /*Nothing to add*/
    149152                        }
  • issm/trunk-jpl/src/c/cores/hydrology_core.cpp

    r19527 r19720  
    7979                }
    8080        }
     81
     82        else if (hydrology_model==HydrologysommersEnum){
     83                if(VerboseSolution()) _printf0_("   computing water head\n");
     84                femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);
     85                solutionsequence_nonlinear(femmodel,modify_loads);
     86               
     87                if(save_results){
     88                        if(VerboseSolution()) _printf0_("   saving results \n");
     89                        int outputs[2] = {HydrologyHeadEnum,HydrologyGapHeightEnum};
     90                        femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2);
     91                       
     92                        /*unload results*/
     93                        if(VerboseSolution()) _printf0_("   saving temporary results\n");
     94                        OutputResultsx(femmodel);
     95                }
     96        }
     97
     98        else{
     99                _error_("Hydrology model "<< EnumToStringx(hydrology_model) <<" not supported yet");
     100        }
    81101}
    82102
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19594 r19720  
    156156        HydrologyEfficientEnum,
    157157        HydrologySedimentKmaxEnum,
     158        HydrologysommersEnum,
     159        HydrologyHeadEnum,
     160        HydrologyGapHeightEnum,
     161        HydrologyBumpSpacingEnum,
     162        HydrologyBumpHeightEnum,
     163        HydrologyEnglacialInputEnum,
     164        HydrologyReynoldsEnum,
     165        HydrologySpcheadEnum,
    158166        IndependentObjectEnum,
    159167        InversionControlParametersEnum,
    … …  
    481489        HydrologyDCInefficientAnalysisEnum,
    482490        HydrologyDCEfficientAnalysisEnum,
     491        HydrologySommersAnalysisEnum,
    483492        HydrologySolutionEnum,
    484493        MeltingAnalysisEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19594 r19720  
    162162                case HydrologyEfficientEnum : return "HydrologyEfficient";
    163163                case HydrologySedimentKmaxEnum : return "HydrologySedimentKmax";
     164                case HydrologysommersEnum : return "Hydrologysommers";
     165                case HydrologyHeadEnum : return "HydrologyHead";
     166                case HydrologyGapHeightEnum : return "HydrologyGapHeight";
     167                case HydrologyBumpSpacingEnum : return "HydrologyBumpSpacing";
     168                case HydrologyBumpHeightEnum : return "HydrologyBumpHeight";
     169                case HydrologyEnglacialInputEnum : return "HydrologyEnglacialInput";
     170                case HydrologyReynoldsEnum : return "HydrologyReynolds";
     171                case HydrologySpcheadEnum : return "HydrologySpchead";
    164172                case IndependentObjectEnum : return "IndependentObject";
    165173                case InversionControlParametersEnum : return "InversionControlParameters";
    … …  
    479487                case HydrologyDCInefficientAnalysisEnum : return "HydrologyDCInefficientAnalysis";
    480488                case HydrologyDCEfficientAnalysisEnum : return "HydrologyDCEfficientAnalysis";
     489                case HydrologySommersAnalysisEnum : return "HydrologySommersAnalysis";
    481490                case HydrologySolutionEnum : return "HydrologySolution";
    482491                case MeltingAnalysisEnum : return "MeltingAnalysis";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19594 r19720  
    165165              else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
    166166              else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
     167              else if (strcmp(name,"Hydrologysommers")==0) return HydrologysommersEnum;
     168              else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum;
     169              else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum;
     170              else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
     171              else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
     172              else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
     173              else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
     174              else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
    167175              else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
    168176              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
    … …  
    252260              else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
    253261              else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
    254               else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
    255266              else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
    256267              else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
    … …  
    260271              else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
    261272              else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
     273              else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
    266274              else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
    267275              else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
    … …  
    375383              else if (strcmp(name,"SmbP")==0) return SmbPEnum;
    376384              else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
    377               else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
    378389              else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
    379390              else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
    … …  
    383394              else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
    384395              else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
     396              else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
    389397              else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
    390398              else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
    … …  
    488496              else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
    489497              else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
     498              else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
    490499              else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
    491500              else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
    … …  
    497506              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
    498507              else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
    499               else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
    500512              else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
    501513              else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
    … …  
    506518              else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
    507519              else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
     520              else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
    512521              else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
    513522              else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
    … …  
    620629              else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
    621630              else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
    622               else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
    623635              else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
    624636              else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
    … …  
    629641              else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
    630642              else if (strcmp(name,"Friction")==0) return FrictionEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"Internal")==0) return InternalEnum;
     643              else if (strcmp(name,"Internal")==0) return InternalEnum;
    635644              else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
    636645              else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
    … …  
    743752              else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
    744753              else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
    745               else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
    746758              else if (strcmp(name,"J")==0) return JEnum;
    747759              else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
    … …  
    752764              else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
    753765              else if (strcmp(name,"Outputdefinition2")==0) return Outputdefinition2Enum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
     766              else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
    758767              else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
    759768              else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
    … …  
    866875              else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
    867876              else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
    868               else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
    869881              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    870882              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
    … …  
    875887              else if (strcmp(name,"MinVel")==0) return MinVelEnum;
    876888              else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"MinVx")==0) return MinVxEnum;
     889              else if (strcmp(name,"MinVx")==0) return MinVxEnum;
    881890              else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
    882891              else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
  • issm/trunk-jpl/src/m/classes/model.m

    r19642 r19720  
    182182                                md.friction.C=project2d(md,md.friction.C,1);
    183183                                md.friction.m=project2d(md,md.friction.m,1);
     184                        elseif isa(md.friction,'frictionweertmantemp'),
     185                                md.friction.C=project2d(md,md.friction.C,1);
     186                                md.friction.m=project2d(md,md.friction.m,1);
     187                        else
     188                                disp('friction type not supported');
    184189            end
    185190
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19594 r19720  
    154154def HydrologyEfficientEnum(): return StringToEnum("HydrologyEfficient")[0]
    155155def HydrologySedimentKmaxEnum(): return StringToEnum("HydrologySedimentKmax")[0]
     156def HydrologysommersEnum(): return StringToEnum("Hydrologysommers")[0]
     157def HydrologyHeadEnum(): return StringToEnum("HydrologyHead")[0]
     158def HydrologyGapHeightEnum(): return StringToEnum("HydrologyGapHeight")[0]
     159def HydrologyBumpSpacingEnum(): return StringToEnum("HydrologyBumpSpacing")[0]
     160def HydrologyBumpHeightEnum(): return StringToEnum("HydrologyBumpHeight")[0]
     161def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
     162def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
     163def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
    156164def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
    157165def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
    … …  
    471479def HydrologyDCInefficientAnalysisEnum(): return StringToEnum("HydrologyDCInefficientAnalysis")[0]
    472480def HydrologyDCEfficientAnalysisEnum(): return StringToEnum("HydrologyDCEfficientAnalysis")[0]
     481def HydrologySommersAnalysisEnum(): return StringToEnum("HydrologySommersAnalysis")[0]
    473482def HydrologySolutionEnum(): return StringToEnum("HydrologySolution")[0]
    474483def MeltingAnalysisEnum(): return StringToEnum("MeltingAnalysis")[0]
Note: See TracChangeset for help on using the changeset viewer.