diff --git a/dune/solvers/iterationsteps/mmgstep.cc b/dune/solvers/iterationsteps/mmgstep.cc index 1e62630e514b40d7b4ada5fcac6f9d35a18db1fb..4d543d876e508c8995a1d10a38e8f9e023040512 100644 --- a/dune/solvers/iterationsteps/mmgstep.cc +++ b/dune/solvers/iterationsteps/mmgstep.cc @@ -214,8 +214,9 @@ void MonotoneMGStep<MatrixType, VectorType>::iterate() // Debug: is the current iterate really admissible? for (size_t i=0; i<obstacles[level].size(); i++) for (int j=0; j<VectorType::block_type::dimension; j++) - if ((*x[level])[i][j] < obstacles[level][i].lower(j) - || (*x[level])[i][j] > obstacles[level][i].upper(j)) { + if (((*x[level])[i][j] - obstacles[level][i].lower(j)<-1e-14 + || (*x[level])[i][j] - obstacles[level][i].upper(j) >1e-14 ) + && (!(*this->ignoreNodesHierarchy_[level])[i][j])) { std::cout << "Obstacle disregarded!\n"; std::cout << (*x[level])[i] << std::endl << obstacles[level][i] << std::endl;