Index: ../trunk-jpl/src/c/cores/controltao_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/controltao_core.cpp (revision 26942) +++ ../trunk-jpl/src/c/cores/controltao_core.cpp (revision 26943) @@ -94,7 +94,12 @@ GetVectorFromControlInputsx(&X, femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"value"); GetVectorFromControlInputsx(&XL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"lowerbound"); GetVectorFromControlInputsx(&XU,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"upperbound"); + #if PETSC_VERSION_LT(3,17,0) TaoSetInitialVector(tao,X->pvector->vector); + #else + //TaoSetSolution(tao,X->pvector->vector); + _error_("not implemented yet"); + #endif TaoSetVariableBounds(tao,XL->pvector->vector,XU->pvector->vector); delete XL; delete XU; @@ -109,9 +114,18 @@ TaoView(tao,PETSC_VIEWER_STDOUT_WORLD); /*Save results*/ + #if PETSC_VERSION_LT(3,17,0) TaoGetSolutionVector(tao,&X->pvector->vector); + #else + TaoGetSolution(tao,&X->pvector->vector); + #endif G=new Vector(0); VecFree(&G->pvector->vector); + #if PETSC_VERSION_LT(3,17,0) TaoGetGradientVector(tao,&G->pvector->vector); + #else + //TaoGetGradient(tao,&G->pvector->vector); + _error_("not implemented yet"); + #endif SetControlInputsFromVectorx(femmodel,X); ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G); femmodel->OutputControlsx(&femmodel->results);