Changeset 9679


Ignore:
Timestamp:
09/08/11 08:07:18 (14 years ago)
Author:
seroussi
Message:

added diagnostic class

Location:
issm/trunk
Files:
24 added
19 deleted
88 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9678 r9679  
    4242        ThermalPenaltyFactorEnum,
    4343        ThermalRequestedOutputsEnum,
     44        ThermalNumRequestedOutputsEnum,
    4445        MiscellaneousNameEnum, //FIXME: only used by qmu, should not be marshalled (already in queueing script)
    4546        TimesteppingTimeStepEnum,
     
    5354        PrognosticPenaltyFactorEnum,
    5455        PrognosticRequestedOutputsEnum,
     56        PrognosticNumRequestedOutputsEnum,
    5557        MaterialsRheologyBEnum,
    5658        MaterialsRheologyBbarEnum,
     
    8385        BalancethicknessStabilizationEnum,
    8486        BalancethicknessRequestedOutputsEnum,
     87        BalancethicknessNumRequestedOutputsEnum,
    8588        FlowequationIshutterEnum,
    8689        FlowequationIsmacayealpattynEnum,
     
    9295        FlowequationBordermacayealEnum,
    9396        SteadystateRequestedOutputsEnum,
     97        SteadystateNumRequestedOutputsEnum,
    9498        SteadystateReltolEnum,
    9599        SteadystateMaxiterEnum,
     
    99103        TransientIsgroundinglineEnum,
    100104        TransientRequestedOutputsEnum,
     105        TransientNumRequestedOutputsEnum,
     106        DiagnosticSpcvxEnum,
     107        DiagnosticSpcvyEnum,
     108        DiagnosticSpcvzEnum,
     109        DiagnosticStokesreconditioningEnum,
     110        DiagnosticIcefrontEnum,
     111        DiagnosticReferentialEnum,
     112        DiagnosticVertexPairingEnum,
     113        DiagnosticPenaltyFactorEnum,
     114        DiagnosticAbstolEnum,
     115        DiagnosticReltolEnum,
     116        DiagnosticRestolEnum,
     117        DiagnosticMaxiterEnum,
     118        DiagnosticShelfDampeningEnum,
     119        DiagnosticRiftPenaltyLockEnum,
     120        DiagnosticRiftPenaltyThresholdEnum,
     121        DiagnosticRequestedOutputsEnum,
     122        DiagnosticNumRequestedOutputsEnum,
     123        DiagnosticViscosityOvershootEnum,
    101124        /*}}}*/
    102125        /*Datasets {{{1*/
     
    277300        NodeonsurfaceEnum,
    278301        NumberNodeToElementConnectivityEnum,
    279         PenaltyOffsetEnum,
    280302        PressureEnum,
    281303        PressurePicardEnum,
     
    284306        ResetPenaltiesEnum,
    285307        SegmentOnIceShelfEnum,
    286         ShelfDampeningEnum,
    287308        SurfaceAreaEnum,
    288309        SurfaceEnum,
     
    298319        VelEnum,
    299320        VelObsEnum,
    300         ViscosityOvershootEnum,
    301321        VxAverageEnum,
    302322        VxEnum,
     
    387407        ControlSteadyEnum,
    388408        DimEnum,
    389         EpsAbsEnum,
    390409        EpsCmEnum,
    391         EpsRelEnum,
    392         EpsResEnum,
    393         MaxNonlinearIterationsEnum,
    394         MinMechanicalConstraintsEnum,
    395410        NumberOfElementsEnum,
    396411        NumberOfVerticesEnum,
     
    446461        NumberOfElements2DEnum,
    447462        NumControlTypeEnum,
    448         SpcvyEnum,
    449463        YEnum,
    450         PenaltiesEnum,
    451         PressureloadEnum,
    452         SpcvzEnum,
    453464        NumberOfNodes2DEnum,
    454465        ZEnum,
    455         PenaltyLockEnum,
    456         SpcvxEnum,
    457466        UpperelementsEnum,
    458467        EdgesEnum,
     
    462471        ElementconnectivityEnum,
    463472        NumlayersEnum,
    464         DiagnosticRefEnum,
    465         StokesreconditioningEnum,
    466473        LowerelementsEnum,
    467474        NstepsEnum,
     
    474481        WaitonlockEnum,
    475482        NumberOfResponsesEnum,
    476 
    477         RequestedOutputsEnum,
    478         NumRequestedOutputsEnum,
    479483        BasalFrictionEnum,
    480484        ViscousHeatingEnum,
  • issm/trunk/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp

    r8410 r9679  
    2727
    2828        /*recover parameters: */
    29         parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
     29        parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum);
    3030        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    3131
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9678 r9679  
    4646                case ThermalPenaltyFactorEnum : return "ThermalPenaltyFactor";
    4747                case ThermalRequestedOutputsEnum : return "ThermalRequestedOutputs";
     48                case ThermalNumRequestedOutputsEnum : return "ThermalNumRequestedOutputs";
    4849                case MiscellaneousNameEnum : return "MiscellaneousName";
    4950                case TimesteppingTimeStepEnum : return "TimesteppingTimeStep";
     
    5758                case PrognosticPenaltyFactorEnum : return "PrognosticPenaltyFactor";
    5859                case PrognosticRequestedOutputsEnum : return "PrognosticRequestedOutputs";
     60                case PrognosticNumRequestedOutputsEnum : return "PrognosticNumRequestedOutputs";
    5961                case MaterialsRheologyBEnum : return "MaterialsRheologyB";
    6062                case MaterialsRheologyBbarEnum : return "MaterialsRheologyBbar";
     
    8789                case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
    8890                case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs";
     91                case BalancethicknessNumRequestedOutputsEnum : return "BalancethicknessNumRequestedOutputs";
    8992                case FlowequationIshutterEnum : return "FlowequationIshutter";
    9093                case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn";
     
    9699                case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal";
    97100                case SteadystateRequestedOutputsEnum : return "SteadystateRequestedOutputs";
     101                case SteadystateNumRequestedOutputsEnum : return "SteadystateNumRequestedOutputs";
    98102                case SteadystateReltolEnum : return "SteadystateReltol";
    99103                case SteadystateMaxiterEnum : return "SteadystateMaxiter";
     
    103107                case TransientIsgroundinglineEnum : return "TransientIsgroundingline";
    104108                case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
     109                case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
     110                case DiagnosticSpcvxEnum : return "DiagnosticSpcvx";
     111                case DiagnosticSpcvyEnum : return "DiagnosticSpcvy";
     112                case DiagnosticSpcvzEnum : return "DiagnosticSpcvz";
     113                case DiagnosticStokesreconditioningEnum : return "DiagnosticStokesreconditioning";
     114                case DiagnosticIcefrontEnum : return "DiagnosticIcefront";
     115                case DiagnosticReferentialEnum : return "DiagnosticReferential";
     116                case DiagnosticVertexPairingEnum : return "DiagnosticVertexPairing";
     117                case DiagnosticPenaltyFactorEnum : return "DiagnosticPenaltyFactor";
     118                case DiagnosticAbstolEnum : return "DiagnosticAbstol";
     119                case DiagnosticReltolEnum : return "DiagnosticReltol";
     120                case DiagnosticRestolEnum : return "DiagnosticRestol";
     121                case DiagnosticMaxiterEnum : return "DiagnosticMaxiter";
     122                case DiagnosticShelfDampeningEnum : return "DiagnosticShelfDampening";
     123                case DiagnosticRiftPenaltyLockEnum : return "DiagnosticRiftPenaltyLock";
     124                case DiagnosticRiftPenaltyThresholdEnum : return "DiagnosticRiftPenaltyThreshold";
     125                case DiagnosticRequestedOutputsEnum : return "DiagnosticRequestedOutputs";
     126                case DiagnosticNumRequestedOutputsEnum : return "DiagnosticNumRequestedOutputs";
     127                case DiagnosticViscosityOvershootEnum : return "DiagnosticViscosityOvershoot";
    105128                case ConstraintsEnum : return "Constraints";
    106129                case ElementsEnum : return "Elements";
     
    244267                case NodeonsurfaceEnum : return "Nodeonsurface";
    245268                case NumberNodeToElementConnectivityEnum : return "NumberNodeToElementConnectivity";
    246                 case PenaltyOffsetEnum : return "PenaltyOffset";
    247269                case PressureEnum : return "Pressure";
    248270                case PressurePicardEnum : return "PressurePicard";
     
    251273                case ResetPenaltiesEnum : return "ResetPenalties";
    252274                case SegmentOnIceShelfEnum : return "SegmentOnIceShelf";
    253                 case ShelfDampeningEnum : return "ShelfDampening";
    254275                case SurfaceAreaEnum : return "SurfaceArea";
    255276                case SurfaceEnum : return "Surface";
     
    265286                case VelEnum : return "Vel";
    266287                case VelObsEnum : return "VelObs";
    267                 case ViscosityOvershootEnum : return "ViscosityOvershoot";
    268288                case VxAverageEnum : return "VxAverage";
    269289                case VxEnum : return "Vx";
     
    339359                case ControlSteadyEnum : return "ControlSteady";
    340360                case DimEnum : return "Dim";
    341                 case EpsAbsEnum : return "EpsAbs";
    342361                case EpsCmEnum : return "EpsCm";
    343                 case EpsRelEnum : return "EpsRel";
    344                 case EpsResEnum : return "EpsRes";
    345                 case MaxNonlinearIterationsEnum : return "MaxNonlinearIterations";
    346                 case MinMechanicalConstraintsEnum : return "MinMechanicalConstraints";
    347362                case NumberOfElementsEnum : return "NumberOfElements";
    348363                case NumberOfVerticesEnum : return "NumberOfVertices";
     
    390405                case NumberOfElements2DEnum : return "NumberOfElements2D";
    391406                case NumControlTypeEnum : return "NumControlType";
    392                 case SpcvyEnum : return "Spcvy";
    393407                case YEnum : return "Y";
    394                 case PenaltiesEnum : return "Penalties";
    395                 case PressureloadEnum : return "Pressureload";
    396                 case SpcvzEnum : return "Spcvz";
    397408                case NumberOfNodes2DEnum : return "NumberOfNodes2D";
    398409                case ZEnum : return "Z";
    399                 case PenaltyLockEnum : return "PenaltyLock";
    400                 case SpcvxEnum : return "Spcvx";
    401410                case UpperelementsEnum : return "Upperelements";
    402411                case EdgesEnum : return "Edges";
     
    406415                case ElementconnectivityEnum : return "Elementconnectivity";
    407416                case NumlayersEnum : return "Numlayers";
    408                 case DiagnosticRefEnum : return "DiagnosticRef";
    409                 case StokesreconditioningEnum : return "Stokesreconditioning";
    410417                case LowerelementsEnum : return "Lowerelements";
    411418                case NstepsEnum : return "Nsteps";
     
    418425                case WaitonlockEnum : return "Waitonlock";
    419426                case NumberOfResponsesEnum : return "NumberOfResponses";
    420                 case RequestedOutputsEnum : return "RequestedOutputs";
    421                 case NumRequestedOutputsEnum : return "NumRequestedOutputs";
    422427                case BasalFrictionEnum : return "BasalFriction";
    423428                case ViscousHeatingEnum : return "ViscousHeating";
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r9678 r9679  
    3030        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum));
    3131        parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum));
    32         parameters->AddObject(iomodel->CopyConstantObject(EpsResEnum));
    33         parameters->AddObject(iomodel->CopyConstantObject(EpsRelEnum));
    34         parameters->AddObject(iomodel->CopyConstantObject(EpsAbsEnum));
    35         parameters->AddObject(iomodel->CopyConstantObject(MaxNonlinearIterationsEnum));
     32        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRestolEnum));
     33        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticReltolEnum));
     34        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticAbstolEnum));
     35        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticMaxiterEnum));
    3636        parameters->AddObject(iomodel->CopyConstantObject(SteadystateReltolEnum));
    3737        parameters->AddObject(iomodel->CopyConstantObject(SteadystateMaxiterEnum));
     
    4343        parameters->AddObject(iomodel->CopyConstantObject(PrognosticHydrostaticAdjustmentEnum));
    4444        parameters->AddObject(iomodel->CopyConstantObject(PrognosticStabilizationEnum));
    45         parameters->AddObject(iomodel->CopyConstantObject(PenaltyOffsetEnum));
     45        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticPenaltyFactorEnum));
    4646        parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyFactorEnum));
    4747        parameters->AddObject(iomodel->CopyConstantObject(SettingsLowmemEnum));
     
    5555        parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyThresholdEnum));
    5656        parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyLockEnum));
    57         parameters->AddObject(iomodel->CopyConstantObject(MinMechanicalConstraintsEnum));
    58         parameters->AddObject(iomodel->CopyConstantObject(StokesreconditioningEnum));
    59         parameters->AddObject(iomodel->CopyConstantObject(ShelfDampeningEnum));
    60         parameters->AddObject(iomodel->CopyConstantObject(ViscosityOvershootEnum));
     57        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRiftPenaltyThresholdEnum));
     58        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticStokesreconditioningEnum));
     59        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticShelfDampeningEnum));
     60        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticViscosityOvershootEnum));
    6161        parameters->AddObject(iomodel->CopyConstantObject(WaitonlockEnum));
    6262        parameters->AddObject(iomodel->CopyConstantObject(NumberOfElementsEnum));
     
    7676
    7777        /*Requested output?*/
    78         iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,RequestedOutputsEnum);
    79         parameters->AddObject(new IntParam(NumRequestedOutputsEnum,numoutputs));
    80         if(numoutputs)parameters->AddObject(new IntVecParam(RequestedOutputsEnum,requestedoutputs,numoutputs));
     78        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,DiagnosticRequestedOutputsEnum);
     79        parameters->AddObject(new IntParam(DiagnosticNumRequestedOutputsEnum,numoutputs));
     80        if(numoutputs)parameters->AddObject(new IntVecParam(DiagnosticRequestedOutputsEnum,requestedoutputs,numoutputs));
     81        xfree((void**)&requestedoutputs);
     82        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,PrognosticRequestedOutputsEnum);
     83        parameters->AddObject(new IntParam(PrognosticNumRequestedOutputsEnum,numoutputs));
     84        if(numoutputs)parameters->AddObject(new IntVecParam(PrognosticRequestedOutputsEnum,requestedoutputs,numoutputs));
     85        xfree((void**)&requestedoutputs);
     86        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,ThermalRequestedOutputsEnum);
     87        parameters->AddObject(new IntParam(ThermalNumRequestedOutputsEnum,numoutputs));
     88        if(numoutputs)parameters->AddObject(new IntVecParam(ThermalRequestedOutputsEnum,requestedoutputs,numoutputs));
     89        xfree((void**)&requestedoutputs);
     90        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum);
     91        parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs));
     92        if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));
     93        xfree((void**)&requestedoutputs);
     94        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,SteadystateRequestedOutputsEnum);
     95        parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs));
     96        if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));
     97        xfree((void**)&requestedoutputs);
     98        iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,BalancethicknessRequestedOutputsEnum);
     99        parameters->AddObject(new IntParam(BalancethicknessNumRequestedOutputsEnum,numoutputs));
     100        if(numoutputs)parameters->AddObject(new IntVecParam(BalancethicknessRequestedOutputsEnum,requestedoutputs,numoutputs));
    81101        xfree((void**)&requestedoutputs);
    82102       
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp

    r9661 r9679  
    4444        iomodel->Constant(&g,ConstantsGEnum);
    4545        iomodel->Constant(&rho_ice,MaterialsRhoIceEnum);
    46         iomodel->Constant(&stokesreconditioning,StokesreconditioningEnum);
     46        iomodel->Constant(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    4747        iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
    4848        iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
     
    6161       
    6262        /*Constraints: fetch data: */
    63         iomodel->FetchData(&spcvx,NULL,NULL,SpcvxEnum);
    64         iomodel->FetchData(&spcvy,NULL,NULL,SpcvyEnum);
    65         iomodel->FetchData(&spcvz,NULL,NULL,SpcvzEnum);
     63        iomodel->FetchData(&spcvx,NULL,NULL,DiagnosticSpcvxEnum);
     64        iomodel->FetchData(&spcvy,NULL,NULL,DiagnosticSpcvyEnum);
     65        iomodel->FetchData(&spcvz,NULL,NULL,DiagnosticSpcvzEnum);
    6666        iomodel->FetchData(&nodeonmacayeal,NULL,NULL,FlowequationBordermacayealEnum);
    6767        if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,FlowequationBorderpattynEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp

    r9661 r9679  
    6060        /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the nodes
    6161         * referenced by a certain load must belong to the cluster node): */
    62         iomodel->FetchData(3,PressureloadEnum,ThicknessEnum,BedEnum);
    63         iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,PressureloadEnum);
     62        iomodel->FetchData(3,DiagnosticIcefrontEnum,ThicknessEnum,BedEnum);
     63        iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,DiagnosticIcefrontEnum);
    6464        iomodel->FetchData(&elements_type,NULL,NULL,FlowequationElementEquationEnum);
    6565
     
    119119
    120120        /*Free data: */
    121         iomodel->DeleteData(3,PressureloadEnum,ThicknessEnum,BedEnum);
     121        iomodel->DeleteData(3,DiagnosticIcefrontEnum,ThicknessEnum,BedEnum);
    122122        xfree((void**)&elements_type);
    123123        xfree((void**)&pressureload);
     
    149149
    150150        /*Create Penpair for penalties: */
    151         iomodel->FetchData(&penalties,&numpenalties,NULL,PenaltiesEnum);
     151        iomodel->FetchData(&penalties,&numpenalties,NULL,DiagnosticVertexPairingEnum);
    152152       
    153153        for(i=0;i<numpenalties;i++){
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r9661 r9679  
    4646        /*Create nodes: */
    4747        iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
    48                                 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
     48                                MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
    4949       
    5050        for (i=0;i<numberofvertices;i++){
     
    5959        /*Clean fetched data: */
    6060        iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum,
    61                                 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum);
     61                                MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
    6262
    6363        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp

    r9661 r9679  
    4242
    4343        /*Fetch data: */
    44         iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
     44        iomodel->FetchData(3,DiagnosticSpcvxEnum,DiagnosticSpcvyEnum,FlowequationVertexEquationEnum);
    4545
    4646        /*Initialize conunter*/
     
    6060                        }
    6161                        else{
    62                                 if (!isnan(iomodel->Data(SpcvxEnum)[i])){
    63                                         constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(SpcvxEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     62                                if (!isnan(iomodel->Data(DiagnosticSpcvxEnum)[i])){
     63                                        constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(DiagnosticSpcvxEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
    6464                                        count++;
    6565                                }
    6666
    67                                 if (!isnan(iomodel->Data(SpcvyEnum)[i])){
    68                                         constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,iomodel->Data(SpcvyEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
     67                                if (!isnan(iomodel->Data(DiagnosticSpcvyEnum)[i])){
     68                                        constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,iomodel->Data(DiagnosticSpcvyEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
    6969                                        count++;
    7070                                }
     
    7474
    7575        /*Free data: */
    76         iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);
     76        iomodel->DeleteData(3,DiagnosticSpcvxEnum,DiagnosticSpcvyEnum,FlowequationVertexEquationEnum);
    7777       
    7878        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp

    r9661 r9679  
    4141
    4242        /*Fetch data: */
    43         iomodel->FetchData(2,SpcvzEnum,FlowequationBorderstokesEnum);
     43        iomodel->FetchData(2,DiagnosticSpcvzEnum,FlowequationBorderstokesEnum);
    4444
    4545        /*Initialize counter*/
     
    5656                                count++;
    5757                        }
    58                         else if (!isnan(iomodel->Data(SpcvzEnum)[i])){
     58                        else if (!isnan(iomodel->Data(DiagnosticSpcvzEnum)[i])){
    5959                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,
    60                                                                 iomodel->Data(SpcvzEnum)[i]/yts,DiagnosticVertAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
     60                                                                iomodel->Data(DiagnosticSpcvzEnum)[i]/yts,DiagnosticVertAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
    6161                                count++;
    6262
     
    6666
    6767        /*Free data: */
    68         iomodel->DeleteData(2,SpcvzEnum,FlowequationBorderstokesEnum);
     68        iomodel->DeleteData(2,DiagnosticSpcvzEnum,FlowequationBorderstokesEnum);
    6969
    7070        cleanup_and_return:
  • issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r9642 r9679  
    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(&vertex_pairing,&numvertex_pairing,NULL,PenaltiesEnum);
     132        iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,DiagnosticVertexPairingEnum);
    133133        for(i=0;i<numvertex_pairing;i++){
    134134                if(my_vertices[(int)vertex_pairing[2*i+0]-1] && !my_vertices[(int)vertex_pairing[2*i+1]-1]){
  • issm/trunk/src/c/modules/RequestedOutputsx/RequestedOutputsx.cpp

    r9114 r9679  
    99#include "../../EnumDefinitions/EnumDefinitions.h"
    1010
    11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int step, double time){
    12 
     11void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs, int step, double time){
    1312
    1413        int  i,o;
    15         int  numoutputs        = 0;
    16         int *requested_outputs = NULL;
    1714        int  output_enum;
    1815        Element* element=NULL;
    1916
    2017        /*retrieve parameters: */
    21         parameters->FindParam(&numoutputs,NumRequestedOutputsEnum);
    22         if(numoutputs) parameters->FindParam(&requested_outputs,&numoutputs,RequestedOutputsEnum);
    23 
    2418        if(numoutputs){
    2519                for(o=0;o<numoutputs;o++){
     
    3226                }
    3327        }
    34                
    35         /*Free ressources:*/
    36         xfree((void**)&requested_outputs);
    37 
    3828}
  • issm/trunk/src/c/modules/RequestedOutputsx/RequestedOutputsx.h

    r9110 r9679  
    99
    1010/* local prototypes: */
    11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int step=1, double time=0);
     11void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs, int step=1, double time=0);
    1212
    1313#endif  /* _INPUTTORESULTX_H */
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9678 r9679  
    4444        else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
    4545        else if (strcmp(name,"ThermalRequestedOutputs")==0) return ThermalRequestedOutputsEnum;
     46        else if (strcmp(name,"ThermalNumRequestedOutputs")==0) return ThermalNumRequestedOutputsEnum;
    4647        else if (strcmp(name,"MiscellaneousName")==0) return MiscellaneousNameEnum;
    4748        else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
     
    5556        else if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum;
    5657        else if (strcmp(name,"PrognosticRequestedOutputs")==0) return PrognosticRequestedOutputsEnum;
     58        else if (strcmp(name,"PrognosticNumRequestedOutputs")==0) return PrognosticNumRequestedOutputsEnum;
    5759        else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
    5860        else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
     
    8587        else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
    8688        else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum;
     89        else if (strcmp(name,"BalancethicknessNumRequestedOutputs")==0) return BalancethicknessNumRequestedOutputsEnum;
    8790        else if (strcmp(name,"FlowequationIshutter")==0) return FlowequationIshutterEnum;
    8891        else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum;
     
    9497        else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum;
    9598        else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
     99        else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
    96100        else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
    97101        else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
     
    101105        else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
    102106        else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
     107        else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
     108        else if (strcmp(name,"DiagnosticSpcvx")==0) return DiagnosticSpcvxEnum;
     109        else if (strcmp(name,"DiagnosticSpcvy")==0) return DiagnosticSpcvyEnum;
     110        else if (strcmp(name,"DiagnosticSpcvz")==0) return DiagnosticSpcvzEnum;
     111        else if (strcmp(name,"DiagnosticStokesreconditioning")==0) return DiagnosticStokesreconditioningEnum;
     112        else if (strcmp(name,"DiagnosticIcefront")==0) return DiagnosticIcefrontEnum;
     113        else if (strcmp(name,"DiagnosticReferential")==0) return DiagnosticReferentialEnum;
     114        else if (strcmp(name,"DiagnosticVertexPairing")==0) return DiagnosticVertexPairingEnum;
     115        else if (strcmp(name,"DiagnosticPenaltyFactor")==0) return DiagnosticPenaltyFactorEnum;
     116        else if (strcmp(name,"DiagnosticAbstol")==0) return DiagnosticAbstolEnum;
     117        else if (strcmp(name,"DiagnosticReltol")==0) return DiagnosticReltolEnum;
     118        else if (strcmp(name,"DiagnosticRestol")==0) return DiagnosticRestolEnum;
     119        else if (strcmp(name,"DiagnosticMaxiter")==0) return DiagnosticMaxiterEnum;
     120        else if (strcmp(name,"DiagnosticShelfDampening")==0) return DiagnosticShelfDampeningEnum;
     121        else if (strcmp(name,"DiagnosticRiftPenaltyLock")==0) return DiagnosticRiftPenaltyLockEnum;
     122        else if (strcmp(name,"DiagnosticRiftPenaltyThreshold")==0) return DiagnosticRiftPenaltyThresholdEnum;
     123        else if (strcmp(name,"DiagnosticRequestedOutputs")==0) return DiagnosticRequestedOutputsEnum;
     124        else if (strcmp(name,"DiagnosticNumRequestedOutputs")==0) return DiagnosticNumRequestedOutputsEnum;
     125        else if (strcmp(name,"DiagnosticViscosityOvershoot")==0) return DiagnosticViscosityOvershootEnum;
    103126        else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
    104127        else if (strcmp(name,"Elements")==0) return ElementsEnum;
     
    242265        else if (strcmp(name,"Nodeonsurface")==0) return NodeonsurfaceEnum;
    243266        else if (strcmp(name,"NumberNodeToElementConnectivity")==0) return NumberNodeToElementConnectivityEnum;
    244         else if (strcmp(name,"PenaltyOffset")==0) return PenaltyOffsetEnum;
    245267        else if (strcmp(name,"Pressure")==0) return PressureEnum;
    246268        else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum;
     
    249271        else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
    250272        else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum;
    251         else if (strcmp(name,"ShelfDampening")==0) return ShelfDampeningEnum;
    252273        else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
    253274        else if (strcmp(name,"Surface")==0) return SurfaceEnum;
     
    263284        else if (strcmp(name,"Vel")==0) return VelEnum;
    264285        else if (strcmp(name,"VelObs")==0) return VelObsEnum;
    265         else if (strcmp(name,"ViscosityOvershoot")==0) return ViscosityOvershootEnum;
    266286        else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
    267287        else if (strcmp(name,"Vx")==0) return VxEnum;
     
    337357        else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
    338358        else if (strcmp(name,"Dim")==0) return DimEnum;
    339         else if (strcmp(name,"EpsAbs")==0) return EpsAbsEnum;
    340359        else if (strcmp(name,"EpsCm")==0) return EpsCmEnum;
    341         else if (strcmp(name,"EpsRel")==0) return EpsRelEnum;
    342         else if (strcmp(name,"EpsRes")==0) return EpsResEnum;
    343         else if (strcmp(name,"MaxNonlinearIterations")==0) return MaxNonlinearIterationsEnum;
    344         else if (strcmp(name,"MinMechanicalConstraints")==0) return MinMechanicalConstraintsEnum;
    345360        else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum;
    346361        else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum;
     
    388403        else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum;
    389404        else if (strcmp(name,"NumControlType")==0) return NumControlTypeEnum;
    390         else if (strcmp(name,"Spcvy")==0) return SpcvyEnum;
    391405        else if (strcmp(name,"Y")==0) return YEnum;
    392         else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;
    393         else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;
    394         else if (strcmp(name,"Spcvz")==0) return SpcvzEnum;
    395406        else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
    396407        else if (strcmp(name,"Z")==0) return ZEnum;
    397         else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;
    398         else if (strcmp(name,"Spcvx")==0) return SpcvxEnum;
    399408        else if (strcmp(name,"Upperelements")==0) return UpperelementsEnum;
    400409        else if (strcmp(name,"Edges")==0) return EdgesEnum;
     
    404413        else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
    405414        else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
    406         else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;
    407         else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;
    408415        else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
    409416        else if (strcmp(name,"Nsteps")==0) return NstepsEnum;
     
    416423        else if (strcmp(name,"Waitonlock")==0) return WaitonlockEnum;
    417424        else if (strcmp(name,"NumberOfResponses")==0) return NumberOfResponsesEnum;
    418         else if (strcmp(name,"RequestedOutputs")==0) return RequestedOutputsEnum;
    419         else if (strcmp(name,"NumRequestedOutputs")==0) return NumRequestedOutputsEnum;
    420425        else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
    421426        else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9661 r9679  
    426426
    427427        /*retrieve some parameters: */
    428         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     428        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    429429       
    430430        if(!IsOnBed()){
     
    757757        /* Get node coordinates and dof list: */
    758758        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    759         this->parameters->FindParam(&viscosity_overshoot,ViscosityOvershootEnum);
     759        this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum);
    760760        Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
    761761        Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
     
    939939        /* Get node coordinates and dof list: */
    940940        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    941         parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     941        parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    942942        Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
    943943        Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
     
    10301030        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    10311031        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    1032         parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     1032        parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    10331033        Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
    10341034        Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
     
    12851285        /*Retrieve all inputs and parameters*/
    12861286        GetVerticesCoordinates(&xyz_list[0][0], nodes,NUMVERTICES);
    1287         this->parameters->FindParam(&viscosity_overshoot,ViscosityOvershootEnum);
     1287        this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum);
    12881288        Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
    12891289        Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
     
    14271427        inputs->GetParameterValue(&approximation,ApproximationEnum);
    14281428        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    1429         this->parameters->FindParam(&viscosity_overshoot,ViscosityOvershootEnum);
     1429        this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum);
    14301430        Input* vx_input=inputs->GetInput(VxEnum);       _assert_(vx_input);
    14311431        Input* vy_input=inputs->GetInput(VyEnum);       _assert_(vy_input);
     
    15881588        /*Retrieve all inputs and parameters*/
    15891589        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    1590         parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     1590        parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    15911591        Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
    15921592        Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
     
    16571657        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    16581658        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    1659         parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     1659        parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    16601660        Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
    16611661        Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
     
    24842484        /*Retrieve all inputs and parameters*/
    24852485        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    2486         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     2486        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    24872487        Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
    24882488        Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
     
    25492549        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    25502550        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    2551         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     2551        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    25522552        Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
    25532553        Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
     
    26292629        /*Retrieve all inputs and parameters*/
    26302630        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    2631         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     2631        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    26322632        Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
    26332633        Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
     
    26942694        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    26952695        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    2696         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     2696        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    26972697        Input* vx_input=inputs->GetInput(VxEnum);               _assert_(vx_input);
    26982698        Input* vy_input=inputs->GetInput(VyEnum);               _assert_(vy_input);
     
    30003000
    30013001        /*Retrieve all inputs and parameters*/
    3002         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     3002        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    30033003        rho_ice=matpar->GetRhoIce();
    30043004        gravity=matpar->GetG();
     
    30683068        if(!IsOnBed() || !IsOnShelf()) return NULL;
    30693069        inputs->GetParameterValue(&approximation,ApproximationEnum);
    3070         this->parameters->FindParam(&shelf_dampening,ShelfDampeningEnum);
     3070        this->parameters->FindParam(&shelf_dampening,DiagnosticShelfDampeningEnum);
    30713071        if(approximation!=StokesApproximationEnum && approximation!=MacAyealStokesApproximationEnum && approximation!=PattynStokesApproximationEnum) return NULL;
    30723072        ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,StokesApproximationEnum);
     
    41944194
    41954195        /*Recondition pressure: */
    4196         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     4196        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    41974197
    41984198        /*Ok, we have vx vy vz and P in values, fill in vx vy vz P arrays: */
     
    55635563        penta->GetDofList(&doflistm,MacAyealApproximationEnum,GsetEnum);
    55645564        GetDofList(&doflists,StokesApproximationEnum,GsetEnum);
    5565         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     5565        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    55665566
    55675567        /*Get node data: */
     
    57315731        GetDofList(&doflistp,PattynApproximationEnum,GsetEnum);
    57325732        GetDofList(&doflists,StokesApproximationEnum,GsetEnum);
    5733         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     5733        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    57345734
    57355735        /*Get node data: */
     
    60286028
    60296029        /*Recondition pressure and compute vel: */
    6030         this->parameters->FindParam(&stokesreconditioning,StokesreconditioningEnum);
     6030        this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum);
    60316031        for(i=0;i<NUMVERTICES;i++) pressure[i]=pressure[i]*stokesreconditioning;
    60326032        for(i=0;i<NUMVERTICES;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9650 r9679  
    718718        Input* vxold_input=inputs->GetInput(VxPicardEnum);      _assert_(vxold_input);
    719719        Input* vyold_input=inputs->GetInput(VyPicardEnum);      _assert_(vyold_input);
    720         this->parameters->FindParam(&viscosity_overshoot,ViscosityOvershootEnum);
     720        this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum);
    721721
    722722        /* Start  looping on the number of gaussian points: */
  • issm/trunk/src/c/objects/Loads/Icefront.cpp

    r9513 r9679  
    6464                segment_width=6;
    6565        }
    66         _assert_(iomodel->Data(PressureloadEnum));
    67         element=(int)(*(iomodel->Data(PressureloadEnum)+segment_width*i+segment_width-2)-1); //element is in the penultimate column (node1 node2 ... elem fill)
     66        _assert_(iomodel->Data(DiagnosticIcefrontEnum));
     67        element=(int)(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2)-1); //element is in the penultimate column (node1 node2 ... elem fill)
    6868
    6969        /*Build ids for hook constructors: */
    70         icefront_eid=(int) *(iomodel->Data(PressureloadEnum)+segment_width*i+segment_width-2); //matlab indexing
     70        icefront_eid=(int) *(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2); //matlab indexing
    7171        icefront_mparid=numberofelements+1; //matlab indexing
    7272
    7373        if (in_icefront_type==MacAyeal2dIceFrontEnum || in_icefront_type==MacAyeal3dIceFrontEnum){
    74                 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+0);
    75                 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+1);
     74                icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0);
     75                icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1);
    7676        }
    7777        else if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum){
    78                 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+0);
    79                 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+1);
    80                 icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+2);
    81                 icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+3);
     78                icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0);
     79                icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1);
     80                icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+2);
     81                icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+3);
    8282        }
    8383        else _error_("in_icefront_type %s not supported yet!",EnumToStringx(in_icefront_type));
     
    8989
    9090        /*Fill*/
    91         icefront_fill=(int)iomodel->Data(PressureloadEnum)[segment_width*i+segment_width-1];
     91        icefront_fill=(int)iomodel->Data(DiagnosticIcefrontEnum)[segment_width*i+segment_width-1];
    9292       
    9393        /*Ok, we have everything to build the object: */
  • issm/trunk/src/c/objects/Loads/Pengrid.cpp

    r9632 r9679  
    548548
    549549        /*Retrieve all inputs and parameters*/
    550         parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
     550        parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum);
    551551        penta->GetParameterValue(&slope[0],node,BedSlopeXEnum);
    552552        penta->GetParameterValue(&slope[1],node,BedSlopeYEnum);
  • issm/trunk/src/c/objects/Loads/Penpair.cpp

    r9642 r9679  
    314314
    315315        /*recover parameters: */
    316         parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
     316        parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum);
    317317
    318318        //Create elementary matrix: add penalty to
     
    341341
    342342        /*recover parameters: */
    343         parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
     343        parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum);
    344344
    345345        //Create elementary matrix: add penalty to
  • issm/trunk/src/c/objects/Loads/Riftfront.cpp

    r9641 r9679  
    5757        /*Fetch parameters: */
    5858        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    59         iomodel->Constant(&penalty_lock,PenaltyLockEnum);
     59        iomodel->Constant(&penalty_lock,DiagnosticRiftPenaltyLockEnum);
    6060
    6161        /*Ok, retrieve all the data needed to add a penalty between the two nodes: */
     
    523523
    524524        /*Get some parameters: */
    525         this->parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
     525        this->parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum);
    526526        this->inputs->GetParameterValue(&friction,FrictionEnum);
    527527        tria1->GetParameterValue(&h[0],nodes[0],ThicknessEnum);
  • issm/trunk/src/c/solutions/convergence.cpp

    r9597 r9679  
    3838
    3939        /*get convergence options*/
    40         parameters->FindParam(&eps_res,EpsResEnum);
    41         parameters->FindParam(&eps_rel,EpsRelEnum);
    42         parameters->FindParam(&eps_abs,EpsAbsEnum);
     40        parameters->FindParam(&eps_res,DiagnosticRestolEnum);
     41        parameters->FindParam(&eps_rel,DiagnosticReltolEnum);
     42        parameters->FindParam(&eps_abs,DiagnosticAbstolEnum);
    4343        parameters->FindParam(&yts,ConstantsYtsEnum);
    4444
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r9661 r9679  
    2424        bool   control_analysis;
    2525        int    solution_type;
     26        int    numoutputs         = 0;
     27        int    *requested_outputs = NULL;
    2628
    2729        /* recover parameters:*/
     
    8789                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum);
    8890                if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzEnum);
    89                 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     91                femmodel->parameters->FindParam(&numoutputs,DiagnosticNumRequestedOutputsEnum);
     92                if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,DiagnosticRequestedOutputsEnum);
     93                RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs);
    9094        }
    9195
     96        /*Free ressources:*/
     97        xfree((void**)&requested_outputs);
    9298}
  • issm/trunk/src/c/solutions/steadystate_core.cpp

    r9677 r9679  
    2222        int maxiter;
    2323        bool control_analysis;
     24        int  numoutputs         = 0;
     25        int  *requested_outputs = NULL;
    2426       
    2527        /* recover parameters:*/
     
    6971                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum);
    7072                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum);
    71                 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     73                femmodel->parameters->FindParam(&numoutputs,SteadystateNumRequestedOutputsEnum);
     74                if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SteadystateRequestedOutputsEnum);
     75                RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs);
    7276        }
    7377
     78        /*Free ressources:*/
     79        xfree((void**)&requested_outputs);
    7480}
  • issm/trunk/src/c/solvers/solver_nonlinear.cpp

    r9285 r9679  
    3232
    3333        /*Recover parameters: */
    34         femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
    35         femmodel->parameters->FindParam(&max_nonlinear_iterations,MaxNonlinearIterationsEnum);
     34        femmodel->parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum);
     35        femmodel->parameters->FindParam(&max_nonlinear_iterations,DiagnosticMaxiterEnum);
    3636        femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
    3737        UpdateConstraintsx(femmodel->nodes,femmodel->constraints,femmodel->parameters);
  • issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp

    r9271 r9679  
    3333
    3434        /*Recover parameters: */
    35         femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
    36         femmodel->parameters->FindParam(&max_nonlinear_iterations,MaxNonlinearIterationsEnum);
     35        femmodel->parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum);
     36        femmodel->parameters->FindParam(&max_nonlinear_iterations,DiagnosticMaxiterEnum);
    3737        UpdateConstraintsx(femmodel->nodes,femmodel->constraints,femmodel->parameters);
    3838       
  • issm/trunk/src/m/classes/model/model.m

    r9678 r9679  
    3535                 steadystate = modelfield('default',0,'marshall',true);
    3636                 transient = modelfield('default',0,'marshall',true);
     37                 diagnostic = modelfield('default',0,'marshall',true);
    3738
    3839                 %FIXME: all other fields should belong to other classes
     
    6263                 hemisphere = modelfield('default',NaN,'marshall',false);
    6364
    64                  %Stokes
    65                  stokesreconditioning = modelfield('default',0,'marshall',true,'format','Double');
    66                  shelf_dampening      = modelfield('default',0,'marshall',true,'format','Integer');
    67 
    6865                 %Penalties
    69                  penalties            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    70                  penalty_offset       = modelfield('default',0,'marshall',true,'format','Double');
    71                  penalty_lock         = modelfield('default',0,'marshall',true,'format','Integer');
    7266                 segments             = modelfield('default',NaN,'marshall',false);
    7367                 segmentmarkers       = modelfield('default',NaN,'marshall',false);
     
    9387                 %Materials parameters
    9488
    95                  min_mechanical_constraints = modelfield('default',0,'marshall',true,'format','Integer');
    96 
    9789                 %Geometrical parameters
    9890                 surface           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
     
    10496                 %Boundary conditions
    10597                 nodeonboundary = modelfield('default',NaN,'marshall',false);
    106                  pressureload   = modelfield('default',NaN,'marshall',true,'preprocess','marshallpressureload','format','DoubleMat','mattype',3);
    107                  spcvx          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    108                  spcvy          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    109                  spcvz          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    110                  diagnostic_ref = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    11198
    11299                 %Observations
     
    118105
    119106                 %Statics parameters
    120                  eps_res                  = modelfield('default',0,'marshall',true,'format','Double');
    121                  eps_rel                  = modelfield('default',0,'marshall',true,'format','Double');
    122                  eps_abs                  = modelfield('default',0,'marshall',true,'format','Double');
    123                  max_nonlinear_iterations = modelfield('default',0,'marshall',true,'format','Integer');
    124107                 connectivity             = modelfield('default',0,'marshall',true,'format','Integer');
    125                  viscosity_overshoot      = modelfield('default',0,'marshall',true,'format','Double');
    126108
    127109                 %Control
     
    140122                 num_control_type               = modelfield('default',0,'marshall',true,'format','Integer');
    141123                 num_cm_responses               = modelfield('default',0,'marshall',true,'format','Integer');
    142                  %Output
    143                  requested_outputs               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
     124
    144125                 %Results fields
    145126                 output_frequency               = modelfield('default',0,'marshall',true,'format','Integer');
     
    507488                         md.steadystate=steadystate;
    508489                         md.transient=transient;
     490                         md.diagnostic=diagnostic;
    509491
    510492                         %Solver parameters
    511493
    512                          %mechanical residue convergence criterion norm(K(uold)uold - F)/norm(F)
    513                          md.eps_res=10^-4; %from test233 in nightly runs
    514 
    515                          %relative convergence criterion ((vel(n-1)-vel(n))/vel(n))
    516                          md.eps_rel=0.01;
    517 
    518                          %absolute convergence criterion (max(vel(n-1)-vel(n)) (m/year)
    519                          md.eps_abs=10;
    520 
    521                          %maximum of non-linear iterations.
    522                          md.max_nonlinear_iterations=100;
    523                          
    524494                         %the connectivity is the avergaded number of nodes linked to a
    525495                         %given node through an edge. This connectivity is used to initially
     
    529499                         md.connectivity=25;
    530500
    531                          %coefficient to update the viscosity between each iteration of
    532                          %a diagnostic according to the following formula
    533                          %viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
    534                          md.viscosity_overshoot=0;
    535501
    536502                         %parameter used to print temporary results (convergence criterion,
     
    538504                         md.verbose=verbose('solution',true,'qmu',true,'control',true);
    539505
    540                          %Stokes
    541                          md.stokesreconditioning=10^13;
    542                          md.shelf_dampening=0;
    543 
    544                          %Penalties
    545 
    546                          %the penalty offset is the power used to compute the value
    547                          %of the penalty as follows
    548                          %kappa=max(stiffness matrix)*10^penalty_offset
    549                          md.penalty_offset=3;
    550 
    551                          %in some solutions, it might be needed to stop a run when only
    552                          %a few constraints remain unstable. For thermal computation, this
    553                          %parameter is often used.
    554                          md.penalty_lock=10;
    555 
    556506                         %minimum thickness to avoid stiffness singularity, used in
    557507                         %the parameter file
    558508                         md.minh=1;
    559 
    560                          %in some cases, it might be needed to stop a run when only
    561                          %a few constraints remain unstable. For thermal computation, this
    562                          %parameter is often used.
    563                          md.min_mechanical_constraints=0;
    564509
    565510                         %Control
     
    624569                                 if(strcmp(index1.subs,'res')), displayresults(md);return; end
    625570                                 if(strcmp(index1.subs,'obs')), displayobservations(md);return; end
    626                                  if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end
    627571                                 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
    628572                                 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
  • issm/trunk/src/m/model/BasinConstrain.m

    r9641 r9679  
    4848
    4949%all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd.
    50 md.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);
    51 md.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);
     50md.diagnostic.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);
     51md.diagnostic.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);
    5252md.mask.elementonwater(elementnotondomain)=1;
    5353
     
    5656numpos=unique(md.elements(pos,:));
    5757nodes=setdiff(1:1:md.numberofnodes,numpos);
    58 md.spcvx(nodes)=md.vx_obs(nodes);
    59 md.spcvy(nodes)=md.vy_obs(nodes);
     58md.diagnostic.spcvx(nodes)=md.vx_obs(nodes);
     59md.diagnostic.spcvy(nodes)=md.vy_obs(nodes);
    6060
    6161%make sure icefronts that are completely spc'd are taken out:
    62 free_segments=find((~isnan(md.spcvx(md.pressureload(:,1:2))) + ~isnan(md.spcvy(md.pressureload(:,1:2))))~=2);
    63 md.pressureload=md.pressureload(free_segments,:);
     62free_segments=find((~isnan(md.diagnostic.spcvx(md.diagnostic.icefront(:,1:2))) + ~isnan(md.diagnostic.spcvy(md.diagnostic.icefront(:,1:2))))~=2);
     63md.diagnostic.icefront=md.diagnostic.icefront(free_segments,:);
  • issm/trunk/src/m/model/BasinConstrainShelf.m

    r9641 r9679  
    4848
    4949%all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd.
    50 md.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);
    51 md.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);
     50md.diagnostic.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);
     51md.diagnostic.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);
    5252md.mask.elementonwater(elementnotondomain)=1;
    5353
     
    5656numpos=unique(md.elements(pos,:));
    5757nodes=setdiff(1:1:md.numberofnodes,numpos);
    58 md.spcvx(nodes)=md.vx_obs(nodes);
    59 md.spcvy(nodes)=md.vy_obs(nodes);
     58md.diagnostic.spcvx(nodes)=md.vx_obs(nodes);
     59md.diagnostic.spcvy(nodes)=md.vy_obs(nodes);
    6060
    6161
     
    6363%we spc to the smoothed value, so that control methods don't go berserk trying to figure out what reaction force to apply for the spc to stand.
    6464pos=find(isnan(md.vel_obs_raw));
    65 md.spcvx(pos)=md.vx_obs(pos);
    66 md.spcvy(pos)=md.vy_obs(pos);
     65md.diagnostic.spcvx(pos)=md.vx_obs(pos);
     66md.diagnostic.spcvy(pos)=md.vy_obs(pos);
    6767
    6868%iceshelves: any vertex on floating ice is spc'd
    6969pos=find(md.mask.vertexongroundedice);
    70 md.spcvx(pos)=md.vx_obs(pos);
    71 md.spcvy(pos)=md.vy_obs(pos);
     70md.diagnostic.spcvx(pos)=md.vx_obs(pos);
     71md.diagnostic.spcvy(pos)=md.vy_obs(pos);
    7272
    7373%make sure icefronts that are completely spc'd are taken out:
    74 free_segments=find((~isnan(md.spcvx(md.pressureload(:,1:2))) + ~isnan(md.spcvy(md.pressureload(:,1:2))) )~=2);
    75 md.pressureload=md.pressureload(free_segments,:);
     74free_segments=find((~isnan(md.diagnostic.spcvx(md.diagnostic.icefront(:,1:2))) + ~isnan(md.diagnostic.spcvy(md.diagnostic.icefront(:,1:2))) )~=2);
     75md.diagnostic.icefront=md.diagnostic.icefront(free_segments,:);
  • issm/trunk/src/m/model/collapse.m

    r9661 r9679  
    5252
    5353%boundary conditions
    54 md.spcvx=project2d(md,md.spcvx,md.numlayers);
    55 md.spcvy=project2d(md,md.spcvy,md.numlayers);
    56 md.spcvz=project2d(md,md.spcvz,md.numlayers);
     54md.diagnostic.spcvx=project2d(md,md.diagnostic.spcvx,md.numlayers);
     55md.diagnostic.spcvy=project2d(md,md.diagnostic.spcvy,md.numlayers);
     56md.diagnostic.spcvz=project2d(md,md.diagnostic.spcvz,md.numlayers);
    5757md.prognostic.spcthickness=project2d(md,md.prognostic.spcthickness,md.numlayers);
    5858md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.numlayers);
    5959
    6060%Extrusion of Neumann BC
    61 if ~isnan(md.pressureload),
    62         numberofneumann2d=size(md.pressureload,1)/md.numlayers;
    63         md.pressureload=[md.pressureload(1:numberofneumann2d,1:2) md.pressureload(1:numberofneumann2d,5:6)]; %Add two columns on the first layer
     61if ~isnan(md.diagnostic.icefront),
     62        numberofneumann2d=size(md.diagnostic.icefront,1)/md.numlayers;
     63        md.diagnostic.icefront=[md.diagnostic.icefront(1:numberofneumann2d,1:2) md.diagnostic.icefront(1:numberofneumann2d,5:6)]; %Add two columns on the first layer
    6464end
    6565
  • issm/trunk/src/m/model/contourmassbalance.m

    r9636 r9679  
    1919%Get segments enveloping contour
    2020segments=contourenvelope(md,file);
    21 %md.pressureload=segments; plotmodel(md,'data','pressureload','expdisp',file);
     21%md.diagnostic.icefront=segments; plotmodel(md,'data','pressureload','expdisp',file);
    2222
    2323%get flag list of elements and nodes inside the contour
  • issm/trunk/src/m/model/display/displaybc.m

    r9641 r9679  
    1212
    1313disp(sprintf('\n      diagnostic:'));
    14 fielddisplay(md,'spcvx','x-axis velocity constraint (NaN means no constraint)');
    15 fielddisplay(md,'spcvy','y-axis velocity constraint (NaN means no constraint)');
    16 fielddisplay(md,'spcvz','z-axis velocity constraint (NaN means no constraint)');
     14fielddisplay(md,'diagnostic.spcvx','x-axis velocity constraint (NaN means no constraint)');
     15fielddisplay(md,'diagnostic.spcvy','y-axis velocity constraint (NaN means no constraint)');
     16fielddisplay(md,'diagnostic.spcvz','z-axis velocity constraint (NaN means no constraint)');
    1717fielddisplay(md,'pressureload','segments on ice front list (0:Air 1:Water 2:Ice)');
    1818
  • issm/trunk/src/m/model/extrude.m

    r9661 r9679  
    168168
    169169%boundary conditions
    170 md.spcvx=project3d(md,'vector',md.spcvx,'type','node');
    171 md.spcvy=project3d(md,'vector',md.spcvy,'type','node');
    172 md.spcvz=project3d(md,'vector',md.spcvz,'type','node');
     170md.diagnostic.spcvx=project3d(md,'vector',md.diagnostic.spcvx,'type','node');
     171md.diagnostic.spcvy=project3d(md,'vector',md.diagnostic.spcvy,'type','node');
     172md.diagnostic.spcvz=project3d(md,'vector',md.diagnostic.spcvz,'type','node');
    173173md.thermal.spctemperature=project3d(md,'vector',md.thermal.spctemperature,'type','node','layer',md.numlayers,'padding',NaN);
    174174md.prognostic.spcthickness=project3d(md,'vector',md.prognostic.spcthickness,'type','node');
    175 md.diagnostic_ref=project3d(md,'vector',md.diagnostic_ref,'type','node');
     175md.diagnostic.referential=project3d(md,'vector',md.diagnostic.referential,'type','node');
    176176
    177177%in 3d, pressureload: [node1 node2 node3 node4 element]
    178 pressureload_layer1=[md.pressureload(:,1:2)  md.pressureload(:,2)+md.numberofnodes2d  md.pressureload(:,1)+md.numberofnodes2d  md.pressureload(:,3:4)]; %Add two columns on the first layer
     178pressureload_layer1=[md.diagnostic.icefront(:,1:2)  md.diagnostic.icefront(:,2)+md.numberofnodes2d  md.diagnostic.icefront(:,1)+md.numberofnodes2d  md.diagnostic.icefront(:,3:4)]; %Add two columns on the first layer
    179179pressureload=[];
    180180for i=1:numlayers-1,
    181181        pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.numberofnodes2d pressureload_layer1(:,5)+(i-1)*md.numberofelements2d pressureload_layer1(:,6)];
    182182end
    183 md.pressureload=pressureload;
     183md.diagnostic.icefront=pressureload;
    184184
    185185%connectivity
  • issm/trunk/src/m/model/ismodelselfconsistent.m

    r9678 r9679  
    7171%PRESSURELOAD{{{1
    7272if (md.dim==2),
    73         fields={'pressureload'};
     73        fields={'diagnostic.icefront'};
    7474        checksize(md,fields,[NaN 4]);
    7575elseif md.dim==3,
    76         fields={'pressureload'};
     76        fields={'diagnostic.icefront'};
    7777        checksize(md,fields,[NaN 6]);
    7878else
    7979        message('dim should be either 2 3');
    8080end
    81 checkvalues(md,{'pressureload(:,end)'},[0 1 2]);
     81checkvalues(md,{'diagnostic.icefront(:,end)'},[0 1 2]);
    8282%}}}
    8383%NO NAN {{{1
    8484fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',...
    8585        'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem','nsteps','maxiter',...
    86         'eps_res','max_nonlinear_iterations','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'};
     86        'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'};
    8787checknan(md,fields);
    8888%}}}}
    8989%FIELDS >= 0 {{{1
    9090fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',...
    91         'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','thickness','constants.g','eps_res','max_nonlinear_iterations','eps_rel','eps_abs','nsteps','maxiter',...
    92         'settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'};
     91        'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','thickness','constants.g','diagnostic.restol','diagnostic.maxiter','diagnostic.reltol',...
     92        'diagnostic.abstol','nsteps','maxiter','settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'};
    9393checkgreater(md,fields,0);
    9494%}}}
    9595%FIELDS > 0 {{{1
    9696fields={'numberofelements','numberofnodes','elements','friction.p',...
    97         'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','max_nonlinear_iterations','eps_res','eps_rel','eps_abs','maxiter'};
     97        'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','maxiter'};
    9898checkgreaterstrict(md,fields,0);
    9999%}}}
     
    107107%}}}
    108108%OTHER SIZES {{{1
    109 fields={'diagnostic_ref'};
     109fields={'diagnostic.referential'};
    110110checksize(md,fields,[md.numberofnodes 6]);
    111 if ~isempty(md.requested_outputs),
    112         if(size(md.requested_outputs,2)~=1),
     111if ~isempty(md.diagnostic.requested_outputs),
     112        if(size(md.diagnostic.requested_outputs,2)~=1),
    113113                message(['model ' md.miscellaneous.name ' requested outputs should be a column vector']);
    114114        end
     
    326326
    327327        %eps:
    328         if isnan(md.eps_rel),
    329                 message(['model not consistent: for a steadystate computation, eps_rel (relative convergence criterion) must be defined!']);
     328        if isnan(md.diagnostic.reltol),
     329                message(['model not consistent: for a steadystate computation, diagnostic.reltol (relative convergence criterion) must be defined!']);
    330330        end
    331331end
     
    370370                        % {{{2
    371371                        %SINGULAR
    372                         if ~any((~isnan(md.spcvx)+~isnan(md.spcvy))==2),
     372                        if ~any((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy))==2),
    373373                                message(['model not consistent: model ' md.miscellaneous.name ' is not well posed (singular). You need at least one node with fixed velocity!'])
    374374                        end
     
    376376                        %ROTATED SPC
    377377                        %CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
    378                         if any(sum(isnan(md.diagnostic_ref),2)~=0 & sum(isnan(md.diagnostic_ref),2)~=6),
    379                                 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Each line of diagnostic_ref should contain either only NaN values or no NaN values']);
     378                        if any(sum(isnan(md.diagnostic.referential),2)~=0 & sum(isnan(md.diagnostic.referential),2)~=6),
     379                                message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Each line of diagnostic.referential should contain either only NaN values or no NaN values']);
    380380                        end
    381381                        %CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
    382                         if any(sum(isnan(md.diagnostic_ref),2)==0),
    383                                 pos=find(sum(isnan(md.diagnostic_ref),2)==0);
    384                                 if any(dot(md.diagnostic_ref(pos,1:3),md.diagnostic_ref(pos,4:6))),
    385                                         dot(md.diagnostic_ref(pos,1:3),md.diagnostic_ref(pos,4:6))
    386                                         message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Vectors in diagnostic_ref (colums 1 to 3 and 4 to 6) must be orthogonal']);
     382                        if any(sum(isnan(md.diagnostic.referential),2)==0),
     383                                pos=find(sum(isnan(md.diagnostic.referential),2)==0);
     384                                if any(dot(md.diagnostic.referential(pos,1:3),md.diagnostic.referential(pos,4:6))),
     385                                        dot(md.diagnostic.referential(pos,1:3),md.diagnostic.referential(pos,4:6))
     386                                        message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Vectors in diagnostic.referential (colums 1 to 3 and 4 to 6) must be orthogonal']);
    387387                                end
    388388
     
    390390                        %CHECK THAT ROTATION IS IN THE (X,Y) PLANE FOR 2D MODELS
    391391                        if md.dim==2,
    392                                 pos=find(sum(isnan(md.diagnostic_ref),2)==0  & md.flowequation.vertex_equation==2);
    393                                 if any(md.diagnostic_ref(pos,3:5)~=0);
     392                                pos=find(sum(isnan(md.diagnostic.referential),2)==0  & md.flowequation.vertex_equation==2);
     393                                if any(md.diagnostic.referential(pos,3:5)~=0);
    394394                                        message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. The rotation should be in the (x,y) plane for 2D diagnostic models (nodeonmacayeal)']);
    395395                                end
  • issm/trunk/src/m/model/marshall.m

    r9641 r9679  
    334334function out=marshallverbose(in)
    335335        out = VerboseToBinary(in);
    336 function out=marshallpressureload(in)
     336function out=marshallicefront(in)
    337337        out=in;
    338338        pos=find(in(:,end)==0); out(pos,end)=AirEnum;
  • issm/trunk/src/m/model/modelextract.m

    r9642 r9679  
    216216        nodestoflag1=intersect(orphans_node,pos_node);
    217217        nodestoflag2=Pnode(nodestoflag1);
    218         if numel(md1.spcvx)>1 & numel(md1.spcvy)>2 & numel(md1.spcvz)>2,
     218        if numel(md1.diagnostic.spcvx)>1 & numel(md1.diagnostic.spcvy)>2 & numel(md1.diagnostic.spcvz)>2,
    219219                if numel(md1.vx_obs)>1 & numel(md1.vy_obs)>1
    220                         md2.spcvx(nodestoflag2)=md2.vx_obs(nodestoflag2);
    221                         md2.spcvy(nodestoflag2)=md2.vy_obs(nodestoflag2);
     220                        md2.diagnostic.spcvx(nodestoflag2)=md2.vx_obs(nodestoflag2);
     221                        md2.diagnostic.spcvy(nodestoflag2)=md2.vy_obs(nodestoflag2);
    222222                else
    223                         md2.spcvx(nodestoflag2)=NaN;
    224                         md2.spcvy(nodestoflag2)=NaN;
     223                        md2.diagnostic.spcvx(nodestoflag2)=NaN;
     224                        md2.diagnostic.spcvy(nodestoflag2)=NaN;
    225225                        disp(' ')
    226226                        disp('!! modelextract warning: spc values should be checked !!')
     
    228228                end
    229229                %put 0 for vz
    230                 md2.spcvz(nodestoflag2)=0;
     230                md2.diagnostic.spcvz(nodestoflag2)=0;
    231231        end
    232232        if ~isnan(md1.thermal.spctemperature),
  • issm/trunk/src/m/model/plot/plot_BC.m

    r8823 r9679  
    77
    88%plot dirichlets
    9 h1=plot(md.x(find(~isnan(md.spcvx))),md.y(find(~isnan(md.spcvx))),'ro','MarkerSize',14,'MarkerFaceColor','r');
    10 h2=plot(md.x(find(~isnan(md.spcvy))),md.y(find(~isnan(md.spcvy))),'bo','MarkerSize',10,'MarkerFaceColor','b');
    11 h3=plot(md.x(find(~isnan(md.spcvz))),md.y(find(~isnan(md.spcvz))),'yo','MarkerSize',6 ,'MarkerFaceColor','y');
     9h1=plot(md.x(find(~isnan(md.diagnostic.spcvx))),md.y(find(~isnan(md.diagnostic.spcvx))),'ro','MarkerSize',14,'MarkerFaceColor','r');
     10h2=plot(md.x(find(~isnan(md.diagnostic.spcvy))),md.y(find(~isnan(md.diagnostic.spcvy))),'bo','MarkerSize',10,'MarkerFaceColor','b');
     11h3=plot(md.x(find(~isnan(md.diagnostic.spcvz))),md.y(find(~isnan(md.diagnostic.spcvz))),'yo','MarkerSize',6 ,'MarkerFaceColor','y');
    1212
    1313%update legend
  • issm/trunk/src/m/model/plot/plot_pressureload.m

    r9464 r9679  
    1212%process mesh and data
    1313[x y z elements is2d isplanet]=processmesh(md,[],options);
    14 pressureload=md.pressureload;
     14pressureload=md.diagnostic.icefront;
    1515
    1616if (md.dim==2),
  • issm/trunk/src/m/model/setflowequation.m

    r9664 r9679  
    9292        nodeonstokes=zeros(md.numberofnodes,1);
    9393        nodeonstokes(md.elements(find(stokesflag),:))=1;
    94         fullspcnodes=double((~isnan(md.spcvx)+~isnan(md.spcvy)+~isnan(md.spcvz))==3 | (nodeonpattyn & nodeonstokes));         %find all the nodes on the boundary of the domain without icefront
     94        fullspcnodes=double((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy)+~isnan(md.diagnostic.spcvz))==3 | (nodeonpattyn & nodeonstokes));         %find all the nodes on the boundary of the domain without icefront
    9595        fullspcelems=double(sum(fullspcnodes(md.elements),2)==6);         %find all the nodes on the boundary of the domain without icefront
    9696        stokesflag(find(fullspcelems))=0;
     
    120120
    121121%Now take care of the coupling between MacAyeal and Pattyn
    122 md.penalties=[];
     122md.diagnostic.vertex_pairing=[];
    123123nodeonmacayealpattyn=zeros(md.numberofnodes,1);
    124124nodeonpattynstokes=zeros(md.numberofnodes,1);
     
    136136                        penalties=[penalties; [bordernodes2d bordernodes2d+md.numberofnodes2d*(i)]];
    137137                end
    138                 md.penalties=penalties;
     138                md.diagnostic.vertex_pairing=penalties;
    139139        end
    140140elseif strcmpi(coupling_method,'tiling'),
  • issm/trunk/src/m/solutions/convergence.m

    r9597 r9679  
    66%Get convergence options
    77yts=parameters.ConstantsYts;
    8 eps_res=parameters.EpsRes;
    9 eps_rel=parameters.EpsRel;
    10 eps_abs=parameters.EpsAbs;
     8restol=parameters.DiagnosticRestol;
     9reltol=parameters.DiagnosticReltol;
     10abstol=parameters.DiagnosticAbstol;
    1111
    1212%initialization
     
    2525        error('convergence error message: mechanical equilibrium convergence criterion is NaN!');
    2626end
    27 if (res<=eps_res),
    28         issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      mechanical equilibrium convergence criterion',res*100,' < ',eps_res*100,' %');
     27if (res<=restol),
     28        issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      mechanical equilibrium convergence criterion',res*100,' < ',restol*100,' %');
    2929        converged=true;
    3030else
    31         issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      mechanical equilibrium convergence criterion',res*100,' > ',eps_res*100,' %');
     31        issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      mechanical equilibrium convergence criterion',res*100,' > ',restol*100,' %');
    3232        converged=false;
    3333end
    3434
    3535%Relative criterion (optional)
    36 if ((~isnan(eps_rel)) | (VerboseConvergence())),
     36if ((~isnan(reltol)) | (VerboseConvergence())),
    3737
    3838        %compute ndu/nu
     
    4545
    4646        %print criterion
    47         if ~isnan(eps_rel),
     47        if ~isnan(reltol),
    4848                if nu, %avoid "dividing by zero" warning
    49                         if (ndu/nu<=eps_rel),
    50                                 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' < ',eps_rel*100,' %');
     49                        if (ndu/nu<=reltol),
     50                                issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' < ',reltol*100,' %');
    5151                        else
    52                                 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' > ',eps_rel*100,' %');
     52                                issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' > ',reltol*100,' %');
    5353                                converged=false;
    5454                        end
     
    6565
    6666%Absolute criterion (optional)
    67 if ((~isnan(eps_abs)) | VerboseConvergence()),
     67if ((~isnan(abstol)) | VerboseConvergence()),
    6868
    6969        %compute max(du)
     
    7575
    7676        %print criterion
    77         if ~isnan(eps_abs),
    78                 if (nduinf<=eps_abs),
    79                         issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      absolute convergence criterion: max(du)',nduinf,' < ',eps_abs,' m/yr');
     77        if ~isnan(abstol),
     78                if (nduinf<=abstol),
     79                        issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      absolute convergence criterion: max(du)',nduinf,' < ',abstol,' m/yr');
    8080                else
    81                         issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      absolute convergence criterion: max(du)',nduinf,' > ',eps_abs,' m/yr');
     81                        issmprintf(VerboseConvergence(),'%-60s%g%s%g%s','      absolute convergence criterion: max(du)',nduinf,' > ',abstol,' m/yr');
    8282                        converged=false;
    8383                end
  • issm/trunk/src/m/solvers/solver_nonlinear.m

    r9328 r9679  
    66
    77        %Branch on partitioning schema requested
    8         min_mechanical_constraints=femmodel.parameters.MinMechanicalConstraints;
    9         max_nonlinear_iterations=femmodel.parameters.MaxNonlinearIterations;
     8        rift_penalty_threshold=femmodel.parameters.DiagnosticRiftPenaltyThreshold;
     9        maxiter=femmodel.parameters.DiagnosticMaxiter;
    1010        configuration_type=femmodel.parameters.ConfigurationType;
    1111        [femmodel.nodes]=UpdateConstraints(femmodel.nodes,femmodel.constraints,femmodel.parameters);
     
    5151                if ~constraints_converged,
    5252                        if converged,
    53                                 if num_unstable_constraints <= min_mechanical_constraints,
     53                                if num_unstable_constraints <= rift_penalty_threshold,
    5454                                        converged=1;
    5555                                else
     
    6262                count=count+1;
    6363                if(converged==1) break; end
    64                 if(count>max_nonlinear_iterations),
    65                         issmprintf(true,'%s%i%s','      maximum number of iterations ',max_nonlinear_iterations,' exceeded');
     64                if(count>maxiter),
     65                        issmprintf(true,'%s%i%s','      maximum number of iterations ',maxiter,' exceeded');
    6666                        break;
    6767                end
  • issm/trunk/src/m/utils/BC/SetIceSheetBC.m

    r9646 r9679  
    99%node on Dirichlet
    1010pos=find(md.nodeonboundary);
    11 md.spcvx=NaN*ones(md.numberofnodes,1);
    12 md.spcvy=NaN*ones(md.numberofnodes,1);
    13 md.spcvz=NaN*ones(md.numberofnodes,1);
    14 md.spcvx(pos)=0;
    15 md.spcvy(pos)=0;
    16 md.spcvz(pos)=0;
    17 md.diagnostic_ref=NaN*ones(md.numberofnodes,6);
     11md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     12md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     13md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
     14md.diagnostic.spcvx(pos)=0;
     15md.diagnostic.spcvy(pos)=0;
     16md.diagnostic.spcvz(pos)=0;
     17md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
    1818
    1919%Dirichlet Values
    2020if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
    2121        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    22         md.spcvx(pos)=md.vx_obs(pos);
    23         md.spcvy(pos)=md.vy_obs(pos);
     22        md.diagnostic.spcvx(pos)=md.vx_obs(pos);
     23        md.diagnostic.spcvy(pos)=md.vy_obs(pos);
    2424else
    2525        disp('      boundary conditions for diagnostic model: spc set as zero');
     
    2828%segment on neumann (Ice Front) -> none
    2929if (md.dim==2)
    30         md.pressureload=zeros(0,4);
     30        md.diagnostic.icefront=zeros(0,4);
    3131else
    32         md.pressureload=zeros(0,6);
     32        md.diagnostic.icefront=zeros(0,6);
    3333end
    3434
  • issm/trunk/src/m/utils/BC/SetIceShelfBC.m

    r9646 r9679  
    2828end
    2929pos=find(md.nodeonboundary & ~nodeonicefront);
    30 md.spcvx=NaN*ones(md.numberofnodes,1);
    31 md.spcvy=NaN*ones(md.numberofnodes,1);
    32 md.spcvz=NaN*ones(md.numberofnodes,1);
    33 md.spcvx(pos)=0;
    34 md.spcvy(pos)=0;
    35 md.spcvz(pos)=0;
    36 md.diagnostic_ref=NaN*ones(md.numberofnodes,6);
     30md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     31md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     32md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
     33md.diagnostic.spcvx(pos)=0;
     34md.diagnostic.spcvy(pos)=0;
     35md.diagnostic.spcvz(pos)=0;
     36md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
    3737
    3838%Dirichlet Values
    3939if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
    4040        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    41         md.spcvx(pos)=md.vx_obs(pos);
    42         md.spcvy(pos)=md.vy_obs(pos);
     41        md.diagnostic.spcvx(pos)=md.vx_obs(pos);
     42        md.diagnostic.spcvy(pos)=md.vy_obs(pos);
    4343else
    4444        disp('      boundary conditions for diagnostic model: spc set as zero');
     
    6262
    6363%plug onto model
    64 md.pressureload=pressureload;
     64md.diagnostic.icefront=pressureload;
    6565
    6666%Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate
  • issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m

    r9646 r9679  
    3535        warning('SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually')
    3636end
    37 md.spcvx=NaN*ones(md.numberofnodes,1);
    38 md.spcvy=NaN*ones(md.numberofnodes,1);
    39 md.spcvz=NaN*ones(md.numberofnodes,1);
    40 md.spcvx(pos)=0;
    41 md.spcvy(pos)=0;
    42 md.spcvz(pos)=0;
    43 md.diagnostic_ref=NaN*ones(md.numberofnodes,6);
     37md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     38md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     39md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
     40md.diagnostic.spcvx(pos)=0;
     41md.diagnostic.spcvy(pos)=0;
     42md.diagnostic.spcvz(pos)=0;
     43md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
    4444
    4545%Dirichlet Values
    4646if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
    4747        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    48         md.spcvx(pos)=md.vx_obs(pos);
    49         md.spcvy(pos)=md.vy_obs(pos);
     48        md.diagnostic.spcvx(pos)=md.vx_obs(pos);
     49        md.diagnostic.spcvy(pos)=md.vy_obs(pos);
    5050else
    5151        disp('      boundary conditions for diagnostic model: spc set as zero');
     
    7272
    7373%plug onto model
    74 md.pressureload=pressureload;
     74md.diagnostic.icefront=pressureload;
    7575
    7676
  • issm/trunk/template

    r9678 r9679  
    6161        waterfraction
    6262}}}
    63 diagnostic{{{
    64         spcvx
    65         spcvy
    66         spcvz
    67         stokesreconditioning
    68         shelf_dampening
    69         viscosity_overshoot
    70         pressureload -> rename icefront?
    71         diagnostic_ref -> rename referential?
    72         penalties -> rename vertex_pairing
    73         penalty_offset -> rename penalty_factor and change to absolute value
    74 
    75         eps_res -> rename following PETSc: restol
    76         eps_rel -> rename following PETSc: reltol
    77         eps_abs-> rename following PETSc:  abstol
    78         max_nonlinear_iterations -> rename maxiter
    79 
    80         penalty_lock -> rename rift_penalty_lock
    81         min_mechanical_constraints -> rename  rift_penalty_threshold
    82         requested_outputs
    83 }}}
    8463inversion{{{
    8564        private:
  • issm/trunk/test/Miscellaneous/Bump/Bump.par

    r9641 r9679  
    2828%Deal with boundary conditions:
    2929md=SetIceSheetBC(md);
    30 md.spcvx=zeros(md.numberofnodes,1);
    31 md.spcvy=200*ones(md.numberofnodes,1);
     30md.diagnostic.spcvx=zeros(md.numberofnodes,1);
     31md.diagnostic.spcvy=200*ones(md.numberofnodes,1);
    3232
    3333%Parallel options
  • issm/trunk/test/NightlyRun/test1101.m

    r9664 r9679  
    2121
    2222        %Create dirichlet on the bed only
    23         md.spcvx=NaN*ones(md.numberofnodes,1);
    24         md.spcvy=NaN*ones(md.numberofnodes,1);
    25         md.spcvz=NaN*ones(md.numberofnodes,1);
     23        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     24        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     25        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2626
    2727        pos=find(md.nodeonbed);
    28         md.spcvx(pos)=0;
    29         md.spcvy(pos)=0;
     28        md.diagnostic.spcvx(pos)=0;
     29        md.diagnostic.spcvy(pos)=0;
    3030
    3131        %Create MPCs to have periodic boundary conditions
     
    3636        posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
    3737
    38         md.penalties=[posx,posx2;posy,posy2];
     38        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3939
    4040        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1102.m

    r9664 r9679  
    2929        %Create dirichlet on the bed only
    3030        pos=find(md.nodeonbed);
    31         md.spcvx(pos)=0;
    32         md.spcvy(pos)=0;
    33         md.spcvz(pos)=0;
     31        md.diagnostic.spcvx(pos)=0;
     32        md.diagnostic.spcvy(pos)=0;
     33        md.diagnostic.spcvz(pos)=0;
    3434
    3535        %Create MPCs to have periodic boundary conditions
     
    4242        %posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x) & ~md.nodeonbed);
    4343
    44         %md.penalties=[posx,posx2;posy,posy2];
     44        %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    4545
    4646        %Compute the diagnostic
    4747        md.eps_abs=NaN;
    48         md.eps_rel=NaN;
    49         md.eps_res=1;
     48        md.diagnostic.reltol=NaN;
     49        md.diagnostic.restol=1;
    5050        md.cluster=generic('name',oshostname(),'np',8);
    5151        md=solve(md,DiagnosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test1103.m

    r9664 r9679  
    1919
    2020        %Create dirichlet on the bed only
    21         md.spcvx=NaN*ones(md.numberofnodes,1);
    22         md.spcvy=NaN*ones(md.numberofnodes,1);
    23         md.spcvz=NaN*ones(md.numberofnodes,1);
     21        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     22        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     23        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2424        pos=find(md.nodeonbed);
    25         md.spcvx(pos)=0;
    26         md.spcvy(pos)=0;
     25        md.diagnostic.spcvx(pos)=0;
     26        md.diagnostic.spcvy(pos)=0;
    2727
    2828        %Create MPCs to have periodic boundary conditions
     
    3333        posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
    3434
    35         md.penalties=[posx,posx2;posy,posy2];
     35        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3636
    3737        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1104.m

    r9664 r9679  
    1818
    1919        %Create dirichlet on the bed only
    20         md.spcvx=NaN*ones(md.numberofnodes,1);
    21         md.spcvy=NaN*ones(md.numberofnodes,1);
    22         md.spcvz=NaN*ones(md.numberofnodes,1);
     20        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     21        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     22        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2323
    2424        pos=find(md.nodeonbed);
    25         md.spcvx(pos)=0;
    26         md.spcvy(pos)=0;
     25        md.diagnostic.spcvx(pos)=0;
     26        md.diagnostic.spcvy(pos)=0;
    2727
    2828        %Create MPCs to have periodic boundary conditions
     
    3333        posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
    3434
    35         md.penalties=[posx,posx2;posy,posy2];
     35        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3636
    3737        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1105.m

    r9664 r9679  
    2121
    2222        %Create MPCs to have periodic boundary conditions
    23         md.spcvx=NaN*ones(md.numberofnodes,1);
    24         md.spcvy=NaN*ones(md.numberofnodes,1);
    25         md.spcvz=NaN*ones(md.numberofnodes,1);
     23        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     24        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     25        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2626
    2727        posx=find(md.x==0 & md.y~=0 & md.y~=L);
     
    3131        posy2=find(md.y==L & md.x~=0 & md.x~=L);
    3232
    33         md.penalties=[posx,posx2;posy,posy2];
     33        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3434
    3535        %Add spc on the corners
    3636        pos=find((md.x==0 | md.x==L) & (md.y==0 | md.y==L) & md.nodeonbed);
    37         md.spcvx(pos)=0;
    38         md.spcvy(pos)=0;
     37        md.diagnostic.spcvx(pos)=0;
     38        md.diagnostic.spcvy(pos)=0;
    3939        if(L==5000),
    40                 md.spcvx(pos)=15.66;
    41                 md.spcvy(pos)=-0.1967;
     40                md.diagnostic.spcvx(pos)=15.66;
     41                md.diagnostic.spcvy(pos)=-0.1967;
    4242        elseif(L==10000),
    43                 md.spcvx(pos)=16.04;
    44                 md.spcvy(pos)=-0.1977;
     43                md.diagnostic.spcvx(pos)=16.04;
     44                md.diagnostic.spcvy(pos)=-0.1977;
    4545        elseif(L==20000),
    46                 md.spcvx(pos)=16.53;
    47                 md.spcvy(pos)=-1.27;
     46                md.diagnostic.spcvx(pos)=16.53;
     47                md.diagnostic.spcvy(pos)=-1.27;
    4848        elseif(L==40000),
    49                 md.spcvx(pos)=17.23;
    50                 md.spcvy(pos)=-3.17;
     49                md.diagnostic.spcvx(pos)=17.23;
     50                md.diagnostic.spcvy(pos)=-3.17;
    5151        elseif(L==80000),
    52                 md.spcvx(pos)=16.68;
    53                 md.spcvy(pos)=-2.69;
     52                md.diagnostic.spcvx(pos)=16.68;
     53                md.diagnostic.spcvy(pos)=-2.69;
    5454        elseif(L==160000),
    55                 md.spcvx(pos)=16.03;
    56                 md.spcvy(pos)=-1.27;
     55                md.diagnostic.spcvx(pos)=16.03;
     56                md.diagnostic.spcvy(pos)=-1.27;
    5757        end
    5858       
    5959        %Spc the bed at zero for vz
    6060        pos=find(md.nodeonbed);
    61         md.spcvz(pos)=0;
     61        md.diagnostic.spcvz(pos)=0;
    6262
    6363        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1106.m

    r9664 r9679  
    2525        %posy2=find(md.y==L & md.x~=0 & md.x~=L);
    2626
    27         %md.penalties=[posx,posx2;posy,posy2];
     27        %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    2828
    2929        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1107.m

    r9664 r9679  
    2121
    2222        %We need one grd on dirichlet: the 4 corners are set to zero
    23         md.spcvx=NaN*ones(md.numberofnodes,1);
    24         md.spcvy=NaN*ones(md.numberofnodes,1);
    25         md.spcvz=NaN*ones(md.numberofnodes,1);
     23        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     24        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     25        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2626
    2727        %Create MPCs to have periodic boundary conditions
     
    3232        posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
    3333
    34         md.penalties=[posx,posx2;posy,posy2];
     34        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3535
    3636        %Add spc on the corners
    3737        pos=find((md.x==0 | md.x==L) & (md.y==0 | md.y==L) & md.nodeonbed);
    38         md.spcvy(:)=0;
    39         md.spcvx(pos)=0;
     38        md.diagnostic.spcvy(:)=0;
     39        md.diagnostic.spcvx(pos)=0;
    4040        if(L==5000),
    41                 md.spcvx(pos)=16.0912;
     41                md.diagnostic.spcvx(pos)=16.0912;
    4242        elseif(L==10000),
    43                 md.spcvx(pos)=16.52;
     43                md.diagnostic.spcvx(pos)=16.52;
    4444        elseif(L==20000),
    45                 md.spcvx(pos)=17.77;
     45                md.diagnostic.spcvx(pos)=17.77;
    4646        elseif(L==40000),
    47                 md.spcvx(pos)=19.88;
     47                md.diagnostic.spcvx(pos)=19.88;
    4848        elseif(L==80000),
    49                 md.spcvx(pos)=18.65;
     49                md.diagnostic.spcvx(pos)=18.65;
    5050        elseif(L==160000),
    51                 md.spcvx(pos)=16.91;
     51                md.diagnostic.spcvx(pos)=16.91;
    5252        end
    5353       
    5454        %Spc the bed at zero for vz
    5555        pos=find(md.nodeonbed);
    56         md.spcvz(pos)=0;
     56        md.diagnostic.spcvz(pos)=0;
    5757
    5858        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1108.m

    r9664 r9679  
    1818
    1919        %We need one grd on dirichlet: the 4 corners are set to zero
    20         %md.spcvx=NaN*ones(md.numberofnodes,1);
    21         %md.spcvy=NaN*ones(md.numberofnodes,1);
    22         %md.spcvz=NaN*ones(md.numberofnodes,1);
     20        %md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     21        %md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     22        %md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2323       
    2424        %pos=find((md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y)));
    25         %md.spcvx(pos)=0;
    26         %md.spcvy(pos)=0;
    27         %md.spcvz(pos)=0;
     25        %md.diagnostic.spcvx(pos)=0;
     26        %md.diagnostic.spcvy(pos)=0;
     27        %md.diagnostic.spcvz(pos)=0;
    2828
    2929        %%Create MPCs to have periodic boundary conditions
     
    3434        %posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
    3535
    36         %md.penalties=[posx,posx2;posy,posy2];
     36        %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    3737
    3838        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1109.m

    r9664 r9679  
    2828        posx=find(md.x==0);
    2929        posx2=find(md.x==max(md.x));
    30         md.penalties=[posx,posx2];
     30        md.diagnostic.vertex_pairing=[posx,posx2];
    3131
    3232        %Create spcs on the bed
    3333        pos=find(md.nodeonbed);
    34         md.spcvx=NaN*ones(md.numberofnodes,1);
    35         md.spcvy=NaN*ones(md.numberofnodes,1);
    36         md.spcvz=NaN*ones(md.numberofnodes,1);
    37         md.spcvx(pos)=0;
    38         md.spcvy(pos)=0;
    39         md.spcvz(pos)=0;
     34        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     35        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     36        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
     37        md.diagnostic.spcvx(pos)=0;
     38        md.diagnostic.spcvy(pos)=0;
     39        md.diagnostic.spcvz(pos)=0;
    4040
    4141        %Remove the spc where there is some sliding (case 3 and 4):
    4242        if i==3 | i==4,
    4343                pos=find(md.y/max(md.y)>=0.44 & md.y/max(md.y)<=0.5);
    44                 md.spcvx(pos)=NaN;
    45                 md.spcvy(pos)=NaN;
    46                 md.spcvz(pos)=NaN;
     44                md.diagnostic.spcvx(pos)=NaN;
     45                md.diagnostic.spcvy(pos)=NaN;
     46                md.diagnostic.spcvz(pos)=NaN;
    4747        end
    4848
  • issm/trunk/test/NightlyRun/test1110.m

    r9664 r9679  
    2020        end
    2121
    22         md.spcvx=NaN*ones(md.numberofnodes,1);
    23         md.spcvy=NaN*ones(md.numberofnodes,1);
    24         md.spcvz=NaN*ones(md.numberofnodes,1);
     22        md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     23        md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     24        md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    2525        if (i==1 | i==3),
    2626                %Create dirichlet on the bed if no slip
    2727                pos=find(md.nodeonbed);
    28                 md.spcvx(pos)=0;
    29                 md.spcvy(pos)=0;
    30                 md.spcvz(pos)=0;
     28                md.diagnostic.spcvx(pos)=0;
     29                md.diagnostic.spcvy(pos)=0;
     30                md.diagnostic.spcvz(pos)=0;
    3131        else
    3232                pos=find(md.nodeonbed & (md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y)));
    33                 md.spcvx(pos)=100; %because we need a dirichlet somewhere
    34                 md.spcvy(pos)=0;
    35                 md.spcvz(pos)=0;
     33                md.diagnostic.spcvx(pos)=100; %because we need a dirichlet somewhere
     34                md.diagnostic.spcvy(pos)=0;
     35                md.diagnostic.spcvz(pos)=0;
    3636        end
    3737        pos=find(~md.nodeonbed);
     
    4545        posy2=find(md.y==max(md.y));
    4646
    47         md.penalties=[posx,posx2;posy,posy2];
     47        md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2];
    4848        md.prognostic.vertex_pairing=[posx,posx2;posy,posy2];
    4949
     
    5252        md.output_frequency=50;
    5353        md.prognostic.stabilization=1;
    54         md.max_nonlinear_iterations=1;
     54        md.diagnostic.maxiter=1;
    5555
    5656        %Compute the diagnostic
  • issm/trunk/test/NightlyRun/test1203.m

    r9664 r9679  
    1111%Impose a non zero velocity on the upper boundary condition (y=max(y))
    1212pos=find(md.y==max(md.y));
    13 md.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
     13md.diagnostic.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
    1414
    1515%Compute solution for MacAyeal's model
  • issm/trunk/test/NightlyRun/test1204.m

    r9664 r9679  
    1111%Impose a non zero velocity on the upper boundary condition (y=max(y))
    1212pos=find(md.y==max(md.y));
    13 md.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
     13md.diagnostic.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
    1414
    1515%Compute solution for MacAyeal's model
  • issm/trunk/test/NightlyRun/test1205.m

    r9664 r9679  
    2323%Spc the nodes on the bed
    2424pos=find(md.nodeonbed);
    25 md.spcvx(pos)=0;
    26 md.spcvy(pos)=0;
    27 md.spcvz(pos)=0;
     25md.diagnostic.spcvx(pos)=0;
     26md.diagnostic.spcvy(pos)=0;
     27md.diagnostic.spcvz(pos)=0;
    2828
    2929%Now we can solve the problem
  • issm/trunk/test/NightlyRun/test1206.m

    r9664 r9679  
    2323%Spc the nodes on the bed
    2424pos=find(md.nodeonbed);
    25 md.spcvx(pos)=0;
    26 md.spcvy(pos)=0;
    27 md.spcvz(pos)=0;
     25md.diagnostic.spcvx(pos)=0;
     26md.diagnostic.spcvy(pos)=0;
     27md.diagnostic.spcvz(pos)=0;
    2828
    2929%Now we can solve the problem
  • issm/trunk/test/NightlyRun/test1207.m

    r9664 r9679  
    2323%Spc the nodes on the bed
    2424pos=find(md.nodeonbed);
    25 md.spcvx(pos)=0;
    26 md.spcvy(pos)=0;
    27 md.spcvz(pos)=0;
     25md.diagnostic.spcvx(pos)=0;
     26md.diagnostic.spcvy(pos)=0;
     27md.diagnostic.spcvz(pos)=0;
    2828
    2929%Now we can solve the problem
  • issm/trunk/test/NightlyRun/test1208.m

    r9664 r9679  
    1414%Spc the nodes on the bed
    1515pos=find(md.nodeonbed);
    16 md.spcvx(pos)=0;
    17 md.spcvy(pos)=0;
    18 md.spcvz(pos)=0;
     16md.diagnostic.spcvx(pos)=0;
     17md.diagnostic.spcvy(pos)=0;
     18md.diagnostic.spcvz(pos)=0;
    1919
    2020%Adapt the time steps to the resolution
  • issm/trunk/test/NightlyRun/test221.m

    r9664 r9679  
    44md=extrude(md,3,1);
    55md=setflowequation(md,'stokes','all');
    6 md.eps_rel=NaN;
     6md.diagnostic.reltol=NaN;
    77md.cluster=none;
    88md=solve(md,TransientSolutionEnum);
  • issm/trunk/test/NightlyRun/test222.m

    r9664 r9679  
    44md=extrude(md,3,1);
    55md=setflowequation(md,'stokes','all');
    6 md.eps_rel=NaN;
     6md.diagnostic.reltol=NaN;
    77md.cluster=generic('name',oshostname(),'np',3);
    88md=solve(md,TransientSolutionEnum);
  • issm/trunk/test/NightlyRun/test232.m

    r9664 r9679  
    99md.rifts.riftstruct.fill=MelangeEnum();
    1010md.rifts.riftstruct.fraction=0;
    11 md.penalty_lock=2;
    12 md.min_mechanical_constraints=0;
     11md.rift_penalty_lock=2;
     12md.rift_penalty_threshold=0;
    1313md.rifts.riftstruct.fractionincrement=.1;
    1414md=solve(md,DiagnosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test233.m

    r9664 r9679  
    1010
    1111%tighten
    12 md.eps_res=10^-4;
     12md.diagnostic.restol=10^-4;
    1313
    1414%needed later
     
    3737
    3838%Boundary conditions:
    39 md.spcvx=NaN*ones(md.numberofnodes,1);
    40 md.spcvy=NaN*ones(md.numberofnodes,1);
    41 md.spcvz=NaN*ones(md.numberofnodes,1);
     39md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     40md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     41md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    4242
    4343%constrain flanks to 0 normal velocity
    4444pos=find(md.x==xmin | md.x==xmax);
    45 md.spcvx(pos)=0;
    46 md.spcvz(pos)=NaN;
     45md.diagnostic.spcvx(pos)=0;
     46md.diagnostic.spcvz(pos)=NaN;
    4747
    4848%constrain grounding line to 0 velocity
    4949pos=find(md.y==ymin);
    50 md.spcvx(pos)=0;
    51 md.spcvy(pos)=0;
     50md.diagnostic.spcvx(pos)=0;
     51md.diagnostic.spcvy(pos)=0;
    5252
    5353%icefront
    5454nodeonicefront=zeros(md.numberofnodes,1);
    5555pos=find(md.y==ymax); nodeonicefront(pos)=1;
    56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);
    57 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];
    58 md.pressureload=pressureload;
     56pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:);
     57diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))];
     58md.diagnostic.icefront=diagnostic.icefront;
    5959
    6060md=solve(md,DiagnosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test234.m

    r9664 r9679  
    1010
    1111%tighten
    12 md.eps_res=10^-4;
     12md.diagnostic.restol=10^-4;
    1313
    1414%needed later
     
    3737
    3838%Boundary conditions:
    39 md.spcvx=NaN*ones(md.numberofnodes,1);
    40 md.spcvy=NaN*ones(md.numberofnodes,1);
    41 md.spcvz=NaN*ones(md.numberofnodes,1);
     39md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     40md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     41md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    4242
    4343%constrain flanks to 0 normal velocity
    4444pos=find(md.x==xmin | md.x==xmax);
    45 md.spcvx(pos)=0;
    46 md.spcvz(pos)=NaN;
     45md.diagnostic.spcvx(pos)=0;
     46md.diagnostic.spcvz(pos)=NaN;
    4747
    4848%constrain grounding line to 0 velocity
    4949pos=find(md.y==ymin);
    50 md.spcvx(pos)=0;
    51 md.spcvy(pos)=0;
     50md.diagnostic.spcvx(pos)=0;
     51md.diagnostic.spcvy(pos)=0;
    5252
    5353%icefront
    5454nodeonicefront=zeros(md.numberofnodes,1);
    5555pos=find(md.y==ymax); nodeonicefront(pos)=1;
    56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);
    57 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];
    58 md.pressureload=pressureload;
     56pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:);
     57diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))];
     58md.diagnostic.icefront=diagnostic.icefront;
    5959
    6060md=solve(md,DiagnosticSolutionEnum);
  • issm/trunk/test/NightlyRun/test235.m

    r9664 r9679  
    3434
    3535%Boundary conditions:
    36 md.spcvx=NaN*ones(md.numberofnodes,1);
    37 md.spcvy=NaN*ones(md.numberofnodes,1);
    38 md.spcvz=NaN*ones(md.numberofnodes,1);
     36md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     37md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     38md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    3939
    4040%constrain flanks to 0 normal velocity
    4141pos=find(md.x==xmin | md.x==xmax);
    42 md.spcvx(pos)=0;
    43 md.spcvz(pos)=NaN;
     42md.diagnostic.spcvx(pos)=0;
     43md.diagnostic.spcvz(pos)=NaN;
    4444
    4545%constrain grounding line to 0 velocity
    4646pos=find(md.y==ymin);
    47 md.spcvx(pos)=0;
    48 md.spcvy(pos)=0;
     47md.diagnostic.spcvx(pos)=0;
     48md.diagnostic.spcvy(pos)=0;
    4949
    5050%icefront
    5151nodeonicefront=zeros(md.numberofnodes,1);
    5252pos=find(md.y==ymax); nodeonicefront(pos)=1;
    53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);
    54 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];
    55 md.pressureload=pressureload;
     53pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:);
     54diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))];
     55md.diagnostic.icefront=diagnostic.icefront;
    5656
    5757%partitioning
     
    7777
    7878%imperative!
    79 md.eps_rel=10^-10; %tighten for qmu analysese
     79md.diagnostic.reltol=10^-10; %tighten for qmu analysese
    8080md.qmu.isdakota=1;
    8181
  • issm/trunk/test/NightlyRun/test236.m

    r9664 r9679  
    3434
    3535%Boundary conditions:
    36 md.spcvx=NaN*ones(md.numberofnodes,1);
    37 md.spcvy=NaN*ones(md.numberofnodes,1);
    38 md.spcvz=NaN*ones(md.numberofnodes,1);
     36md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     37md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     38md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    3939
    4040%constrain flanks to 0 normal velocity
    4141pos=find(md.x==xmin | md.x==xmax);
    42 md.spcvx(pos)=0;
    43 md.spcvz(pos)=NaN;
     42md.diagnostic.spcvx(pos)=0;
     43md.diagnostic.spcvz(pos)=NaN;
    4444
    4545%constrain grounding line to 0 velocity
    4646pos=find(md.y==ymin);
    47 md.spcvx(pos)=0;
    48 md.spcvy(pos)=0;
     47md.diagnostic.spcvx(pos)=0;
     48md.diagnostic.spcvy(pos)=0;
    4949
    5050%icefront
    5151nodeonicefront=zeros(md.numberofnodes,1);
    5252pos=find(md.y==ymax); nodeonicefront(pos)=1;
    53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);
    54 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];
    55 md.pressureload=pressureload;
     53pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:);
     54diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))];
     55md.diagnostic.icefront=diagnostic.icefront;
    5656
    5757%partitioning
     
    7777
    7878%imperative!
    79 md.eps_rel=10^-10; %tighten for qmu analysese
     79md.diagnostic.reltol=10^-10; %tighten for qmu analysese
    8080md.qmu.isdakota=1;
    8181
  • issm/trunk/test/NightlyRun/test423.m

    r9667 r9679  
    3131
    3232%imperative!
    33 md.eps_rel=10^-5; %tighten for qmu analysese
     33md.diagnostic.reltol=10^-5; %tighten for qmu analysese
    3434
    3535%solve
  • issm/trunk/test/NightlyRun/test424.m

    r9667 r9679  
    3030
    3131%imperative!
    32 md.eps_rel=10^-5; %tighten for qmu analysese
     32md.diagnostic.reltol=10^-5; %tighten for qmu analysese
    3333
    3434%solve
  • issm/trunk/test/NightlyRun/test425.m

    r9667 r9679  
    3030
    3131%imperative!
    32 md.eps_rel=10^-5; %tighten for qmu analyses
     32md.diagnostic.reltol=10^-5; %tighten for qmu analyses
    3333md.qmu.isdakota=1;
    3434
  • issm/trunk/test/NightlyRun/test426.m

    r9667 r9679  
    3030
    3131%imperative!
    32 md.eps_rel=10^-5; %tighten for qmu analyses
     32md.diagnostic.reltol=10^-5; %tighten for qmu analyses
    3333md.qmu.isdakota=1;
    3434
  • issm/trunk/test/NightlyRun/test427.m

    r9667 r9679  
    88
    99%constrain all velocities to 1 m/yr, in the y-direction
    10 md.spcvx(:)=0;
    11 md.spcvy(:)=1;
    12 md.spcvz(:)=0;
     10md.diagnostic.spcvx(:)=0;
     11md.diagnostic.spcvy(:)=1;
     12md.diagnostic.spcvz(:)=0;
    1313
    1414%Dakota options
     
    4444md.qmu.params.interval_type='forward';
    4545md.qmu.isdakota=1;
    46 md.eps_rel=10^-5; %tighten for qmu analyses
     46md.diagnostic.reltol=10^-5; %tighten for qmu analyses
    4747
    4848%solve
  • issm/trunk/test/NightlyRun/test428.m

    r9667 r9679  
    88
    99%constrain all velocities to 1 m/yr, in the y-direction
    10 md.spcvx=zeros(md.numberofnodes,1);
    11 md.spcvy=ones(md.numberofnodes,1);
    12 md.spcvz=zeros(md.numberofnodes,1);
     10md.diagnostic.spcvx=zeros(md.numberofnodes,1);
     11md.diagnostic.spcvy=ones(md.numberofnodes,1);
     12md.diagnostic.spcvz=zeros(md.numberofnodes,1);
    1313
    1414%Dakota options
     
    4444md.qmu.params.interval_type='forward';
    4545md.qmu.isdakota=1;
    46 md.eps_rel=10^-5; %tighten for qmu analyses
     46md.diagnostic.reltol=10^-5; %tighten for qmu analyses
    4747
    4848%solve
  • issm/trunk/test/NightlyRun/test434.m

    r9672 r9679  
    88
    99%constrain all velocities to 1 m/yr, in the y-direction
    10 md.spcvx(:)=0;
    11 md.spcvy(:)=1;
    12 md.spcvz(:)=0;
     10md.diagnostic.spcvx(:)=0;
     11md.diagnostic.spcvy(:)=1;
     12md.diagnostic.spcvz(:)=0;
    1313
    1414%Dakota options
     
    4747md.qmu.isdakota=1;
    4848
    49 md.eps_rel=10^-5; %tighten for qmu analyses
     49md.diagnostic.reltol=10^-5; %tighten for qmu analyses
    5050
    5151md=solve(md,DiagnosticSolutionEnum,'overwrite','y');
  • issm/trunk/test/NightlyRun/test439.m

    r9672 r9679  
    2929
    3030%imperative!
    31 md.eps_rel=10^-5; %tighten for qmu analysese
     31md.diagnostic.reltol=10^-5; %tighten for qmu analysese
    3232
    3333%solve
  • issm/trunk/test/NightlyRun/test440.m

    r9672 r9679  
    2929
    3030%imperative!
    31 md.eps_rel=10^-5; %tighten for qmu analysese
     31md.diagnostic.reltol=10^-5; %tighten for qmu analysese
    3232
    3333%solve
  • issm/trunk/test/NightlyRun/test443.m

    r9664 r9679  
    55md=setflowequation(md,'stokes','../Exp/SquareHalfRight.exp','fill','macayeal','coupling','tiling');
    66md.cluster=none;
    7 md.eps_rel=0.4;
     7md.diagnostic.reltol=0.4;
    88md=solve(md,DiagnosticSolutionEnum);
    99
  • issm/trunk/test/NightlyRun/test444.m

    r9664 r9679  
    55md=setflowequation(md,'stokes','../Exp/SquareHalfRight.exp','fill','macayeal');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.eps_rel=0.4;
     7md.diagnostic.reltol=0.4;
    88md=solve(md,DiagnosticSolutionEnum);
    99
  • issm/trunk/test/Par/79North.par

    r9677 r9679  
    3030
    3131%Numerical parameters
    32 md.viscosity_overshoot=0.3;
     32md.diagnostic.viscosity_overshoot=0.3;
    3333md.prognostic.stabilization=1;
    3434md.thermal.stabilization=1;
     
    3737md.timestepping.time_step=1;
    3838md.timestepping.final_time=3;
    39 md.eps_res=0.05;
    40 md.eps_rel=0.005;
     39md.diagnostic.restol=0.05;
     40md.diagnostic.reltol=0.005;
    4141md.steadystate.reltol=0.005;
    42 md.eps_abs=NaN;
     42md.diagnostic.abstol=NaN;
    4343
    4444%Boundary conditions:
  • issm/trunk/test/Par/ISMIPF.par

    r9645 r9679  
    2121%Create node on boundary fist (because we cannot use mesh)
    2222md=SetIceSheetBC(md);
    23 md.spcvx=100*ones(md.numberofnodes,1);
     23md.diagnostic.spcvx=100*ones(md.numberofnodes,1);
    2424md.vx=zeros(md.numberofnodes,1);
    2525md.vy=zeros(md.numberofnodes,1);
  • issm/trunk/test/Par/Pig.par

    r9677 r9679  
    2828
    2929%Numerical parameters
    30 md.viscosity_overshoot=0.3;
     30md.diagnostic.viscosity_overshoot=0.3;
    3131md.prognostic.stabilization=1;
    3232md.verbose=verbose(0);
     
    3434md.timestepping.time_step=1;
    3535md.timestepping.final_time=2;
    36 md.eps_res=0.05;
    37 md.eps_rel=1;
     36md.diagnostic.restol=0.05;
     37md.diagnostic.reltol=1;
    3838md.steadystate.reltol=1;
    39 md.eps_abs=NaN;
     39md.diagnostic.abstol=NaN;
    4040
    4141%Boundary conditions:
  • issm/trunk/test/Par/RoundSheetEISMINT.par

    r9636 r9679  
    4545md.x(pos)=0; md.y(pos)=0; %the closest node to the center is changed to be exactly at the center
    4646
    47 md.spcvx(pos)=0;
    48 md.spcvy(pos)=0;
    49 md.spcvz(pos)=0;
     47md.diagnostic.spcvx(pos)=0;
     48md.diagnostic.spcvy(pos)=0;
     49md.diagnostic.spcvz(pos)=0;
    5050
    5151%parallel options
  • issm/trunk/test/Par/RoundSheetShelf.par

    r9677 r9679  
    5757
    5858%Numerical parameters
    59 md.viscosity_overshoot=0.0;
     59md.diagnostic.viscosity_overshoot=0.0;
    6060md.prognostic.stabilization=1;
    6161md.thermal.stabilization=1;
    6262md.verbose=verbose(0);
    6363md.waitonlock=30;
    64 md.eps_res=0.05;
    65 md.eps_rel=0.05;
     64md.diagnostic.restol=0.05;
     65md.diagnostic.reltol=0.05;
    6666md.steadystate.reltol=0.05;
    67 md.eps_abs=NaN;
     67md.diagnostic.abstol=NaN;
    6868md.timestepping.time_step=.1;
    6969md.timestepping.final_time=5;
     
    7575
    7676%Deal with boundary conditions:
    77 md.spcvx=NaN*ones(md.numberofnodes,1);
    78 md.spcvy=NaN*ones(md.numberofnodes,1);
    79 md.spcvz=NaN*ones(md.numberofnodes,1);
     77md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
     78md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
     79md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
    8080
    8181pos=find(md.x==0 & md.y==0);
    82 md.spcvx(pos)=0;
    83 md.spcvy(pos)=0;
     82md.diagnostic.spcvx(pos)=0;
     83md.diagnostic.spcvy(pos)=0;
    8484
    8585pressureload=md.segments;
    8686pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end)) + 0*md.mask.elementongroundedice(pressureload(:,end))];
    87 md.pressureload=pressureload;
     87md.diagnostic.icefront=pressureload;
    8888md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
    8989md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
  • issm/trunk/test/Par/RoundSheetStaticEISMINT.par

    r9641 r9679  
    5050md.x(pos)=0; md.y(pos)=0; %the closest node to the center is changed to be exactly at the center
    5151
    52 md.spcvx(pos)=0;
    53 md.spcvy(pos)=0;
    54 md.spcvz(pos)=0;
     52md.diagnostic.spcvx(pos)=0;
     53md.diagnostic.spcvy(pos)=0;
     54md.diagnostic.spcvz(pos)=0;
  • issm/trunk/test/Par/SquareSheetConstrained.par

    r9677 r9679  
    3131
    3232%Numerical parameters
    33 md.viscosity_overshoot=0.0;
     33md.diagnostic.viscosity_overshoot=0.0;
    3434md.prognostic.stabilization=1;
    3535md.thermal.stabilization=1;
    3636md.verbose=verbose(0);
    3737md.waitonlock=30;
    38 md.eps_res=0.05;
     38md.diagnostic.restol=0.05;
    3939md.steadystate.reltol=0.05;
    40 md.eps_rel=0.05;
    41 md.eps_abs=NaN;
     40md.diagnostic.reltol=0.05;
     41md.diagnostic.abstol=NaN;
    4242md.timestepping.time_step=1;
    4343md.timestepping.final_time=3;
  • issm/trunk/test/Par/SquareSheetShelf.par

    r9677 r9679  
    3838
    3939%Numerical parameters
    40 md.viscosity_overshoot=0.0;
     40md.diagnostic.viscosity_overshoot=0.0;
    4141md.prognostic.stabilization=1;
    4242md.thermal.stabilization=1;
    4343md.verbose=verbose(0);
    4444md.waitonlock=30;
    45 md.eps_res=0.05;
     45md.diagnostic.restol=0.05;
    4646md.steadystate.reltol=0.05;
    47 md.eps_rel=0.05;
    48 md.eps_abs=NaN;
     47md.diagnostic.reltol=0.05;
     48md.diagnostic.abstol=NaN;
    4949md.timestepping.time_step=1;
    5050md.timestepping.final_time=3;
  • issm/trunk/test/Par/SquareShelf.par

    r9677 r9679  
    3131
    3232%Numerical parameters
    33 md.viscosity_overshoot=0.3;
     33md.diagnostic.viscosity_overshoot=0.3;
    3434md.prognostic.stabilization=1;
    3535md.thermal.stabilization=1;
    3636md.waitonlock=30;
    3737md.verbose=verbose(0);
    38 md.eps_res=0.10;
     38md.diagnostic.restol=0.10;
    3939md.steadystate.reltol=0.02;
    40 md.eps_rel=0.02;
    41 md.eps_abs=NaN;
     40md.diagnostic.reltol=0.02;
     41md.diagnostic.abstol=NaN;
    4242md.timestepping.time_step=1;
    4343md.timestepping.final_time=3;
  • issm/trunk/test/Par/SquareShelfConstrained.par

    r9677 r9679  
    3535
    3636%Numerical parameters
    37 md.viscosity_overshoot=0.0;
     37md.diagnostic.viscosity_overshoot=0.0;
    3838md.prognostic.stabilization=1;
    3939md.thermal.stabilization=1;
    4040md.verbose=verbose(0);
    4141md.waitonlock=30;
    42 md.eps_res=0.05;
    43 md.eps_rel=0.05;
     42md.diagnostic.restol=0.05;
     43md.diagnostic.reltol=0.05;
    4444md.steadystate.reltol=0.05;
    45 md.eps_abs=NaN;
     45md.diagnostic.abstol=NaN;
    4646md.timestepping.time_step=1;
    4747md.timestepping.final_time=3;
Note: See TracChangeset for help on using the changeset viewer.