From: bangerth Date: Tue, 2 Sep 2008 21:00:02 +0000 (+0000) Subject: Add necessary instantiations in all cases using the preprocessor. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e6e0c269f53385c5f94becd5fb7860a37ae7b64f;p=dealii-svn.git Add necessary instantiations in all cases using the preprocessor. git-svn-id: https://svn.dealii.org/trunk@16712 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/fe/fe_values.h b/deal.II/deal.II/include/fe/fe_values.h index d9d2506f03..1116ce6d82 100644 --- a/deal.II/deal.II/include/fe/fe_values.h +++ b/deal.II/deal.II/include/fe/fe_values.h @@ -1878,6 +1878,17 @@ class FEValuesBase : protected FEValuesData, */ virtual void + get_interpolated_dof_values (const Vector &in, + Vector &out) const = 0; + + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void get_interpolated_dof_values (const BlockVector &in, Vector &out) const = 0; @@ -1892,6 +1903,17 @@ class FEValuesBase : protected FEValuesData, get_interpolated_dof_values (const BlockVector &in, Vector &out) const = 0; + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const BlockVector &in, + Vector &out) const = 0; + #ifdef DEAL_II_USE_PETSC /** * Call @@ -2020,6 +2042,17 @@ class FEValuesBase : protected FEValuesData, */ virtual void + get_interpolated_dof_values (const Vector &in, + Vector &out) const; + + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void get_interpolated_dof_values (const BlockVector &in, Vector &out) const; @@ -2034,6 +2067,17 @@ class FEValuesBase : protected FEValuesData, get_interpolated_dof_values (const BlockVector &in, Vector &out) const; + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const BlockVector &in, + Vector &out) const; + #ifdef DEAL_II_USE_PETSC /** * Call @@ -2197,6 +2241,17 @@ class FEValuesBase : protected FEValuesData, get_interpolated_dof_values (const Vector &in, Vector &out) const; + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const Vector &in, + Vector &out) const; + /** * Implement the respective * function of the base @@ -2221,6 +2276,17 @@ class FEValuesBase : protected FEValuesData, get_interpolated_dof_values (const BlockVector &in, Vector &out) const; + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const BlockVector &in, + Vector &out) const; + #ifdef DEAL_II_USE_PETSC /** * Call diff --git a/deal.II/deal.II/source/dofs/dof_accessor.cc b/deal.II/deal.II/source/dofs/dof_accessor.cc index 5f819010d4..36ac35d309 100644 --- a/deal.II/deal.II/source/dofs/dof_accessor.cc +++ b/deal.II/deal.II/source/dofs/dof_accessor.cc @@ -522,382 +522,6 @@ set_dof_values_by_interpolation (const Vector &local_values, // -------------------------------------------------------------------------- // explicit instantiations (for DoFHandler) - -template -void -DoFCellAccessor >::get_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, Vector&) const; - - -// for block vector -template -void -DoFCellAccessor >::get_dof_values,double> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,double> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, BlockVector&) const; - -// for Petsc vectors -#ifdef DEAL_II_USE_PETSC -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::Vector&) const; - -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::MPI::Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::MPI::Vector&) const; - -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::BlockVector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::BlockVector&) const; - -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::MPI::BlockVector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::MPI::BlockVector&) const; -#endif - - - -#ifdef DEAL_II_USE_TRILINOS -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, TrilinosWrappers::Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, TrilinosWrappers::Vector&) const; - -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, TrilinosWrappers::BlockVector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, TrilinosWrappers::BlockVector&) const; - -#endif - - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const BlockVector&, Vector&) const; - -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const BlockVector&, Vector&) const; - -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, BlockVector&) const; - -// for Petsc vectors -#if DEAL_II_USE_PETSC -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::MPI::Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::MPI::Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::BlockVector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::MPI::BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::BlockVector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::MPI::BlockVector&) const; - -#endif - - -// for Trilinos vectors -#if DEAL_II_USE_TRILINOS -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::BlockVector&) const; - -#endif - - #if deal_II_dimension == 1 template class DoFAccessor<1, DoFHandler<1> >; template class DoFObjectAccessor<1, DoFHandler<1> >; @@ -943,339 +567,6 @@ template class TriaActiveIterator >::get_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, Vector&) const; - - -// for block vector -template -void -DoFCellAccessor >::get_dof_values,double> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,double> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,double> -(const BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, BlockVector&) const; -template -void -DoFCellAccessor >::get_dof_values,float> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values,float> -(const Vector&, BlockVector&) const; - -// for Petsc vectors -#ifdef DEAL_II_USE_PETSC -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::Vector&) const; - -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const PETScWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, PETScWrappers::BlockVector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, PETScWrappers::BlockVector&) const; -#endif - -// for Trilinos vectors -#ifdef DEAL_II_USE_TRILINOS -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::Vector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, TrilinosWrappers::Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, TrilinosWrappers::Vector&) const; - -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::get_dof_values -(const TrilinosWrappers::BlockVector &, Vector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector &, TrilinosWrappers::BlockVector&) const; -template -void -DoFCellAccessor >::set_dof_values -(const Vector&, TrilinosWrappers::BlockVector&) const; -#endif - - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const BlockVector&, Vector&) const; - -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const BlockVector&, Vector&) const; - -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,double> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,double> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values,float> -(const BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation,float> -(const Vector&, BlockVector&) const; - -// for Petsc vectors -#ifdef DEAL_II_USE_PETSC -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const PETScWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, PETScWrappers::BlockVector&) const; -#endif - - -// for Trilinos vectors -#ifdef DEAL_II_USE_TRILINOS -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::Vector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::Vector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::Vector&) const; - - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::BlockVector&) const; - -template -void -DoFCellAccessor >:: -get_interpolated_dof_values -(const TrilinosWrappers::BlockVector&, Vector&) const; -template -void -DoFCellAccessor >:: -set_dof_values_by_interpolation -(const Vector&, TrilinosWrappers::BlockVector&) const; -#endif - - #if deal_II_dimension == 1 template class DoFAccessor<1, hp::DoFHandler<1> >; template class DoFObjectAccessor<1, hp::DoFHandler<1> >; @@ -1318,4 +609,7 @@ template class TriaRawIterator > >; template class TriaActiveIterator > >; + +#include "dof_accessor.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/deal.II/deal.II/source/dofs/dof_accessor.inst.in b/deal.II/deal.II/source/dofs/dof_accessor.inst.in new file mode 100644 index 0000000000..7a805ee8fe --- /dev/null +++ b/deal.II/deal.II/source/dofs/dof_accessor.inst.in @@ -0,0 +1,57 @@ +//--------------------------------------------------------------------------- +// $Id: dof_accessor.cc 16656 2008-08-22 19:39:29Z bangerth $ +// Version: $Name$ +// +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//--------------------------------------------------------------------------- + + +for (VEC : SERIAL_VECTORS; SCALAR : REAL_SCALARS) + { + template + void + DoFCellAccessor >::get_dof_values + (const VEC&, Vector&) const; + template + void + DoFCellAccessor >::set_dof_values + (const Vector&, VEC&) const; + + template + void + DoFCellAccessor >::get_interpolated_dof_values + (const VEC&, Vector&) const; + template + void + DoFCellAccessor >::set_dof_values_by_interpolation + (const Vector&, VEC&) const; + } + + +for (VEC : SERIAL_VECTORS; SCALAR : REAL_SCALARS) + { + template + void + DoFCellAccessor >::get_dof_values + (const VEC&, Vector&) const; + template + void + DoFCellAccessor >::set_dof_values + (const Vector&, VEC&) const; + + template + void + DoFCellAccessor >::get_interpolated_dof_values + (const VEC&, Vector&) const; + template + void + DoFCellAccessor >::set_dof_values_by_interpolation + (const Vector&, VEC&) const; + } + diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index 3c39f2264e..670e31b5a1 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -93,6 +93,17 @@ get_interpolated_dof_values (const Vector &in, } +template +template +void +FEValuesBase::CellIterator:: +get_interpolated_dof_values (const Vector &in, + Vector &out) const +{ + cell->get_interpolated_dof_values (in, out); +} + + template template void @@ -115,6 +126,17 @@ get_interpolated_dof_values (const BlockVector &in, } +template +template +void +FEValuesBase::CellIterator:: +get_interpolated_dof_values (const BlockVector &in, + Vector &out) const +{ + cell->get_interpolated_dof_values (in, out); +} + + #ifdef DEAL_II_USE_PETSC @@ -230,6 +252,16 @@ get_interpolated_dof_values (const Vector &, } +template +void +FEValuesBase::TriaCellIterator:: +get_interpolated_dof_values (const Vector &, + Vector &) const +{ + Assert (false, ExcMessage (message_string)); +} + + template void FEValuesBase::TriaCellIterator:: @@ -251,6 +283,16 @@ get_interpolated_dof_values (const BlockVector &, } +template +void +FEValuesBase::TriaCellIterator:: +get_interpolated_dof_values (const BlockVector &, + Vector &) const +{ + Assert (false, ExcMessage (message_string)); +} + + #ifdef DEAL_II_USE_PETSC @@ -2072,46 +2114,12 @@ template class FEFaceValues; template class FESubfaceValues; #endif -DEAL_II_NAMESPACE_CLOSE //--------------------------------------------------------------------------- // Instantiations are in a different file using the macro IN for the vector type. // This way, we avoid code reduplication -#define IN Vector -#include "fe_values.instance.h" -#undef IN - -#define IN BlockVector -#include "fe_values.instance.h" -#undef IN - -#define IN Vector -#include "fe_values.instance.h" -#undef IN - -#define IN BlockVector -#include "fe_values.instance.h" -#undef IN - -#ifdef DEAL_II_USE_PETSC -#define IN PETScWrappers::Vector -#include "fe_values.instance.h" -#undef IN - -#define IN PETScWrappers::BlockVector -#include "fe_values.instance.h" -#undef IN -#endif - -#ifdef DEAL_II_USE_TRILINOS -#define IN TrilinosWrappers::Vector -#include "fe_values.instance.h" -#undef IN - -#define IN TrilinosWrappers::BlockVector -#include "fe_values.instance.h" -#undef IN -#endif +#include "fe_values.inst" +DEAL_II_NAMESPACE_CLOSE diff --git a/deal.II/deal.II/source/fe/fe_values.inst.in b/deal.II/deal.II/source/fe/fe_values.inst.in new file mode 100644 index 0000000000..f0e2288960 --- /dev/null +++ b/deal.II/deal.II/source/fe/fe_values.inst.in @@ -0,0 +1,87 @@ +//----------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------- + +// Instantiations of functions in FEValuesBase + +for (VEC : SERIAL_VECTORS) + { + template + void FEValuesBase::get_function_values + (const VEC&, std::vector&) const; + template + void FEValuesBase::get_function_values + (const VEC&, std::vector&) const; + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, std::vector&) const; + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, std::vector&) const; + + template + void FEValuesBase::get_function_values + (const VEC&, std::vector > &) const; + template + void FEValuesBase::get_function_values + (const VEC&, std::vector > &) const; + + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, + std::vector > &) const; + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, + std::vector > &) const; + + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, + std::vector > &, bool) const; + template + void FEValuesBase::get_function_values + (const VEC&, const VectorSlice >&, + std::vector > &, bool) const; + + template + void FEValuesBase::get_function_gradients + (const VEC&, std::vector > &) const; + template + void FEValuesBase::get_function_gradients + (const VEC&, const VectorSlice >&, + std::vector > &) const; + + template + void FEValuesBase::get_function_gradients + (const VEC&, std::vector > > &) const; + template + void FEValuesBase::get_function_gradients + (const VEC&, const VectorSlice >&, + std::vector > > &, bool) const; + + template + void FEValuesBase::get_function_hessians + (const VEC&, std::vector > &) const; + template + void FEValuesBase::get_function_hessians + (const VEC&, const VectorSlice >&, + std::vector > &) const; + + template + void FEValuesBase::get_function_hessians + (const VEC&, std::vector > > &, bool) const; + template + void FEValuesBase::get_function_hessians + (const VEC&, const VectorSlice >&, + std::vector > > &, bool) const; + } diff --git a/deal.II/deal.II/source/fe/fe_values.instance.h b/deal.II/deal.II/source/fe/fe_values.instance.h deleted file mode 100644 index d6ce461798..0000000000 --- a/deal.II/deal.II/source/fe/fe_values.instance.h +++ /dev/null @@ -1,90 +0,0 @@ -//----------------------------------------------------------------------- -// $Id$ -// Version: $Name$ -// -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by the deal.II authors -// -// This file is subject to QPL and may not be distributed -// without copyright and license information. Please refer -// to the file deal.II/doc/license.html for the text and -// further information on this license. -// -//----------------------------------------------------------------------- - -// Instantiations of functions in FEValuesBase - -// Definition of vector type macros is in fe_values.cc - -DEAL_II_NAMESPACE_OPEN - -template -void FEValuesBase::get_function_values -(const IN&, std::vector&) const; -template -void FEValuesBase::get_function_values -(const IN&, std::vector&) const; -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, std::vector&) const; -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, std::vector&) const; - -template -void FEValuesBase::get_function_values -(const IN&, std::vector > &) const; -template -void FEValuesBase::get_function_values -(const IN&, std::vector > &) const; - -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, - std::vector > &) const; -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, - std::vector > &) const; - -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, - std::vector > &, bool) const; -template -void FEValuesBase::get_function_values -(const IN&, const VectorSlice >&, - std::vector > &, bool) const; - -template -void FEValuesBase::get_function_gradients -(const IN&, std::vector > &) const; -template -void FEValuesBase::get_function_gradients -(const IN&, const VectorSlice >&, - std::vector > &) const; - -template -void FEValuesBase::get_function_gradients -(const IN&, std::vector > > &) const; -template -void FEValuesBase::get_function_gradients -(const IN&, const VectorSlice >&, - std::vector > > &, bool) const; - -template -void FEValuesBase::get_function_hessians -(const IN&, std::vector > &) const; -template -void FEValuesBase::get_function_hessians -(const IN&, const VectorSlice >&, - std::vector > &) const; - -template -void FEValuesBase::get_function_hessians -(const IN&, std::vector > > &, bool) const; -template -void FEValuesBase::get_function_hessians -(const IN&, const VectorSlice >&, - std::vector > > &, bool) const; - -DEAL_II_NAMESPACE_CLOSE