Changeset 14164
- Timestamp:
- 12/14/12 09:04:11 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r13787 r14164 15 15 16 16 Parameters *parameters = NULL; 17 bool control_analysis ;17 bool control_analysis,tao_analysis; 18 18 int nsteps; 19 19 int num_control_type; … … 30 30 /*retrieve some parameters: */ 31 31 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 32 iomodel->Constant(&tao_analysis,InversionTaoEnum); 32 33 33 34 if(control_analysis){ … … 37 38 parameters->AddObject(iomodel->CopyConstantObject(InversionNumCostFunctionsEnum)); 38 39 parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum)); 39 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum));40 parameters->AddObject(iomodel->CopyConstantObject(InversionGradientOnlyEnum));41 40 parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum)); 41 if(!tao_analysis){ 42 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum)); 43 parameters->AddObject(iomodel->CopyConstantObject(InversionGradientOnlyEnum)); 44 } 42 45 43 46 /*What solution type?*/ … … 52 55 iomodel->FetchData(&control_type,NULL,&num_control_type,InversionControlParametersEnum); 53 56 iomodel->FetchData(&cm_responses,&nsteps,&num_cm_responses,InversionCostFunctionsEnum); 54 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 55 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); 56 iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum); 57 if(!tao_analysis){ 58 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 59 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); 60 iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum); 61 } 57 62 58 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 59 parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type)); 60 parameters->AddObject(new DoubleMatParam(InversionCostFunctionsEnum,cm_responses,nsteps,num_cm_responses)); 61 parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps)); 62 parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps)); 63 if(tao_analysis){ 64 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 65 parameters->AddObject(new DoubleVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses)); 66 } 67 else{ 68 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 69 parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type)); 70 parameters->AddObject(new DoubleMatParam(InversionCostFunctionsEnum,cm_responses,nsteps,num_cm_responses)); 71 parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps)); 72 parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps)); 73 } 63 74 64 75 xDelete<int>(control_type); -
issm/trunk-jpl/src/c/solutions/controltao_core.cpp
r13855 r14164 49 49 femmodel->parameters->FindParam(&control_list,NULL,InversionControlParametersEnum); 50 50 femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum); 51 femmodel->parameters->FindParam(&dummy,NULL,NULL,InversionMaxiterPerStepEnum);52 51 femmodel->parameters->SetParam(false,SaveResultsEnum); 53 maxiter=nsteps* (int)dummy[0]; xDelete<IssmDouble>(dummy);52 maxiter=nsteps*10; 54 53 55 54 /*Initialize TAO*/
Note:
See TracChangeset
for help on using the changeset viewer.