From 1c86873e80b3b883f9fe2a299e5fce35f4b1bd1d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Mon, 27 Jan 2014 13:08:33 +0000 Subject: [PATCH] enclosed calls to alglib in try/catch --- contrib/HighOrderMeshOptimizer/OptHOM.cpp | 38 ++++++++++++++--------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/contrib/HighOrderMeshOptimizer/OptHOM.cpp b/contrib/HighOrderMeshOptimizer/OptHOM.cpp index 6ecfb3bf9c..f6a39bf29c 100644 --- a/contrib/HighOrderMeshOptimizer/OptHOM.cpp +++ b/contrib/HighOrderMeshOptimizer/OptHOM.cpp @@ -265,13 +265,18 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, if (OPTMETHOD == 1) { alglib::mincgstate state; alglib::mincgreport rep; - mincgcreate(x, state); - mincgsetscale(state,scale); - mincgsetprecscale(state); - mincgsetcond(state, EPSG, EPSF, EPSX, itMax); - mincgsetxrep(state, true); - alglib::mincgoptimize(state, evalObjGradFunc, printProgressFunc, this); - mincgresults(state, x, rep); + try{ + mincgcreate(x, state); + mincgsetscale(state,scale); + mincgsetprecscale(state); + mincgsetcond(state, EPSG, EPSF, EPSX, itMax); + mincgsetxrep(state, true); + alglib::mincgoptimize(state, evalObjGradFunc, printProgressFunc, this); + mincgresults(state, x, rep); + } + catch(alglib::ap_error e){ + Msg::Error("%s", e.msg.c_str()); + } iterationscount = rep.iterationscount; nfev = rep.nfev; terminationtype = rep.terminationtype; @@ -279,13 +284,18 @@ void OptHOM::OptimPass(alglib::real_1d_array &x, else { alglib::minlbfgsstate state; alglib::minlbfgsreport rep; - minlbfgscreate(3, x, state); - minlbfgssetscale(state,scale); - minlbfgssetprecscale(state); - minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax); - minlbfgssetxrep(state, true); - alglib::minlbfgsoptimize(state, evalObjGradFunc, printProgressFunc, this); - minlbfgsresults(state, x, rep); + try{ + minlbfgscreate(3, x, state); + minlbfgssetscale(state,scale); + minlbfgssetprecscale(state); + minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax); + minlbfgssetxrep(state, true); + alglib::minlbfgsoptimize(state, evalObjGradFunc, printProgressFunc, this); + minlbfgsresults(state, x, rep); + } + catch(alglib::ap_error e){ + Msg::Error("%s", e.msg.c_str()); + } iterationscount = rep.iterationscount; nfev = rep.nfev; terminationtype = rep.terminationtype; -- GitLab