Changeset 17911
- Timestamp:
 - 05/01/14 14:45:26 (12 years ago)
 - Location:
 - issm/trunk-jpl/src/c
 - Files:
 - 
      
- 2 edited
 
- 
          
  cores/controlm1qn3_core.cpp (modified) (3 diffs)
 - 
          
  modules/ModelProcessorx/Control/CreateParametersControl.cpp (modified) (2 diffs)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp
r17907 r17911 30 30 /*Intermediaries*/ 31 31 long omode; 32 double f ;32 double f,dxmin,epsrel; 33 33 int nsteps,maxiter; 34 34 int intn,num_controls,solution_type; … … 40 40 femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 41 41 femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum); 42 femmodel->parameters->FindParam(&dxmin,InversionDxminEnum); 43 femmodel->parameters->FindParam(&epsrel,InversionEpsrelEnum); 42 44 femmodel->parameters->SetParam(false,SaveResultsEnum); 43 45 maxiter=nsteps*10; … … 58 60 59 61 /*Optimization criterions*/ 60 double dxmin = 1.e-1; /*Resolution for the solution x*/61 double epsrel = 1.e-4; /*Gradient stopping criterion in ]0 1[ -> |gk|/|g1| < epsrel*/62 62 long niter = long(nsteps); /*Maximum number of iterations*/ 63 63 long nsim = long(maxiter);/*Maximum number of function calls*/  - 
      
issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r17895 r17911 32 32 parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum)); 33 33 parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum)); 34 if(inversiontype==0){35 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum));36 }37 34 38 35 /*What solution type?*/ … … 47 44 iomodel->FetchData(&control_type,NULL,&num_control_type,InversionControlParametersEnum); 48 45 iomodel->FetchData(&cm_responses,NULL,&num_cm_responses,InversionCostFunctionsEnum); 49 if(inversiontype==0){ 50 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 51 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); 52 iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum); 53 } 46 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 47 parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses)); 54 48 55 if(inversiontype!=0){ 56 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 57 parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses)); 58 } 59 else{ 60 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 61 parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses)); 62 parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type)); 63 parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps)); 64 parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps)); 49 /*Inversion type specifics*/ 50 switch(inversiontype){ 51 case 0:/*Brent Search*/ 52 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum)); 53 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 54 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); 55 iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum); 56 parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type)); 57 parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps)); 58 parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps)); 59 break; 60 case 1:/*TAO*/ 61 break; 62 case 2:/*M1QN3*/ 63 parameters->AddObject(iomodel->CopyConstantObject(InversionDxminEnum)); 64 parameters->AddObject(iomodel->CopyConstantObject(InversionEpsrelEnum)); 65 break; 66 default: 67 _error_("not supported"); 68 65 69 } 66 70  
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  ![(please configure the [header_logo] section in trac.ini)](/trac/issm/chrome/common/trac_banner.png)