From a40035bbcfea6735fd3f8023d9ddedba7aa0ab3e Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 24 Jan 2011 09:27:57 +0000 Subject: [PATCH] bugfix: set the correct Dirichlet nodes for the linearized continuum NtD map [[Imported from SVN: r6858]] --- dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh index 45f66d5b..3a1f7657 100644 --- a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh +++ b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh @@ -660,6 +660,14 @@ linearizedContinuumNeumannToDirichletMap(const std::string& continuumName, boundaryFunctionalAssembler.assemble(localNeumannAssembler, rhs, false); } + + // Set the correct Dirichlet nodes + /** \brief Don't write this BitSetVector at each iteration */ + Dune::BitSetVector<dim> dirichletNodes(rhs.size(),false); + for (size_t i=0; i<dirichletNodes.size(); i++) + dirichletNodes[i] = dirichletBoundary.containsVertex(i); + dynamic_cast<IterationStep<VectorType>* >(continuum(continuumName).solver_->iterationStep_)->ignoreNodes_ + = &dirichletNodes; // Solve the Neumann problem for the continuum VectorType x = complex_.continuum(continuumName).dirichletValues_; -- GitLab