diff --git a/contrib/HighOrderMeshOptimizer/OptHOM.cpp b/contrib/HighOrderMeshOptimizer/OptHOM.cpp index 6c9582c26a0a79f130a77fdb8e296fb74f9d7d41..27520bd4c4b5fe24f523a8bf2dc6827db8730cae 100644 --- a/contrib/HighOrderMeshOptimizer/OptHOM.cpp +++ b/contrib/HighOrderMeshOptimizer/OptHOM.cpp @@ -84,11 +84,13 @@ void OptHOM::evalObjGrad(const alglib::real_1d_array &x, double &Obj, alglib::re Obj = 0.; for (int i = 0; i < gradObj.length(); i++) gradObj[i] = 0.; - if ((minJac > barrier_min) && (maxJac < barrier_max)) + addJacObjGrad(Obj, gradObj); + addDistObjGrad(lambda, lambda2, Obj, gradObj); + + if ((minJac > barrier_min) && (maxJac < barrier_max)) { printf("INFO: reached Jacobian requirements, setting null gradient\n"); - else { - addJacObjGrad(Obj, gradObj); - addDistObjGrad(lambda, lambda2, Obj, gradObj); + Obj = 0.; + for (int i = 0; i < gradObj.length(); i++) gradObj[i] = 0.; } }