Changeset 9681


Ignore:
Timestamp:
09/08/11 08:29:34 (14 years ago)
Author:
Mathieu Morlighem
Message:

Added inversion

Location:
issm/trunk
Files:
21 added
24 deleted
117 edited

Legend:

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

    r9680 r9681  
    9898        TransientRequestedOutputsEnum,
    9999        TransientNumRequestedOutputsEnum,
     100        InversionIscontrolEnum,
     101        InversionControlParametersEnum,
     102        InversionCostFunctionsEnum,
     103        InversionCostFunctionEnum,
     104        InversionCostFunctionsCoefficientsEnum,
     105        InversionNstepsEnum,
     106        InversionMaxiterPerStepEnum,
     107        InversionGradientScalingEnum,
     108        InversionGradientOnlyEnum,
     109        InversionCostFunctionThresholdEnum,
     110        InversionMaxParametersEnum,
     111        InversionMinParametersEnum,
     112        InversionStepThresholdEnum,
     113        InversionNumControlParametersEnum,
     114        InversionNumCostFunctionsEnum,
     115        InversionVxObsEnum,
     116        InversionVyObsEnum,
     117        InversionVzObsEnum,
     118        InversionVelObsEnum,
     119        InversionThicknessObsEnum,
    100120        DiagnosticSpcvxEnum,
    101121        DiagnosticSpcvyEnum,
     
    143163        AdjointHorizAnalysisEnum,
    144164        AdjointBalancethicknessAnalysisEnum,
    145         ControlAnalysisEnum,
    146165        //thermal
    147166        ThermalSolutionEnum,
     
    267286        BedSlopeYEnum,
    268287        BoundaryEnum,
    269         CmResponseEnum,
    270         CmResponsesEnum,
    271288        ConstantEnum,
    272         ControlTypeEnum,
    273289        ConvergedEnum,
    274290        ElementonbedEnum,
     
    309325        ThicknessEnum,
    310326        ThicknessCoeffEnum,
    311         ThicknessObsEnum,
    312327        TypeEnum,
    313328        VelEnum,
    314         VelObsEnum,
    315329        VxAverageEnum,
    316330        VxEnum,
    317         VxObsEnum,
    318331        VxPicardEnum,
    319332        QmuVxEnum,
    320333        VyAverageEnum,
    321334        VyEnum,
    322         VyObsEnum,
    323335        VyPicardEnum,
    324336        QmuVyEnum,
    325337        VzEnum,
    326         VzObsEnum,
    327338        VzPicardEnum,
    328339        VzMacAyealEnum,
     
    330341        VzStokesEnum,
    331342        QmuVzEnum,
    332         WeightsEnum,
    333343        /*}}}*/
    334344        /*Element types{{{1*/
     
    388398        ColinearEnum,
    389399        SeparateEnum,
    390         CmGradientEnum,
    391         CmJumpEnum,
    392         CmMaxEnum,
    393         CmMinEnum,
    394400        AdjointEnum,
    395401        GradientEnum,
     
    401407        ControlSteadyEnum,
    402408        DimEnum,
    403         EpsCmEnum,
    404409        NumberOfElementsEnum,
    405410        NumberOfVerticesEnum,
     
    454459        /*Temporary*/
    455460        NumberOfElements2DEnum,
    456         NumControlTypeEnum,
    457461        YEnum,
    458462        NumberOfNodes2DEnum,
     
    462466        Elements2DEnum,
    463467        XEnum,
    464         NumCmResponsesEnum,
    465468        ElementconnectivityEnum,
    466469        NumlayersEnum,
    467470        LowerelementsEnum,
    468         NstepsEnum,
    469         MaxiterEnum,
    470         TolxEnum,
    471         OptscalEnum,
    472471        OutputfilenameEnum,
    473472        WaterfractionEnum,
  • issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp

    r9646 r9681  
    1919                case BalancethicknessThickeningRateEnum: return "dhdt";
    2020                case VxEnum : return "vx";
    21                 case VxObsEnum : return "vx_obs";
     21                case InversionVxObsEnum : return "vx_obs";
    2222                case VyEnum : return "vy";
    23                 case VyObsEnum : return "vy_obs";
     23                case InversionVyObsEnum : return "vy_obs";
    2424                case BasalforcingsMeltingRateEnum : return "basal_melting_rate";
    2525      case SurfaceforcingsAccumulationRateEnum : return "surface_accumulation_rate";
  • issm/trunk/src/c/modules/CostFunctionx/CostFunctionx.cpp

    r9356 r9681  
    2424       
    2525        /*Recover parameters*/
    26         parameters->FindParam(&num_responses,NumCmResponsesEnum);
     26        parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    2727        parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    2828
  • issm/trunk/src/c/modules/Dakotax/SpawnCoreParallel.cpp

    r9650 r9681  
    5757        femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
    5858        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    59         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     59        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    6060
    6161        /* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9680 r9681  
    102102                case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
    103103                case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
     104                case InversionIscontrolEnum : return "InversionIscontrol";
     105                case InversionControlParametersEnum : return "InversionControlParameters";
     106                case InversionCostFunctionsEnum : return "InversionCostFunctions";
     107                case InversionCostFunctionEnum : return "InversionCostFunction";
     108                case InversionCostFunctionsCoefficientsEnum : return "InversionCostFunctionsCoefficients";
     109                case InversionNstepsEnum : return "InversionNsteps";
     110                case InversionMaxiterPerStepEnum : return "InversionMaxiterPerStep";
     111                case InversionGradientScalingEnum : return "InversionGradientScaling";
     112                case InversionGradientOnlyEnum : return "InversionGradientOnly";
     113                case InversionCostFunctionThresholdEnum : return "InversionCostFunctionThreshold";
     114                case InversionMaxParametersEnum : return "InversionMaxParameters";
     115                case InversionMinParametersEnum : return "InversionMinParameters";
     116                case InversionStepThresholdEnum : return "InversionStepThreshold";
     117                case InversionNumControlParametersEnum : return "InversionNumControlParameters";
     118                case InversionNumCostFunctionsEnum : return "InversionNumCostFunctions";
     119                case InversionVxObsEnum : return "InversionVxObs";
     120                case InversionVyObsEnum : return "InversionVyObs";
     121                case InversionVzObsEnum : return "InversionVzObs";
     122                case InversionVelObsEnum : return "InversionVelObs";
     123                case InversionThicknessObsEnum : return "InversionThicknessObs";
    104124                case DiagnosticSpcvxEnum : return "DiagnosticSpcvx";
    105125                case DiagnosticSpcvyEnum : return "DiagnosticSpcvy";
     
    139159                case AdjointHorizAnalysisEnum : return "AdjointHorizAnalysis";
    140160                case AdjointBalancethicknessAnalysisEnum : return "AdjointBalancethicknessAnalysis";
    141                 case ControlAnalysisEnum : return "ControlAnalysis";
    142161                case ThermalSolutionEnum : return "ThermalSolution";
    143162                case ThermalAnalysisEnum : return "ThermalAnalysis";
     
    234253                case BedSlopeYEnum : return "BedSlopeY";
    235254                case BoundaryEnum : return "Boundary";
    236                 case CmResponseEnum : return "CmResponse";
    237                 case CmResponsesEnum : return "CmResponses";
    238255                case ConstantEnum : return "Constant";
    239                 case ControlTypeEnum : return "ControlType";
    240256                case ConvergedEnum : return "Converged";
    241257                case ElementonbedEnum : return "Elementonbed";
     
    276292                case ThicknessEnum : return "Thickness";
    277293                case ThicknessCoeffEnum : return "ThicknessCoeff";
    278                 case ThicknessObsEnum : return "ThicknessObs";
    279294                case TypeEnum : return "Type";
    280295                case VelEnum : return "Vel";
    281                 case VelObsEnum : return "VelObs";
    282296                case VxAverageEnum : return "VxAverage";
    283297                case VxEnum : return "Vx";
    284                 case VxObsEnum : return "VxObs";
    285298                case VxPicardEnum : return "VxPicard";
    286299                case QmuVxEnum : return "QmuVx";
    287300                case VyAverageEnum : return "VyAverage";
    288301                case VyEnum : return "Vy";
    289                 case VyObsEnum : return "VyObs";
    290302                case VyPicardEnum : return "VyPicard";
    291303                case QmuVyEnum : return "QmuVy";
    292304                case VzEnum : return "Vz";
    293                 case VzObsEnum : return "VzObs";
    294305                case VzPicardEnum : return "VzPicard";
    295306                case VzMacAyealEnum : return "VzMacAyeal";
     
    297308                case VzStokesEnum : return "VzStokes";
    298309                case QmuVzEnum : return "QmuVz";
    299                 case WeightsEnum : return "Weights";
    300310                case P0Enum : return "P0";
    301311                case P1Enum : return "P1";
     
    340350                case ColinearEnum : return "Colinear";
    341351                case SeparateEnum : return "Separate";
    342                 case CmGradientEnum : return "CmGradient";
    343                 case CmJumpEnum : return "CmJump";
    344                 case CmMaxEnum : return "CmMax";
    345                 case CmMinEnum : return "CmMin";
    346352                case AdjointEnum : return "Adjoint";
    347353                case GradientEnum : return "Gradient";
     
    353359                case ControlSteadyEnum : return "ControlSteady";
    354360                case DimEnum : return "Dim";
    355                 case EpsCmEnum : return "EpsCm";
    356361                case NumberOfElementsEnum : return "NumberOfElements";
    357362                case NumberOfVerticesEnum : return "NumberOfVertices";
     
    398403                case TransientInputEnum : return "TransientInput";
    399404                case NumberOfElements2DEnum : return "NumberOfElements2D";
    400                 case NumControlTypeEnum : return "NumControlType";
    401405                case YEnum : return "Y";
    402406                case NumberOfNodes2DEnum : return "NumberOfNodes2D";
     
    406410                case Elements2DEnum : return "Elements2D";
    407411                case XEnum : return "X";
    408                 case NumCmResponsesEnum : return "NumCmResponses";
    409412                case ElementconnectivityEnum : return "Elementconnectivity";
    410413                case NumlayersEnum : return "Numlayers";
    411414                case LowerelementsEnum : return "Lowerelements";
    412                 case NstepsEnum : return "Nsteps";
    413                 case MaxiterEnum : return "Maxiter";
    414                 case TolxEnum : return "Tolx";
    415                 case OptscalEnum : return "Optscal";
    416415                case OutputfilenameEnum : return "Outputfilename";
    417416                case WaterfractionEnum : return "Waterfraction";
  • issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp

    r9563 r9681  
    3030
    3131        /*retrieve some parameters: */
    32         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
    33         parameters->AddObject(new BoolParam(ControlAnalysisEnum,control_analysis));
     32        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
     33        parameters->AddObject(new BoolParam(InversionIscontrolEnum,control_analysis));
    3434
    3535        if(control_analysis){
    3636
    3737                /*How many controls and how many responses?*/
    38                 parameters->AddObject(iomodel->CopyConstantObject(NumControlTypeEnum));
    39                 parameters->AddObject(iomodel->CopyConstantObject(NumCmResponsesEnum));
    40                 parameters->AddObject(iomodel->CopyConstantObject(NstepsEnum));
    41                 parameters->AddObject(iomodel->CopyConstantObject(EpsCmEnum));
    42                 parameters->AddObject(iomodel->CopyConstantObject(CmGradientEnum));
     38                parameters->AddObject(iomodel->CopyConstantObject(InversionNumControlParametersEnum));
     39                parameters->AddObject(iomodel->CopyConstantObject(InversionNumCostFunctionsEnum));
     40                parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum));
     41                parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum));
     42                parameters->AddObject(iomodel->CopyConstantObject(InversionGradientOnlyEnum));
    4343
    4444                /*What solution type?*/
     
    5151
    5252                /*Now, recover fit, optscal and maxiter as vectors: */
    53                 iomodel->FetchData(&control_type,NULL,&num_control_type,ControlTypeEnum);
    54                 iomodel->FetchData(&cm_responses,&nsteps,&num_cm_responses,CmResponsesEnum);
    55                 iomodel->FetchData(&cm_jump,&nsteps,NULL,CmJumpEnum);
    56                 iomodel->FetchData(&optscal,NULL,NULL,OptscalEnum);
    57                 iomodel->FetchData(&maxiter,NULL,NULL,MaxiterEnum);
     53                iomodel->FetchData(&control_type,NULL,&num_control_type,InversionControlParametersEnum);
     54                iomodel->FetchData(&cm_responses,&nsteps,&num_cm_responses,InversionCostFunctionsEnum);
     55                iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum);
     56                iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum);
     57                iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum);
    5858
    59                 parameters->AddObject(new IntVecParam(ControlTypeEnum,control_type,num_control_type));
    60                 parameters->AddObject(new DoubleMatParam(OptscalEnum,optscal,nsteps,num_control_type));
    61                 parameters->AddObject(new DoubleMatParam(CmResponsesEnum,cm_responses,nsteps,num_cm_responses));
    62                 parameters->AddObject(new DoubleVecParam(CmJumpEnum,cm_jump,nsteps));
    63                 parameters->AddObject(new DoubleVecParam(MaxiterEnum,maxiter,nsteps));
     59                parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type));
     60                parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type));
     61                parameters->AddObject(new DoubleMatParam(InversionCostFunctionsEnum,cm_responses,nsteps,num_cm_responses));
     62                parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps));
     63                parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps));
    6464
    6565                xfree((void**)&control_type);
  • issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r9646 r9681  
    2828        /*Fetch parameters: */
    2929        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    30         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
    31         iomodel->Constant(&num_control_type,NumControlTypeEnum);
     30        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
     31        iomodel->Constant(&num_control_type,InversionNumControlParametersEnum);
    3232
    3333        /*Now, return if no control*/
     
    3636        /*Fetch data needed: */
    3737        iomodel->FetchData(1,ElementsEnum);
    38         iomodel->FetchDataToInput(elements,VxObsEnum);
    39         iomodel->FetchDataToInput(elements,VyObsEnum);
    40         iomodel->FetchDataToInput(elements,ThicknessObsEnum);
     38        iomodel->FetchDataToInput(elements,InversionVxObsEnum);
     39        iomodel->FetchDataToInput(elements,InversionVyObsEnum);
     40        iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
    4141
    42         iomodel->FetchData(4,ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum);
     42        iomodel->FetchData(4,InversionControlParametersEnum,InversionCostFunctionsCoefficientsEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    4343        for(i=0;i<num_control_type;i++){
    44                 switch((int)iomodel->Data(ControlTypeEnum)[i]){
     44                switch((int)iomodel->Data(InversionControlParametersEnum)[i]){
    4545                        case BalancethicknessThickeningRateEnum: iomodel->FetchData(1,BalancethicknessThickeningRateEnum); break;
    4646                        case VxEnum:   iomodel->FetchData(1,VxEnum); break;
     
    4848                        case FrictionCoefficientEnum: iomodel->FetchData(1,FrictionCoefficientEnum); break;
    4949                        case MaterialsRheologyBbarEnum:    iomodel->FetchData(1,MaterialsRheologyBEnum); break;
    50                         default: _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(ControlTypeEnum)[i]));
     50                        default: _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]));
    5151                }
    5252        }
     
    6666       
    6767        /*Free data: */
    68         iomodel->DeleteData(1+4+5,ElementsEnum,ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum,BalancethicknessThickeningRateEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum);
     68        iomodel->DeleteData(1+4+5,ElementsEnum,InversionControlParametersEnum,InversionCostFunctionsCoefficientsEnum,InversionMinParametersEnum,InversionMaxParametersEnum,BalancethicknessThickeningRateEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum);
    6969}
  • issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r9636 r9681  
    3131        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    3232        iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
    33         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
     33        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
    3434
    3535        /*Did we already create the elements? : */
     
    4747        iomodel->FetchData(4,ElementsEnum,ElementconnectivityEnum,MaterialsRheologyBEnum,MaterialsRheologyNEnum);
    4848        if(dim==3)          iomodel->FetchData(2,UpperelementsEnum,LowerelementsEnum);
    49         if(control_analysis)iomodel->FetchData(3,ControlTypeEnum,CmMinEnum,CmMaxEnum);
     49        if(control_analysis)iomodel->FetchData(3,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    5050       
    5151        /*Create elements and materials: */
     
    6464        /*Free data: */
    6565        iomodel->DeleteData(9,ElementsEnum,ElementconnectivityEnum,UpperelementsEnum,LowerelementsEnum,
    66                                 MaterialsRheologyBEnum,MaterialsRheologyNEnum,ControlTypeEnum,CmMinEnum,CmMaxEnum);
     66                                MaterialsRheologyBEnum,MaterialsRheologyNEnum,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    6767
    6868        /*Add new constrant material property tgo materials, at the end: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r9661 r9681  
    2828        iomodel->Constant(&dim,DimEnum);
    2929        iomodel->Constant(&numberofelements,NumberOfElementsEnum);
    30         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
     30        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
    3131        iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    3232
     
    5959        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    6060        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
    61         iomodel->FetchDataToInput(elements,VxEnum,VxObsEnum,0);
    62         iomodel->FetchDataToInput(elements,VyEnum,VyObsEnum,0);
     61        iomodel->FetchDataToInput(elements,VxEnum,InversionVxObsEnum,0);
     62        iomodel->FetchDataToInput(elements,VyEnum,InversionVyObsEnum,0);
    6363        iomodel->FetchDataToInput(elements,BathymetryEnum);
    6464
     
    7575
    7676        if(control_analysis){
    77                 iomodel->FetchDataToInput(elements,VxObsEnum);
    78                 iomodel->FetchDataToInput(elements,VyObsEnum);
     77                iomodel->FetchDataToInput(elements,InversionVxObsEnum);
     78                iomodel->FetchDataToInput(elements,InversionVyObsEnum);
    7979        }
    8080
    8181        /*Post-process: */
    8282        elements->InputDuplicate(VxEnum,VxPicardEnum);
    83         elements->InputDuplicate(VxEnum,VxObsEnum);
     83        elements->InputDuplicate(VxEnum,InversionVxObsEnum);
    8484        if(dakota_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum);
    8585       
    8686        elements->InputDuplicate(VyEnum,VyPicardEnum);
    87         elements->InputDuplicate(VyEnum,VyObsEnum);
     87        elements->InputDuplicate(VyEnum,InversionVyObsEnum);
    8888        if(dakota_analysis)elements->InputDuplicate(VyEnum,QmuVyEnum);
    8989       
    9090        if(dim==3){
    9191                elements->InputDuplicate(VzEnum,VzPicardEnum);
    92                 elements->InputDuplicate(VzEnum,VzObsEnum);
     92                elements->InputDuplicate(VzEnum,InversionVzObsEnum);
    9393                if(dakota_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum);
    9494        }
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9680 r9681  
    100100        else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
    101101        else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
     102        else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
     103        else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
     104        else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
     105        else if (strcmp(name,"InversionCostFunction")==0) return InversionCostFunctionEnum;
     106        else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
     107        else if (strcmp(name,"InversionNsteps")==0) return InversionNstepsEnum;
     108        else if (strcmp(name,"InversionMaxiterPerStep")==0) return InversionMaxiterPerStepEnum;
     109        else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
     110        else if (strcmp(name,"InversionGradientOnly")==0) return InversionGradientOnlyEnum;
     111        else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum;
     112        else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum;
     113        else if (strcmp(name,"InversionMinParameters")==0) return InversionMinParametersEnum;
     114        else if (strcmp(name,"InversionStepThreshold")==0) return InversionStepThresholdEnum;
     115        else if (strcmp(name,"InversionNumControlParameters")==0) return InversionNumControlParametersEnum;
     116        else if (strcmp(name,"InversionNumCostFunctions")==0) return InversionNumCostFunctionsEnum;
     117        else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum;
     118        else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
     119        else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
     120        else if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum;
     121        else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum;
    102122        else if (strcmp(name,"DiagnosticSpcvx")==0) return DiagnosticSpcvxEnum;
    103123        else if (strcmp(name,"DiagnosticSpcvy")==0) return DiagnosticSpcvyEnum;
     
    137157        else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    138158        else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
    139         else if (strcmp(name,"ControlAnalysis")==0) return ControlAnalysisEnum;
    140159        else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
    141160        else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum;
     
    232251        else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
    233252        else if (strcmp(name,"Boundary")==0) return BoundaryEnum;
    234         else if (strcmp(name,"CmResponse")==0) return CmResponseEnum;
    235         else if (strcmp(name,"CmResponses")==0) return CmResponsesEnum;
    236253        else if (strcmp(name,"Constant")==0) return ConstantEnum;
    237         else if (strcmp(name,"ControlType")==0) return ControlTypeEnum;
    238254        else if (strcmp(name,"Converged")==0) return ConvergedEnum;
    239255        else if (strcmp(name,"Elementonbed")==0) return ElementonbedEnum;
     
    274290        else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
    275291        else if (strcmp(name,"ThicknessCoeff")==0) return ThicknessCoeffEnum;
    276         else if (strcmp(name,"ThicknessObs")==0) return ThicknessObsEnum;
    277292        else if (strcmp(name,"Type")==0) return TypeEnum;
    278293        else if (strcmp(name,"Vel")==0) return VelEnum;
    279         else if (strcmp(name,"VelObs")==0) return VelObsEnum;
    280294        else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
    281295        else if (strcmp(name,"Vx")==0) return VxEnum;
    282         else if (strcmp(name,"VxObs")==0) return VxObsEnum;
    283296        else if (strcmp(name,"VxPicard")==0) return VxPicardEnum;
    284297        else if (strcmp(name,"QmuVx")==0) return QmuVxEnum;
    285298        else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
    286299        else if (strcmp(name,"Vy")==0) return VyEnum;
    287         else if (strcmp(name,"VyObs")==0) return VyObsEnum;
    288300        else if (strcmp(name,"VyPicard")==0) return VyPicardEnum;
    289301        else if (strcmp(name,"QmuVy")==0) return QmuVyEnum;
    290302        else if (strcmp(name,"Vz")==0) return VzEnum;
    291         else if (strcmp(name,"VzObs")==0) return VzObsEnum;
    292303        else if (strcmp(name,"VzPicard")==0) return VzPicardEnum;
    293304        else if (strcmp(name,"VzMacAyeal")==0) return VzMacAyealEnum;
     
    295306        else if (strcmp(name,"VzStokes")==0) return VzStokesEnum;
    296307        else if (strcmp(name,"QmuVz")==0) return QmuVzEnum;
    297         else if (strcmp(name,"Weights")==0) return WeightsEnum;
    298308        else if (strcmp(name,"P0")==0) return P0Enum;
    299309        else if (strcmp(name,"P1")==0) return P1Enum;
     
    338348        else if (strcmp(name,"Colinear")==0) return ColinearEnum;
    339349        else if (strcmp(name,"Separate")==0) return SeparateEnum;
    340         else if (strcmp(name,"CmGradient")==0) return CmGradientEnum;
    341         else if (strcmp(name,"CmJump")==0) return CmJumpEnum;
    342         else if (strcmp(name,"CmMax")==0) return CmMaxEnum;
    343         else if (strcmp(name,"CmMin")==0) return CmMinEnum;
    344350        else if (strcmp(name,"Adjoint")==0) return AdjointEnum;
    345351        else if (strcmp(name,"Gradient")==0) return GradientEnum;
     
    351357        else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
    352358        else if (strcmp(name,"Dim")==0) return DimEnum;
    353         else if (strcmp(name,"EpsCm")==0) return EpsCmEnum;
    354359        else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum;
    355360        else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum;
     
    396401        else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    397402        else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum;
    398         else if (strcmp(name,"NumControlType")==0) return NumControlTypeEnum;
    399403        else if (strcmp(name,"Y")==0) return YEnum;
    400404        else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
     
    404408        else if (strcmp(name,"Elements2D")==0) return Elements2DEnum;
    405409        else if (strcmp(name,"X")==0) return XEnum;
    406         else if (strcmp(name,"NumCmResponses")==0) return NumCmResponsesEnum;
    407410        else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
    408411        else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
    409412        else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
    410         else if (strcmp(name,"Nsteps")==0) return NstepsEnum;
    411         else if (strcmp(name,"Maxiter")==0) return MaxiterEnum;
    412         else if (strcmp(name,"Tolx")==0) return TolxEnum;
    413         else if (strcmp(name,"Optscal")==0) return OptscalEnum;
    414413        else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum;
    415414        else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9679 r9681  
    44564456        int        *responses = NULL;
    44574457        int         num_responses,resp;
    4458         this->parameters->FindParam(&num_responses,NumCmResponsesEnum);
     4458        this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    44594459        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    44604460
     
    47804780
    47814781        /*retrieve some parameters: */
    4782         this->parameters->FindParam(&num_controls,NumControlTypeEnum);
    4783         this->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
     4782        this->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     4783        this->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
    47844784
    47854785        for(int i=0;i<num_controls;i++){
     
    51545154        /*Fetch parameters: */
    51555155        iomodel->Constant(&yts,ConstantsYtsEnum);
    5156         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
    5157         iomodel->Constant(&num_control_type,NumControlTypeEnum);
    5158         iomodel->Constant(&num_cm_responses,NumCmResponsesEnum);
     5156        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
     5157        iomodel->Constant(&num_control_type,InversionNumControlParametersEnum);
     5158        iomodel->Constant(&num_cm_responses,InversionNumCostFunctionsEnum);
    51595159
    51605160        /*Checks if debuging*/
     
    51695169
    51705170        /*Control Inputs*/
    5171         if (control_analysis && iomodel->Data(ControlTypeEnum)){
     5171        if (control_analysis && iomodel->Data(InversionControlParametersEnum)){
    51725172                for(i=0;i<num_control_type;i++){
    5173                         switch((int)iomodel->Data(ControlTypeEnum)[i]){
     5173                        switch((int)iomodel->Data(InversionControlParametersEnum)[i]){
    51745174                                case BalancethicknessThickeningRateEnum:
    51755175                                        if (iomodel->Data(BalancethicknessThickeningRateEnum)){
    51765176                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[penta_vertex_ids[j]-1]/yts;
    5177                                                 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    5178                                                 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5177                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5178                                                for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    51795179                                                this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    51805180                                        }
     
    51835183                                        if (iomodel->Data(VxEnum)){
    51845184                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(VxEnum)[penta_vertex_ids[j]-1]/yts;
    5185                                                 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    5186                                                 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5185                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5186                                                for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    51875187                                                this->inputs->AddInput(new ControlInput(VxEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    51885188                                        }
     
    51915191                                        if (iomodel->Data(VyEnum)){
    51925192                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(VyEnum)[penta_vertex_ids[j]-1]/yts;
    5193                                                 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    5194                                                 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5193                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     5194                                                for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
    51955195                                                this->inputs->AddInput(new ControlInput(VyEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    51965196                                        }
     
    51995199                                        if (iomodel->Data(FrictionCoefficientEnum)){
    52005200                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(FrictionCoefficientEnum)[penta_vertex_ids[j]-1];
    5201                                                 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];
    5202                                                 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];
     5201                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];
     5202                                                for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];
    52035203                                                this->inputs->AddInput(new ControlInput(FrictionCoefficientEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    52045204                                        }
     
    52075207                                        /*Matice will take care of it*/ break;
    52085208                                default:
    5209                                         _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(ControlTypeEnum)[i]));
     5209                                        _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]));
    52105210                        }
    52115211                }
     
    52445244
    52455245        /*DatasetInputs*/
    5246         if (control_analysis && iomodel->Data(WeightsEnum)) {
     5246        if (control_analysis && iomodel->Data(InversionCostFunctionsCoefficientsEnum)) {
    52475247
    52485248                /*Create inputs and add to DataSetInput*/
    5249                 DatasetInput* datasetinput=new DatasetInput(WeightsEnum);
     5249                DatasetInput* datasetinput=new DatasetInput(InversionCostFunctionsCoefficientsEnum);
    52505250                for(i=0;i<num_cm_responses;i++){
    5251                         for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(WeightsEnum)[(penta_vertex_ids[j]-1)*num_cm_responses+i];
    5252                         datasetinput->inputs->AddObject(new PentaVertexInput(WeightsEnum,nodeinputs));
     5251                        for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(InversionCostFunctionsCoefficientsEnum)[(penta_vertex_ids[j]-1)*num_cm_responses+i];
     5252                        datasetinput->inputs->AddObject(new PentaVertexInput(InversionCostFunctionsCoefficientsEnum,nodeinputs));
    52535253                }
    52545254
     
    65956595                                name==VyEnum ||
    65966596                                name==VzEnum ||
    6597                                 name==VxObsEnum ||
    6598                                 name==VyObsEnum ||
    6599                                 name==VzObsEnum ||
     6597                                name==InversionVxObsEnum ||
     6598                                name==InversionVyObsEnum ||
     6599                                name==InversionVzObsEnum ||
    66006600                                name==TemperatureEnum ||
    66016601                                name==FrictionCoefficientEnum ||
     
    75527552                        /*default vx,vy and vz: either observation or 0 */
    75537553                        if(!iomodel->Data(VxEnum)){
    7554                                 if (iomodel->Data(VxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VxObsEnum)[penta_vertex_ids[i]-1]/yts;
     7554                                if (iomodel->Data(InversionVxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVxObsEnum)[penta_vertex_ids[i]-1]/yts;
    75557555                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75567556                                this->inputs->AddInput(new PentaVertexInput(VxEnum,nodeinputs));
     
    75597559                        }
    75607560                        if(!iomodel->Data(VyEnum)){
    7561                                 if (iomodel->Data(VyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VyObsEnum)[penta_vertex_ids[i]-1]/yts;
     7561                                if (iomodel->Data(InversionVyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVyObsEnum)[penta_vertex_ids[i]-1]/yts;
    75627562                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75637563                                this->inputs->AddInput(new PentaVertexInput(VyEnum,nodeinputs));
     
    75667566                        }
    75677567                        if(!iomodel->Data(VzEnum)){
    7568                                 if (iomodel->Data(VzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VzObsEnum)[penta_vertex_ids[i]-1]/yts;
     7568                                if (iomodel->Data(InversionVzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVzObsEnum)[penta_vertex_ids[i]-1]/yts;
    75697569                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75707570                                this->inputs->AddInput(new PentaVertexInput(VzEnum,nodeinputs));
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9679 r9681  
    14561456        /*Retrieve all inputs and parameters*/
    14571457        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    1458         this->parameters->FindParam(&num_responses,NumCmResponsesEnum);
     1458        this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    14591459        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    14601460        Input* thickness_input    = inputs->GetInput(ThicknessEnum);   _assert_(thickness_input);
    1461         Input* thicknessobs_input = inputs->GetInput(ThicknessObsEnum);_assert_(thicknessobs_input);
    1462         Input* weights_input      = inputs->GetInput(WeightsEnum);     _assert_(weights_input);
     1461        Input* thicknessobs_input = inputs->GetInput(InversionThicknessObsEnum);_assert_(thicknessobs_input);
     1462        Input* weights_input      = inputs->GetInput(InversionCostFunctionsCoefficientsEnum);     _assert_(weights_input);
    14631463
    14641464        /* Start  looping on the number of gaussian points: */
     
    15241524        /*Retrieve all inputs and parameters*/
    15251525        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    1526         this->parameters->FindParam(&num_responses,NumCmResponsesEnum);
     1526        this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    15271527        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    1528         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     1528        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    15291529        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    15301530        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    1531         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    1532         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     1531        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     1532        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    15331533
    15341534        /*Get Surface if required by one response*/
     
    17001700        /*Retrieve all inputs and parameters*/
    17011701        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    1702         this->parameters->FindParam(&num_responses,NumCmResponsesEnum);
     1702        this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    17031703        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    1704         Input* weights_input = inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     1704        Input* weights_input = inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    17051705        Input* vx_input      = inputs->GetInput(VxEnum);        _assert_(vx_input);
    17061706        Input* vy_input      = inputs->GetInput(VyEnum);        _assert_(vy_input);
    1707         Input* vxobs_input   = inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    1708         Input* vyobs_input   = inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     1707        Input* vxobs_input   = inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     1708        Input* vyobs_input   = inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    17091709
    17101710        /*Get Surface if required by one response*/
     
    22712271        /*Retrieve all inputs we will be needing: */
    22722272        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    2273         Input* weights_input=inputs->GetInput(WeightsEnum);         _assert_(weights_input);
     2273        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);         _assert_(weights_input);
    22742274        Input* drag_input   =inputs->GetInput(FrictionCoefficientEnum); _assert_(drag_input);
    22752275
     
    27122712        int        *responses = NULL;
    27132713        int         num_responses,resp;
    2714         this->parameters->FindParam(&num_responses,NumCmResponsesEnum);
     2714        this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    27152715        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
    27162716
     
    27562756        GetDofList1(&doflist1[0]);
    27572757        Input* rheologyb_input=matice->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);
    2758         Input* weights_input=inputs->GetInput(WeightsEnum);                _assert_(weights_input);
     2758        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);                _assert_(weights_input);
    27592759
    27602760        /* Start  looping on the number of gaussian points: */
     
    29412941        GetDofList1(&doflist1[0]);
    29422942        Input* dragcoefficient_input=inputs->GetInput(FrictionCoefficientEnum); _assert_(dragcoefficient_input);
    2943         Input* weights_input=inputs->GetInput(WeightsEnum);                 _assert_(weights_input);
     2943        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);                 _assert_(weights_input);
    29442944
    29452945        /* Start  looping on the number of gaussian points: */
     
    31063106
    31073107        /*retrieve some parameters: */
    3108         this->parameters->FindParam(&num_controls,NumControlTypeEnum);
    3109         this->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
     3108        this->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     3109        this->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
    31103110
    31113111        for(int i=0;i<num_controls;i++){
     
    32713271   
    32723272        /*Get parameters: */
    3273         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
    3274         iomodel->Constant(&num_control_type,NumControlTypeEnum);
     3273        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
     3274        iomodel->Constant(&num_control_type,InversionNumControlParametersEnum);
    32753275        iomodel->Constant(&yts,ConstantsYtsEnum);
    3276         iomodel->Constant(&num_cm_responses,NumCmResponsesEnum);
     3276        iomodel->Constant(&num_cm_responses,InversionNumCostFunctionsEnum);
    32773277
    32783278        /*Recover vertices ids needed to initialize inputs*/
     
    32823282
    32833283        /*Control Inputs*/
    3284         if (control_analysis && iomodel->Data(ControlTypeEnum)){
     3284        if (control_analysis && iomodel->Data(InversionControlParametersEnum)){
    32853285                for(i=0;i<num_control_type;i++){
    3286                         switch((int)iomodel->Data(ControlTypeEnum)[i]){
     3286                        switch((int)iomodel->Data(InversionControlParametersEnum)[i]){
    32873287                                case BalancethicknessThickeningRateEnum:
    32883288                                        if (iomodel->Data(BalancethicknessThickeningRateEnum)){
    32893289                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[tria_vertex_ids[j]-1]/yts;
    3290                                                 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    3291                                                 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3290                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3291                                                for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    32923292                                                this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    32933293                                        }
     
    32963296                                        if (iomodel->Data(VxEnum)){
    32973297                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(VxEnum)[tria_vertex_ids[j]-1]/yts;
    3298                                                 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    3299                                                 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3298                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3299                                                for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    33003300                                                this->inputs->AddInput(new ControlInput(VxEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    33013301                                        }
     
    33043304                                        if (iomodel->Data(VyEnum)){
    33053305                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(VyEnum)[tria_vertex_ids[j]-1]/yts;
    3306                                                 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    3307                                                 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3306                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     3307                                                for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
    33083308                                                this->inputs->AddInput(new ControlInput(VyEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    33093309                                        }
     
    33123312                                        if (iomodel->Data(FrictionCoefficientEnum)){
    33133313                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(FrictionCoefficientEnum)[tria_vertex_ids[j]-1];
    3314                                                 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];
    3315                                                 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];
     3314                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];
     3315                                                for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];
    33163316                                                this->inputs->AddInput(new ControlInput(FrictionCoefficientEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    33173317                                        }
     
    33203320                                        /*Matice will take care of it*/ break;
    33213321                                default:
    3322                                         _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(ControlTypeEnum)[i]));
     3322                                        _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i]));
    33233323                        }
    33243324                }
     
    33263326
    33273327        /*DatasetInputs*/
    3328         if (control_analysis && iomodel->Data(WeightsEnum)){
     3328        if (control_analysis && iomodel->Data(InversionCostFunctionsCoefficientsEnum)){
    33293329
    33303330                /*Create inputs and add to DataSetInput*/
    3331                 DatasetInput* datasetinput=new DatasetInput(WeightsEnum);
     3331                DatasetInput* datasetinput=new DatasetInput(InversionCostFunctionsCoefficientsEnum);
    33323332                for(i=0;i<num_cm_responses;i++){
    3333                         for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(WeightsEnum)[(tria_vertex_ids[j]-1)*num_cm_responses+i];
    3334                         datasetinput->inputs->AddObject(new TriaVertexInput(WeightsEnum,nodeinputs));
     3333                        for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(InversionCostFunctionsCoefficientsEnum)[(tria_vertex_ids[j]-1)*num_cm_responses+i];
     3334                        datasetinput->inputs->AddObject(new TriaVertexInput(InversionCostFunctionsCoefficientsEnum,nodeinputs));
    33353335                }
    33363336
     
    39863986                                name==VxEnum ||
    39873987                                name==VyEnum ||
    3988                                 name==VxObsEnum ||
    3989                                 name==VyObsEnum ||
     3988                                name==InversionVxObsEnum ||
     3989                                name==InversionVyObsEnum ||
    39903990                                name==FrictionCoefficientEnum ||
    39913991                                name==GradientEnum ||
     
    44994499        /*Retrieve all inputs we will be needing: */
    45004500        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    4501         Input* weights_input  =inputs->GetInput(WeightsEnum);              _assert_(weights_input);
     4501        Input* weights_input  =inputs->GetInput(InversionCostFunctionsCoefficientsEnum);              _assert_(weights_input);
    45024502        Input* rheologyb_input=matice->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);
    45034503
     
    47174717
    47184718        /*Retrieve all inputs we will be needing: */
    4719         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     4719        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    47204720        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    47214721        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    4722         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    4723         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     4722        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     4723        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    47244724
    47254725        /* Start  looping on the number of gaussian points: */
     
    48084808        /*Retrieve all inputs we will be needing: */
    48094809        inputs->GetParameterValue(&S,SurfaceAreaEnum);
    4810         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     4810        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    48114811        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    48124812        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    4813         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    4814         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     4813        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     4814        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    48154815
    48164816        /* Start  looping on the number of gaussian points: */
     
    48714871
    48724872        /*Retrieve all inputs we will be needing: */
    4873         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     4873        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    48744874        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    48754875        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    4876         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    4877         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     4876        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     4877        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    48784878
    48794879        /* Start  looping on the number of gaussian points: */
     
    49364936
    49374937        /*Retrieve all inputs we will be needing: */
    4938         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     4938        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    49394939        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    49404940        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    4941         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    4942         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     4941        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     4942        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    49434943       
    49444944        /* Start  looping on the number of gaussian points: */
     
    50255025
    50265026        /*Retrieve all inputs we will be needing: */
    5027         Input* weights_input=inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     5027        Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    50285028        Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
    50295029        Input* vy_input     =inputs->GetInput(VyEnum);        _assert_(vy_input);
    5030         Input* vxobs_input  =inputs->GetInput(VxObsEnum);     _assert_(vxobs_input);
    5031         Input* vyobs_input  =inputs->GetInput(VyObsEnum);     _assert_(vyobs_input);
     5030        Input* vxobs_input  =inputs->GetInput(InversionVxObsEnum);     _assert_(vxobs_input);
     5031        Input* vyobs_input  =inputs->GetInput(InversionVyObsEnum);     _assert_(vyobs_input);
    50325032
    50335033        /* Start  looping on the number of gaussian points: */
     
    50875087        /*Retrieve all inputs we will be needing: */
    50885088        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    5089         Input* weights_input  =inputs->GetInput(WeightsEnum);   _assert_(weights_input);
     5089        Input* weights_input  =inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    50905090        Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
    50915091
     
    51305130        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    51315131        Input* thickness_input   =inputs->GetInput(ThicknessEnum);   _assert_(thickness_input);
    5132         Input* thicknessobs_input=inputs->GetInput(ThicknessObsEnum);_assert_(thicknessobs_input);
    5133         Input* weights_input     =inputs->GetInput(WeightsEnum);     _assert_(weights_input);
     5132        Input* thicknessobs_input=inputs->GetInput(InversionThicknessObsEnum);_assert_(thicknessobs_input);
     5133        Input* weights_input     =inputs->GetInput(InversionCostFunctionsCoefficientsEnum);     _assert_(weights_input);
    51345134
    51355135        /* Start  looping on the number of gaussian points: */
     
    52655265                        /*default vx,vy and vz: either observation or 0 */
    52665266                        if(!iomodel->Data(VxEnum)){
    5267                                 if (iomodel->Data(VxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VxObsEnum)[tria_vertex_ids[i]-1]/yts;
     5267                                if (iomodel->Data(InversionVxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVxObsEnum)[tria_vertex_ids[i]-1]/yts;
    52685268                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52695269                                this->inputs->AddInput(new TriaVertexInput(VxEnum,nodeinputs));
     
    52725272                        }
    52735273                        if(!iomodel->Data(VyEnum)){
    5274                                 if (iomodel->Data(VyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VyObsEnum)[tria_vertex_ids[i]-1]/yts;
     5274                                if (iomodel->Data(InversionVyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVyObsEnum)[tria_vertex_ids[i]-1]/yts;
    52755275                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52765276                                this->inputs->AddInput(new TriaVertexInput(VyEnum,nodeinputs));
     
    52795279                        }
    52805280                        if(!iomodel->Data(VzEnum)){
    5281                                 if (iomodel->Data(VzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VzObsEnum)[tria_vertex_ids[i]-1]/yts;
     5281                                if (iomodel->Data(InversionVzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVzObsEnum)[tria_vertex_ids[i]-1]/yts;
    52825282                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52835283                                this->inputs->AddInput(new TriaVertexInput(VzEnum,nodeinputs));
  • issm/trunk/src/c/objects/Materials/Matice.cpp

    r9636 r9681  
    661661        /*Fetch parameters: */
    662662        iomodel->Constant(&dim,DimEnum);
    663         iomodel->Constant(&control_analysis,ControlAnalysisEnum);
    664         iomodel->Constant(&num_control_type,NumControlTypeEnum);
     663        iomodel->Constant(&control_analysis,InversionIscontrolEnum);
     664        iomodel->Constant(&num_control_type,InversionNumControlParametersEnum);
    665665
    666666        /*if 2d*/
     
    686686
    687687                /*Control Inputs*/
    688                 if (control_analysis && iomodel->Data(ControlTypeEnum)){
     688                if (control_analysis && iomodel->Data(InversionControlParametersEnum)){
    689689                        for(i=0;i<num_control_type;i++){
    690                                 switch((int)iomodel->Data(ControlTypeEnum)[i]){
     690                                switch((int)iomodel->Data(InversionControlParametersEnum)[i]){
    691691                                        case MaterialsRheologyBbarEnum:
    692692                                                if (iomodel->Data(MaterialsRheologyBEnum)){
    693                                                         _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(CmMinEnum)); _assert_(iomodel->Data(CmMaxEnum));
     693                                                        _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum));
    694694                                                        for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(MaterialsRheologyBEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)];
    695                                                         for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
    696                                                         for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
     695                                                        for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
     696                                                        for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
    697697                                                        this->inputs->AddInput(new ControlInput(MaterialsRheologyBbarEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    698698                                                }
     
    725725
    726726                /*Control Inputs*/
    727                 if (control_analysis && iomodel->Data(ControlTypeEnum)){
     727                if (control_analysis && iomodel->Data(InversionControlParametersEnum)){
    728728                        for(i=0;i<num_control_type;i++){
    729                                 switch((int)iomodel->Data(ControlTypeEnum)[i]){
     729                                switch((int)iomodel->Data(InversionControlParametersEnum)[i]){
    730730                                        case MaterialsRheologyBbarEnum:
    731731                                                if (iomodel->Data(MaterialsRheologyBEnum)){
    732                                                         _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(CmMinEnum)); _assert_(iomodel->Data(CmMaxEnum));
     732                                                        _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum));
    733733                                                        for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(MaterialsRheologyBEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)];
    734                                                         for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(CmMinEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
    735                                                         for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(CmMaxEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
     734                                                        for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
     735                                                        for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];
    736736                                                        this->inputs->AddInput(new ControlInput(MaterialsRheologyBEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1));
    737737                                                }
  • issm/trunk/src/c/shared/Numerics/UnitConversion.cpp

    r9646 r9681  
    5151                case TimeEnum:        scale=1.0/yts;break; //yr
    5252                case VxEnum:          scale=yts;break; //m/yr
    53                 case VxObsEnum:       scale=yts;break; //m/yr
     53                case InversionVxObsEnum:       scale=yts;break; //m/yr
    5454                case VyEnum:          scale=yts;break; //m/yr
    55                 case VyObsEnum:       scale=yts;break; //m/yr
     55                case InversionVyObsEnum:       scale=yts;break; //m/yr
    5656                case VzEnum:          scale=yts;break; //m/yr
    57                 case VzObsEnum:       scale=yts;break; //m/yr
     57                case InversionVzObsEnum:       scale=yts;break; //m/yr
    5858                case VelEnum:         scale=yts;break; //m/yr
    59                 case VelObsEnum:      scale=yts;break; //m/yr
     59                case InversionVelObsEnum:      scale=yts;break; //m/yr
    6060                case BalancethicknessThickeningRateEnum:  scale=yts;break; //m/yr
    6161                case BasalforcingsMeltingRateEnum:        scale=yts;break; //m/yr
  • issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp

    r9650 r9681  
    2828
    2929        /*retrieve some parameters: */
    30         parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     30        parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3131        parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    3232
  • issm/trunk/src/c/solutions/adjointbalancethickness_core.cpp

    r8288 r9681  
    1919
    2020        /*retrieve parameters:*/
    21         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     21        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2222        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2323
  • issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp

    r9661 r9681  
    2222        /*retrieve parameters:*/
    2323        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    24         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     24        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2525        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2626
  • issm/trunk/src/c/solutions/balancethickness_core.cpp

    r8288 r9681  
    2424        /*recover parameters: */
    2525        femmodel->parameters->FindParam(&dim,DimEnum);
    26         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     26        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2727        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2828
  • issm/trunk/src/c/solutions/bedslope_core.cpp

    r6412 r9681  
    2121        /*Recover some parameters: */
    2222        femmodel->parameters->FindParam(&dim,DimEnum);
    23         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     23        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2424        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2525
  • issm/trunk/src/c/solutions/control_core.cpp

    r9661 r9681  
    4545
    4646        /*Recover parameters used throughout the solution*/
    47         femmodel->parameters->FindParam(&num_controls,NumControlTypeEnum);
    48         femmodel->parameters->FindParam(&num_responses,NumCmResponsesEnum);
    49         femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
    50         femmodel->parameters->FindParam(&responses,NULL,NULL,CmResponsesEnum);
    51         femmodel->parameters->FindParam(&nsteps,NstepsEnum);
    52         femmodel->parameters->FindParam(&maxiter,NULL,MaxiterEnum);
    53         femmodel->parameters->FindParam(&cm_jump,NULL,CmJumpEnum);
    54         femmodel->parameters->FindParam(&eps_cm,EpsCmEnum);
    55         femmodel->parameters->FindParam(&cm_gradient,CmGradientEnum);
     47        femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     48        femmodel->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
     49        femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
     50        femmodel->parameters->FindParam(&responses,NULL,NULL,InversionCostFunctionsEnum);
     51        femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum);
     52        femmodel->parameters->FindParam(&maxiter,NULL,InversionMaxiterPerStepEnum);
     53        femmodel->parameters->FindParam(&cm_jump,NULL,InversionStepThresholdEnum);
     54        femmodel->parameters->FindParam(&eps_cm,InversionCostFunctionThresholdEnum);
     55        femmodel->parameters->FindParam(&cm_gradient,InversionGradientOnlyEnum);
    5656        femmodel->parameters->FindParam(&dim,DimEnum);
    5757        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
     
    114114
    115115        _printf_(VerboseControl(),"%s\n","   preparing final solution");
    116         femmodel->parameters->SetParam(false,ControlAnalysisEnum); //needed to turn control result output in solutioncore
     116        femmodel->parameters->SetParam(false,InversionIscontrolEnum); //needed to turn control result output in solutioncore
    117117        solutioncore(femmodel);
    118118
     
    121121                for(i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]);
    122122                femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0));
    123                 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,ControlTypeEnum,EnumToStringx(control_type),1,0));
     123                //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0));
    124124        }
    125125
     
    134134       
    135135        /*control_core might be used in Qmu, so leave everything similar to where it started: */
    136         femmodel->parameters->SetParam(true,ControlAnalysisEnum);
     136        femmodel->parameters->SetParam(true,InversionIscontrolEnum);
    137137}
  • issm/trunk/src/c/solutions/controlrestart.cpp

    r9650 r9681  
    1515
    1616        /*retrieve output file name: */
    17         femmodel->parameters->FindParam(&num_controls,NumControlTypeEnum);
    18         femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
    19         femmodel->parameters->FindParam(&nsteps,NstepsEnum);
     17        femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     18        femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
     19        femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum);
    2020        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    2121
     
    2626                for(int i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]);
    2727                femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0));
    28                 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,ControlTypeEnum,EnumToStringx(control_type),1,0));
     28                //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0));
    2929
    3030                /*write to disk: */
  • issm/trunk/src/c/solutions/controltao_core.cpp

    r9636 r9681  
    106106        /*End Temp*/
    107107
    108         InputUpdateFromConstantx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,SurfaceAbsVelMisfitEnum,CmResponseEnum);
     108        InputUpdateFromConstantx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,SurfaceAbsVelMisfitEnum,InversionCostFunctionEnum);
    109109        InputUpdateFromVectorx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,X,MaterialsRheologyBbarEnum,VertexEnum);
    110110        adjointdiagnostic_core(user->femmodel);
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r9680 r9681  
    3333        femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum);
    3434        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    35         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     35        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3636        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3737        femmodel->parameters->FindParam(&numoutputs,DiagnosticNumRequestedOutputsEnum);
  • issm/trunk/src/c/solutions/enthalpy_core.cpp

    r9628 r9681  
    2828        femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);
    2929        femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    30         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     30        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3131        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3232
  • issm/trunk/src/c/solutions/gradient_core.cpp

    r9356 r9681  
    2929        /*retrieve parameters:*/
    3030        femmodel->parameters->FindParam(&control_steady,ControlSteadyEnum);
    31         femmodel->parameters->FindParam(&num_controls,NumControlTypeEnum);
    32         femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
    33         femmodel->parameters->FindParam(&optscal_list,NULL,NULL,OptscalEnum);
     31        femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     32        femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
     33        femmodel->parameters->FindParam(&optscal_list,NULL,NULL,InversionGradientScalingEnum);
    3434
    3535        /*Compute and norm gradient of all controls*/
  • issm/trunk/src/c/solutions/hydrology_core.cpp

    r9628 r9681  
    2626        femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);
    2727        femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    28         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     28        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2929        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3030
  • issm/trunk/src/c/solutions/issm.cpp

    r9650 r9681  
    8888        femmodel->parameters->FindParam(&waitonlock,WaitonlockEnum);
    8989        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    90         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     90        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    9191
    9292        MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
  • issm/trunk/src/c/solutions/prognostic_core.cpp

    r6412 r9681  
    2121       
    2222        /*recover parameters: */
    23         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     23        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2424        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2525
  • issm/trunk/src/c/solutions/steadystate_core.cpp

    r9680 r9681  
    2727        /* recover parameters:*/
    2828        femmodel->parameters->FindParam(&dim,DimEnum);
    29         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     29        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3030        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3131        femmodel->parameters->FindParam(&maxiter,SteadystateMaxiterEnum);
  • issm/trunk/src/c/solutions/surfaceslope_core.cpp

    r6412 r9681  
    2121        /*Recover some parameters: */
    2222        femmodel->parameters->FindParam(&dim,DimEnum);
    23         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     23        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    2424        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    2525
  • issm/trunk/src/c/solutions/thermal_core.cpp

    r9650 r9681  
    2929        femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);
    3030        femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    31         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     31        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3232        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3333        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
  • issm/trunk/src/c/solutions/transient_core.cpp

    r9680 r9681  
    3434        femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    3535        femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
    36         femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
     36        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3737        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3838        femmodel->parameters->FindParam(&output_frequency,OutputFrequencyEnum);
  • issm/trunk/src/m/classes/model/model.m

    r9679 r9681  
    88                 % {{{1
    99                 %Careful here: no other class should be used as default value this is a bug of matlab
    10                  cluster   = modelfield('default',0,'marshall',false);
    11                  verbose   = modelfield('default',0,'marshall',true,'preprocess','marshallverbose','format','Integer');
    12                  results   = modelfield('default',0,'marshall',false);
    13                  solver    = modelfield('default',0,'marshall',false);
    14                  debug     = modelfield('default',0,'marshall',false);
    15                  constants = modelfield('default',0,'marshall',true);
    16                  flaim     = modelfield('default',0,'marshall',false);
    17                  surfaceforcings = modelfield('default',0,'marshall',true);
    18                  basalforcings   = modelfield('default',0,'marshall',true);
    19                  friction  = modelfield('default',0,'marshall',true);
    20                  private   = modelfield('default',0,'marshall',false);
    21                  rifts     = modelfield('default',0,'marshall',true);
    22                  hydrology = modelfield('default',0,'marshall',true);
    23                  settings  = modelfield('default',0,'marshall',true);
    24                  radaroverlay = modelfield('default',0,'marshall',false);
    25                  thermal   = modelfield('default',0,'marshall',true);
    26                  miscellaneous = modelfield('default',0,'marshall',true);
    27                  timestepping = modelfield('default',0,'marshall',true);
    28                  groundingline = modelfield('default',0,'marshall',true);
    29                  prognostic = modelfield('default',0,'marshall',true);
    30                  materials = modelfield('default',0,'marshall',true);
    31                  mask = modelfield('default',0,'marshall',true);
    32                  qmu = modelfield('default',0,'marshall',true);
     10                 cluster          = modelfield('default',0,'marshall',false);
     11                 verbose          = modelfield('default',0,'marshall',true,'preprocess','marshallverbose','format','Integer');
     12                 results          = modelfield('default',0,'marshall',false);
     13                 solver           = modelfield('default',0,'marshall',false);
     14                 debug            = modelfield('default',0,'marshall',false);
     15                 constants        = modelfield('default',0,'marshall',true);
     16                 flaim            = modelfield('default',0,'marshall',false);
     17                 surfaceforcings  = modelfield('default',0,'marshall',true);
     18                 basalforcings    = modelfield('default',0,'marshall',true);
     19                 friction         = modelfield('default',0,'marshall',true);
     20                 private          = modelfield('default',0,'marshall',false);
     21                 rifts            = modelfield('default',0,'marshall',true);
     22                 hydrology        = modelfield('default',0,'marshall',true);
     23                 settings         = modelfield('default',0,'marshall',true);
     24                 radaroverlay     = modelfield('default',0,'marshall',false);
     25                 thermal          = modelfield('default',0,'marshall',true);
     26                 miscellaneous    = modelfield('default',0,'marshall',true);
     27                 timestepping     = modelfield('default',0,'marshall',true);
     28                 groundingline    = modelfield('default',0,'marshall',true);
     29                 prognostic       = modelfield('default',0,'marshall',true);
     30                 materials        = modelfield('default',0,'marshall',true);
     31                 mask             = modelfield('default',0,'marshall',true);
     32                 qmu              = modelfield('default',0,'marshall',true);
    3333                 balancethickness = modelfield('default',0,'marshall',true);
    34                  flowequation = modelfield('default',0,'marshall',true);
    35                  steadystate = modelfield('default',0,'marshall',true);
    36                  transient = modelfield('default',0,'marshall',true);
     34                 flowequation     = modelfield('default',0,'marshall',true);
     35                 steadystate      = modelfield('default',0,'marshall',true);
     36                 inversion        = modelfield('default',0,'marshall',true);
     37                 transient        = modelfield('default',0,'marshall',true);
    3738                 diagnostic = modelfield('default',0,'marshall',true);
    3839
     
    9798                 nodeonboundary = modelfield('default',NaN,'marshall',false);
    9899
    99                  %Observations
    100                  vx_obs                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    101                  vy_obs                    = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    102                  vel_obs                   = modelfield('default',NaN,'marshall',false);
    103 
    104                  thickness_obs             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    105 
    106100                 %Statics parameters
    107101                 connectivity             = modelfield('default',0,'marshall',true,'format','Integer');
    108102
    109                  %Control
    110                  control_analysis = modelfield('default',0,'marshall',true,'format','Boolean');
    111                  control_type     = modelfield('default',NaN,'marshall',true,'preprocess','marshallcontroltype','format','DoubleMat','mattype',3);
    112                  weights          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    113                  nsteps           = modelfield('default',0,'marshall',true,'format','Integer');
    114                  maxiter          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    115                  cm_responses     = modelfield('default',NaN,'marshall',true,'preprocess','marshallcmresponses','format','DoubleMat','mattype',3);
    116                  optscal          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    117                  eps_cm           = modelfield('default',0,'marshall',true,'format','Double');
    118                  cm_min           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    119                  cm_max           = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    120                  cm_jump          = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    121                  cm_gradient      = modelfield('default',0,'marshall',true,'format','Boolean');
    122                  num_control_type               = modelfield('default',0,'marshall',true,'format','Integer');
    123                  num_cm_responses               = modelfield('default',0,'marshall',true,'format','Integer');
    124103
    125104                 %Results fields
     
    254233                         disp(sprintf('   Parameters:'));
    255234                         disp(sprintf('%s%s%s','      Boundary conditions: type ''',inputname(1),'.bc'' to display'));
    256                          disp(sprintf('%s%s%s','      Observations: type ''',inputname(1),'.obs'' to display'));
    257235                         disp(sprintf('%s%s%s','      Materials: type ''',inputname(1),'.mat'' to display'));
    258236                         disp(sprintf('%s%s%s','      Parameters: type ''',inputname(1),'.par'' to display'));
     
    302280                         if isfield(structmd,'basal_melting_rate_correction'), md.basalforcings.melting_rate_correction=structmd.basal_melting_rate_correction; end
    303281                         if isfield(structmd,'geothermalflux'), md.basalforcings.geothermalflux=structmd.geothermalflux; end
     282                         if isfield(structmd,'drag'), md.friction.coefficient=structmd.drag; end
    304283                         if isfield(structmd,'drag_coefficient'), md.friction.coefficient=structmd.drag_coefficient; end
    305284                         if isfield(structmd,'drag_p'), md.friction.p=structmd.drag_p; end
     
    357336                         if isfield(structmd,'elements_type'), md.flowequation.element_equation=structmd.elements_type; end
    358337                         if isfield(structmd,'vertices_type'), md.flowequation.vertex_equation=structmd.vertices_type; end
    359                          if isfield(structmd,'eps_rel'), md.flowequation.reltol=structmd.eps_rel; end
    360                          if isfield(structmd,'max_steadystate_iterations'), md.flowequation.maxiter=structmd.max_steadystate_iterations; end
     338                         if isfield(structmd,'eps_rel'), md.steadystate.reltol=structmd.eps_rel; end
     339                         if isfield(structmd,'max_steadystate_iterations'), md.steadystate.maxiter=structmd.max_steadystate_iterations; end
    361340                         if isfield(structmd,'isdiagnostic'), md.transient.isdiagnostic=structmd.isdiagnostic; end
    362341                         if isfield(structmd,'isprognostic'), md.transient.isprognostic=structmd.isprognostic; end
    363342                         if isfield(structmd,'isthermal'), md.transient.isthermal=structmd.isthermal; end
     343                         if isfield(structmd,'control_analysis'), md.inversion.iscontrol=structmd.control_analysis; end
     344                         if isfield(structmd,'weights'), md.inversion.cost_functions_coefficients=structmd.weights; end
     345                         if isfield(structmd,'nsteps'), md.inversion.nsteps=structmd.nsteps; end
     346                         if isfield(structmd,'maxiter_per_step'), md.inversion.maxiter_per_step=structmd.maxiter_per_step; end
     347                         if isfield(structmd,'cm_min'), md.inversion.min_parameters=structmd.cm_min; end
     348                         if isfield(structmd,'cm_max'), md.inversion.max_parameters=structmd.cm_max; end
     349                         if isfield(structmd,'vx_obs'), md.inversion.vx_obs=structmd.vx_obs; end
     350                         if isfield(structmd,'vy_obs'), md.inversion.vy_obs=structmd.vy_obs; end
     351                         if isfield(structmd,'vel_obs'), md.inversion.vel_obs=structmd.vel_obs; end
     352                         if isfield(structmd,'thickness_obs'), md.inversion.thickness_obs=structmd.thickness_obs; end
    364353
    365354                         %Field changes
     
    412401                                 if (structmd.groundingline_migration==274), md.groundingline.migration='SoftMigration'; end
    413402                         end
    414                          if isnumeric(md.control_type),
    415                                  if (structmd.control_type==143), md.control_type={'FrictionCoefficient'}; end
    416                                  if (structmd.control_type==190), md.control_type={'RheologyBbar'}; end
    417                                  if (structmd.control_type==147), md.control_type={'Dhdt'}; end
    418                          end
    419                          if ismember(structmd.cm_responses(end,end),[165:170 383 388 389]),
    420                                  pos=find(structmd.cm_responses==166); md.control_type(pos)=101;
    421                                  pos=find(structmd.cm_responses==167); md.control_type(pos)=102;
    422                                  pos=find(structmd.cm_responses==168); md.control_type(pos)=103;
    423                                  pos=find(structmd.cm_responses==169); md.control_type(pos)=104;
    424                                  pos=find(structmd.cm_responses==170); md.control_type(pos)=105;
    425                                  pos=find(structmd.cm_responses==165); md.control_type(pos)=201;
    426                                  pos=find(structmd.cm_responses==389); md.control_type(pos)=501;
    427                                  pos=find(structmd.cm_responses==388); md.control_type(pos)=502;
    428                                  pos=find(structmd.cm_responses==382); md.control_type(pos)=503;
     403                         if isfield(structmd,'control_type') & isnumeric(structmd.control_type),
     404                                 if (structmd.control_type==143), md.inversion.control_parameters={'FrictionCoefficient'}; end
     405                                 if (structmd.control_type==190), md.inversion.control_parameters={'RheologyBbar'}; end
     406                                 if (structmd.control_type==147), md.inversion.control_parameters={'Thickeningrate'}; end
     407                         end
     408                         if isfield(structmd,'cost_functions') & ismember(structmd.cm_responses(end,end),[165:170 383 388 389]),
     409                                 pos=find(structmd.cm_responses==166); md.inversion.cost_functions(pos)=101;
     410                                 pos=find(structmd.cm_responses==167); md.inversion.cost_functions(pos)=102;
     411                                 pos=find(structmd.cm_responses==168); md.inversion.cost_functions(pos)=103;
     412                                 pos=find(structmd.cm_responses==169); md.inversion.cost_functions(pos)=104;
     413                                 pos=find(structmd.cm_responses==170); md.inversion.cost_functions(pos)=105;
     414                                 pos=find(structmd.cm_responses==165); md.inversion.cost_functions(pos)=201;
     415                                 pos=find(structmd.cm_responses==389); md.inversion.cost_functions(pos)=501;
     416                                 pos=find(structmd.cm_responses==388); md.inversion.cost_functions(pos)=502;
     417                                 pos=find(structmd.cm_responses==382); md.inversion.cost_functions(pos)=503;
    429418                         end
    430419
     
    461450
    462451                         %initialize subclasses
    463                          md.cluster=none;
    464                          md.solver=solver;
    465                          md.solver=addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions);
    466                          md.results=struct();
    467                          md.debug=debug;
    468                          md.constants=constants;
    469                          md.flaim=flaim;
    470                          md.surfaceforcings=surfaceforcings;
    471                          md.basalforcings=basalforcings;
    472                          md.friction=friction;
    473                          md.private=private;
    474                          md.rifts=rifts;
    475                          md.hydrology=hydrology;
    476                          md.settings=settings;
    477                          md.radaroverlay=radaroverlay;
    478                          md.thermal=thermal;
    479                          md.miscellaneous=miscellaneous;
    480                          md.timestepping=timestepping;
    481                          md.groundingline=groundingline;
    482                          md.prognostic=prognostic;
    483                          md.materials=materials;
    484                          md.mask=mask;
    485                          md.qmu=qmu;
    486                          md.balancethickness=balancethickness;
    487                          md.flowequation=flowequation;
    488                          md.steadystate=steadystate;
    489                          md.transient=transient;
     452                         md.cluster          = none;
     453                         md.solver           = solver;
     454                         md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions);
     455                         md.results          = struct();
     456                         md.debug            = debug;
     457                         md.constants        = constants;
     458                         md.flaim            = flaim;
     459                         md.surfaceforcings  = surfaceforcings;
     460                         md.basalforcings    = basalforcings;
     461                         md.friction         = friction;
     462                         md.private          = private;
     463                         md.rifts            = rifts;
     464                         md.hydrology        = hydrology;
     465                         md.settings         = settings;
     466                         md.radaroverlay     = radaroverlay;
     467                         md.thermal          = thermal;
     468                         md.miscellaneous    = miscellaneous;
     469                         md.timestepping     = timestepping;
     470                         md.groundingline    = groundingline;
     471                         md.prognostic       = prognostic;
     472                         md.materials        = materials;
     473                         md.mask             = mask;
     474                         md.qmu              = qmu;
     475                         md.balancethickness = balancethickness;
     476                         md.flowequation     = flowequation;
     477                         md.steadystate      = steadystate;
     478                         md.inversion        = inversion;
     479                         md.transient        = transient;
    490480                         md.diagnostic=diagnostic;
    491481
     
    508498                         md.minh=1;
    509499
    510                          %Control
    511 
    512                          %parameter to be inferred by control methods (only
    513                          %drag and B are supported yet)
    514                          md.control_type={'FrictionCoefficient'};
    515 
    516                          %number of steps in the control methods
    517                          md.nsteps=20;
    518 
    519                          %maximum number of iteration in the optimization algorithm for
    520                          %each step
    521                          md.maxiter=20*ones(md.nsteps,1);
    522 
    523                          %the inversed parameter is updated as follows:
    524                          %new_par=old_par + optscal(n)*C*gradient with C in [0 1];
    525                          %usually the optscal must be of the order of magnitude of the
    526                          %inversed parameter (10^8 for B, 50 for drag) and can be decreased
    527                          %after the first iterations
    528                          md.optscal=50*ones(md.nsteps,1);
    529 
    530                          %several responses can be used:
    531                          md.cm_responses=101*ones(md.nsteps,1);
    532 
    533                          %cm_jump is used to speed up control method. When
    534                          %misfit(1)/misfit(0) < md.cm_jump, we go directly to
    535                          %the next step
    536                          md.cm_jump=.7*ones(md.nsteps,1); %30 per cent decrement.
    537 
    538                          %stop control solution at the gradient computation and return it?
    539                          md.cm_gradient=0;
    540 
    541                          %eps_cm is a criteria to stop the control methods.
    542                          %if J[n]-J[n-1]/J[n] < criteria, the control run stops
    543                          %NaN if not applied
    544                          md.eps_cm=NaN; %not activated
    545 
    546500                         %How often to save results, default is 1 so save every step
    547501                         md.output_frequency=1;
    548 
    549                          %Parallelisation parameters
    550 
    551                          %cluster set as none for serial
    552502
    553503                         %this option can be activated to load automatically the results
     
    556506                         %0 to desactivate
    557507                         md.waitonlock=Inf;
    558 
    559508                 end
    560509                 %}}}
     
    568517                                 if(strcmp(index1.subs,'par')), displayparameters(md);return; end
    569518                                 if(strcmp(index1.subs,'res')), displayresults(md);return; end
    570                                  if(strcmp(index1.subs,'obs')), displayobservations(md);return; end
    571                                  if(strcmp(index1.subs,'control')), displaycontrol(md);return; end
    572519                                 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end
    573520                         end
  • issm/trunk/src/m/classes/verbose.m

    r8587 r9681  
    4343                                        if strcmpi(binary,'all'),
    4444                                                binary=2^11-1; %all ones
     45                                                verbose=BinaryToVerbose(verbose,binary);
     46                                                verbose.solver=false; %Do not use by default
    4547                                        else
    4648                                                binary=bin2dec(binary);
     49                                                verbose=BinaryToVerbose(verbose,binary);
    4750                                        end
    4851                                end
    49                                 verbose=BinaryToVerbose(verbose,binary);
    50 
    5152                        else
    5253
  • issm/trunk/src/m/enum/EnumToModelField.m

    r9650 r9681  
    1717                case BalancethicknessThickeningRateEnum: string='dhdt'; return
    1818                case VxEnum(), string='vx'; return
    19                 case VxObsEnum(), string='vx_obs'; return
     19                case InversionVxObsEnum(), string='vx_obs'; return
    2020                case VyEnum(), string='vy'; return
    21                 case VyObsEnum(), string='vy_obs'; return
     21                case InversionVyObsEnum(), string='vy_obs'; return
    2222                case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return
    2323      case SurfaceforcingsAccumulationRateEnum(), string='surface_accumulation_rate'; return
  • issm/trunk/src/m/model/BasinConstrain.m

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

    r9679 r9681  
    4848
    4949%all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd.
    50 md.diagnostic.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);
    51 md.diagnostic.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);
     50md.diagnostic.spcvx(vertexnotondomain)=md.inversion.vx_obs(vertexnotondomain);
     51md.diagnostic.spcvy(vertexnotondomain)=md.inversion.vy_obs(vertexnotondomain);
    5252md.mask.elementonwater(elementnotondomain)=1;
    5353
     
    5656numpos=unique(md.elements(pos,:));
    5757nodes=setdiff(1:1:md.numberofnodes,numpos);
    58 md.diagnostic.spcvx(nodes)=md.vx_obs(nodes);
    59 md.diagnostic.spcvy(nodes)=md.vy_obs(nodes);
    60 
     58md.diagnostic.spcvx(nodes)=md.inversion.vx_obs(nodes);
     59md.diagnostic.spcvy(nodes)=md.inversion.vy_obs(nodes);
    6160
    6261%make sure any node with NaN velocity is spc'd:
    6362%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.
    64 pos=find(isnan(md.vel_obs_raw));
    65 md.diagnostic.spcvx(pos)=md.vx_obs(pos);
    66 md.diagnostic.spcvy(pos)=md.vy_obs(pos);
     63pos=find(isnan(md.inversion.vel_obs_raw));
     64md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
     65md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos);
    6766
    6867%iceshelves: any vertex on floating ice is spc'd
    6968pos=find(md.mask.vertexongroundedice);
    70 md.diagnostic.spcvx(pos)=md.vx_obs(pos);
    71 md.diagnostic.spcvy(pos)=md.vy_obs(pos);
     69md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
     70md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos);
    7271
    7372%make sure icefronts that are completely spc'd are taken out:
  • issm/trunk/src/m/model/bamg.m

    r9654 r9681  
    4646%   Examples:
    4747%      md=bamg(md,'domain','DomainOutline.exp','hmax',3000);
    48 %      md=bamg(md,'field',[md.vel_obs md.thickness],'hmax',20000,'hmin',1000);
     48%      md=bamg(md,'field',[md.inversion.vel_obs md.thickness],'hmax',20000,'hmin',1000);
    4949%      md=bamg(md,'metric',A,'hmin',1000,'hmax',20000,'gradation',3,'anisomax',1);
    5050
  • issm/trunk/src/m/model/collapse.m

    r9679 r9681  
    2626
    2727%observations
    28 if ~isnan(md.vx_obs), md.vx_obs=project2d(md,md.vx_obs,md.numlayers); end;
    29 if ~isnan(md.vy_obs), md.vy_obs=project2d(md,md.vy_obs,md.numlayers); end;
    30 if ~isnan(md.vel_obs), md.vel_obs=project2d(md,md.vel_obs,md.numlayers); end;
     28if ~isnan(md.inversion.vx_obs), md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers); end;
     29if ~isnan(md.inversion.vy_obs), md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers); end;
     30if ~isnan(md.inversion.vel_obs), md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.numlayers); end;
    3131if ~isnan(md.surfaceforcings.mass_balance),
    3232        md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.numlayers);
  • issm/trunk/src/m/model/extrude.m

    r9679 r9681  
    131131
    132132%observations
    133 md.vx_obs=project3d(md,'vector',md.vx_obs,'type','node');
    134 md.vy_obs=project3d(md,'vector',md.vy_obs,'type','node');
    135 md.vel_obs=project3d(md,'vector',md.vel_obs,'type','node');
     133md.inversion.vx_obs=project3d(md,'vector',md.inversion.vx_obs,'type','node');
     134md.inversion.vy_obs=project3d(md,'vector',md.inversion.vy_obs,'type','node');
     135md.inversion.vel_obs=project3d(md,'vector',md.inversion.vel_obs,'type','node');
    136136md.surfaceforcings.mass_balance=project3d(md,'vector',md.surfaceforcings.mass_balance,'type','node');
    137137md.surfaceforcings.accumulation_rate=project3d(md,'vector',md.surfaceforcings.accumulation_rate,'type','node');
     
    209209md.mask.elementonwater=project3d(md,'vector',md.mask.elementonwater,'type','element');
    210210md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node');
    211 if ~isnan(md.weights),md.weights=project3d(md,'vector',md.weights,'type','node');end;
     211if ~isnan(md.inversion.cost_functions_coefficients),md.inversion.cost_functions_coefficients=project3d(md,'vector',md.inversion.cost_functions_coefficients,'type','node');end;
    212212
    213213%Put lithostatic pressure is there is an existing pressure
  • issm/trunk/src/m/model/graddetection.m

    r7629 r9681  
    1414
    1515%plug optimized parameter in model.
    16 md2.(EnumToModelField(md2.results.DiagnosticAnalysis.control_type))=parameter1;
     16md2.(EnumToModelField(md2.results.DiagnosticAnalysis.inversion.control_parameters))=parameter1;
    1717
    1818%put nsteps to 1:
  • issm/trunk/src/m/model/ismodelselfconsistent.m

    r9679 r9681  
    8383%NO NAN {{{1
    8484fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',...
    85         'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem','nsteps','maxiter',...
     85        'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem','inversion.nsteps','inversion.maxiter_per_step',...
    8686        'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'};
    8787checknan(md,fields);
     
    9090fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',...
    9191        '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'};
     92        'diagnostic.abstol','inversion.nsteps','inversion.maxiter_per_step',...
     93        'settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'};
    9394checkgreater(md,fields,0);
    9495%}}}
    9596%FIELDS > 0 {{{1
    9697fields={'numberofelements','numberofnodes','elements','friction.p',...
    97         'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','maxiter'};
     98        'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','inversion.maxiter_per_step'};
    9899checkgreaterstrict(md,fields,0);
    99100%}}}
     
    201202%}}}
    202203%CONTROL{{{1
    203 if md.control_analysis,
     204if md.inversion.iscontrol,
    204205
    205206        %CONTROL TYPE
    206         num_controls=numel(md.control_type);
    207         num_costfunc=size(md.cm_responses,2);
    208         if ~iscell(md.control_type)
    209                 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be a cell of strings']);
    210         end
    211         if ~ismember(md.control_type,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
    212                 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
     207        num_controls=numel(md.inversion.control_parameters);
     208        num_costfunc=size(md.inversion.cost_functions,2);
     209        if ~iscell(md.inversion.control_parameters)
     210                message(['model not consistent: model ' md.miscellaneous.name ' inversion.control_parameters field should be a cell of strings']);
     211        end
     212        if ~ismember(md.inversion.control_parameters,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});
     213                message(['model not consistent: model ' md.miscellaneous.name ' inversion.control_parameters field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);
    213214        end
    214215
    215216        %LENGTH CONTROL FIELDS
    216         fields={'maxiter','cm_jump'};
    217         checksize(md,fields,[md.nsteps 1]);
    218         fields={'cm_responses'};
    219         checksize(md,fields,[md.nsteps num_costfunc]);
    220         fields={'optscal'};
    221         checksize(md,fields,[md.nsteps num_controls]);
    222         fields={'cm_min','cm_max'};
     217        fields={'inversion.maxiter_per_step','inversion.step_threshold'};
     218        checksize(md,fields,[md.inversion.nsteps 1]);
     219        fields={'inversion.cost_functions'};
     220        checksize(md,fields,[md.inversion.nsteps num_costfunc]);
     221        fields={'inversion.gradient_scaling'};
     222        checksize(md,fields,[md.inversion.nsteps num_controls]);
     223        fields={'inversion.min_parameters','inversion.max_parameters'};
    223224        checksize(md,fields,[md.numberofnodes num_controls]);
    224225
    225226        %RESPONSES
    226         checkvalues(md,{'cm_responses'},[101:105 201 501:503]);
     227        checkvalues(md,{'inversion.cost_functions'},[101:105 201 501:503]);
    227228
    228229        %WEIGHTS
    229         fields={'weights'};
     230        fields={'inversion.cost_functions_coefficients'};
    230231        checksize(md,fields,[md.numberofnodes num_costfunc]);
    231232        checkgreater(md,fields,0);
     
    233234        %OBSERVED VELOCITIES
    234235        if md.private.solution==BalancethicknessSolutionEnum
    235                 fields={'thickness_obs'};
     236                fields={'inversion.thickness_obs'};
    236237                checksize(md,fields,[md.numberofnodes 1]);
    237238                checknan(md,fields);
    238239        else
    239                 fields={'vx_obs','vy_obs'};
     240                fields={'inversion.vx_obs','inversion.vy_obs'};
    240241                checksize(md,fields,[md.numberofnodes 1]);
    241242                checknan(md,fields);
     
    623624                                        disp('!!! WARNING: cm_min must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:');
    624625                                        disp('!!! ');
    625                                         disp('!!! md.cm_min=md.cm_min*ones(md.numberofnodes,1);');
     626                                        disp('!!! md.inversion.min_parameters=md.inversion.min_parameters*ones(md.numberofnodes,1);');
    626627                                        disp('!!! ');
    627628                                end
     
    631632                                        disp('!!! WARNING: cm_max must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:');
    632633                                        disp('!!! ');
    633                                         disp('!!! md.cm_max=md.cm_max*ones(md.numberofnodes,1);');
     634                                        disp('!!! md.inversion.max_parameters=md.inversion.max_parameters*ones(md.numberofnodes,1);');
    634635                                        disp('!!! ');
    635636                                end
  • issm/trunk/src/m/model/mechanicalproperties.m

    r9661 r9681  
    1111%   Example:
    1212%      md=mechanicalproperties(md,md.vx,md.vy);
    13 %      md=mechanicalproperties(md,md.vx_obs,md.vy_obs);
     13%      md=mechanicalproperties(md,md.inversion.vx_obs,md.inversion.vy_obs);
    1414
    1515%some checks
  • issm/trunk/src/m/model/mesh/meshyams.m

    r9619 r9681  
    127127end
    128128if strcmpi(Names.interp,'node'),
    129         md.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
    130         md.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
     129        md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
     130        md.inversion.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
    131131else
    132         md.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
    133         md.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
     132        md.inversion.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);
     133        md.inversion.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);
    134134end
    135 md.vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2);
     135md.inversion.vel_obs=sqrt(md.inversion.vx_obs.^2+md.inversion.vy_obs.^2);
    136136
    137137%deal with rifts
  • issm/trunk/src/m/model/misfit.m

    r9597 r9681  
    1515        vx=md.vx;
    1616        vy=md.vy;
    17         vx_obs=md.vx_obs;
    18         vy_obs=md.vy_obs;
     17        vx_obs=md.inversion.vx_obs;
     18        vy_obs=md.inversion.vy_obs;
    1919else
    2020        elements=md.elements2d;
     
    2323        vx=project2d(md,md.vx,md.numlayers);
    2424        vy=project2d(md,md.vy,md.numlayers);
    25         vx_obs=project2d(md,md.vx_obs,md.numlayers);
    26         vy_obs=project2d(md,md.vy_obs,md.numlayers);
     25        vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers);
     26        vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers);
    2727end
    2828
  • issm/trunk/src/m/model/parametercontroloptimization.m

    r9610 r9681  
    3030md2.eps_cm=NaN;
    3131md2.nsteps=getfieldvalue(options,'nsteps',5);
    32 md2.control_type=getfieldvalue(options,'md2.control_type',{'FrictionCoefficient'});
     32md2.inversion.control_parameters=getfieldvalue(options,'md2.inversion.control_parameters',{'FrictionCoefficient'});
    3333md2.maxiter=10*ones(md2.nsteps,1);
    3434md2.cm_jump=0.99*ones(md2.nsteps,1);
    35 md2.control_analysis=1;
     35md2.inversion.iscontrol=1;
    3636md2.weights=ones(md2.numberofnodes,1);
    3737
     
    6767%load final parameters onto initial model
    6868md.fit    =fit_final;
    69 md.cm_max =cmmax_final;
    70 md.optscal=optscal_final;
     69md.inversion.max_parameters =cmmax_final;
     70md.inversion.gradient_scaling=optscal_final;
  • issm/trunk/src/m/model/parameterization/parametercontrolB.m

    r9542 r9681  
    2121
    2222%control type
    23 md.control_type={'RheologyBbar'};
     23md.inversion.control_parameters={'RheologyBbar'};
    2424
    2525%weights
    2626weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1));
    2727if (length(weights)~=md.numberofnodes)
    28         md.weights=ones(md.numberofnodes,1);
     28        md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
    2929else
    30         md.weights=weights;
     30        md.inversion.cost_functions_coefficients=weights;
    3131end
    3232
     
    3434nsteps=getfieldvalue(options,'nsteps',100);
    3535if (length(nsteps)~=1 | nsteps<=0 | floor(nsteps)~=nsteps)
    36         md.nsteps=100;
     36        md.inversion.nsteps=100;
    3737else
    38         md.nsteps=nsteps;
     38        md.inversion.nsteps=nsteps;
    3939end
    4040
     
    4343cm_min=getfieldvalue(options,'cm_min',paterson(273.15+5)*ones(md.numberofnodes,1));
    4444if (length(cm_min)==1)
    45         md.cm_min=cm_min*ones(md.numberofnodes,1);
     45        md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1);
    4646elseif (length(cm_min)==md.numberofnodes)
    47         md.cm_min=cm_min;
     47        md.inversion.min_parameters=cm_min;
    4848else
    49         md.cm_min=cm_min;
     49        md.inversion.min_parameters=cm_min;
    5050end
    5151
     
    5353cm_max=getfieldvalue(options,'cm_max',paterson(273.15-70)*ones(md.numberofnodes,1));
    5454if (length(cm_max)==1)
    55         md.cm_max=cm_max*ones(md.numberofnodes,1);
     55        md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1);
    5656elseif (length(cm_max)==md.numberofnodes)
    57         md.cm_max=cm_max;
     57        md.inversion.max_parameters=cm_max;
    5858else
    59         md.cm_max=cm_max;
     59        md.inversion.max_parameters=cm_max;
    6060end
    6161
     
    6363eps_cm=getfieldvalue(options,'eps_cm',NaN);
    6464if (length(eps_cm)~=1 | eps_cm<0 )
    65         md.eps_cm=NaN;
     65        md.inversion.cost_function_threshold=NaN;
    6666else
    67         md.eps_cm=eps_cm;
     67        md.inversion.cost_function_threshold=eps_cm;
    6868end
    6969
    7070%maxiter
    71 maxiter=getfieldvalue(options,'maxiter',10*ones(md.nsteps,1));
     71maxiter=getfieldvalue(options,'maxiter',10*ones(md.inversion.nsteps,1));
    7272if (any(maxiter<0) | any(floor(maxiter)~=maxiter))
    73         md.maxiter=10*ones(md.nsteps,1);
     73        md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps,1);
    7474else
    75         md.maxiter=repmat(maxiter(:),md.nsteps,1);
    76         md.maxiter(md.nsteps+1:end)=[];
     75        md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1);
     76        md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[];
    7777end
    7878
    7979%cm_jump
    80 cm_jump=getfieldvalue(options,'cm_jump',0.9*ones(md.nsteps,1));
     80cm_jump=getfieldvalue(options,'cm_jump',0.9*ones(md.inversion.nsteps,1));
    8181if ~isreal(cm_jump)
    82         md.cm_jump=0.9*ones(md.nsteps,1);
     82        md.inversion.step_threshold=0.9*ones(md.inversion.nsteps,1);
    8383else
    84         md.cm_jump=repmat(cm_jump(:),md.nsteps,1);
    85         md.cm_jump(md.nsteps+1:end)=[];
     84        md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1);
     85        md.inversion.step_threshold(md.inversion.nsteps+1:end)=[];
    8686end
    8787
     
    9191        cm_responses=getfieldvalue(options,'cm_responses');
    9292        if ~any(~ismember(cm_responses,[ 101:105])),
    93                 md.cm_responses=repmat(cm_responses(:),md.nsteps,1);
    94                 md.cm_responses(md.nsteps+1:end)=[];
     93                md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1);
     94                md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
    9595                found=1;
    9696        end
    9797end
    9898if ~found
    99         third=ceil(md.nsteps/3);
    100         md.cm_responses=[...
     99        third=ceil(md.inversion.nsteps/3);
     100        md.inversion.cost_functions=[...
    101101                103*ones(third,1);...
    102102                101*ones(third,1);...
    103103                repmat([101;101;103;101],third,1)...
    104104                ];
    105         md.cm_responses(md.nsteps+1:end)=[];
     105        md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
    106106end
    107107
     
    111111        optscal=getfieldvalue(options,'optscal');
    112112        if ~any(optscal<0),
    113                 md.optscal=repmat(optscal(:),md.nsteps,1);
    114                 md.optscal(md.nsteps+1:end)=[];
     113                md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1);
     114                md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
    115115                found=1;
    116116        end
    117117end
    118118if ~found
    119         third=ceil(md.nsteps/3);
    120         md.optscal=[2*10^8*ones(3,1);10^8*ones(third-3,1);10^7*ones(2*third,1);];
    121         md.optscal(md.nsteps+1:end)=[];
     119        third=ceil(md.inversion.nsteps/3);
     120        md.inversion.gradient_scaling=[2*10^8*ones(3,1);10^8*ones(third-3,1);10^7*ones(2*third,1);];
     121        md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
    122122end
  • issm/trunk/src/m/model/parameterization/parametercontroldrag.m

    r9610 r9681  
    2121
    2222%control type
    23 md.control_type={'FrictionCoefficient'};
     23md.inversion.control_parameters={'FrictionCoefficient'};
    2424
    2525%weights
    2626weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1));
    2727if (length(weights)~=md.numberofnodes)
    28         md.weights=ones(md.numberofnodes,1);
     28        md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
    2929else
    30         md.weights=weights;
     30        md.inversion.cost_functions_coefficients=weights;
    3131end
    3232
     
    3434nsteps=getfieldvalue(options,'nsteps',100);
    3535if (length(nsteps)~=1 | nsteps<=0 | floor(nsteps)~=nsteps)
    36         md.nsteps=100;
     36        md.inversion.nsteps=100;
    3737else
    38         md.nsteps=nsteps;
     38        md.inversion.nsteps=nsteps;
    3939end
    4040
     
    4242cm_min=getfieldvalue(options,'cm_min',1*ones(md.numberofnodes,1));
    4343if (length(cm_min)==1)
    44         md.cm_min=cm_min*ones(md.numberofnodes,1);
     44        md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1);
    4545elseif (length(cm_min)==md.numberofnodes)
    46         md.cm_min=cm_min;
     46        md.inversion.min_parameters=cm_min;
    4747else
    48         md.cm_min=cm_min;
     48        md.inversion.min_parameters=cm_min;
    4949end
    5050
     
    5252cm_max=getfieldvalue(options,'cm_max',250*ones(md.numberofnodes,1));
    5353if (length(cm_max)==1)
    54         md.cm_max=cm_max*ones(md.numberofnodes,1);
     54        md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1);
    5555elseif (length(cm_max)==md.numberofnodes)
    56         md.cm_max=cm_max;
     56        md.inversion.max_parameters=cm_max;
    5757else
    58         md.cm_max=cm_max;
     58        md.inversion.max_parameters=cm_max;
    5959end
    6060
     
    6262eps_cm=getfieldvalue(options,'eps_cm',NaN);
    6363if (length(eps_cm)~=1 | eps_cm<0 )
    64         md.eps_cm=NaN;
     64        md.inversion.cost_function_threshold=NaN;
    6565else
    66         md.eps_cm=eps_cm;
     66        md.inversion.cost_function_threshold=eps_cm;
    6767end
    6868
    6969%maxiter
    70 maxiter=getfieldvalue(options,'maxiter',10*ones(md.nsteps,1));
     70maxiter=getfieldvalue(options,'maxiter',10*ones(md.inversion.nsteps,1));
    7171if (any(maxiter<0) | any(floor(maxiter)~=maxiter))
    72         md.maxiter=10*ones(md.nsteps,1);
     72        md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps,1);
    7373else
    74         md.maxiter=repmat(maxiter(:),md.nsteps,1);
    75         md.maxiter(md.nsteps+1:end)=[];
     74        md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1);
     75        md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[];
    7676end
    7777
    7878%cm_jump
    79 cm_jump=getfieldvalue(options,'cm_jump',0.8*ones(md.nsteps,1));
     79cm_jump=getfieldvalue(options,'cm_jump',0.8*ones(md.inversion.nsteps,1));
    8080if ~isreal(cm_jump)
    81         md.cm_jump=0.8*ones(md.nsteps,1);
     81        md.inversion.step_threshold=0.8*ones(md.inversion.nsteps,1);
    8282else
    83         md.cm_jump=repmat(cm_jump(:),md.nsteps,1);
    84         md.cm_jump(md.nsteps+1:end)=[];
     83        md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1);
     84        md.inversion.step_threshold(md.inversion.nsteps+1:end)=[];
    8585end
    8686
     
    9090        cm_responses=getfieldvalue(options,'cm_responses');
    9191        if ~any(~ismember(cm_responses,[101 105])).
    92                 md.cm_responses=repmat(cm_responses(:),md.nsteps,1);
    93                 md.cm_responses(md.nsteps+1:end)=[];
     92                md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1);
     93                md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
    9494                found=1;
    9595        end
    9696end
    9797if ~found
    98         third=ceil(md.nsteps/3);
    99         md.cm_responses=[...
     98        third=ceil(md.inversion.nsteps/3);
     99        md.inversion.cost_functions=[...
    100100                103*ones(third,1);...
    101101                101*ones(third,1);...
    102102                repmat([101;101;103;101],third,1)...
    103103                ];
    104         md.cm_responses(md.nsteps+1:end)=[];
     104        md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
    105105end
    106106
     
    110110        optscal=getfieldvalue(options,'optscal');
    111111        if ~any(optscal<0),
    112                 md.optscal=repmat(optscal(:),md.nsteps,1);
    113                 md.optscal(md.nsteps+1:end)=[];
     112                md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1);
     113                md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
    114114                found=1;
    115115        end
    116116end
    117117if ~found
    118         third=ceil(md.nsteps/3);
    119         md.optscal=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)];
    120         md.optscal(md.nsteps+1:end)=[];
     118        third=ceil(md.inversion.nsteps/3);
     119        md.inversion.gradient_scaling=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)];
     120        md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
    121121end
  • issm/trunk/src/m/model/presolve.m

    r9619 r9681  
    1313
    1414%Control methods
    15 md.num_control_type=numel(md.control_type);
    16 md.num_cm_responses=size(md.cm_responses,2);
     15md.inversion.num_control_parameters=numel(md.inversion.control_parameters);
     16md.inversion.num_cost_functions=size(md.inversion.cost_functions,2);
  • issm/trunk/src/m/model/tres.m

    r9650 r9681  
    3939                end
    4040        end
    41         if md.control_analysis==1,
    42                 for control_type=md.control_type
     41        if md.inversion.iscontrol==1,
     42                for inversion.control_parameters=md.inversion.control_parameters
    4343                        %Will need to be updated... good luck ;)
    44                         md.(EnumToModelField(control_type))=PatchToVec(md.results.DiagnosticSolution.(EnumToString(control_type)));
     44                        md.(EnumToModelField(inversion.control_parameters))=PatchToVec(md.results.DiagnosticSolution.(EnumToString(inversion.control_parameters)));
    4545                end
    4646        end
     
    8787        md.basalforcings.melting_rate=PatchToVec(md.results.SteadystateSolution.BasalforcingsMeltingRate);
    8888
    89         if md.control_analysis==1,
    90                 for control_type=md.control_type
    91                         md.(EnumToModelField(control_type))=PatchToVec(md.results.SteadystateSolution.(EnumToString(control_type)));
     89        if md.inversion.iscontrol==1,
     90                for inversion.control_parameters=md.inversion.control_parameters
     91                        md.(EnumToModelField(inversion.control_parameters))=PatchToVec(md.results.SteadystateSolution.(EnumToString(inversion.control_parameters)));
    9292                end
    9393        end
  • issm/trunk/src/m/solutions/SpawnCore.m

    r9585 r9681  
    99responsedescriptors=femmodel.parameters.Responsedescriptors;
    1010solution_type=femmodel.parameters.SolutionType;
    11 control_analysis=femmodel.parameters.ControlAnalysis;
     11control_analysis=femmodel.parameters.InversionIscontrol;
    1212
    1313issmprintf(VerboseQmu(),'%s%i',['   qmu iteration:'],counter);
  • issm/trunk/src/m/solutions/adjointbalancethickness_core.m

    r8288 r9681  
    66
    77        %recover parameters common to all solutions
    8         control_analysis=femmodel.parameters.ControlAnalysis;
     8        control_analysis=femmodel.parameters.InversionIscontrol;
    99        solution_type=femmodel.parameters.SolutionType;
    1010
  • issm/trunk/src/m/solutions/adjointdiagnostic_core.m

    r9663 r9681  
    88        isstokes=femmodel.parameters.FlowequationIsstokes;
    99        dim=femmodel.parameters.Dim;
    10         control_analysis=femmodel.parameters.ControlAnalysis;
     10        control_analysis=femmodel.parameters.InversionIscontrol;
    1111        solution_type=femmodel.parameters.SolutionType;
    1212        conserve_loads=true;
  • issm/trunk/src/m/solutions/balancethickness_core.m

    r8288 r9681  
    77        %recover parameters common to all solutions
    88        dim=femmodel.parameters.Dim;
    9         control_analysis=femmodel.parameters.ControlAnalysis;
     9        control_analysis=femmodel.parameters.InversionIscontrol;
    1010        solution_type=femmodel.parameters.SolutionType;
    1111
  • issm/trunk/src/m/solutions/bedslope_core.m

    r6323 r9681  
    88        %Recover some parameters:
    99        dim=femmodel.parameters.Dim;
    10         control_analysis=femmodel.parameters.ControlAnalysis;
     10        control_analysis=femmodel.parameters.InversionIscontrol;
    1111        solution_type=femmodel.parameters.SolutionType;
    1212
  • issm/trunk/src/m/solutions/control_core.m

    r9662 r9681  
    77
    88        %recover parameters common to all solutions
    9         num_controls=femmodel.parameters.NumControlType;
    10         num_responses=femmodel.parameters.NumCmResponses;
    11         responses=femmodel.parameters.CmResponses;
    12         control_type=femmodel.parameters.ControlType;
     9        num_controls=femmodel.parameters.InversionNumControlParameters;
     10        num_responses=femmodel.parameters.InversionNumCostFunctions;
     11        responses=femmodel.parameters.InversionCostFunctions;
     12        control_type=femmodel.parameters.InversionControlParameters;
    1313        solution_type=femmodel.parameters.SolutionType;
    14         nsteps=femmodel.parameters.Nsteps;
    15         maxiter=femmodel.parameters.Maxiter;
    16         cm_jump=femmodel.parameters.CmJump;
    17         eps_cm=femmodel.parameters.EpsCm;
    18         cm_gradient=femmodel.parameters.CmGradient;
     14        nsteps=femmodel.parameters.InversionNsteps;
     15        maxiter=femmodel.parameters.InversionMaxiterPerStep;
     16        step_threshold=femmodel.parameters.InversionStepThreshold;
     17        eps_cm=femmodel.parameters.InversionCostFunctionThreshold;
     18        gradient_only=femmodel.parameters.InversionGradientOnly;
    1919        dim=femmodel.parameters.Dim;
    2020        isstokes=femmodel.parameters.FlowequationIsstokes;
    2121
    2222        %Initialise options with maxiter
    23         options.MaxIter=femmodel.parameters.Maxiter;
     23        options.MaxIter=femmodel.parameters.InversionMaxiterPerStep;
    2424
    2525        %Initialize misfits with a vector of zeros
     
    3939        for n=1:nsteps,
    4040
    41                 issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters.Nsteps)]);
     41                issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters.InversionNsteps)]);
    4242                femmodel.parameters.StepResponses=responses(n,:);
    4343
     
    5353
    5454                %Return gradient if asked
    55                 if cm_gradient,
     55                if gradient_only,
    5656                        femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,GradientEnum);
    5757                        return;
     
    7575        %generate output
    7676        issmprintf(VerboseControl,'   preparing final velocity solution');
    77         femmodel.parameters.ControlAnalysis=0;
     77        femmodel.parameters.InversionIscontrol=0;
    7878        eval(['femmodel=' solutioncore '(femmodel);']);
    7979
     
    8383        end
    8484        femmodel.results=AddExternalResult(femmodel.results,JEnum,J);
    85         %femmodel.results=AddExternalResult(femmodel.results,ControlTypeEnum,control_type);
     85        %femmodel.results=AddExternalResult(femmodel.results,InversionControlParametersEnum,control_type);
    8686
    8787end %end function
  • issm/trunk/src/m/solutions/diagnostic_core.m

    r9661 r9681  
    1616        isstokes=femmodel.parameters.FlowequationIsstokes;
    1717        dakota_analysis=femmodel.parameters.QmuIsdakota;
    18         control_analysis=femmodel.parameters.ControlAnalysis;
     18        control_analysis=femmodel.parameters.InversionIscontrol;
    1919        solution_type=femmodel.parameters.SolutionType;
    2020
  • issm/trunk/src/m/solutions/enthalpy_core.m

    r9634 r9681  
    99        ndt=femmodel.parameters.TimesteppingFinalTime;
    1010        dt=femmodel.parameters.TimesteppingTimeStep;
    11         control_analysis=femmodel.parameters.ControlAnalysis;
     11        control_analysis=femmodel.parameters.InversionIscontrol;
    1212        solution_type=femmodel.parameters.SolutionType;
    1313
  • issm/trunk/src/m/solutions/gradient_core.m

    r9391 r9681  
    2121
    2222        %recover parameters common to all solutions
    23         num_controls=femmodel.parameters.NumControlType;
    24         control_type=femmodel.parameters.ControlType;
     23        num_controls=femmodel.parameters.InversionNumControlParameters;
     24        control_type=femmodel.parameters.InversionControlParameters;
    2525        control_steady=femmodel.parameters.ControlSteady;
    26         optscal_list=femmodel.parameters.Optscal;
     26        gradient_scaling_list=femmodel.parameters.InversionGradientScaling;
    2727
    2828        for i=1:num_controls,
     
    4848                 if(norm_grad<=0),     error(['||∂J/∂α||∞ = 0   gradient norm of J with respect to ' EnumToString(control_type(i))  ' is zero']); end
    4949                 if(isnan(norm_grad)), error(['||∂J/∂α||∞ = NaN gradient norm of J with respect to ' EnumToString(control_type(i))  ' is NaN' ]); end
    50                  if(i==1 | (optscal_list(step,i)/norm_grad)<optscal) optscal=optscal_list(step,i)/norm_grad; end
     50                 if(i==1 | (gradient_scaling_list(step,i)/norm_grad)<gradient_scaling) gradient_scaling=gradient_scaling_list(step,i)/norm_grad; end
    5151
    5252                %plug back into inputs:
     
    5656        %Scale all gradients
    5757        for i=1:num_controls,
    58                 [femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=ControlInputScaleGradient(femmodel.elements,femmodel.nodes, femmodel.vertices,femmodel.loads, femmodel.materials,  femmodel.parameters,control_type(i),optscal);
     58                [femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=ControlInputScaleGradient(femmodel.elements,femmodel.nodes, femmodel.vertices,femmodel.loads, femmodel.materials,  femmodel.parameters,control_type(i),gradient_scaling);
    5959        end
  • issm/trunk/src/m/solutions/issm.m

    r9650 r9681  
    2323        %retrieve parameters
    2424        dakota_analysis=femmodel.parameters.QmuIsdakota;
    25         control_analysis=femmodel.parameters.ControlAnalysis;
     25        control_analysis=femmodel.parameters.InversionIscontrol;
    2626
    2727        %compute solution
  • issm/trunk/src/m/solutions/prognostic_core.m

    r6323 r9681  
    66
    77        %recover parameters common to all solutions
    8         control_analysis=femmodel.parameters.ControlAnalysis;
     8        control_analysis=femmodel.parameters.InversionIscontrol;
    99        solution_type=femmodel.parameters.SolutionType;
    1010
  • issm/trunk/src/m/solutions/steadystate_core.m

    r9612 r9681  
    88        %recover parameters common to all solutions
    99        dim=femmodel.parameters.Dim;
    10         control_analysis=femmodel.parameters.ControlAnalysis;
     10        control_analysis=femmodel.parameters.InversionIscontrol;
    1111        solution_type=femmodel.parameters.SolutionType;
    1212
  • issm/trunk/src/m/solutions/surfaceslope_core.m

    r6323 r9681  
    88        %Recover some parameters:
    99        dim=femmodel.parameters.Dim;
    10         control_analysis=femmodel.parameters.ControlAnalysis;
     10        control_analysis=femmodel.parameters.InversionIscontrol;
    1111        solution_type=femmodel.parameters.SolutionType;
    1212
  • issm/trunk/src/m/solutions/thermal_core.m

    r9634 r9681  
    99        ndt=femmodel.parameters.TimesteppingFinalTime;
    1010        dt=femmodel.parameters.TimesteppingTimeStep;
    11         control_analysis=femmodel.parameters.ControlAnalysis;
     11        control_analysis=femmodel.parameters.InversionIscontrol;
    1212        solution_type=femmodel.parameters.SolutionType;
    1313
  • issm/trunk/src/m/solutions/transient_core.m

    r9678 r9681  
    1010        dt=femmodel.parameters.TimesteppingTimeStep;
    1111        yts=femmodel.parameters.ConstantsYts;
    12         control_analysis=femmodel.parameters.ControlAnalysis;
     12        control_analysis=femmodel.parameters.InversionIscontrol;
    1313        solution_type=femmodel.parameters.SolutionType;
    1414        output_frequency=femmodel.parameters.OutputFrequency;
  • issm/trunk/src/m/utils/BC/SetIceSheetBC.m

    r9679 r9681  
    1818
    1919%Dirichlet Values
    20 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
     20if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
    2121        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    22         md.diagnostic.spcvx(pos)=md.vx_obs(pos);
    23         md.diagnostic.spcvy(pos)=md.vy_obs(pos);
     22        md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
     23        md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos);
    2424else
    2525        disp('      boundary conditions for diagnostic model: spc set as zero');
  • issm/trunk/src/m/utils/BC/SetIceShelfBC.m

    r9680 r9681  
    3737
    3838%Dirichlet Values
    39 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
     39if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
    4040        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    41         md.diagnostic.spcvx(pos)=md.vx_obs(pos);
    42         md.diagnostic.spcvy(pos)=md.vy_obs(pos);
     41        md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
     42        md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos);
    4343else
    4444        disp('      boundary conditions for diagnostic model: spc set as zero');
  • issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m

    r9679 r9681  
    4444
    4545%Dirichlet Values
    46 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)
     46if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
    4747        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    48         md.diagnostic.spcvx(pos)=md.vx_obs(pos);
    49         md.diagnostic.spcvy(pos)=md.vy_obs(pos);
     48        md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
     49        md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos);
    5050else
    5151        disp('      boundary conditions for diagnostic model: spc set as zero');
  • issm/trunk/src/m/utils/Exp/clicktoflowline.m

    r5392 r9681  
    44% Usage: clicktoflowline(index,x,y,u,v,x0,y0,filename)
    55%
    6 % Ex: clicktoflowline(md.elements,md.x,md.y,md.vx_obs,md.vy_obs,'flowline1.exp')
     6% Ex: clicktoflowline(md.elements,md.x,md.y,md.inversion.vx_obs,md.inversion.vy_obs,'flowline1.exp')
    77
    88
  • issm/trunk/src/m/utils/Interp/plugvelocities.m

    r8298 r9681  
    2929%Interpolation
    3030if strcmpi(Names.interp,'node'),
    31         md.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);
    32         md.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);
     31        md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);
     32        md.inversion.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);
    3333else
    34         md.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);
    35         md.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);
     34        md.inversion.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);
     35        md.inversion.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);
    3636end
    3737
    38 md.vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2);
    39 md.vx=md.vx_obs;
    40 md.vy=md.vy_obs;
    41 md.vel=md.vel_obs;
     38md.inversion.vel_obs=sqrt(md.inversion.vx_obs.^2+md.inversion.vy_obs.^2);
     39md.vx=md.inversion.vx_obs;
     40md.vy=md.inversion.vy_obs;
     41md.vel=md.inversion.vel_obs;
  • issm/trunk/src/m/utils/Mesh/BamgCall.m

    r8298 r9681  
    1313%
    1414%   Example:
    15 %      md=BamgCall(md,md.vel_obs,1500,10^8,1.3,0.9);
     15%      md=BamgCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
    1616
    1717%2d geometric parameter (do not change)
  • issm/trunk/src/m/utils/Mesh/ComputeHessian.m

    r8298 r9681  
    1010%
    1111%   Example:
    12 %      hessian=ComputeHessian(md.elements,md.x,md.y,md.vel_obs,'node')
     12%      hessian=ComputeHessian(md.elements,md.x,md.y,md.inversion.vel_obs,'node')
    1313
    1414%some variables
  • issm/trunk/src/m/utils/Mesh/MeshQuality.m

    r8927 r9681  
    1414
    1515%Compute Hessian
    16 hessian=ComputeHessian(index,x,y,md.vel_obs,'node');
     16hessian=ComputeHessian(index,x,y,md.inversion.vel_obs,'node');
    1717
    1818%Compute metric
  • issm/trunk/src/m/utils/Mesh/YamsCall.m

    r9619 r9681  
    1313%
    1414%   Example:
    15 %      md=YamsCall(md,md.vel_obs,1500,10^8,1.3,0.9);
     15%      md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
    1616
    1717%2d geometric parameter (do not change)
  • issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp

    r9563 r9681  
    2020        /*arguments to objectivefunctionC: */
    2121        int      n_value;
    22         double*  cm_jump=NULL;
     22        double*  threshold=NULL;
    2323
    2424        /*Boot module: */
     
    3232        FetchMatlabData(&xmin,XMIN);
    3333        FetchMatlabData(&xmax,XMAX);
    34         FetchMatlabData(&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter"));
    3534
    3635        /*Parameters: */
    37         FetchMatlabData(&cm_jump,NULL,NULL,mxGetField(PARAMETERS,0,"CmJump"));
     36        FetchMatlabData(&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter"));
     37        FetchMatlabData(&threshold,NULL,NULL,mxGetField(PARAMETERS,0,"InversionStepThreshold"));
    3838        FetchMatlabData(&n_value,STEP);
    3939
     
    4444        optpars.xmax=xmax;
    4545        optpars.maxiter=(int)maxiter[n_value-1];
    46         optpars.cm_jump=cm_jump[n_value-1];
     46        optpars.cm_jump=threshold[n_value-1];
    4747
    4848        BrentSearch(&search_scalar,&J,&optpars,&OptFunc,&optargs);
     
    5454        /*Free ressources: */
    5555        xfree((void**)&function_name);
    56         xfree((void**)&cm_jump);
     56        xfree((void**)&threshold);
    5757        xfree((void**)&maxiter);
    5858
  • issm/trunk/template

    r9679 r9681  
    6161        waterfraction
    6262}}}
    63 inversion{{{
    64         private:
    65                 num_control_type -> num_control_parameters
    66                 num_cm_responses -> rename num_cost_functions
    67 
    68         control_analysis ->rename iscontrol
    69         control_type -> rename control_parameters?
    70         cm_responses -> rename cost_functions
    71         cm_gradient -> rename gradient_only
    72         weights -> rename cost_functions_coefficients
    73 
    74         cm_min -> min_parameters
    75         cm_max -> max_parameters
    76 
    77         nsteps
    78         maxiter -> rename maxiter_per_step
    79         optscal -> gradient_scaling
    80         cm_jump -> step_threshold
    81         eps_cm  -> misfit_threshold
    82 
    83         vx_obs
    84         vy_obs
    85         vel_obs
    86         thickness_obs
    87 }}}
    8863
    8964%To be completed
  • issm/trunk/test/NightlyRun/test1205.m

    r9679 r9681  
    1515vx_obs=constant/2*md.x.*(md.thickness).^-1;
    1616vy_obs=constant/2*md.y.*(md.thickness).^-1;
    17 vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));
     17vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
    1818
    1919%We extrude the model to have a 3d model
  • issm/trunk/test/NightlyRun/test1206.m

    r9679 r9681  
    1515vx_obs=constant/2*md.x.*(md.thickness).^-1;
    1616vy_obs=constant/2*md.y.*(md.thickness).^-1;
    17 vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));
     17vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
    1818
    1919%We extrude the model to have a 3d model
  • issm/trunk/test/NightlyRun/test1207.m

    r9679 r9681  
    1515vx_obs=constant/2*md.x.*(md.thickness).^-1;
    1616vy_obs=constant/2*md.y.*(md.thickness).^-1;
    17 vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));
     17vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
    1818
    1919%We extrude the model to have a 3d model
  • issm/trunk/test/NightlyRun/test1401.m

    r6088 r9681  
    1111%mesh adaptation loop YAMS
    1212md=squaremesh(md,L,L,nx,ny);
    13 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     13md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    1414plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    1515if printingflag,
     
    1919end
    2020
    21 md=YamsCall(md,md.vel_obs,0.001,0.3,1.3,10^-4);
    22 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     21md=YamsCall(md,md.inversion.vel_obs,0.001,0.3,1.3,10^-4);
     22md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    2323plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    2424if printingflag,
     
    2828end
    2929
    30 md=YamsCall(md,md.vel_obs,0.001,0.3,2.5,0.008);
    31 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     30md=YamsCall(md,md.inversion.vel_obs,0.001,0.3,2.5,0.008);
     31md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    3232plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    3333if printingflag,
     
    4141%mesh adaptation loop BAMG
    4242md=squaremesh(md,L,L,nx,ny);
    43 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     43md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    4444plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    4545if printingflag,
     
    5050
    5151md.bamg=NaN;
    52 md=bamg(md,'field',md.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',1.3,'err',10^-4);
    53 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     52md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',1.3,'err',10^-4);
     53md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    5454plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    5555if printingflag,
     
    6060
    6161md.bamg=NaN;
    62 md=bamg(md,'field',md.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',2.5,'err',0.008);
    63 md.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
     62md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',2.5,'err',0.008);
     63md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;
    6464plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5);
    6565if printingflag,
  • issm/trunk/test/NightlyRun/test1402.m

    r6088 r9681  
    1111md=squaremesh(md,L,L,nx,ny);
    1212u=4*md.x-2; v=4*md.y-2;
    13 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     13md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    1414        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    1515        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    2121end
    2222
    23 md=YamsCall(md,md.vel_obs,0.005,0.3,2.3,10^-2);
     23md=YamsCall(md,md.inversion.vel_obs,0.005,0.3,2.3,10^-2);
    2424u=4*md.x-2; v=4*md.y-2;
    25 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     25md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    2626        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    2727        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    3333end
    3434
    35 md=YamsCall(md,md.vel_obs,0.005,0.3,3,0.005);
     35md=YamsCall(md,md.inversion.vel_obs,0.005,0.3,3,0.005);
    3636u=4*md.x-2; v=4*md.y-2;
    37 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     37md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    3838        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    3939        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    5050md=squaremesh(md,L,L,nx,ny);
    5151u=4*md.x-2; v=4*md.y-2;
    52 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     52md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    5353        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    5454        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    6161
    6262md.bamg=NaN;
    63 md=bamg(md,'field',md.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',2.3,'err',10^-2);
     63md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',2.3,'err',10^-2);
    6464u=4*md.x-2; v=4*md.y-2;
    65 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     65md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    6666        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    6767        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    7474
    7575md.bamg=NaN;
    76 md=bamg(md,'field',md.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',3,'err',0.005);
     76md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',3,'err',0.005);
    7777u=4*md.x-2; v=4*md.y-2;
    78 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     78md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    7979        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    8080        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
     
    8787
    8888md.bamg=NaN;
    89 md=bamg(md,'field',md.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',1.5,'err',0.003,'anisomax',1);
     89md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',1.5,'err',0.003,'anisomax',1);
    9090u=4*md.x-2; v=4*md.y-2;
    91 md.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
     91md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...
    9292        +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ...
    9393        +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ;
  • issm/trunk/test/NightlyRun/test223.m

    r9664 r9681  
    55
    66%control parameters
    7 md.control_analysis=1;
    8 md.control_type={'MaterialsRheologyBbar'};
    9 md.cm_min=10^6*ones(md.numberofnodes,1);
    10 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    11 md.nsteps=2;
    12 md.cm_responses=101*ones(md.nsteps,1);
    13 md.weights=ones(md.numberofnodes,1);
    14 md.optscal=10^7*ones(md.nsteps,1);
    15 md.maxiter=2*ones(md.nsteps,1);
    16 md.cm_jump=0.3*ones(md.nsteps,1);
    17 md.vx_obs=md.vx; md.vy_obs=md.vy;
     7md.inversion.iscontrol=1;
     8md.inversion.control_parameters={'MaterialsRheologyBbar'};
     9md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     10md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     11md.inversion.nsteps=2;
     12md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     13md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     14md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     15md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     16md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     17md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1818
    1919md.cluster=none;
     20md.verbose=verbose('all');
    2021md=solve(md,DiagnosticSolutionEnum);
    2122
  • issm/trunk/test/NightlyRun/test224.m

    r9664 r9681  
    55
    66%control parameters
    7 md.control_analysis=1;
    8 md.control_type={'MaterialsRheologyBbar'};
    9 md.cm_min=10^6*ones(md.numberofnodes,1);
    10 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    11 md.nsteps=2;
    12 md.cm_responses=101*ones(md.nsteps,1);
    13 md.weights=ones(md.numberofnodes,1);
    14 md.optscal=10^7*ones(md.nsteps,1);
    15 md.maxiter=2*ones(md.nsteps,1);
    16 md.cm_jump=0.3*ones(md.nsteps,1);
    17 md.vx_obs=md.vx; md.vy_obs=md.vy;
     7md.inversion.iscontrol=1;
     8md.inversion.control_parameters={'MaterialsRheologyBbar'};
     9md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     10md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     11md.inversion.nsteps=2;
     12md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     13md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     14md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     15md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     16md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     17md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1818
    1919md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test225.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test226.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test227.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test228.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test229.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test230.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'MaterialsRheologyBbar'};
    10 md.cm_min=10^6*ones(md.numberofnodes,1);
    11 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=101*ones(md.nsteps,1);
    14 md.weights=ones(md.numberofnodes,1);
    15 md.optscal=10^7*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'MaterialsRheologyBbar'};
     10md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     15md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test337.m

    r9664 r9681  
    55
    66%control parameters
    7 md.control_analysis=1;
    8 md.control_type={'FrictionCoefficient'};
    9 md.cm_min=1*ones(md.numberofnodes,1);
    10 md.cm_max=200*ones(md.numberofnodes,1);
    11 md.nsteps=2;
    12 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    13 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=0*2*10^-7;
    14 md.optscal=3*ones(md.nsteps,1);
    15 md.maxiter=2*ones(md.nsteps,1);
    16 md.cm_jump=0.3*ones(md.nsteps,1);
    17 md.vx_obs=md.vx; md.vy_obs=md.vy;
     7md.inversion.iscontrol=1;
     8md.inversion.control_parameters={'FrictionCoefficient'};
     9md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     10md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     11md.inversion.nsteps=2;
     12md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     13md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=0*2*10^-7;
     14md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     15md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     16md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     17md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1818
    1919md.cluster=none;
  • issm/trunk/test/NightlyRun/test338.m

    r9664 r9681  
    55
    66%control parameters
    7 md.control_analysis=1;
    8 md.control_type={'FrictionCoefficient'};
    9 md.cm_min=1*ones(md.numberofnodes,1);
    10 md.cm_max=200*ones(md.numberofnodes,1);
    11 md.nsteps=2;
    12 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    13 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    14 md.optscal=3*ones(md.nsteps,1);
    15 md.maxiter=2*ones(md.nsteps,1);
    16 md.cm_jump=0.3*ones(md.nsteps,1);
    17 md.vx_obs=md.vx; md.vy_obs=md.vy;
     7md.inversion.iscontrol=1;
     8md.inversion.control_parameters={'FrictionCoefficient'};
     9md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     10md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     11md.inversion.nsteps=2;
     12md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     13md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     14md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     15md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     16md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     17md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1818
    1919md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test339.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test340.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test341.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[102*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test342.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[102*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test343.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[104*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test344.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[104*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test429.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
    1818md.timestepping.time_step=0;
    19 md.vx_obs=md.vx; md.vy_obs=md.vy;
     19md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2020
    2121md.cluster=none;
  • issm/trunk/test/NightlyRun/test430.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
    1818md.timestepping.time_step=0;
    19 md.vx_obs=md.vx; md.vy_obs=md.vy;
     19md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2020
    2121md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test431.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[102*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
    1818md.timestepping.time_step=0;
    19 md.vx_obs=md.vx; md.vy_obs=md.vy;
     19md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2020
    2121md.cluster=none;
  • issm/trunk/test/NightlyRun/test432.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[102*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.3*ones(md.nsteps,1);
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1);
    1818md.timestepping.time_step=0;
    19 md.vx_obs=md.vx; md.vy_obs=md.vy;
     19md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2020
    2121md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test521.m

    r9664 r9681  
    1111
    1212%control parameters
    13 md.control_analysis=1;
    14 md.control_type={'MaterialsRheologyBbar'};
    15 md.cm_min=10^6*ones(md.numberofnodes,1);
    16 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    17 md.nsteps=2;
    18 md.cm_responses=101*ones(md.nsteps,1);
    19 md.weights=ones(md.numberofnodes,1);
    20 md.optscal=10^8*ones(md.nsteps,1);
    21 md.maxiter=2*ones(md.nsteps,1);
    22 md.cm_jump=0.99*ones(md.nsteps,1);
    23 md.vx_obs=md.vx; md.vy_obs=md.vy;
     13md.inversion.iscontrol=1;
     14md.inversion.control_parameters={'MaterialsRheologyBbar'};
     15md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     16md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     17md.inversion.nsteps=2;
     18md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     19md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     20md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1);
     21md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     22md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     23md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2424
    2525md.cluster=none;
  • issm/trunk/test/NightlyRun/test522.m

    r9664 r9681  
    1111
    1212%control parameters
    13 md.control_analysis=1;
    14 md.control_type={'MaterialsRheologyBbar'};
    15 md.cm_min=10^6*ones(md.numberofnodes,1);
    16 md.cm_max=2*10^9*ones(md.numberofnodes,1);
    17 md.nsteps=2;
    18 md.cm_responses=101*ones(md.nsteps,1);
    19 md.weights=ones(md.numberofnodes,1);
    20 md.optscal=10^8*ones(md.nsteps,1);
    21 md.maxiter=2*ones(md.nsteps,1);
    22 md.cm_jump=0.99*ones(md.nsteps,1);
    23 md.vx_obs=md.vx; md.vy_obs=md.vy;
     13md.inversion.iscontrol=1;
     14md.inversion.control_parameters={'MaterialsRheologyBbar'};
     15md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
     16md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
     17md.inversion.nsteps=2;
     18md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
     19md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     20md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1);
     21md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     22md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     23md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    2424
    2525md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test523.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.99*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test524.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.99*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test525.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.99*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919md.timestepping.time_step=0;
    2020
  • issm/trunk/test/NightlyRun/test526.m

    r9664 r9681  
    66
    77%control parameters
    8 md.control_analysis=1;
    9 md.control_type={'FrictionCoefficient'};
    10 md.cm_min=1*ones(md.numberofnodes,1);
    11 md.cm_max=200*ones(md.numberofnodes,1);
    12 md.nsteps=2;
    13 md.cm_responses=[103*ones(md.nsteps,1)  501*ones(md.nsteps,1)];
    14 md.weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;
    15 md.optscal=3*ones(md.nsteps,1);
    16 md.maxiter=2*ones(md.nsteps,1);
    17 md.cm_jump=0.99*ones(md.nsteps,1);
    18 md.vx_obs=md.vx; md.vy_obs=md.vy;
     8md.inversion.iscontrol=1;
     9md.inversion.control_parameters={'FrictionCoefficient'};
     10md.inversion.min_parameters=1*ones(md.numberofnodes,1);
     11md.inversion.max_parameters=200*ones(md.numberofnodes,1);
     12md.inversion.nsteps=2;
     13md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
     14md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
     15md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
     16md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
     17md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
     18md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy;
    1919md.timestepping.time_step=0;
    2020
  • issm/trunk/test/NightlyRun/test527.m

    r9659 r9681  
    1414
    1515%refine existing mesh 1
    16 hessian=ComputeHessian(md.elements,md.x,md.y,md.vy_obs,'node');
     16hessian=ComputeHessian(md.elements,md.x,md.y,md.inversion.vy_obs,'node');
    1717metric=ComputeMetric(hessian,2/9,1,1000,25*10^3,[]);
    1818md.miscellaneous.dummy=metric;
     
    3434
    3535%refine existing mesh 4
    36 md2=bamg(md,'field',md.vy_obs,'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',0,'err',1);
     36md2=bamg(md,'field',md.inversion.vy_obs,'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',0,'err',1);
    3737x6=md2.x;
    3838y6=md2.y;
    3939
    4040%refine existing mesh 5
    41 md2=bamg(md,'field',[md.vy_obs md.thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]);
     41md2=bamg(md,'field',[md.inversion.vy_obs md.thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]);
    4242x7=md2.x;
    4343y7=md2.y;
  • issm/trunk/test/NightlyRun/test621.m

    r9664 r9681  
    55
    66%control parameters
    7 md.nsteps=2;
     7md.inversion.nsteps=2;
    88md.prognostic.stabilization=1;
    9 md.control_analysis=1;
    10 md.control_type={'BalancethicknessThickeningRate'};
    11 md.thickness_obs=md.thickness;
    12 md.cm_min=-50*ones(md.numberofnodes,1);
    13 md.cm_max=50*ones(md.numberofnodes,1);
    14 md.cm_responses=201*ones(md.nsteps,1);
    15 md.weights=ones(md.numberofnodes,1);
    16 md.optscal=10/md.constants.yts*ones(md.nsteps,1);
    17 md.maxiter=4*ones(md.nsteps,1);
    18 md.cm_jump=0.99*ones(md.nsteps,1);
     9md.inversion.iscontrol=1;
     10md.inversion.control_parameters={'BalancethicknessThickeningRate'};
     11md.inversion.thickness_obs=md.thickness;
     12md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
     13md.inversion.max_parameters=50*ones(md.numberofnodes,1);
     14md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     15md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     16md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
     17md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     18md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    1919
    2020md.cluster=none;
  • issm/trunk/test/NightlyRun/test622.m

    r9664 r9681  
    55
    66%control parameters
    7 md.nsteps=2;
     7md.inversion.nsteps=2;
    88md.prognostic.stabilization=1;
    9 md.control_analysis=1;
    10 md.control_type={'BalancethicknessThickeningRate'};
    11 md.thickness_obs=md.thickness;
    12 md.cm_min=-50*ones(md.numberofnodes,1);
    13 md.cm_max=50*ones(md.numberofnodes,1);
    14 md.cm_responses=201*ones(md.nsteps,1);
    15 md.weights=ones(md.numberofnodes,1);
    16 md.optscal=10/md.constants.yts*ones(md.nsteps,1);
    17 md.maxiter=4*ones(md.nsteps,1);
    18 md.cm_jump=0.99*ones(md.nsteps,1);
     9md.inversion.iscontrol=1;
     10md.inversion.control_parameters={'BalancethicknessThickeningRate'};
     11md.inversion.thickness_obs=md.thickness;
     12md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
     13md.inversion.max_parameters=50*ones(md.numberofnodes,1);
     14md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     15md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     16md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
     17md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     18md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    1919
    2020md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test623.m

    r9664 r9681  
    66
    77%control parameters
    8 md.nsteps=2;
     8md.inversion.nsteps=2;
    99md.prognostic.stabilization=3;
    10 md.control_analysis=1;
    11 md.control_type={'BalancethicknessThickeningRate'};
    12 md.thickness_obs=md.thickness;
    13 md.cm_min=-50*ones(md.numberofnodes,1);
    14 md.cm_max=50*ones(md.numberofnodes,1);
    15 md.cm_responses=201*ones(md.nsteps,1);
    16 md.weights=ones(md.numberofnodes,1);
    17 md.optscal=10/md.constants.yts*ones(md.nsteps,1);
    18 md.maxiter=4*ones(md.nsteps,1);
    19 md.cm_jump=0.99*ones(md.nsteps,1);
     10md.inversion.iscontrol=1;
     11md.inversion.control_parameters={'BalancethicknessThickeningRate'};
     12md.inversion.thickness_obs=md.thickness;
     13md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
     14md.inversion.max_parameters=50*ones(md.numberofnodes,1);
     15md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     16md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     17md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
     18md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     19md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    2020
    2121md.cluster=none;
  • issm/trunk/test/NightlyRun/test624.m

    r9664 r9681  
    66
    77%control parameters
    8 md.nsteps=2;
     8md.inversion.nsteps=2;
    99md.prognostic.stabilization=3;
    10 md.control_analysis=1;
    11 md.control_type={'BalancethicknessThickeningRate'};
    12 md.thickness_obs=md.thickness;
    13 md.cm_min=-50*ones(md.numberofnodes,1);
    14 md.cm_max=50*ones(md.numberofnodes,1);
    15 md.cm_responses=201*ones(md.nsteps,1);
    16 md.weights=ones(md.numberofnodes,1);
    17 md.optscal=10/md.constants.yts*ones(md.nsteps,1);
    18 md.maxiter=4*ones(md.nsteps,1);
    19 md.cm_jump=0.99*ones(md.nsteps,1);
     10md.inversion.iscontrol=1;
     11md.inversion.control_parameters={'BalancethicknessThickeningRate'};
     12md.inversion.thickness_obs=md.thickness;
     13md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
     14md.inversion.max_parameters=50*ones(md.numberofnodes,1);
     15md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     16md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     17md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
     18md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     19md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    2020
    2121md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/NightlyRun/test625.m

    r9664 r9681  
    1111
    1212%control parameters
    13 md.thickness_obs=md.thickness;
    14 md.control_analysis=1;
    15 md.thickness_obs=md.thickness;
    16 md.nsteps=2;
    17 md.control_type={'Vx' 'Vy'};
     13md.inversion.thickness_obs=md.thickness;
     14md.inversion.iscontrol=1;
     15md.inversion.thickness_obs=md.thickness;
     16md.inversion.nsteps=2;
     17md.inversion.control_parameters={'Vx' 'Vy'};
    1818md.prognostic.stabilization=1;
    19 md.optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];
    20 md.cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
    21 md.cm_max=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
    22 md.cm_responses=201*ones(md.nsteps,1);
    23 md.weights=ones(md.numberofnodes,1);
    24 md.maxiter=4*ones(md.nsteps,1);
    25 md.cm_jump=0.99*ones(md.nsteps,1);
     19md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)];
     20md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
     21md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
     22md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     23md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     24md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     25md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    2626
    2727md.cluster=none;
  • issm/trunk/test/NightlyRun/test626.m

    r9664 r9681  
    1111
    1212%control parameters
    13 md.thickness_obs=md.thickness;
    14 md.control_analysis=1;
    15 md.thickness_obs=md.thickness;
    16 md.nsteps=2;
    17 md.control_type={'Vx' 'Vy'};
     13md.inversion.thickness_obs=md.thickness;
     14md.inversion.iscontrol=1;
     15md.inversion.thickness_obs=md.thickness;
     16md.inversion.nsteps=2;
     17md.inversion.control_parameters={'Vx' 'Vy'};
    1818md.prognostic.stabilization=1;
    19 md.optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];
    20 md.cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
    21 md.cm_max=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
    22 md.cm_responses=201*ones(md.nsteps,1);
    23 md.weights=ones(md.numberofnodes,1);
    24 md.maxiter=4*ones(md.nsteps,1);
    25 md.cm_jump=0.99*ones(md.nsteps,1);
     19md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)];
     20md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
     21md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
     22md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
     23md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
     24md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
     25md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
    2626
    2727md.cluster=generic('name',oshostname(),'np',3);
  • issm/trunk/test/Par/Pig.par

    r9679 r9681  
    33%Geometry and observation
    44load('../Data/Pig.data','-mat');
    5 md.vx_obs   =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.x,md.y);
    6 md.vy_obs   =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.x,md.y);
     5md.inversion.vx_obs   =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.x,md.y);
     6md.inversion.vy_obs   =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.x,md.y);
    77md.surface  =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y);
    88md.thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y);
    99md.bed=md.surface-md.thickness;
    1010clear surface thickness vx_obs vy_obs x y index;
    11 md.vx=md.vx_obs;
    12 md.vy=md.vy_obs;
     11md.vx=md.inversion.vx_obs;
     12md.vy=md.inversion.vy_obs;
    1313md.vz=zeros(md.numberofnodes,1);
    1414md.pressure=zeros(md.numberofnodes,1);
  • issm/trunk/test/Par/RoundSheetEISMINT.par

    r9679 r9681  
    2929disp('      creating velocities');
    3030constant=0.3;
    31 md.vx_obs=constant/2*md.x.*(md.thickness).^-1;
    32 md.vy_obs=constant/2*md.y.*(md.thickness).^-1;
    33 md.vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));
     31md.inversion.vx_obs=constant/2*md.x.*(md.thickness).^-1;
     32md.inversion.vy_obs=constant/2*md.y.*(md.thickness).^-1;
     33md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
    3434md.vx=zeros(md.numberofnodes,1);
    3535md.vy=zeros(md.numberofnodes,1);
  • issm/trunk/test/Par/RoundSheetStaticEISMINT.par

    r9679 r9681  
    3434disp('      creating velocities');
    3535constant=0.3;
    36 md.vx_obs=constant/2*md.x.*(md.thickness).^-1;
    37 md.vy_obs=constant/2*md.y.*(md.thickness).^-1;
    38 md.vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));
     36md.inversion.vx_obs=constant/2*md.x.*(md.thickness).^-1;
     37md.inversion.vy_obs=constant/2*md.y.*(md.thickness).^-1;
     38md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
    3939md.vx=zeros(md.numberofnodes,1);
    4040md.vy=zeros(md.numberofnodes,1);
Note: See TracChangeset for help on using the changeset viewer.