From 7ceaa92bcc31a00d0e3a983406d54f294d628cd1 Mon Sep 17 00:00:00 2001 From: Thomas Toulorge <thomas.toulorge@mines-paristech.fr> Date: Mon, 29 Sep 2014 08:32:18 +0000 Subject: [PATCH] Fixed min. metric contribution in new HO optimizer --- contrib/HighOrderMeshOptimizer/OptHomObjContribMetricMin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/HighOrderMeshOptimizer/OptHomObjContribMetricMin.h b/contrib/HighOrderMeshOptimizer/OptHomObjContribMetricMin.h index b3b7bb3975..251fbe6c9e 100644 --- a/contrib/HighOrderMeshOptimizer/OptHomObjContribMetricMin.h +++ b/contrib/HighOrderMeshOptimizer/OptHomObjContribMetricMin.h @@ -65,9 +65,9 @@ bool ObjContribMetricMin<FuncType>::addContrib(double &Obj, alglib::real_1d_arra _mesh->metricMinAndGradients(iEl, mM, gMM); for (int l = 0; l < _mesh->nBezEl(iEl); l++) { // Add contribution for each Bezier coeff. Obj += _weight * FuncType::compute(mM[l]); + const double dfact = _weight * FuncType::computeDiff(mM[l]); for (int iPC = 0; iPC < _mesh->nPCEl(iEl); iPC++) - gradObj[_mesh->indPCEl(iEl,iPC)] += - _weight * FuncType::computeDiff(mM[l], gMM[_mesh->indGSJ(iEl, l, iPC)]); + gradObj[_mesh->indPCEl(iEl,iPC)] += dfact * gMM[_mesh->indGSJ(iEl, l, iPC)]; _min = std::min(_min, mM[l]); _max = std::max(_max, mM[l]); } -- GitLab