From: wolf Date: Thu, 5 Sep 2002 19:39:36 +0000 (+0000) Subject: Work around a problem in MT mode. The docs state what it is. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3d3c912db101263c6d4aed5354e26148c9a7c76;p=dealii-svn.git Work around a problem in MT mode. The docs state what it is. git-svn-id: https://svn.dealii.org/trunk@6366 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/sparse_vanka.h b/deal.II/lac/include/lac/sparse_vanka.h index a97be74246..ce762b6311 100644 --- a/deal.II/lac/include/lac/sparse_vanka.h +++ b/deal.II/lac/include/lac/sparse_vanka.h @@ -26,6 +26,9 @@ template class FullMatrix; template class SparseMatrix; template class Vector; +template class SparseVanka; +template class SparseBlockVanka; + /** * Point-wise Vanka preconditioning. * This class does Vanka preconditioning on a point-wise base. @@ -341,6 +344,32 @@ class SparseVanka void compute_inverse (const unsigned int row, std::vector &local_indices); + /** + * Make the derived class a + * friend. This seems silly, but + * is actually necessary, since + * derived classes can only + * access non-public members + * through their @p{this} + * pointer, but not access these + * members as member functions of + * other objects of the type of + * this base class (i.e. like + * @p{x.f()}, where @p{x} is an + * object of the base class, and + * @p{f} one of it's non-public + * member functions). + * + * Now, in the case of the + * @p{SparseBlockVanka} class, we + * would like to take the address + * of a function of the base + * class in order to call it + * through the multithreading + * framework, so the derived + * class has to be a friend. + */ + template friend class SparseBlockVanka; };