From 8fbf68664e4e3960b92bba2f8363ae3c4a2d62b6 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sun, 14 Feb 2010 00:53:17 +0000 Subject: [PATCH] Move declaration of nested class to .cc file. git-svn-id: https://svn.dealii.org/trunk@20612 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/fe/fe_values.h | 225 +------------------------ deal.II/deal.II/source/fe/fe_values.cc | 177 +++++++++++++++++++ 2 files changed, 179 insertions(+), 223 deletions(-) diff --git a/deal.II/deal.II/include/fe/fe_values.h b/deal.II/deal.II/include/fe/fe_values.h index 0dd2b7a95d..8dd4ee1827 100644 --- a/deal.II/deal.II/include/fe/fe_values.h +++ b/deal.II/deal.II/include/fe/fe_values.h @@ -53,32 +53,6 @@ template class FEValuesBase; template class Vector; template class BlockVector; -#ifdef DEAL_II_USE_PETSC -namespace PETScWrappers -{ - class Vector; - class BlockVector; - - namespace MPI - { - class Vector; - class BlockVector; - } -} -#endif - -#ifdef DEAL_II_USE_TRILINOS -namespace TrilinosWrappers -{ - class Vector; - class BlockVector; - namespace MPI - { - class Vector; - class BlockVector; - } -} -#endif /** * A namespace in which we declare "extractors", i.e. classes that when used @@ -2026,7 +2000,7 @@ class FEValuesBase : protected FEValuesData, const VectorSlice >& indices, VectorSlice > > values, const bool quadrature_points_fastest) const; - + /** * Compute the gradients of the finite * element function characterized @@ -2707,202 +2681,7 @@ class FEValuesBase : protected FEValuesData, * * @author Wolfgang Bangerth, 2003 */ - class CellIteratorBase - { - public: - /** - * Destructor. Made virtual - * since we store only - * pointers to the base - * class. - */ - virtual ~CellIteratorBase (); - - /** - * Conversion operator to an - * iterator for - * triangulations. This - * conversion is implicit for - * the original iterators, - * since they are derived - * classes. However, since - * here we have kind of a - * parallel class hierarchy, - * we have to have a - * conversion operator. - */ - virtual - operator const typename Triangulation::cell_iterator () const = 0; - - /** - * Return the number of - * degrees of freedom the DoF - * handler object has to - * which the iterator belongs - * to. - */ - virtual - unsigned int - n_dofs_for_dof_handler () const = 0; - - /** - * 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 = 0; - - /** - * 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 = 0; - - /** - * 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 = 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; - - /** - * 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; - - /** - * 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 - * @p get_interpolated_dof_values - * of the iterator with the - * given arguments. - */ - virtual - void - get_interpolated_dof_values (const PETScWrappers::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 PETScWrappers::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 PETScWrappers::MPI::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 PETScWrappers::MPI::BlockVector &in, - Vector &out) const = 0; -#endif - -#ifdef DEAL_II_USE_TRILINOS - /** - * Call - * @p get_interpolated_dof_values - * of the iterator with the - * given arguments. - */ - virtual - void - get_interpolated_dof_values (const TrilinosWrappers::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 TrilinosWrappers::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 TrilinosWrappers::MPI::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 TrilinosWrappers::MPI::BlockVector &in, - Vector &out) const = 0; -#endif - }; + class CellIteratorBase; /** * Forward declaration of classes derived diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index 0094d67eec..ab6361add0 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -1102,6 +1102,183 @@ namespace internal /* ---------------- FEValuesBase::CellIteratorBase --------- */ +template +class FEValuesBase::CellIteratorBase +{ + public: + /** + * Destructor. Made virtual + * since we store only + * pointers to the base + * class. + */ + virtual ~CellIteratorBase (); + + /** + * Conversion operator to an + * iterator for + * triangulations. This + * conversion is implicit for + * the original iterators, + * since they are derived + * classes. However, since + * here we have kind of a + * parallel class hierarchy, + * we have to have a + * conversion operator. + */ + virtual + operator const typename Triangulation::cell_iterator () const = 0; + + /** + * Return the number of + * degrees of freedom the DoF + * handler object has to + * which the iterator belongs + * to. + */ + virtual + unsigned int + n_dofs_for_dof_handler () const = 0; + + /** + * 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 = 0; + + /** + * 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 = 0; + + /** + * 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 = 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; + + /** + * 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; + + /** + * 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 + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const PETScWrappers::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 PETScWrappers::BlockVector &in, + Vector &out) const = 0; +#endif + +#ifdef DEAL_II_USE_TRILINOS + /** + * Call + * @p get_interpolated_dof_values + * of the iterator with the + * given arguments. + */ + virtual + void + get_interpolated_dof_values (const TrilinosWrappers::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 TrilinosWrappers::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 TrilinosWrappers::MPI::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 TrilinosWrappers::MPI::BlockVector &in, + Vector &out) const = 0; +#endif +}; + + template FEValuesBase::CellIteratorBase::~CellIteratorBase () {} -- 2.39.5