Changeset 18876


Ignore:
Timestamp:
11/28/14 09:47:05 (10 years ago)
Author:
Eric.Larour
Message:

CHG: hook up for the ad inversion class (m1qn3 style control). Also made sure the incomplete adjoint
option is control class dependent, not generic for all control classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp

    r18854 r18876  
    3131                parameters->AddObject(iomodel->CopyConstantObject(InversionNumControlParametersEnum));
    3232                parameters->AddObject(iomodel->CopyConstantObject(InversionNumCostFunctionsEnum));
    33                 parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
    3433
    3534                /*What solution type?*/
     
    5049                switch(inversiontype){
    5150                        case 0:/*Brent Search*/
     51                                parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
    5252                                parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum));
    5353                                parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum));
     
    6060                                break;
    6161                        case 1:/*TAO*/
     62                                parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
    6263                                parameters->AddObject(iomodel->CopyConstantObject(InversionFatolEnum));
    6364                                parameters->AddObject(iomodel->CopyConstantObject(InversionFrtolEnum));
     
    7071                                break;
    7172                        case 2:/*M1QN3*/
     73                                parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
    7274                                parameters->AddObject(iomodel->CopyConstantObject(InversionDxminEnum));
    7375                                parameters->AddObject(iomodel->CopyConstantObject(InversionGttolEnum));
     
    7880                                break;
    7981                        case 3:/*Validation*/
     82                                parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
     83                                iomodel->FetchData(&control_scaling_factors,NULL,NULL,InversionControlScalingFactorsEnum);
     84                                parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_controls));
     85                                break;
     86                        case 4:/*M1QN3 AD*/
     87                                parameters->AddObject(iomodel->CopyConstantObject(InversionDxminEnum));
     88                                parameters->AddObject(iomodel->CopyConstantObject(InversionGttolEnum));
     89                                parameters->AddObject(iomodel->CopyConstantObject(InversionMaxstepsEnum));
     90                                parameters->AddObject(iomodel->CopyConstantObject(InversionMaxiterEnum));
    8091                                iomodel->FetchData(&control_scaling_factors,NULL,NULL,InversionControlScalingFactorsEnum);
    8192                                parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_controls));
     
    8798
    8899                xDelete<int>(control_type);
    89                 xDelete<int>(cm_responses);
    90100                xDelete<int>(maxiter);
    91101                xDelete<IssmDouble>(control_scaling_factors);
Note: See TracChangeset for help on using the changeset viewer.