From: Daniel Arndt Date: Sun, 27 May 2018 15:30:35 +0000 (+0200) Subject: Bugfix: Add missing instantiations X-Git-Tag: v9.1.0-rc1~1067^2~34 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b23f7ab472d7782bf4f0b0a66cdaabe7bb44464;p=dealii.git Bugfix: Add missing instantiations --- diff --git a/source/lac/affine_constraints.cc b/source/lac/affine_constraints.cc index d318ac69a7..aef54fb03a 100644 --- a/source/lac/affine_constraints.cc +++ b/source/lac/affine_constraints.cc @@ -21,6 +21,17 @@ DEAL_II_NAMESPACE_OPEN #include "affine_constraints.inst" +/* + * FIXME: This mixed variant is needed by the multigrid - it currently only + * supports AffineConstraints. If someone has the patience to + * templateify the 10 custom wrapper classes around AffineConstraints, + * please go ahead, fix the multigrid classes and remove this + * instantiation: + */ +template void +dealii::AffineConstraints::condense>( + dealii::BlockVector &) const; + /* * Note: You probably do not want to add your custom instantiation down * here but use affine_constraints.inst.in instead. We use the following @@ -31,6 +42,12 @@ DEAL_II_NAMESPACE_OPEN #define INSTANTIATE_DLTG_VECTOR(VectorType) \ template void \ + AffineConstraints::condense( \ + const VectorType &, VectorType &) const; \ + template void \ + AffineConstraints::condense( \ + VectorType &) const; \ + template void \ AffineConstraints::distribute_local_to_global< \ VectorType>( \ const Vector &, \ diff --git a/source/lac/affine_constraints.inst.in b/source/lac/affine_constraints.inst.in index 2c41b463e2..5d47c6796d 100644 --- a/source/lac/affine_constraints.inst.in +++ b/source/lac/affine_constraints.inst.in @@ -300,11 +300,33 @@ for (S : REAL_AND_COMPLEX_SCALARS; T : DEAL_II_VEC_TEMPLATES) LinearAlgebra::distributed::T &) const; } +for (S : COMPLEX_SCALARS; T : DEAL_II_VEC_TEMPLATES) + { + template void AffineConstraints::distribute>(T &) + const; + + template void AffineConstraints::distribute< + LinearAlgebra::distributed::T>(LinearAlgebra::distributed::T &) + const; + + template void AffineConstraints::set_zero>(T &) + const; + + template void AffineConstraints::set_zero< + LinearAlgebra::distributed::T>(LinearAlgebra::distributed::T &) + const; + } for (S : REAL_AND_COMPLEX_SCALARS) + { + template void AffineConstraints::distribute>( + LinearAlgebra::Vector &) const; + } + +for (S : COMPLEX_SCALARS) { template void - AffineConstraints::distribute>( + AffineConstraints::distribute>( LinearAlgebra::Vector &) const; }