Changeset 11513
- Timestamp:
- 02/23/12 14:29:41 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/solutions/controltao_core.cpp
r11512 r11513 17 17 18 18 /*Local prototype*/ 19 int FormFunctionGradient(TaoSolver tao,Vec,double*,Vec,void*);20 int IssmMonitor(TaoSolver,void 19 int FormFunctionGradient(TaoSolver,Vec,double*,Vec,void*); 20 int IssmMonitor(TaoSolver,void*); 21 21 typedef struct { 22 22 FemModel* femmodel; … … 60 60 61 61 /*Prepare all TAO parameters*/ 62 TaoSetMonitor(tao,IssmMonitor, NULL,NULL);62 TaoSetMonitor(tao,IssmMonitor,&user,NULL); 63 63 TaoSetMaximumFunctionEvaluations(tao,maxiter); 64 64 TaoSetMaximumIterations(tao,nsteps); … … 146 146 int IssmMonitor(TaoSolver tao, void *userCtx){ 147 147 148 AppCtx *user = (AppCtx *)userCtx; 149 int its; 150 double f,gnorm,cnorm,xdiff; 148 int i,its,num_responses; 149 double f,gnorm,cnorm,xdiff; 150 AppCtx *user = (AppCtx *)userCtx; 151 FemModel *femmodel = user->femmodel; 152 Element *element = NULL; 153 int *responses = NULL; 154 155 femmodel->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 156 femmodel->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 151 157 152 158 TaoGetSolutionStatus(tao, &its, &f, &gnorm, &cnorm, &xdiff, NULL); 153 if(its==0)printf("Iter Function Residual\n"); 154 printf("%4i %12.7g %12.7g\n",its,f,gnorm); 155 printf("iter: %i\n",tao->niter); 159 if(its==0) _printf_(true,"Iter Function Residual | List of contributions\n"); 160 if(its==0) _printf_(true,"-----------------------------------+-----------------------\n"); 161 _printf_(true,"%4i %12.7g %12.7g | ",its,f,gnorm); 162 163 /*Retrieve objective functions independently*/ 164 for(i=0;i<num_responses;i++){ 165 Responsex(&f,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnumToStringx(responses[i]),false,i); 166 _printf_(true," %12.7g ","",f); 167 } 168 _printf_(true,"\n"); 169 170 /*Clean-up and return*/ 171 xfree((void**)&responses); 156 172 return 0; 157 173 }
Note:
See TracChangeset
for help on using the changeset viewer.