From 0e333892ab86fce71e22680b3db0b97792a5c58e Mon Sep 17 00:00:00 2001 From: young Date: Sun, 6 Oct 2013 21:53:21 +0000 Subject: [PATCH] Instantiate to workaround link errors in dof_accessor_xxx. There should be a prettier way to do this. git-svn-id: https://svn.dealii.org/branches/branch_petscscalar_complex@31156 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/source/dofs/dof_accessor_get.inst.in | 148 +++++++++++++++++++ deal.II/source/dofs/dof_accessor_set.inst.in | 148 ++++++++++++++++++- 2 files changed, 293 insertions(+), 3 deletions(-) diff --git a/deal.II/source/dofs/dof_accessor_get.inst.in b/deal.II/source/dofs/dof_accessor_get.inst.in index 75d1009f06..bb7c505ad9 100644 --- a/deal.II/source/dofs/dof_accessor_get.inst.in +++ b/deal.II/source/dofs/dof_accessor_get.inst.in @@ -70,3 +70,151 @@ for (VEC : SERIAL_VECTORS; SCALAR : REAL_SCALARS; deal_II_dimension : DIMENSIONS #endif } +// ---------------- COMPLEX SCALARS ----------------- + +for (deal_II_dimension : DIMENSIONS; lda : BOOL) + { +#ifdef PETSC_USE_COMPLEX + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#if deal_II_dimension != 3 + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#endif + +#if deal_II_dimension == 3 + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#endif + + } + + +for (deal_II_dimension : DIMENSIONS; lda : BOOL) + { + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#if deal_II_dimension != 3 + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#endif + +#if deal_II_dimension == 3 + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::BlockVector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::Vector&, Vector >&) const; + + template + void + DoFCellAccessor, lda>::get_interpolated_dof_values + (const PETScWrappers::MPI::Vector&, Vector >&) const; + +#endif +#endif // PETSC_USE_COMPLEX + } + diff --git a/deal.II/source/dofs/dof_accessor_set.inst.in b/deal.II/source/dofs/dof_accessor_set.inst.in index 74948318e8..4d8c31f89b 100644 --- a/deal.II/source/dofs/dof_accessor_set.inst.in +++ b/deal.II/source/dofs/dof_accessor_set.inst.in @@ -13,9 +13,6 @@ // the top level of the deal.II distribution. // // --------------------------------------------------------------------- - - - for (VEC : SERIAL_VECTORS; SCALAR : REAL_SCALARS; deal_II_dimension : DIMENSIONS; lda : BOOL) { template @@ -70,3 +67,148 @@ for (VEC : SERIAL_VECTORS; SCALAR : REAL_SCALARS; deal_II_dimension : DIMENSIONS #endif } +// ---------------- COMPLEX SCALARS ----------------- +for (deal_II_dimension : DIMENSIONS; lda : BOOL) + { +#ifdef PETSC_USE_COMPLEX + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#if deal_II_dimension != 3 + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#endif + +#if deal_II_dimension == 3 + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#endif + + } + +for (deal_II_dimension : DIMENSIONS; lda : BOOL) + { + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#if deal_II_dimension != 3 + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#endif + +#if deal_II_dimension == 3 + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::BlockVector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::Vector&) const; + + template + void + DoFCellAccessor, lda>::set_dof_values_by_interpolation + (const Vector >&, PETScWrappers::MPI::Vector&) const; + +#endif +#endif // PETSC_USE_COMPLEX + } -- 2.39.5