From dd5522bf8be7d72d8e16945de1abef8063395360 Mon Sep 17 00:00:00 2001 From: Ralf Hartmann Date: Tue, 22 May 2001 14:56:13 +0000 Subject: [PATCH] Include declarations of explicit specializations. git-svn-id: https://svn.dealii.org/trunk@4696 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/fe/fe_q.h | 7 +++ deal.II/deal.II/include/fe/fe_system.h | 5 +++ deal.II/deal.II/include/fe/mapping.h | 9 ++++ .../deal.II/include/fe/mapping_cartesian.h | 27 ++++++++++++ deal.II/deal.II/include/fe/mapping_q.h | 25 +++++++++++ .../include/numerics/data_out_rotation.h | 5 +++ .../numerics/derivative_approximation.h | 10 +++++ .../include/numerics/error_estimator.h | 43 +++++++++++++++++++ deal.II/deal.II/include/numerics/matrices.h | 25 +++++++++++ deal.II/deal.II/include/numerics/vectors.h | 37 ++++++++++++++++ 10 files changed, 193 insertions(+) diff --git a/deal.II/deal.II/include/fe/fe_q.h b/deal.II/deal.II/include/fe/fe_q.h index a82b23f5da..261cf89912 100644 --- a/deal.II/deal.II/include/fe/fe_q.h +++ b/deal.II/deal.II/include/fe/fe_q.h @@ -615,7 +615,14 @@ class FE_Q : public FiniteElement }; +/* -------------- declaration of explicit specializations ------------- */ +template <> void FE_Q<1>::initialize_unit_face_support_points (); +template <> void FE_Q<1>::build_face_renumbering (const unsigned int, + std::vector&); + + +/* ---------------------------- inline functions --------------------- */ template inline diff --git a/deal.II/deal.II/include/fe/fe_system.h b/deal.II/deal.II/include/fe/fe_system.h index 88a68da9f3..d343b9b57f 100644 --- a/deal.II/deal.II/include/fe/fe_system.h +++ b/deal.II/deal.II/include/fe/fe_system.h @@ -618,6 +618,11 @@ class FESystem : public FiniteElement }; +/* -------------- declaration of explicit specializations ------------- */ + + +template <> void FESystem<1>::initialize_unit_face_support_points (); + /* ------------------------- inline functions ------------------------- */ diff --git a/deal.II/deal.II/include/fe/mapping.h b/deal.II/deal.II/include/fe/mapping.h index 3b51a331b3..6ea57e6a72 100644 --- a/deal.II/deal.II/include/fe/mapping.h +++ b/deal.II/deal.II/include/fe/mapping.h @@ -361,6 +361,15 @@ class Mapping : public Subscriptor }; +/* -------------- declaration of explicit specializations ------------- */ + + +template<> const unsigned int Mapping<1>::normal_directions[2]; +template<> const unsigned int Mapping<2>::normal_directions[4]; +template<> const unsigned int Mapping<3>::normal_directions[6]; + + +/* ------------------------- inline functions ------------------------- */ template diff --git a/deal.II/deal.II/include/fe/mapping_cartesian.h b/deal.II/deal.II/include/fe/mapping_cartesian.h index 0ed6799179..a724685948 100644 --- a/deal.II/deal.II/include/fe/mapping_cartesian.h +++ b/deal.II/deal.II/include/fe/mapping_cartesian.h @@ -265,4 +265,31 @@ class MappingCartesian : public Mapping }; + +/* -------------- declaration of explicit specializations ------------- */ + + +template <> void MappingCartesian<1>::fill_fe_face_values ( + const DoFHandler<1>::cell_iterator &, + const unsigned, + const Quadrature<0>&, + Mapping<1>::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const; + +template <> void MappingCartesian<1>::fill_fe_subface_values ( + const DoFHandler<1>::cell_iterator &, + const unsigned, + const unsigned, + const Quadrature<0>&, + Mapping<1>::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const; + + + #endif diff --git a/deal.II/deal.II/include/fe/mapping_q.h b/deal.II/deal.II/include/fe/mapping_q.h index fb9ab0420e..5f3f5ce849 100644 --- a/deal.II/deal.II/include/fe/mapping_q.h +++ b/deal.II/deal.II/include/fe/mapping_q.h @@ -506,4 +506,29 @@ class MappingQ : public MappingQ1 }; +/* -------------- declaration of explicit specializations ------------- */ + + +template<> MappingQ<1>::MappingQ (const unsigned int); +template<> MappingQ<1>::~MappingQ (); +template<> void MappingQ<1>::compute_shapes_virtual ( + const std::vector > &unit_points, + MappingQ1<1>::InternalData &data) const; +template <> void MappingQ<1>::set_laplace_on_quad_vector( + std::vector > &) const; +template <> void MappingQ<3>::set_laplace_on_hex_vector( + std::vector > &lohvs) const; +template <> void MappingQ<1>::compute_laplace_vector( + std::vector > &) const; +template <> void MappingQ<1>::add_line_support_points ( + const Triangulation<1>::cell_iterator &, + std::vector > &) const; +template<> void MappingQ<3>::add_quad_support_points( + const Triangulation<3>::cell_iterator &cell, + std::vector > &a) const; +template <> void MappingQ<3>::fill_quad_support_points_simple ( + const Triangulation<3>::cell_iterator &cell, + std::vector > &a) const; + + #endif diff --git a/deal.II/deal.II/include/numerics/data_out_rotation.h b/deal.II/deal.II/include/numerics/data_out_rotation.h index e0b11358b9..a81605f1cd 100644 --- a/deal.II/deal.II/include/numerics/data_out_rotation.h +++ b/deal.II/deal.II/include/numerics/data_out_rotation.h @@ -194,4 +194,9 @@ class DataOutRotation : public DataOut_DoFData }; +/* -------------- declaration of explicit specializations ------------- */ + +template <> void DataOutRotation<3>::build_some_patches (Data); + + #endif diff --git a/deal.II/deal.II/include/numerics/derivative_approximation.h b/deal.II/deal.II/include/numerics/derivative_approximation.h index b8debc4412..3408bf761b 100644 --- a/deal.II/deal.II/include/numerics/derivative_approximation.h +++ b/deal.II/deal.II/include/numerics/derivative_approximation.h @@ -477,6 +477,16 @@ class DerivativeApproximation }; +/* -------------- declaration of explicit specializations ------------- */ + +template <> double DerivativeApproximation::SecondDerivative<1>::derivative_norm ( + const Derivative &d); +template <> double DerivativeApproximation::SecondDerivative<2>::derivative_norm ( + const Derivative &d); +template <> double DerivativeApproximation::SecondDerivative<3>::derivative_norm ( + const Derivative &d); + + #endif diff --git a/deal.II/deal.II/include/numerics/error_estimator.h b/deal.II/deal.II/include/numerics/error_estimator.h index 73e2375eab..b47832769f 100644 --- a/deal.II/deal.II/include/numerics/error_estimator.h +++ b/deal.II/deal.II/include/numerics/error_estimator.h @@ -608,6 +608,49 @@ class KellyErrorEstimator }; +/* -------------- declaration of explicit specializations ------------- */ + + +template <> KellyErrorEstimator<1>::Data::Data( + const Mapping<1> &, + const DoFHandler<1> &, + const Quadrature<0> &, + const FunctionMap<1>::type &, + const std::vector*> &, + const std::vector &, + const Function<1> *, + const unsigned int , + FaceIntegrals &); + +template <> void KellyErrorEstimator<1>::estimate_some ( + Data &, const unsigned int); + +template <> void KellyErrorEstimator<1>::estimate ( + const Mapping<1> &mapping, + const DoFHandler<1> &dof_handler, + const Quadrature<0> &, + const FunctionMap<1>::type &neumann_bc, + const std::vector*> &solutions, + std::vector*> &errors, + const std::vector &component_mask_, + const Function<1> *coefficient, + const unsigned int); + +template <> void KellyErrorEstimator<1>::integrate_over_regular_face ( + Data &, + const active_cell_iterator &, + const unsigned int , + FEFaceValues<1> &, + FEFaceValues<1> &); + +template <> void KellyErrorEstimator<1>::integrate_over_irregular_face ( + Data &, + const active_cell_iterator &, + const unsigned int , + FEFaceValues<1> &, + FESubfaceValues<1> &); + + #endif diff --git a/deal.II/deal.II/include/numerics/matrices.h b/deal.II/deal.II/include/numerics/matrices.h index 30b1d074c9..d723e3011d 100644 --- a/deal.II/deal.II/include/numerics/matrices.h +++ b/deal.II/deal.II/include/numerics/matrices.h @@ -493,6 +493,31 @@ class MatrixCreator }; +/* -------------- declaration of explicit specializations ------------- */ + + +template <> void MatrixCreator<1>::create_boundary_mass_matrix ( + const Mapping<1> &, + const DoFHandler<1> &, + const Quadrature<0> &, + SparseMatrix &, + const FunctionMap<1>::type&, + Vector &, + std::vector &, + const Function<1> * const); + +template <> void MatrixCreator<1>::create_boundary_mass_matrix_1 ( + const Mapping<1> &, + const DoFHandler<1> &, + const Quadrature<0> &, + SparseMatrix &, + const FunctionMap<1>::type&, + Vector &, + std::vector &, + const Function<1> * const , + const IteratorRange &, + Threads::ThreadMutex &); + /** * Provide a collection of functions operating on matrices. These include diff --git a/deal.II/deal.II/include/numerics/vectors.h b/deal.II/deal.II/include/numerics/vectors.h index 341fb804a6..f443236991 100644 --- a/deal.II/deal.II/include/numerics/vectors.h +++ b/deal.II/deal.II/include/numerics/vectors.h @@ -11,6 +11,7 @@ #include +#include #include #include @@ -746,4 +747,40 @@ class VectorTools }; +/* -------------- declaration of explicit specializations ------------- */ + +template <> void VectorTools::project ( + const Mapping<1> &, + const DoFHandler<1> &, + const ConstraintMatrix &, + const Quadrature<1> &, + const Function<1> &, + Vector &, + const bool , + const Quadrature<0> &, + const bool ); + +template <> void VectorTools::interpolate_boundary_values ( + const Mapping<1> &, + const DoFHandler<1> &dof, + const unsigned char boundary_component, + const Function<1> &boundary_function, + std::map &boundary_values, + const std::vector &component_mask_); + +template <> void VectorTools::interpolate_boundary_values ( + const Mapping<1> &mapping, + const DoFHandler<1> &dof, + const FunctionMap<1>::type &function_map, + std::map &boundary_values, + const std::vector &component_mask); + +template <> void VectorTools::project_boundary_values ( + const Mapping<1> &mapping, + const DoFHandler<1> &dof, + const FunctionMap<1>::type &boundary_functions, + const Quadrature<0> &, + std::map &boundary_values); + + #endif -- 2.39.5