Changeset 9642


Ignore:
Timestamp:
09/07/11 08:52:50 (13 years ago)
Author:
seroussi
Message:

class prognostic

Location:
issm/trunk
Files:
7 added
2 deleted
64 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/etc/environment_variables.sh

    r9482 r9642  
    9191
    9292#sdk
    93 SDK_DIR="C:/MicrosoftVisualStudio 9.0/Microsoft Visual C++ 2008 Express Edition with SP1 - ENU"
     93#SDK_DIR="C:/MicrosoftVisualStudio 9.0/Microsoft Visual C++ 2008 Express Edition with SP1 - ENU"
    9494
    9595#ssh
  • issm/trunk/externalpackages/vim/addons/vim/syntax/c.vim

    r9403 r9642  
    543543
    544544"ISSM's Enums begin
     545syn keyword cConstant ConstantsGEnum
     546syn keyword cConstant ConstantsReferencetemperatureEnum
     547syn keyword cConstant ConstantsYtsEnum
     548syn keyword cConstant SurfaceforcingsAccumulationRateEnum
     549syn keyword cConstant SurfaceforcingsAblationRateEnum
     550syn keyword cConstant SurfaceforcingsMassBalanceEnum
    545551syn keyword cConstant ConstraintsEnum
    546 syn keyword cConstant DatasetsEnum
    547552syn keyword cConstant ElementsEnum
    548553syn keyword cConstant LoadsEnum
     
    550555syn keyword cConstant NodesEnum
    551556syn keyword cConstant ParametersEnum
     557syn keyword cConstant VerticesEnum
    552558syn keyword cConstant ResultsEnum
    553 syn keyword cConstant VerticesEnum
    554559syn keyword cConstant SolutionTypeEnum
    555560syn keyword cConstant AnalysisTypeEnum
     
    557562syn keyword cConstant AnalysisCounterEnum
    558563syn keyword cConstant DiagnosticSolutionEnum
    559 syn keyword cConstant DiagnosticAnalysisEnum
    560564syn keyword cConstant DiagnosticHorizAnalysisEnum
    561565syn keyword cConstant DiagnosticVertAnalysisEnum
     
    565569syn keyword cConstant AdjointBalancethicknessAnalysisEnum
    566570syn keyword cConstant ControlAnalysisEnum
    567 syn keyword cConstant GradientAnalysisEnum
    568 syn keyword cConstant InverseAnalysisEnum
    569571syn keyword cConstant ThermalSolutionEnum
    570572syn keyword cConstant ThermalAnalysisEnum
     
    573575syn keyword cConstant TransientSolutionEnum
    574576syn keyword cConstant GroundinglineMigration2DSolutionEnum
    575 syn keyword cConstant SteadyAnalysisEnum
    576 syn keyword cConstant TransientAnalysisEnum
    577577syn keyword cConstant BedSlopeSolutionEnum
    578578syn keyword cConstant BedSlopeAnalysisEnum
     
    585585syn keyword cConstant BalancethicknessSolutionEnum
    586586syn keyword cConstant BalancethicknessAnalysisEnum
    587 syn keyword cConstant Fake31Enum
    588 syn keyword cConstant Fake32Enum
    589587syn keyword cConstant PrognosticSolutionEnum
    590588syn keyword cConstant PrognosticAnalysisEnum
    591589syn keyword cConstant MeltingAnalysisEnum
    592 syn keyword cConstant ParametersSolutionEnum
    593 syn keyword cConstant ParametersAnalysisEnum
    594590syn keyword cConstant SteadystateSolutionEnum
    595 syn keyword cConstant SteadystateAnalysisEnum
    596591syn keyword cConstant FlaimSolutionEnum
    597592syn keyword cConstant FlaimAnalysisEnum
     
    606601syn keyword cConstant PattynStokesApproximationEnum
    607602syn keyword cConstant StokesApproximationEnum
    608 syn keyword cConstant ObjectEnum
    609603syn keyword cConstant HookEnum
    610604syn keyword cConstant SegmentEnum
    611605syn keyword cConstant ElementEnum
    612606syn keyword cConstant DofIndexingEnum
    613 syn keyword cConstant ElementPropertiesEnum
    614 syn keyword cConstant NodePropertiesEnum
    615607syn keyword cConstant PentaEnum
    616608syn keyword cConstant TriaEnum
    617609syn keyword cConstant NodeEnum
    618610syn keyword cConstant VertexEnum
    619 syn keyword cConstant LoadEnum
    620611syn keyword cConstant IcefrontEnum
    621612syn keyword cConstant NumericalfluxEnum
    622613syn keyword cConstant PengridEnum
    623614syn keyword cConstant PenpairEnum
    624 syn keyword cConstant QuadRiftFrontEnum
    625615syn keyword cConstant RiftfrontEnum
    626616syn keyword cConstant SegmentRiftfrontEnum
     
    629619syn keyword cConstant PattynIceFrontEnum
    630620syn keyword cConstant StokesIceFrontEnum
    631 syn keyword cConstant MaterialEnum
    632621syn keyword cConstant MaticeEnum
    633622syn keyword cConstant MatparEnum
     
    638627syn keyword cConstant PentaVertexInputEnum
    639628syn keyword cConstant TriaVertexInputEnum
    640 syn keyword cConstant Fake0Enum
    641 syn keyword cConstant Fake1Enum
    642629syn keyword cConstant ControlInputEnum
    643630syn keyword cConstant ParamEnum
     
    658645syn keyword cConstant SpcStaticEnum
    659646syn keyword cConstant SpcTransientEnum
    660 syn keyword cConstant GeographyEnum
    661647syn keyword cConstant IceSheetEnum
    662648syn keyword cConstant IceShelfEnum
     
    672658syn keyword cConstant AdjointzEnum
    673659syn keyword cConstant AdjointpEnum
    674 syn keyword cConstant Fake35Enum
    675660syn keyword cConstant BedEnum
    676661syn keyword cConstant BathymetryEnum
     
    680665syn keyword cConstant CmResponseEnum
    681666syn keyword cConstant CmResponsesEnum
    682 syn keyword cConstant Fake2Enum
    683667syn keyword cConstant ConstantEnum
    684 syn keyword cConstant Fake37Enum
    685668syn keyword cConstant ControlTypeEnum
    686669syn keyword cConstant ConvergedEnum
    687 syn keyword cConstant Fake3Enum
    688670syn keyword cConstant DragCoefficientEnum
    689671syn keyword cConstant DragPEnum
    690672syn keyword cConstant DragQEnum
    691 syn keyword cConstant DragTypeEnum
    692673syn keyword cConstant DtEnum
    693674syn keyword cConstant TimeAdaptEnum
    694675syn keyword cConstant CflCoefficientEnum
    695676syn keyword cConstant ElementOnBedEnum
     677syn keyword cConstant ElementOnIceSheetEnum
    696678syn keyword cConstant ElementOnIceShelfEnum
    697679syn keyword cConstant ElementOnSurfaceEnum
    698680syn keyword cConstant ElementOnWaterEnum
    699 syn keyword cConstant Fake4Enum
    700681syn keyword cConstant FillEnum
    701682syn keyword cConstant FractionIncrementEnum
    702683syn keyword cConstant FrictionEnum
    703 syn keyword cConstant Fake5Enum
    704684syn keyword cConstant HydrostaticAdjustmentEnum
    705685syn keyword cConstant InternalEnum
    706 syn keyword cConstant KflagEnum
    707686syn keyword cConstant IuToExtEnum
    708687syn keyword cConstant ExtToIuEnum
     
    715694syn keyword cConstant SurfaceAverageVelMisfitEnum
    716695syn keyword cConstant MaxPenetrationEnum
    717 syn keyword cConstant Fake6Enum
    718696syn keyword cConstant MeltingOffsetEnum
    719697syn keyword cConstant GroundinglineMeltingRateEnum
     
    726704syn keyword cConstant NumberNodeToElementConnectivityEnum
    727705syn keyword cConstant PenaltyOffsetEnum
    728 syn keyword cConstant PflagEnum
    729706syn keyword cConstant PressureEnum
    730707syn keyword cConstant PressurePicardEnum
     
    738715syn keyword cConstant ShelfDampeningEnum
    739716syn keyword cConstant StabilizeConstraintsEnum
    740 syn keyword cConstant Fake7Enum
    741 syn keyword cConstant SurfaceAccumulationRateEnum
    742 syn keyword cConstant SurfaceAblationRateEnum
    743717syn keyword cConstant SurfaceAreaEnum
    744718syn keyword cConstant SurfaceEnum
    745 syn keyword cConstant SurfaceMassBalanceEnum
    746719syn keyword cConstant SurfaceSlopeXEnum
    747720syn keyword cConstant SurfaceSlopeYEnum
     
    766739syn keyword cConstant VyPicardEnum
    767740syn keyword cConstant QmuVyEnum
    768 syn keyword cConstant VzAverageEnum
    769741syn keyword cConstant VzEnum
    770742syn keyword cConstant VzObsEnum
     
    778750syn keyword cConstant P1Enum
    779751syn keyword cConstant P1DGEnum
    780 syn keyword cConstant MiniEnum
    781752syn keyword cConstant DoubleElementResultEnum
    782753syn keyword cConstant TriaVertexElementResultEnum
     
    796767syn keyword cConstant TimeEnum
    797768syn keyword cConstant OutputFrequencyEnum
    798 syn keyword cConstant Fake8Enum
    799769syn keyword cConstant WaterColumnOldEnum
    800 syn keyword cConstant Fake34Enum
    801770syn keyword cConstant IoGatherEnum
    802771syn keyword cConstant MinVelEnum
     
    812781syn keyword cConstant MaxAbsVzEnum
    813782syn keyword cConstant RelativeEnum
    814 syn keyword cConstant ResidualEnum
    815783syn keyword cConstant AbsoluteEnum
    816784syn keyword cConstant IncrementalEnum
     
    821789syn keyword cConstant RhoWaterEnum
    822790syn keyword cConstant GravityEnum
    823 syn keyword cConstant Fake9Enum
    824791syn keyword cConstant BasalMeltingRateCorrectionEnum
    825 syn keyword cConstant BasalMeltingRateCorrectionApplyEnum
    826792syn keyword cConstant MixedLayerCapacityEnum
    827793syn keyword cConstant ThermalExchangeVelocityEnum
     
    843809syn keyword cConstant ConnectivityEnum
    844810syn keyword cConstant ControlSteadyEnum
    845 syn keyword cConstant DakotaParameterEnum
    846811syn keyword cConstant DimEnum
    847812syn keyword cConstant EpsAbsEnum
     
    849814syn keyword cConstant EpsRelEnum
    850815syn keyword cConstant EpsResEnum
    851 syn keyword cConstant Fake10Enum
    852 syn keyword cConstant Fake29Enum
    853 syn keyword cConstant Fake11Enum
    854 syn keyword cConstant Fake12Enum
    855 syn keyword cConstant Fake13Enum
    856 syn keyword cConstant Fake14Enum
    857816syn keyword cConstant LowmemEnum
    858 syn keyword cConstant Fake16Enum
    859817syn keyword cConstant MaxNonlinearIterationsEnum
    860 syn keyword cConstant Fake17Enum
    861818syn keyword cConstant MinMechanicalConstraintsEnum
    862819syn keyword cConstant MinThermalConstraintsEnum
    863 syn keyword cConstant Fake18Enum
    864820syn keyword cConstant NdtEnum
    865 syn keyword cConstant NumOutputEnum
    866821syn keyword cConstant NumriftsEnum
    867822syn keyword cConstant NumberOfElementsEnum
    868 syn keyword cConstant NumberOfNodesEnum
    869823syn keyword cConstant NumberOfVerticesEnum
    870 syn keyword cConstant Fake19Enum
    871824syn keyword cConstant OutputFilePointerEnum
    872 syn keyword cConstant Fake20Enum
    873 syn keyword cConstant Fake21Enum
    874 syn keyword cConstant PenaltyMeltingEnum
    875 syn keyword cConstant QmuAnalysisEnum
     825syn keyword cConstant DakotaAnalysisEnum
    876826syn keyword cConstant QmuErrNameEnum
    877827syn keyword cConstant QmuInNameEnum
    878828syn keyword cConstant QmuMassFluxSegmentsEnum
    879 syn keyword cConstant Fake39Enum
    880829syn keyword cConstant QmuOutNameEnum
    881830syn keyword cConstant QmuPartEnum
    882831syn keyword cConstant QmuNumberOfResponsesEnum
    883 syn keyword cConstant QmuSaveFemmodelEnum
    884832syn keyword cConstant IndexedEnum
    885833syn keyword cConstant RegularEnum
     
    888836syn keyword cConstant NodalEnum
    889837syn keyword cConstant ResponsedescriptorsEnum
    890 syn keyword cConstant PetscRcEnum
    891 syn keyword cConstant SparsityEnum
    892 syn keyword cConstant Fake22Enum
    893838syn keyword cConstant VariabledescriptorsEnum
    894839syn keyword cConstant VerboseEnum
    895 syn keyword cConstant Fake23Enum
    896840syn keyword cConstant PetscOptionsStringsEnum
    897841syn keyword cConstant PetscOptionsAnalysesEnum
     
    900844syn keyword cConstant SsetEnum
    901845syn keyword cConstant GroundinglineMigrationEnum
    902 syn keyword cConstant YtsEnum
    903846syn keyword cConstant TriangleInterpEnum
    904847syn keyword cConstant BilinearInterpEnum
     
    907850syn keyword cConstant OptionCellEnum
    908851syn keyword cConstant OptionCharEnum
     852syn keyword cConstant OptionStructEnum
    909853syn keyword cConstant OptionDoubleEnum
    910854syn keyword cConstant OptionLogicalEnum
    911 syn keyword cConstant OptionStructEnum
    912855syn keyword cConstant RheologyLawEnum
    913856syn keyword cConstant PatersonEnum
     
    916859syn keyword cConstant VyMeshEnum
    917860syn keyword cConstant VzMeshEnum
    918 syn keyword cConstant Fake24Enum
    919 syn keyword cConstant Fake25Enum
    920 syn keyword cConstant Fake26Enum
    921861syn keyword cConstant EnthalpySolutionEnum
    922862syn keyword cConstant EnthalpyAnalysisEnum
    923863syn keyword cConstant EnthalpyEnum
    924864syn keyword cConstant EnthalpyPicardEnum
    925 syn keyword cConstant Fake27Enum
    926 syn keyword cConstant Fake28Enum
    927865syn keyword cConstant ThicknessAbsGradientEnum
    928 syn keyword cConstant VelAbsGradientEnum
    929866syn keyword cConstant DatasetInputEnum
    930 syn keyword cConstant Fake38Enum
    931867syn keyword cConstant StepResponsesEnum
    932868syn keyword cConstant IntMatParamEnum
     
    938874syn keyword cConstant SpcvyEnum
    939875syn keyword cConstant HydroQEnum
    940 syn keyword cConstant VerboseBinaryEnum
    941876syn keyword cConstant NodeOnWaterEnum
    942877syn keyword cConstant YEnum
    943 syn keyword cConstant GlMeltingRateEnum
    944878syn keyword cConstant ElementsTypeEnum
    945879syn keyword cConstant PenaltiesEnum
     
    950884syn keyword cConstant VerticesTypeEnum
    951885syn keyword cConstant HydroKnEnum
    952 syn keyword cConstant GEnum
    953 syn keyword cConstant InputfilenameEnum
    954886syn keyword cConstant SpcvzEnum
    955 syn keyword cConstant Fake33Enum
    956887syn keyword cConstant NumberOfNodes2DEnum
    957888syn keyword cConstant NodeOnStokesEnum
    958889syn keyword cConstant NodeOnHutterEnum
    959890syn keyword cConstant ZEnum
    960 syn keyword cConstant Fake36Enum
    961 syn keyword cConstant RiftinfoEnum
    962 syn keyword cConstant ElementOnIceSheetEnum
     891syn keyword cConstant RiftsEnum
    963892syn keyword cConstant SpcthicknessEnum
    964893syn keyword cConstant SpctemperatureEnum
     
    977906syn keyword cConstant ArtificialDiffusivityEnum
    978907syn keyword cConstant HydroNEnum
    979 syn keyword cConstant BorderstokesEnum
    980908syn keyword cConstant NumlayersEnum
    981909syn keyword cConstant DiagnosticRefEnum
     
    989917syn keyword cConstant ThermalconductivityEnum
    990918syn keyword cConstant MeltingpointEnum
    991 syn keyword cConstant ReferencetemperatureEnum
    992919syn keyword cConstant DhdtEnum
    993920syn keyword cConstant GeothermalfluxEnum
     
    999926syn keyword cConstant TolxEnum
    1000927syn keyword cConstant OptscalEnum
    1001 syn keyword cConstant EpsvelEnum
    1002 syn keyword cConstant MeanvelEnum
    1003 syn keyword cConstant Fake30Enum
    1004928syn keyword cConstant OutputfilenameEnum
    1005929syn keyword cConstant WaterfractionEnum
    1006930syn keyword cConstant WatercolumnEnum
    1007931syn keyword cConstant WaitonlockEnum
    1008 syn keyword cConstant NumberOfVariablesEnum
    1009932syn keyword cConstant NumberOfResponsesEnum
    1010933syn keyword cConstant NpartEnum
    1011 syn keyword cConstant QmuMassFluxNumProfilesEnum
    1012934syn keyword cConstant PartEnum
    1013935syn keyword cConstant MaxSteadystateIterationsEnum
     
    1017939syn keyword cConstant ViscousHeatingEnum
    1018940syn keyword cConstant QmuTemperatureEnum
    1019 syn keyword cConstant QmuRheologyBEnum
    1020941syn keyword cConstant HydrologyWaterVxEnum
    1021942syn keyword cConstant HydrologyWaterVyEnum
    1022943syn keyword cConstant SpcDynamicEnum
    1023944syn keyword cConstant NumberOfEdgesEnum
     945syn keyword cConstant ResultsOnVerticesEnum
     946syn keyword cConstant AdAnalysisEnum
     947syn keyword cConstant AdForwardEnum
     948syn keyword cConstant AdReverseEnum
    1024949"ISSM's Enums end
    1025950"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9641 r9642  
    4646        TimesteppingTimeAdaptEnum,
    4747        TimesteppingCflCoefficientEnum,
     48        PrognosticSpcthicknessEnum,
     49        PrognosticHydrostaticAdjustmentEnum,
     50        PrognosticStabilizationEnum,
     51        PrognosticVertexPairingEnum,
     52        PrognosticPenaltyFactorEnum,
     53        PrognosticRequestedOutputsEnum,
    4854        MaterialsRheologyBEnum,
    4955        MaterialsRheologyBbarEnum,
     
    226232        FractionIncrementEnum,
    227233        FrictionEnum,
    228         HydrostaticAdjustmentEnum,
    229234        InternalEnum,
    230235        IuToExtEnum,
     
    422427        YEnum,
    423428        ElementsTypeEnum,
     429        PrognosticDGEnum,
    424430        PenaltiesEnum,
    425         PrognosticDGEnum,
    426431        PressureloadEnum,
    427432        VerticesTypeEnum,
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9641 r9642  
    5050                case TimesteppingTimeAdaptEnum : return "TimesteppingTimeAdapt";
    5151                case TimesteppingCflCoefficientEnum : return "TimesteppingCflCoefficient";
     52                case PrognosticSpcthicknessEnum : return "PrognosticSpcthickness";
     53                case PrognosticHydrostaticAdjustmentEnum : return "PrognosticHydrostaticAdjustment";
     54                case PrognosticStabilizationEnum : return "PrognosticStabilization";
     55                case PrognosticVertexPairingEnum : return "PrognosticVertexPairing";
     56                case PrognosticPenaltyFactorEnum : return "PrognosticPenaltyFactor";
     57                case PrognosticRequestedOutputsEnum : return "PrognosticRequestedOutputs";
    5258                case MaterialsRheologyBEnum : return "MaterialsRheologyB";
    5359                case MaterialsRheologyBbarEnum : return "MaterialsRheologyBbar";
     
    193199                case FractionIncrementEnum : return "FractionIncrement";
    194200                case FrictionEnum : return "Friction";
    195                 case HydrostaticAdjustmentEnum : return "HydrostaticAdjustment";
    196201                case InternalEnum : return "Internal";
    197202                case IuToExtEnum : return "IuToExt";
     
    366371                case YEnum : return "Y";
    367372                case ElementsTypeEnum : return "ElementsType";
     373                case PrognosticDGEnum : return "PrognosticDG";
    368374                case PenaltiesEnum : return "Penalties";
    369                 case PrognosticDGEnum : return "PrognosticDG";
    370375                case PressureloadEnum : return "Pressureload";
    371376                case VerticesTypeEnum : return "VerticesType";
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r9636 r9642  
    4040        parameters->AddObject(iomodel->CopyConstantObject(TimesteppingTimeAdaptEnum));
    4141        parameters->AddObject(iomodel->CopyConstantObject(TimesteppingCflCoefficientEnum));
    42         parameters->AddObject(iomodel->CopyConstantObject(HydrostaticAdjustmentEnum));
     42        parameters->AddObject(iomodel->CopyConstantObject(PrognosticHydrostaticAdjustmentEnum));
     43        parameters->AddObject(iomodel->CopyConstantObject(PrognosticStabilizationEnum));
    4344        parameters->AddObject(iomodel->CopyConstantObject(PenaltyOffsetEnum));
    4445        parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyFactorEnum));
  • issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r9619 r9642  
    3030        int    numlayers;
    3131        int    numrifts;
    32         int    numpenalties;
     32        int    numvertex_pairing;
    3333
    3434        /*output: */
     
    4545        double* elements2d=NULL;
    4646        double* riftinfo=NULL;
    47         double* penalties=NULL;
     47        double* vertex_pairing=NULL;
    4848
    4949        /*Fetch parameters: */
     
    127127        xfree((void**)&elements);
    128128
    129         /*We might have penalties in which case, some vertices have to be cloned:
     129        /*We might have vertex_pairing in which case, some vertices have to be cloned:
    130130         * penpair has 2 nodes that are poointing toward 2 vertices.
    131131         * The 2 vertices must be in the same cpu as the penpair*/
    132         iomodel->FetchData(&penalties,&numpenalties,NULL,PenaltiesEnum);
    133         for(i=0;i<numpenalties;i++){
    134                 if(my_vertices[(int)penalties[2*i+0]-1] && !my_vertices[(int)penalties[2*i+1]-1]){
    135                         my_vertices[(int)penalties[2*i+1]-1]=2; //to know that these elements are not on the partition
     132        iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,PenaltiesEnum);
     133        for(i=0;i<numvertex_pairing;i++){
     134                if(my_vertices[(int)vertex_pairing[2*i+0]-1] && !my_vertices[(int)vertex_pairing[2*i+1]-1]){
     135                        my_vertices[(int)vertex_pairing[2*i+1]-1]=2; //to know that these elements are not on the partition
    136136                }
    137137        }
    138         xfree((void**)&penalties);
     138        xfree((void**)&vertex_pairing);
     139        iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,PrognosticVertexPairingEnum);
     140        for(i=0;i<numvertex_pairing;i++){
     141                if(my_vertices[(int)vertex_pairing[2*i+0]-1] && !my_vertices[(int)vertex_pairing[2*i+1]-1]){
     142                        my_vertices[(int)vertex_pairing[2*i+1]-1]=2; //to know that these elements are not on the partition
     143                }
     144        }
     145        xfree((void**)&vertex_pairing);
    139146
    140147        /*Free ressources:*/
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp

    r9405 r9642  
    1010void    CreateConstraintsPrognostic(Constraints** pconstraints, IoModel* iomodel){
    1111
    12         int prognostic_DG;
     12        int stabilization;
    1313       
    1414        /*Fetch parameters: */
    15         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     15        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    1616
    1717        /*Output*/
     
    2525
    2626        /*Do not add constraints in DG, they are weakly imposed*/
    27         if(!prognostic_DG){
    28                 IoModelToConstraintsx(constraints,iomodel,SpcthicknessEnum,PrognosticAnalysisEnum);
     27        if(!stabilization==3){
     28                IoModelToConstraintsx(constraints,iomodel,PrognosticSpcthicknessEnum,PrognosticAnalysisEnum);
    2929        }
    3030
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp

    r9641 r9642  
    1818        int penpair_ids[2];
    1919        int count=0;
    20         int prognostic_DG;
     20        int stabilization;
    2121        int numberofedges;
    22         int numpenalties;
     22        int numvertex_pairing;
    2323        int numberofelements;
    2424
     
    2727       
    2828        /*Fetch parameters: */
    29         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     29        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    3030        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    3131        iomodel->Constant(&numberofedges,NumberOfEdgesEnum);
     
    3838
    3939        /*Loads only in DG*/
    40         if (prognostic_DG){
     40        if (stabilization==3){
    4141
    4242                /*Get edges and elements*/
     
    6060        }
    6161
    62         /*Create Penpair for penalties: */
    63         double *penalties=NULL;
     62        /*Create Penpair for vertex_pairing: */
     63        double *vertex_pairing=NULL;
    6464        double *nodeonbed=NULL;
    65         iomodel->FetchData(&penalties,&numpenalties,NULL,PenaltiesEnum);
     65        iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,PrognosticVertexPairingEnum);
    6666        iomodel->FetchData(&nodeonbed,NULL,NULL,NodeonbedEnum);
    6767
    68         for(i=0;i<numpenalties;i++){
     68        for(i=0;i<numvertex_pairing;i++){
    6969
    70                 if(iomodel->my_vertices[(int)penalties[2*i+0]-1]){
     70                if(iomodel->my_vertices[(int)vertex_pairing[2*i+0]-1]){
    7171
    7272                        /*In debugging mode, check that the second node is in the same cpu*/
    73                         _assert_(iomodel->my_vertices[(int)penalties[2*i+1]-1]);
     73                        _assert_(iomodel->my_vertices[(int)vertex_pairing[2*i+1]-1]);
    7474
    7575                        /*Skip if one of the two is not on the bed*/
    76                         if(!nodeonbed[(int)penalties[2*i+0]-1] || !nodeonbed[(int)penalties[2*i+1]-1]) continue;
     76                        if(!nodeonbed[(int)vertex_pairing[2*i+0]-1] || !nodeonbed[(int)vertex_pairing[2*i+1]-1]) continue;
    7777
    7878                        /*Get node ids*/
    79                         penpair_ids[0]=iomodel->nodecounter+(int)penalties[2*i+0];
    80                         penpair_ids[1]=iomodel->nodecounter+(int)penalties[2*i+1];
     79                        penpair_ids[0]=iomodel->nodecounter+(int)vertex_pairing[2*i+0];
     80                        penpair_ids[1]=iomodel->nodecounter+(int)vertex_pairing[2*i+1];
    8181
    8282                        /*Create Load*/
     
    9090
    9191        /*free ressources: */
    92         xfree((void**)&penalties);
     92        xfree((void**)&vertex_pairing);
    9393        xfree((void**)&nodeonbed);
    9494
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp

    r9641 r9642  
    2424        int    numberofelements;
    2525        int    numberofvertices;
    26         int    prognostic_DG;
     26        int    stabilization;
    2727
    2828        /*DataSets: */
     
    3333        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    3434        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    35         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     35        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    3636
    3737        /*Recover pointer: */
     
    4242
    4343        /*Create partition of nodes: */
    44         if(prognostic_DG) continuous_galerkin=false;
     44        if(stabilization==3) continuous_galerkin=false;
    4545        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin);
    4646
    4747        /*Check in 3d*/
    48         if(prognostic_DG && dim==3) _error_("DG 3d not implemented yet");
     48        if(stabilization==3 && dim==3) _error_("DG 3d not implemented yet");
    4949
    5050        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp

    r9641 r9642  
    1818        int    dim;
    1919        int    numberofelements;
    20         int    prognostic_DG;
     20        int    stabilization;
    2121
    2222        /*Fetch data needed: */
    2323        iomodel->Constant(&dim,DimEnum);
    2424        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    25         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     25        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    2626        iomodel->FetchData(1,ElementsEnum);
    2727
     
    4949        iomodel->FetchDataToInput(elements,VyEnum);
    5050
    51         if(prognostic_DG){
    52                 iomodel->FetchDataToInput(elements,SpcthicknessEnum); //for DG, we need the spc in the element
     51        if(stabilization==3){
     52                iomodel->FetchDataToInput(elements,PrognosticSpcthicknessEnum); //for DG, we need the spc in the element
    5353        }
    5454       
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9641 r9642  
    4848        else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
    4949        else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
     50        else if (strcmp(name,"PrognosticSpcthickness")==0) return PrognosticSpcthicknessEnum;
     51        else if (strcmp(name,"PrognosticHydrostaticAdjustment")==0) return PrognosticHydrostaticAdjustmentEnum;
     52        else if (strcmp(name,"PrognosticStabilization")==0) return PrognosticStabilizationEnum;
     53        else if (strcmp(name,"PrognosticVertexPairing")==0) return PrognosticVertexPairingEnum;
     54        else if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum;
     55        else if (strcmp(name,"PrognosticRequestedOutputs")==0) return PrognosticRequestedOutputsEnum;
    5056        else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
    5157        else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
     
    191197        else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
    192198        else if (strcmp(name,"Friction")==0) return FrictionEnum;
    193         else if (strcmp(name,"HydrostaticAdjustment")==0) return HydrostaticAdjustmentEnum;
    194199        else if (strcmp(name,"Internal")==0) return InternalEnum;
    195200        else if (strcmp(name,"IuToExt")==0) return IuToExtEnum;
     
    364369        else if (strcmp(name,"Y")==0) return YEnum;
    365370        else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;
     371        else if (strcmp(name,"PrognosticDG")==0) return PrognosticDGEnum;
    366372        else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
    367         else if (strcmp(name,"PrognosticDG")==0) return PrognosticDGEnum;
    368373        else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
    369374        else if (strcmp(name,"VerticesType")==0) return VerticesTypeEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9641 r9642  
    61686168        surface_input->GetValuesPtr(&surface_ptr,&dummy);
    61696169
    6170         /*Fing HydrostaticAdjustment to figure out how to update the geometry:*/
    6171         this->parameters->FindParam(&hydroadjustment,HydrostaticAdjustmentEnum);
     6170        /*Fing PrognosticHydrostaticAdjustment to figure out how to update the geometry:*/
     6171        this->parameters->FindParam(&hydroadjustment,PrognosticHydrostaticAdjustmentEnum);
    61726172
    61736173        /*recover material parameters: */
     
    74977497        double  nodeinputs[6];
    74987498        double  yts;
    7499         int     prognostic_DG;
     7499        int     stabilization;
    75007500        bool    dakota_analysis;
    75017501        bool    isstokes;
     
    75047504        /*Fetch parameters: */
    75057505        iomodel->Constant(&yts,ConstantsYtsEnum);
    7506         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     7506        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    75077507        iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum);
    75087508        iomodel->Constant(&isstokes,IsstokesEnum);
     
    75197519
    75207520        /*Recover element type*/
    7521         if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancethicknessAnalysisEnum) && prognostic_DG){
     7521        if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancethicknessAnalysisEnum) && stabilization==3){
    75227522                /*P1 Discontinuous Galerkin*/
    75237523                penta_type=P1DGEnum;
  • issm/trunk/src/c/objects/Elements/PentaRef.cpp

    r9320 r9642  
    387387/*}}}*/
    388388/*FUNCTION PentaRef::GetBArtdiff {{{1*/
    389 void PentaRef::GetBArtdiff(double* B_artdiff, double* xyz_list, GaussPenta* gauss){
     389void PentaRef::GetBArtdiff(double* B_stab, double* xyz_list, GaussPenta* gauss){
    390390        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1.
    391391         * For node i, Bi' can be expressed in the actual coordinate system
    392392         * by:
    393          *       Bi_artdiff=[ dh/dx ]
     393         *       Bi_stab=[ dh/dx ]
    394394         *                 [ dh/dy ]
    395395         * where h is the interpolation function for node i.
     
    406406        /*Build B': */
    407407        for (int i=0;i<NUMNODESP1;i++){
    408                 *(B_artdiff+NDOF1*NUMNODESP1*0+NDOF1*i)=dbasis[0][i];
    409                 *(B_artdiff+NDOF1*NUMNODESP1*1+NDOF1*i)=dbasis[1][i];
     408                *(B_stab+NDOF1*NUMNODESP1*0+NDOF1*i)=dbasis[0][i];
     409                *(B_stab+NDOF1*NUMNODESP1*1+NDOF1*i)=dbasis[1][i];
    410410        }
    411411}
  • issm/trunk/src/c/objects/Elements/PentaRef.h

    r8417 r9642  
    4545                void GetBprimeVert(double* B, double* xyz_list, GaussPenta* gauss);
    4646                void GetBAdvec(double* B_advec, double* xyz_list, GaussPenta* gauss);
    47                 void GetBArtdiff(double* B_artdiff, double* xyz_list, GaussPenta* gauss);
     47                void GetBArtdiff(double* B_stab, double* xyz_list, GaussPenta* gauss);
    4848                void GetBConduct(double* B_conduct, double* xyz_list, GaussPenta* gauss);
    4949                void GetBVert(double* B, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9641 r9642  
    514514
    515515        /*Intermediaries */
    516         int        artdiff;
     516        int        stabilization;
    517517        int        i,j,ig,dim;
    518518        double     Jdettria,vx,vy,dvxdx,dvydy,vel,h;
     
    534534        /*Retrieve all Inputs and parameters: */
    535535        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    536         this->parameters->FindParam(&artdiff,ArtificialDiffusivityEnum);
     536        this->parameters->FindParam(&stabilization,PrognosticStabilizationEnum);
    537537        this->parameters->FindParam(&dim,DimEnum);
    538538        Input* vxaverage_input=NULL;
     
    549549
    550550        ///*Create Artificial diffusivity once for all if requested*/
    551         //if(artdiff){
     551        //if(stabilization){
    552552        //      gauss=new GaussTria();
    553553        //      gauss->GaussCenter();
     
    596596                                        &Ke->values[0],1);
    597597
    598                 if(artdiff){
     598                if(stabilization){
    599599                        vel=sqrt(pow(vx,2.)+pow(vy,2.));
    600600                        K[0][0]=h/(2*vel)*vx*vx;
     
    10061006
    10071007        /*Intermediaries */
    1008         int        artdiff;
     1008        int        stabilization;
    10091009        int        i,j,ig,dim;
    10101010        double     Jdettria,DL_scalar,dt;
     
    10291029        this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    10301030        this->parameters->FindParam(&dim,DimEnum);
    1031         this->parameters->FindParam(&artdiff,ArtificialDiffusivityEnum);
     1031        this->parameters->FindParam(&stabilization,PrognosticStabilizationEnum);
    10321032        Input* vxaverage_input=NULL;
    10331033        Input* vyaverage_input=NULL;
     
    10421042
    10431043        //Create Artificial diffusivity once for all if requested
    1044         if(artdiff){
     1044        if(stabilization){
    10451045                gauss=new GaussTria();
    10461046                gauss->GaussCenter();
     
    10981098                                        &Ke->values[0],1);
    10991099
    1100                 if(artdiff){
     1100                if(stabilization){
    11011101                        KDL[0][0]=DL_scalar*K[0][0];
    11021102                        KDL[1][1]=DL_scalar*K[1][1];
     
    36453645        surface_input->GetValuesPtr(&surface_ptr,&dummy);
    36463646
    3647         /*Fing HydrostaticAdjustment to figure out how to update the geometry:*/
    3648         this->parameters->FindParam(&hydroadjustment,HydrostaticAdjustmentEnum);
     3647        /*Fing PrognosticHydrostaticAdjustment to figure out how to update the geometry:*/
     3648        this->parameters->FindParam(&hydroadjustment,PrognosticHydrostaticAdjustmentEnum);
    36493649
    36503650        /*recover material parameters: */
     
    52095209        double nodeinputs[3];
    52105210        double yts;
    5211         int    prognostic_DG;
     5211        int    stabilization;
    52125212        bool   dakota_analysis;
    52135213
     
    52195219        /*Fetch parameters: */
    52205220        iomodel->Constant(&yts,ConstantsYtsEnum);
    5221         iomodel->Constant(&prognostic_DG,PrognosticDGEnum);
     5221        iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
    52225222        iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum);
    52235223
    52245224        /*Recover element type*/
    5225         if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancethicknessAnalysisEnum) && prognostic_DG){
     5225        if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancethicknessAnalysisEnum) && stabilization==3){
    52265226                /*P1 Discontinuous Galerkin*/
    52275227                tria_type=P1DGEnum;
  • issm/trunk/src/c/objects/Loads/Numericalflux.cpp

    r9628 r9642  
    798798        GetVerticesCoordinates(&xyz_list[0][0],nodes,NUMVERTICES_BOUNDARY);
    799799        parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    800         Input* vxaverage_input   =tria->inputs->GetInput(VxEnum); _assert_(vxaverage_input);
    801         Input* vyaverage_input   =tria->inputs->GetInput(VyEnum); _assert_(vyaverage_input);
    802         Input* spcthickness_input=tria->inputs->GetInput(SpcthicknessEnum); _assert_(spcthickness_input);
     800        Input* vxaverage_input   =tria->inputs->GetInput(VxEnum);                     _assert_(vxaverage_input);
     801        Input* vyaverage_input   =tria->inputs->GetInput(VyEnum);                     _assert_(vyaverage_input);
     802        Input* spcthickness_input=tria->inputs->GetInput(PrognosticSpcthicknessEnum); _assert_(spcthickness_input);
    803803        GetNormal(&normal[0],xyz_list);
    804804
  • issm/trunk/src/c/objects/Loads/Penpair.cpp

    r9320 r9642  
    372372
    373373        const int numdof=NUMVERTICES*NDOF1;
    374         double penalty_offset;
     374        double penalty_factor;
    375375
    376376        /*Initialize Element vector and return if necessary*/
     
    378378
    379379        /*recover parameters: */
    380         parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
     380        parameters->FindParam(&penalty_factor,PrognosticPenaltyFactorEnum);
    381381
    382382        //Create elementary matrix: add penalty to
    383         Ke->values[0*numdof+0]=+kmax*pow((double)10.0,penalty_offset);
    384         Ke->values[0*numdof+1]=-kmax*pow((double)10.0,penalty_offset);
    385         Ke->values[1*numdof+0]=-kmax*pow((double)10.0,penalty_offset);
    386         Ke->values[1*numdof+1]=+kmax*pow((double)10.0,penalty_offset);
     383        Ke->values[0*numdof+0]=+kmax*pow((double)10.0,penalty_factor);
     384        Ke->values[0*numdof+1]=-kmax*pow((double)10.0,penalty_factor);
     385        Ke->values[1*numdof+0]=-kmax*pow((double)10.0,penalty_factor);
     386        Ke->values[1*numdof+1]=+kmax*pow((double)10.0,penalty_factor);
    387387
    388388        /*Clean up and return*/
  • issm/trunk/src/m/classes/model/model.m

    r9641 r9642  
    2727                 timestepping = modelfield('default',0,'marshall',true);
    2828                 groundingline = modelfield('default',0,'marshall',true);
     29                 prognostic = modelfield('default',0,'marshall',true);
    2930                 materials = modelfield('default',0,'marshall',true);
    3031                 mask = modelfield('default',0,'marshall',true);
     
    143144                 %Transient
    144145                 artificial_diffusivity = modelfield('default',0,'marshall',true,'format','Integer');
    145                  prognostic_DG          = modelfield('default',0,'marshall',true,'format','Integer');
    146                  hydrostatic_adjustment = modelfield('default',0,'marshall',true,'preprocess','StringToEnum','format','Integer');
    147146                 isprognostic = modelfield('default',0,'marshall',true,'format','Boolean');
    148147                 isdiagnostic = modelfield('default',0,'marshall',true,'format','Boolean');
     
    399398                         if isfield(structmd,'time_adapt'), md.timestepping.time_adapt=structmd.time_adapt; end
    400399                         if isfield(structmd,'cfl_coefficient'), md.timestepping.cfl_coefficient=structmd.cfl_coefficient; end
     400                         if isfield(structmd,'spcthickness'), md.prognostic.spcthickness=structmd.spcthickness; end
     401                         if isfield(structmd,'artificial_diffusivity'), md.prognostic.stabilization=structmd.artificial_diffusivity; end
     402                         if isfield(structmd,'hydrostatic_adjustment'), md.prognostic.hydrostatic_adjustment=structmd.hydrostatic_adjustment; end
     403                         if isfield(structmd,'penalties'), md.prognostic.vertex_pairing=structmd.penalties; end
     404                         if isfield(structmd,'penalty_offset'), md.prognostic.penalty_factor=structmd.penalty_offset; end
    401405                         if isfield(structmd,'rheology_B'), md.materials.rheology_B=structmd.B; end
    402406                         if isfield(structmd,'rheology_n'), md.materials.rheology_n=structmd.n; end
     
    525529                         md.timestepping=timestepping;
    526530                         md.groundingline=groundingline;
     531                         md.prognostic=prognostic;
    527532                         md.materials=materials;
    528533                         md.mask=mask;
    529 
    530534
    531535                         %Physical parameters
     
    589593                         md.min_mechanical_constraints=0;
    590594
    591                          %Hydrostatic adjustment
    592                          md.hydrostatic_adjustment='Absolute';
    593595                         %the artificial diffusivity is used in prognostic to avoid
    594596                         %numerical wiggles of the solution.
    595597                         md.artificial_diffusivity=1;
    596 
    597                          %Discontinuous Galerkin is used in prognostic to avoid
    598                          %numerical wiggles of the solution and conserve mass
    599                          md.prognostic_DG=0;
    600598
    601599                         %Solution activated for transient runs. By default we do a
     
    668666                                 if(strcmp(index1.subs,'qmu')), displayqmu(md);return; end
    669667                                 if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end
    670                                  if(strcmp(index1.subs,'prognostic')), displayprognostic(md);return; end
    671668                                 if(strcmp(index1.subs,'transient')), displaytransient(md);return; end
    672669                                 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
  • issm/trunk/src/m/model/collapse.m

    r9641 r9642  
    5959md.spcvy=project2d(md,md.spcvy,md.numlayers);
    6060md.spcvz=project2d(md,md.spcvz,md.numlayers);
    61 md.spcthickness=project2d(md,md.spcthickness,md.numlayers);
     61md.prognostic.spcthickness=project2d(md,md.prognostic.spcthickness,md.numlayers);
    6262md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.numlayers);
    6363
  • issm/trunk/src/m/model/extrude.m

    r9641 r9642  
    176176md.spcvz=project3d(md,'vector',md.spcvz,'type','node');
    177177md.thermal.spctemperature=project3d(md,'vector',md.thermal.spctemperature,'type','node','layer',md.numlayers,'padding',NaN);
    178 md.spcthickness=project3d(md,'vector',md.spcthickness,'type','node');
     178md.prognostic.spcthickness=project3d(md,'vector',md.prognostic.spcthickness,'type','node');
    179179md.diagnostic_ref=project3d(md,'vector',md.diagnostic_ref,'type','node');
    180180
  • issm/trunk/src/m/model/ismodelselfconsistent.m

    r9641 r9642  
    6060
    6161%DG {{{1
    62 if md.prognostic_DG==1;
     62if md.prognostic.stabilization==3;
    6363        %CHECK THE COMPATIBILITY OF THE EDGES
    6464        fields={'edges'};
     
    166166        message('model not consistent: artificial_diffusivity should be a scalar (0 or 1 or 2)');
    167167end
     168if ~ismember(md.prognostic.stabilization,[0 1 3]),
     169        message('model not consistent: prognostic.stabilization should be a scalar (0 or 1 or 3)');
     170end
    168171if ~ismember(md.thermal.stabilization,[0 1 2]),
    169172        message('model not consistent: thermal.stabilization should be a scalar (0 or 1 or 2)');
    170173end
    171 if ~ismember(md.prognostic_DG,[0 1]),
    172         message('model not consistent: prognostic_DG should be a scalar (1 or 0)');
    173 end
    174174if ~ismember(md.settings.lowmem,[0 1]),
    175175        message(['model not consistent: model ' md.miscellaneous.name ' settings.lowmem field should be 0 or 1']);
     
    178178        message(['model not consistent: model ' md.miscellaneous.name ' time_adapt field should be 0 or 1']);
    179179end
    180 if ~ismember(md.hydrostatic_adjustment,{'Absolute' 'Incremental'}),
    181         message(['model not consistent: model ' md.miscellaneous.name ' hydrostatic_adjustment field should be AbsoluteEnum or IncrementalEnum']);
     180if ~ismember(md.prognostic.hydrostatic_adjustment,{'Absolute' 'Incremental'}),
     181        message(['model not consistent: model ' md.miscellaneous.name ' prognostic.hydrostatic_adjustment field should be AbsoluteEnum or IncrementalEnum']);
    182182end
    183183if ~ismember({md.materials.rheology_law},{'None' 'Paterson' 'Arrhenius'}),
     
    459459
    460460                        %DIRICHLET
    461                         fields={'spcthickness'};
     461                        fields={'prognostic.spcthickness'};
    462462                        checkforcing(md,fields);
    463463
    464464                        %DIRICHLET IF THICKNESS <= 0
    465                         %Check the size of spcthickness
     465                        %Check the size of prognostic.spcthickness
    466466                        if any(md.thickness<=0),
    467467                                pos=find(md.thickness<=0);
    468                                 if any(isnan(md.spcthickness(pos))),
     468                                if any(isnan(md.prognostic.spcthickness(pos))),
    469469                                        message(['model not consistent: model ' md.miscellaneous.name ' has some nodes with 0 thickness']);
    470470                                end
  • issm/trunk/src/m/model/modelextract.m

    r9641 r9642  
    194194                md2.penalties=md2.penalties(find(md2.penalties(:,1)),:);
    195195        end
     196        if ~isnan(md2.prognostic.vertex_pairing),
     197                for i=1:size(md1.prognostic.vertex_pairing,1);
     198                        md2.prognostic.vertex_pairing(i,:)=Pnode(md1.prognostic.vertex_pairing(i,:));
     199                end
     200                md2.prognostic.vertex_pairing=md2.prognostic.vertex_pairing(find(md2.prognostic.vertex_pairing(:,1)),:);
     201        end
    196202
    197203        %recreate segments
  • issm/trunk/src/m/utils/BC/SetIceSheetBC.m

    r9632 r9642  
    5555end
    5656
    57 md.spcthickness=NaN*ones(md.numberofnodes,1);
     57md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
    5858
    5959if (length(md.temperature)==md.numberofnodes),
  • issm/trunk/src/m/utils/BC/SetIceShelfBC.m

    r9641 r9642  
    8787end
    8888
    89 md.spcthickness=NaN*ones(md.numberofnodes,1);
     89md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
    9090
    9191if (length(md.temperature)==md.numberofnodes),
  • issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m

    r9641 r9642  
    9898end
    9999
    100 md.spcthickness=NaN*ones(md.numberofnodes,1);
     100md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
    101101
    102102if (length(md.temperature)==md.numberofnodes),
  • issm/trunk/template

    r9641 r9642  
    114114        dhdt -> rename thickening_rate
    115115        artificial_diffusivity -> rename stabilization
     116        prognostic_DG -> delete
    116117        requested_outputs
    117118}}}
  • issm/trunk/test/Miscellaneous/GJM_test1/SquareShelf.par

    r9641 r9642  
    2626%Numerical parameters
    2727md.viscosity_overshoot=0.3;
    28 md.artificial_diffusivity=1;
     28md.prognostic.stabilization=1;
    2929md.thermal.stabilization=1;
    3030md.waitonlock=30;
  • issm/trunk/test/Miscellaneous/connectivity/Square.par

    r9641 r9642  
    44md.dt=1*md.constants.yts; %1 year
    55md.ndt=md.dt*10;
    6 md.artificial_diffusivity=1;
     6md.prognostic.stabilization=1;
    77md.thermal.stabilization=1;
    88
  • issm/trunk/test/NightlyRun/test111.m

    r9641 r9642  
    55md=setelementstype(md,'macayeal','all');
    66md.cluster=none;
    7 md.prognostic_DG=1;
    8 md.spcthickness=md.thickness;
     7md.prognostic.stabilization=3;
     8md.prognostic.spcthickness=md.thickness;
    99md=solve(md,PrognosticSolutionEnum);
    1010
  • issm/trunk/test/NightlyRun/test1110.m

    r9641 r9642  
    4646
    4747        md.penalties=[posx,posx2;posy,posy2];
     48        md.prognostic.vertex_pairing=[posx,posx2;posy,posy2];
    4849
    4950        md.timestepping.time_step=3;
    5051        md.timestepping.final_time=300;
    5152        md.output_frequency=50;
    52         md.prognostic_DG=0;
     53        md.prognostic.stabilization=1;
    5354        md.max_nonlinear_iterations=1;
    5455
  • issm/trunk/test/NightlyRun/test112.m

    r9641 r9642  
    55md=setelementstype(md,'macayeal','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.prognostic_DG=1;
    8 md.spcthickness=md.thickness;
     7md.prognostic.stabilization=3;
     8md.prognostic.spcthickness=md.thickness;
    99md=solve(md,PrognosticSolutionEnum);
    1010
  • issm/trunk/test/NightlyRun/test1201.m

    r9641 r9642  
    1818
    1919        %Stabilization
    20         if stabilization==1,
    21                 md.artificial_diffusivity=1;
    22                 md.prognostic_DG=0;
    23         elseif stabilization==2,
    24                 md.artificial_diffusivity=0;
    25                 md.prognostic_DG=0;
    26         elseif stabilization==3,
    27                 md.prognostic_DG=1;
     20        if stabilization=1,
     21                md.prognostic.stabilization=stabilization;
     22        elseif stabilization=2,
     23                md.prognostic.stabilization=0;
     24        elseif stabilization=3,
     25                md.prognostic.stabilization=stabilization;
    2826        end
    2927
     
    3129        pos=find(md.y>199999.9);
    3230        times=0:1:500;
    33         md.spcthickness=NaN*ones(md.numberofnodes+1,length(times));
    34         md.spcthickness(end,:)=times;
    35         md.spcthickness(pos,:)=repmat(500+100*sin(2*pi*times/200),length(pos),1);
     31        md.prognostic.spcthickness=NaN*ones(md.numberofnodes+1,length(times));
     32        md.prognostic.spcthickness(end,:)=times;
     33        md.prognostic.spcthickness(pos,:)=repmat(500+100*sin(2*pi*times/200),length(pos),1);
    3634        if stabilization==3,
    37                 pos=find(isnan(md.spcthickness)); md.spcthickness(pos)=500; %No NaN for DG
     35                pos=find(isnan(md.prognostic.spcthickness)); md.prognostic.spcthickness(pos)=500; %No NaN for DG
    3836        end
    3937
  • issm/trunk/test/NightlyRun/test1204.m

    r9641 r9642  
    2323md.timestepping.time_step=1;
    2424md.timestepping.final_time=5000;
    25 md.artificial_diffusivity=1;
     25md.prognostic.stabilization=1;
    2626md=solve(md,TransientSolutionEnum);
    2727
  • issm/trunk/test/NightlyRun/test1208.m

    r9641 r9642  
    2222md.output_frequency=20;
    2323md.timestepping.final_time=50000;
    24 md.artificial_diffusivity=2;
     24md.prognostic.stabilization=2;
    2525md.thermal.stabilization=2;
    2626
  • issm/trunk/test/NightlyRun/test135.m

    r9641 r9642  
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    5 md.prognostic_DG=1;
     5md.prognostic.stabilization=3;
    66md.vy=md.vy+400;
    77md=setelementstype(md,'macayeal','all');
  • issm/trunk/test/NightlyRun/test136.m

    r9641 r9642  
    33md=setmask(md,'all','');
    44md=parameterize(md,'../Par/SquareShelfConstrained.par');
    5 md.prognostic_DG=1;
     5md.prognostic.stabilization=3;
    66md.vy=md.vy+400;
    77md=setelementstype(md,'macayeal','all');
  • issm/trunk/test/NightlyRun/test243.m

    r9641 r9642  
    44md=setelementstype(md,'macayeal','all');
    55md.cluster=none;
    6 md.hydrostatic_adjustment='Incremental';
     6md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    77md=solve(md,TransientSolutionEnum);
    88
  • issm/trunk/test/NightlyRun/test244.m

    r9641 r9642  
    44md=setelementstype(md,'macayeal','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.hydrostatic_adjustment='Incremental';
     6md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    77md=solve(md,TransientSolutionEnum);
    88
  • issm/trunk/test/NightlyRun/test245.m

    r9641 r9642  
    55md.bed=md.bed+50; md.surface=md.surface+50;
    66md.cluster=none;
    7 md.hydrostatic_adjustment='Incremental';
     7md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    88md=solve(md,TransientSolutionEnum);
    99
  • issm/trunk/test/NightlyRun/test246.m

    r9641 r9642  
    55md.bed=md.bed+50; md.surface=md.surface+50;
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.hydrostatic_adjustment='Incremental';
     7md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    88md=solve(md,TransientSolutionEnum);
    99
  • issm/trunk/test/NightlyRun/test247.m

    r9641 r9642  
    55md=setelementstype(md,'pattyn','all');
    66md.cluster=none;
    7 md.hydrostatic_adjustment='Incremental';
     7md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    88md=solve(md,TransientSolutionEnum);
    99
  • issm/trunk/test/NightlyRun/test248.m

    r9641 r9642  
    55md=setelementstype(md,'pattyn','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.hydrostatic_adjustment='Incremental';
     7md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    88md=solve(md,TransientSolutionEnum);
    99
  • issm/trunk/test/NightlyRun/test249.m

    r9641 r9642  
    66md.bed=md.bed+50; md.surface=md.surface+50;
    77md.cluster=none;
    8 md.hydrostatic_adjustment='Incremental';
     8md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    99md=solve(md,TransientSolutionEnum);
    1010
  • issm/trunk/test/NightlyRun/test250.m

    r9641 r9642  
    66md.bed=md.bed+50; md.surface=md.surface+50;
    77md.cluster=generic('name',oshostname(),'np',3);
    8 md.hydrostatic_adjustment='Incremental';
     8md.prognostic.prognostic.hydrostatic_adjustment='Incremental';
    99md=solve(md,TransientSolutionEnum);
    1010
  • issm/trunk/test/NightlyRun/test319.m

    r9641 r9642  
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    55md=setelementstype(md,'macayeal','all');
    6 md.prognostic_DG=1;
    7 md.spcthickness=md.thickness;
     6md.prognostic.stabilization=3;
     7md.prognostic.spcthickness=md.thickness;
    88md.cluster=none;
    99md=solve(md,PrognosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test320.m

    r9641 r9642  
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    55md=setelementstype(md,'macayeal','all');
    6 md.prognostic_DG=1;
    7 md.spcthickness=md.thickness;
     6md.prognostic.stabilization=3;
     7md.prognostic.spcthickness=md.thickness;
    88md.cluster=generic('name',oshostname(),'np',3);
    99md=solve(md,PrognosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test603.m

    r9641 r9642  
    44md=parameterize(md,'../Par/79North.par');
    55md=setelementstype(md,'macayeal','all');
    6 md.prognostic_DG=1;
    7 md.spcthickness=md.thickness;
     6md.prognostic.stabilization=3;
     7md.prognostic.spcthickness=md.thickness;
    88md.cluster=none;
    99md=solve(md,PrognosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test604.m

    r9641 r9642  
    44md=parameterize(md,'../Par/79North.par');
    55md=setelementstype(md,'macayeal','all');
    6 md.prognostic_DG=1;
    7 md.spcthickness=md.thickness;
     6md.prognostic.stabilization=3;
     7md.prognostic.spcthickness=md.thickness;
    88md.cluster=generic('name',oshostname(),'np',3);
    99md=solve(md,PrognosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test617.m

    r9641 r9642  
    44md=parameterize(md,'../Par/79North.par');
    55md=setelementstype(md,'macayeal','all');
    6 md.prognostic_DG=1;
     6md.prognostic.stabilization=3;
    77md.cluster=none;
    88md=solve(md,BalancethicknessSolutionEnum);
  • issm/trunk/test/NightlyRun/test621.m

    r9641 r9642  
    66%control parameters
    77md.nsteps=2;
    8 md.prognostic_DG=0;
     8md.prognostic.stabilization=1;
    99md.control_analysis=1;
    1010md.control_type={'Dhdt'};
  • issm/trunk/test/NightlyRun/test622.m

    r9641 r9642  
    66%control parameters
    77md.nsteps=2;
    8 md.prognostic_DG=0;
     8md.prognostic.stabilization=1;
    99md.control_analysis=1;
    1010md.control_type={'Dhdt'};
  • issm/trunk/test/NightlyRun/test623.m

    r9641 r9642  
    77%control parameters
    88md.nsteps=2;
    9 md.prognostic_DG=1;
     9md.prognostic.stabilization=3;
    1010md.control_analysis=1;
    1111md.control_type={'Dhdt'};
  • issm/trunk/test/NightlyRun/test624.m

    r9641 r9642  
    77%control parameters
    88md.nsteps=2;
    9 md.prognostic_DG=1;
     9md.prognostic.stabilization=3;
    1010md.control_analysis=1;
    1111md.control_type={'Dhdt'};
  • issm/trunk/test/NightlyRun/test625.m

    r9641 r9642  
    1616md.nsteps=2;
    1717md.control_type={'Vx' 'Vy'};
    18 md.prognostic_DG=0;
     18md.prognostic.stabilization=1;
    1919md.optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];
    2020md.cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
  • issm/trunk/test/NightlyRun/test626.m

    r9641 r9642  
    1616md.nsteps=2;
    1717md.control_type={'Vx' 'Vy'};
    18 md.prognostic_DG=0;
     18md.prognostic.stabilization=1;
    1919md.optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];
    2020md.cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
  • issm/trunk/test/Par/79North.par

    r9641 r9642  
    3131%Numerical parameters
    3232md.viscosity_overshoot=0.3;
    33 md.artificial_diffusivity=1;
     33md.prognostic.stabilization=1;
    3434md.thermal.stabilization=1;
    3535md.verbose=verbose(0);
     
    4545pos=find(md.nodeonboundary);
    4646md.spcthickness(pos)=md.thickness(pos);
     47md.prognostic.spcthickness(pos)=md.thickness(pos);
    4748
    4849%Change name so that no test have the same name
  • issm/trunk/test/Par/ISMIPF.par

    r9636 r9642  
    3131md.spcthickness=NaN*ones(md.numberofnodes,1);
    3232md.spcthickness(pos)=md.thickness(pos);
     33md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
     34md.prognostic.spcthickness(pos)=md.thickness(pos);
    3335md.thermal.spctemperature=255*ones(md.numberofnodes,1);
    3436md.basalforcings.geothermalflux=0.4*ones(md.numberofnodes,1);
     
    4042md.timestepping.time_step=1;
    4143md.timestepping.final_time=10;
    42 md.artificial_diffusivity=1;
     44md.prognostic.stabilization=1;
    4345md.thermal.stabilization=1;
    4446md.thermal.penalty_threshold=10^5;
  • issm/trunk/test/Par/Pig.par

    r9641 r9642  
    2929%Numerical parameters
    3030md.viscosity_overshoot=0.3;
    31 md.artificial_diffusivity=1;
     31md.prognostic.stabilization=1;
    3232md.verbose=verbose(0);
    3333md.waitonlock=30;
  • issm/trunk/test/Par/RoundSheetShelf.par

    r9641 r9642  
    5858%Numerical parameters
    5959md.viscosity_overshoot=0.0;
    60 md.artificial_diffusivity=1;
     60md.prognostic.stabilization=1;
    6161md.thermal.stabilization=1;
    6262md.verbose=verbose(0);
     
    8686md.pressureload=pressureload;
    8787md.spcthickness=NaN*ones(md.numberofnodes,1);
     88md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
    8889md.diagnostic_ref=NaN*ones(md.numberofnodes,6);
    8990
  • issm/trunk/test/Par/SquareEISMINT.par

    r9641 r9642  
    3434md.spcthickness=NaN*ones(md.numberofnodes,1);
    3535md.spcthickness(pos)=500;
    36 md.artificial_diffusivity=0; %Better result with no artificial diffusivity
    37 md.thermal.statbilization=0;
     36md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
     37md.prognostic.spcthickness(pos)=500;
     38md.prognostic.stabilization=0; %Better result with no artificial diffusivity
     39md.thermal.stabilization=0;
    3840md.timestepping.final_time=500;
    3941md.timestepping.time_step=1;
  • issm/trunk/test/Par/SquareSheetConstrained.par

    r9641 r9642  
    3232%Numerical parameters
    3333md.viscosity_overshoot=0.0;
    34 md.artificial_diffusivity=1;
     34md.prognostic.stabilization=1;
    3535md.thermal.stabilization=1;
    3636md.verbose=verbose(0);
  • issm/trunk/test/Par/SquareSheetShelf.par

    r9641 r9642  
    3939%Numerical parameters
    4040md.viscosity_overshoot=0.0;
    41 md.artificial_diffusivity=1;
     41md.prognostic.stabilization=1;
    4242md.thermal.stabilization=1;
    4343md.verbose=verbose(0);
  • issm/trunk/test/Par/SquareShelf.par

    r9641 r9642  
    3232%Numerical parameters
    3333md.viscosity_overshoot=0.3;
    34 md.artificial_diffusivity=1;
     34md.prognostic.stabilization=1;
    3535md.thermal.stabilization=1;
    3636md.waitonlock=30;
  • issm/trunk/test/Par/SquareShelfConstrained.par

    r9641 r9642  
    3636%Numerical parameters
    3737md.viscosity_overshoot=0.0;
    38 md.artificial_diffusivity=1;
     38md.prognostic.stabilization=1;
    3939md.thermal.stabilization=1;
    4040md.verbose=verbose(0);
Note: See TracChangeset for help on using the changeset viewer.