diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.cc b/dune/solvers/iterationsteps/projectedblockgsstep.cc index 83e28e0e3e1a86b63e38383ab3890f44cc744a8f..e1932420e3f38cb91904620bacb5833453447ba6 100644 --- a/dune/solvers/iterationsteps/projectedblockgsstep.cc +++ b/dune/solvers/iterationsteps/projectedblockgsstep.cc @@ -5,6 +5,8 @@ template<class MatrixType, class VectorType> inline void ProjectedBlockGSStep<MatrixType, VectorType>::iterate() { + assert(hasObstacle_!=nullptr); + if (hasObstacle_->size()!= (unsigned int)this->x_->size()) DUNE_THROW(SolverError, "Size of hasObstacle (" << hasObstacle_->size() << ") doesn't match solution vector (" << this->x_->size() << ")"); @@ -46,6 +48,8 @@ void ProjectedBlockGSStep<MatrixType, VectorType>::iterate() // Solve the local constraint minimization problem // We use a projected Gauss-Seidel, for lack of anything better + assert(obstacles_!=nullptr); + Obstacle defectObstacle = (*obstacles_)[i]; defectObstacle -= x; diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.hh b/dune/solvers/iterationsteps/projectedblockgsstep.hh index 9a491168828f8b27f4fbd4e98b602d4865f7d881..821055d2bf48ee70a6909d7b458d275bc4fcb11f 100644 --- a/dune/solvers/iterationsteps/projectedblockgsstep.hh +++ b/dune/solvers/iterationsteps/projectedblockgsstep.hh @@ -48,8 +48,8 @@ public: using HasObstacle = Dune::BitSetVector<BlockSize>; using Obstacle = BoxConstraint<Field, BlockSize>; - const HasObstacle* hasObstacle_; - const std::vector<Obstacle>* obstacles_; + const HasObstacle* hasObstacle_ = nullptr; + const std::vector<Obstacle>* obstacles_ = nullptr; }; #include "projectedblockgsstep.cc"