Changeset 14538


Ignore:
Timestamp:
04/11/13 14:17:29 (12 years ago)
Author:
Eric.Larour
Message:

NEW: GIA modifications

Location:
issm/trunk-jpl
Files:
4 added
15 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/configs/config-macosx64-larour.sh

    r13846 r14538  
    2727        --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
    2828        --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
    29         --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install 
     29        --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install
  • issm/trunk-jpl/m4/issm_options.m4

    r14510 r14538  
    13811381        AC_MSG_RESULT($HAVE_RIFTS)
    13821382        dnl }}}
     1383        dnl with-gia{{{
     1384        AC_ARG_WITH([gia],
     1385                AS_HELP_STRING([--with-gia = YES], [compile with gia capabilities (default is yes)]),
     1386                [GIA=$withval],[GIA=yes])
     1387        AC_MSG_CHECKING(for gia capability compilation)
     1388
     1389        if test "x$GIA" = "xyes"; then
     1390
     1391                dnl defaults
     1392                HAVE_GIA=yes
     1393
     1394                AC_DEFINE([_HAVE_GIA_],[1],[with gia capability])
     1395        else
     1396                HAVE_GIA=no
     1397        fi
     1398        AM_CONDITIONAL([GIA], [test x$HAVE_GIA = xyes])
     1399        AC_MSG_RESULT($HAVE_GIA)
     1400        dnl }}}
    13831401        dnl with-ios{{{
    13841402        AC_ARG_WITH([ios],
  • issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h

    r14537 r14538  
    220220        TransientIsprognosticEnum,
    221221        TransientIsthermalEnum,
     222        TransientIsgiaEnum,
    222223        TransientNumRequestedOutputsEnum,
    223224        TransientRequestedOutputsEnum,
     
    262263        TransientSolutionEnum,
    263264        GiaSolutionEnum,
     265        GiaAnalysisEnum,
    264266        /*}}}*/
    265267        /*Approximations {{{1*/
     
    442444        StressTensoryzEnum,
    443445        StressTensorzzEnum,
     446        GiaWEnum,
    444447        /*}}}*/
    445448        /*Element Interpolations{{{1*/
  • issm/trunk-jpl/src/c/Makefile.am

    r14293 r14538  
    490490                                          ./solutions/bedslope_core.cpp
    491491#}}}
     492#Gia sources  {{{
     493gia_sources =  ./solutions/gia_core.cpp
     494#}}}
    492495#Groundingline sources  {{{
    493496groundingline_sources= ./modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp\
     
    832835endif
    833836
     837if GIA
     838issm_sources  +=  $(gia_sources)
     839endif
     840
    834841if CONTROL
    835842issm_sources  +=  $(control_sources)
  • issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r14537 r14538  
    225225                case TransientIsprognosticEnum : return "TransientIsprognostic";
    226226                case TransientIsthermalEnum : return "TransientIsthermal";
     227                case TransientIsgiaEnum : return "TransientIsgia";
    227228                case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
    228229                case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
     
    265266                case TransientSolutionEnum : return "TransientSolution";
    266267                case GiaSolutionEnum : return "GiaSolution";
     268                case GiaAnalysisEnum : return "GiaAnalysis";
    267269                case ApproximationEnum : return "Approximation";
    268270                case NoneApproximationEnum : return "NoneApproximation";
     
    433435                case StressTensoryzEnum : return "StressTensoryz";
    434436                case StressTensorzzEnum : return "StressTensorzz";
     437                case GiaWEnum : return "GiaW";
    435438                case P0Enum : return "P0";
    436439                case P1Enum : return "P1";
  • issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r14537 r14538  
    229229              else if (strcmp(name,"TransientIsprognostic")==0) return TransientIsprognosticEnum;
    230230              else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
     231              else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
    231232              else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
    232233              else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
     
    260261              else if (strcmp(name,"PrognosticAnalysis")==0) return PrognosticAnalysisEnum;
    261262              else if (strcmp(name,"PrognosticSolution")==0) return PrognosticSolutionEnum;
    262               else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
    263263         else stage=3;
    264264   }
    265265   if(stage==3){
    266               if (strcmp(name,"SurfaceSlopeAnalysis")==0) return SurfaceSlopeAnalysisEnum;
     266              if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
     267              else if (strcmp(name,"SurfaceSlopeAnalysis")==0) return SurfaceSlopeAnalysisEnum;
    267268              else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
    268269              else if (strcmp(name,"SurfaceSlopeXAnalysis")==0) return SurfaceSlopeXAnalysisEnum;
     
    272273              else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
    273274              else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
     275              else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
    274276              else if (strcmp(name,"Approximation")==0) return ApproximationEnum;
    275277              else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
     
    382384              else if (strcmp(name,"QmuSurface")==0) return QmuSurfaceEnum;
    383385              else if (strcmp(name,"QmuMelting")==0) return QmuMeltingEnum;
    384               else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
    385               else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
    386386         else stage=4;
    387387   }
    388388   if(stage==4){
    389               if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum;
     389              if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
     390              else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
     391              else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum;
    390392              else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
    391393              else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
     
    443445              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
    444446              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
     447              else if (strcmp(name,"GiaW")==0) return GiaWEnum;
    445448              else if (strcmp(name,"P0")==0) return P0Enum;
    446449              else if (strcmp(name,"P1")==0) return P1Enum;
     
    504507              else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
    505508              else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
    506               else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
    507               else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
    508               else if (strcmp(name,"PetscOptionsAnalyses")==0) return PetscOptionsAnalysesEnum;
    509509         else stage=5;
    510510   }
    511511   if(stage==5){
    512               if (strcmp(name,"PetscOptionsStrings")==0) return PetscOptionsStringsEnum;
     512              if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
     513              else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
     514              else if (strcmp(name,"PetscOptionsAnalyses")==0) return PetscOptionsAnalysesEnum;
     515              else if (strcmp(name,"PetscOptionsStrings")==0) return PetscOptionsStringsEnum;
    513516              else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    514517              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
  • issm/trunk-jpl/src/c/solutions/AnalysisConfiguration.cpp

    r14159 r14538  
    101101                        break;
    102102
     103                case GiaSolutionEnum:
     104                        numanalyses=1;
     105                        analyses=xNew<int>(numanalyses);
     106                        analyses[0]=GiaAnalysisEnum;
     107                        break;
     108
    103109                case TransientSolutionEnum:
    104110                        numanalyses=9;
  • issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp

    r14159 r14538  
    102102                        #endif
    103103                        break;
     104
     105                case GiaSolutionEnum:
     106                        #ifdef _HAVE_GIA_
     107                        solutioncore=&gia_core;
     108                        #else
     109                        _error_("ISSM was not compiled with gia capabilities. Exiting");
     110                        #endif
     111                        break;
     112
    104113                default:
    105114                        _error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
  • issm/trunk-jpl/src/c/solutions/solutions.h

    r14159 r14538  
    3434void ad_core(FemModel* femmodel);
    3535void dummy_core(FemModel* femmodel);
     36void gia_core(FemModel* femmodel);
    3637IssmDouble objectivefunction(IssmDouble search_scalar,OptArgs* optargs);
    3738
  • issm/trunk-jpl/src/c/solutions/transient_core.cpp

    r14368 r14538  
    2424        /*parameters: */
    2525        IssmDouble starttime,finaltime,dt,yts;
    26         bool   isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy,isdelta18o;
     26        bool   isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy,isdelta18o,isgia;
    2727        bool   save_results,dakota_analysis;
    2828        bool   time_adapt=false;
     
    4848        femmodel->parameters->FindParam(&isprognostic,TransientIsprognosticEnum);
    4949        femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
     50        femmodel->parameters->FindParam(&isgia,TransientIsgiaEnum);
    5051        femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
    5152        femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
     
    132133                        #endif
    133134                }
     135                if(isgia){
     136                        if(VerboseSolution()) _pprintLine_("   computing glacial isostatic adjustment");
     137                        #ifdef _HAVE_GIA_
     138                        gia_core(femmodel);
     139                        #else
     140                        _error_("ISSM was not compiled with gia capabilities. Exiting");
     141                        #endif
     142
     143                }
    134144
    135145                /*unload results*/
  • issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m

    r14162 r14538  
    8080                numanalyses=1;
    8181                analyses=[BedSlopeAnalysisEnum()];
     82       
     83        case GiaSolutionEnum(),
     84                numanalyses=1;
     85                analyses=[GiaAnalysisEnum()];
    8286
    8387        case TransientSolutionEnum(),
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r14537 r14538  
    20892089        return StringToEnum('TransientIsthermal')[0]
    20902090
     2091def TransientIsgiaEnum():
     2092        """
     2093        TRANSIENTISGIAENUM - Enum of TransientIsgia
     2094
     2095           Usage:
     2096              macro=TransientIsgiaEnum()
     2097        """
     2098
     2099        return StringToEnum('TransientIsgia')[0]
     2100
    20912101def TransientNumRequestedOutputsEnum():
    20922102        """
     
    24892499        return StringToEnum('GiaSolution')[0]
    24902500
     2501def GiaAnalysisEnum():
     2502        """
     2503        GIAANALYSISENUM - Enum of GiaAnalysis
     2504
     2505           Usage:
     2506              macro=GiaAnalysisEnum()
     2507        """
     2508
     2509        return StringToEnum('GiaAnalysis')[0]
     2510
    24912511def ApproximationEnum():
    24922512        """
     
    41694189        return StringToEnum('StressTensorzz')[0]
    41704190
     4191def GiaWEnum():
     4192        """
     4193        GIAWENUM - Enum of GiaW
     4194
     4195           Usage:
     4196              macro=GiaWEnum()
     4197        """
     4198
     4199        return StringToEnum('GiaW')[0]
     4200
    41714201def P0Enum():
    41724202        """
     
    50475077        """
    50485078
    5049         return 503
    5050 
     5079        return 506
     5080
  • issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m

    r14537 r14538  
    99%      macro=MaximumNumberOfEnums()
    1010
    11 macro=503;
     11macro=506;
  • issm/trunk-jpl/src/m/solve/process_solve_options.m

    r14162 r14538  
    1212                SteadystateSolutionEnum(),TransientSolutionEnum(),EnthalpySolutionEnum(),...
    1313                BalancethicknessSolutionEnum(),WeakBalancethicknessSolutionEnum(),BedSlopeSolutionEnum(),...
    14                 SurfaceSlopeSolutionEnum(),HydrologySolutionEnum(),FlaimSolutionEnum()]),
     14                SurfaceSlopeSolutionEnum(),HydrologySolutionEnum(),FlaimSolutionEnum(),GiaSolutionEnum()]),
    1515        error(['process_solve_options error message: solution_type ' EnumToString(solution_type) ' not supported yet!']);
    1616end
  • issm/trunk-jpl/test/NightlyRun/test330.m

    r14537 r14538  
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    55md=setflowequation(md,'macayeal','all');
     6md.verbose=verbose('solution',true,'convergence',true,'mprocessor',true);
    67md.cluster=generic('name',oshostname(),'np',3);
    78md=solve(md,GiaSolutionEnum());
Note: See TracChangeset for help on using the changeset viewer.