]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Declare existence of explicit specializations.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 22 May 2001 15:08:59 +0000 (15:08 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 22 May 2001 15:08:59 +0000 (15:08 +0000)
git-svn-id: https://svn.dealii.org/trunk@4697 0785d39b-7218-0410-832d-ea1e28bc413d

15 files changed:
deal.II/base/include/base/quadrature.h
deal.II/base/include/base/quadrature_lib.h
deal.II/deal.II/include/dofs/dof_accessor.h
deal.II/deal.II/include/dofs/dof_handler.h
deal.II/deal.II/include/dofs/dof_tools.h
deal.II/deal.II/include/grid/geometry_info.h
deal.II/deal.II/include/grid/grid_generator.h
deal.II/deal.II/include/grid/grid_in.h
deal.II/deal.II/include/grid/grid_out.h
deal.II/deal.II/include/grid/grid_reordering.h
deal.II/deal.II/include/grid/tria.h
deal.II/deal.II/include/grid/tria_accessor.h
deal.II/deal.II/include/grid/tria_boundary.h
deal.II/deal.II/include/grid/tria_boundary_lib.h
deal.II/deal.II/include/grid/tria_levels.h

index 95eae23bffa7cbea216ffb1b99fc602eb6a07652..53802bce3214e78b6ed4a492d96156d043676b04 100644 (file)
@@ -343,4 +343,59 @@ class QProjector : public Quadrature<dim>
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+Quadrature<0>::Quadrature (const unsigned int);
+template <>
+Quadrature<0>::Quadrature (const Quadrature<-1> &,
+                          const Quadrature<1> &);
+template <>
+Quadrature<1>::Quadrature (const Quadrature<0> &,
+                          const Quadrature<1> &);
+template <>
+const Point<0> & Quadrature<0>::point (const unsigned int) const;
+template <>
+const std::vector<Point<0> > & Quadrature<0>::get_points () const;
+template <>
+double Quadrature<0>::weight (const unsigned int) const;
+template <>
+const std::vector<double> & Quadrature<0>::get_weights () const;
+template <>
+void QProjector<1>::project_to_face (const Quadrature<0> &,
+                                    const unsigned int,
+                                    std::vector<Point<1> > &);
+template <>
+void QProjector<2>::project_to_face (const Quadrature<1>      &quadrature,
+                                    const unsigned int        face_no,
+                                    std::vector<Point<2> >   &q_points);
+template <>
+void QProjector<3>::project_to_face (const Quadrature<2>    &quadrature,
+                                    const unsigned int      face_no,
+                                    std::vector<Point<3> > &q_points);
+template <>
+void QProjector<1>::project_to_subface (const Quadrature<0> &,
+                                       const unsigned int,
+                                       const unsigned int,
+                                       std::vector<Point<1> > &);
+template <>
+void QProjector<2>::project_to_subface (const Quadrature<1>    &quadrature,
+                                       const unsigned int      face_no,
+                                       const unsigned int      subface_no,
+                                       std::vector<Point<2> > &q_points);
+template <>
+void QProjector<3>::project_to_subface (const Quadrature<2>    &quadrature,
+                                       const unsigned int      face_no,
+                                       const unsigned int      subface_no,
+                                       std::vector<Point<3> > &q_points);
+template <>
+bool
+QIterated<1>::uses_both_endpoints (const Quadrature<1> &base_quadrature);
+template <>
+QIterated<1>::QIterated (const Quadrature<1> &base_quadrature,
+                        const unsigned int   n_copies);
+
+
+
 #endif
index d344b3bb6f17d8d0a22684d3f104ef7bd4c6c335..61a125ad4a525ca3edb3ebfec915d64cbe839fb4 100644 (file)
@@ -195,4 +195,21 @@ class QWeddle : public Quadrature<dim>
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <> QGauss<1>::QGauss (unsigned int n);
+template <> QGauss2<1>::QGauss2 ();
+template <> QGauss3<1>::QGauss3 ();
+template <> QGauss4<1>::QGauss4 ();
+template <> QGauss5<1>::QGauss5 ();
+template <> QGauss6<1>::QGauss6 ();
+template <> QGauss7<1>::QGauss7 ();
+template <> QMidpoint<1>::QMidpoint ();
+template <> QTrapez<1>::QTrapez ();
+template <> QSimpson<1>::QSimpson ();
+template <> QMilne<1>::QMilne ();
+template <> QWeddle<1>::QWeddle ();
+
+
 #endif
index e80af1059e8258eb83eb5b4a55bea2157d49d229..34f48d9e673b11188978a67800a9fcf9c339ec02 100644 (file)
@@ -1255,6 +1255,13 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim>
 };
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <> TriaIterator<1, DoFObjectAccessor<0,1> > DoFCellAccessor<1>::face (const unsigned int) const;
+template <> TriaIterator<2, DoFObjectAccessor<1,2> > DoFCellAccessor<2>::face (const unsigned int i) const;
+template <> TriaIterator<3, DoFObjectAccessor<2,3> > DoFCellAccessor<3>::face (const unsigned int i) const;
+
+
 // if in optimized mode: include more templates
 #ifndef DEBUG
 #  include "dof_accessor.templates.h"
index bddb9bb6f81764a3958ec7979562dbe5115b8421..c66f832a72f3bf1382e10af4adc3a605c3a38902 100644 (file)
@@ -1158,6 +1158,19 @@ class DoFHandler  :  public Subscriptor,
 
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <> unsigned int DoFHandler<1>::n_boundary_dofs () const;
+template <> unsigned int DoFHandler<1>::n_boundary_dofs (const FunctionMap &) const;
+template <> unsigned int DoFHandler<1>::n_boundary_dofs (const std::set<unsigned char> &) const;
+template <> unsigned int DoFHandler<1>::max_couplings_between_dofs () const;
+template <> unsigned int DoFHandler<1>::max_couplings_between_boundary_dofs () const;
+template <> unsigned int DoFHandler<2>::max_couplings_between_dofs () const;
+template <> unsigned int DoFHandler<2>::max_couplings_between_boundary_dofs () const;
+template <> unsigned int DoFHandler<3>::max_couplings_between_dofs () const;
+
+
 /* ----------------------- Inline functions ---------------------------------- */
 
 
index ebc867ed5e84976ca7424dae8cc5687bf219aa51..3aedd2221521d9919e2627a5eb5c1c894ace5114 100644 (file)
@@ -1032,6 +1032,55 @@ class DoFTools
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+void
+DoFTools::make_boundary_sparsity_pattern (const DoFHandler<1> &dof_handler,
+                                         const DoFHandler<1>::FunctionMap  &function_map,
+                                         const std::vector<unsigned int>  &dof_to_boundary_mapping,
+                                         SparsityPattern    &sparsity);
+template <>
+void DoFTools::make_boundary_sparsity_pattern (const DoFHandler<1> &dof_handler,
+                                              const std::vector<unsigned int>  &dof_to_boundary_mapping,
+                                              SparsityPattern    &sparsity);
+template <>
+void DoFTools::make_hanging_node_constraints (const DoFHandler<1> &,
+                                             ConstraintMatrix &);
+template <>
+void DoFTools::make_hanging_node_constraints (const DoFHandler<2> &,
+                                             ConstraintMatrix &);
+template <>
+void DoFTools::make_hanging_node_constraints (const DoFHandler<3> &,
+                                             ConstraintMatrix &);
+template <>
+void
+DoFTools::extract_boundary_dofs (const DoFHandler<1>      &dof_handler,
+                                const std::vector<bool>  &component_select,
+                                std::vector<bool>        &selected_dofs,
+                                const std::set<unsigned char> &boundary_indicators);
+template <>
+void
+DoFTools::extract_hanging_node_dofs (const DoFHandler<1> &dof_handler,
+                                    std::vector<bool>   &selected_dofs);
+template <>
+void
+DoFTools::extract_hanging_node_dofs (const DoFHandler<2> &dof_handler,
+                                    std::vector<bool>   &selected_dofs);
+template <>
+void
+DoFTools::extract_hanging_node_dofs (const DoFHandler<3> &dof_handler,
+                                    std::vector<bool>   &selected_dofs);
+template <>
+void DoFTools::map_dof_to_boundary_indices (const DoFHandler<1> &dof_handler,
+                                           const std::set<unsigned char> &boundary_indicators,
+                                           std::vector<unsigned int> &mapping);
+template <>
+void DoFTools::map_dof_to_boundary_indices (const DoFHandler<1> &dof_handler,
+                                           std::vector<unsigned int> &mapping);
+
+
+
 // ---------------------- inline and template functions --------------------
 
 template <int dim, class Comp>
index 72b42ee7d94eb6a3e4f25c33508e2fb3bf90b777..3c53ed37ab06fd23e10ec6b494577a2f4e5f8768 100644 (file)
@@ -194,6 +194,15 @@ struct GeometryInfo<0>
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+
+template <> const unsigned int GeometryInfo<1>::opposite_face[GeometryInfo<1>::faces_per_cell];
+template <> const unsigned int GeometryInfo<2>::opposite_face[GeometryInfo<2>::faces_per_cell];
+template <> const unsigned int GeometryInfo<3>::opposite_face[GeometryInfo<3>::faces_per_cell];
+
+
+
 
 /*---------------------------- Inline functions --------------------------------*/
 
index 2ce974d7034d30ac44f67c0fa106fde4d423803a..f5f37707d736b984c27abe30eee9c14bbbc08918 100644 (file)
@@ -358,4 +358,87 @@ class GridGenerator
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+void
+GridGenerator::colorize_hyper_rectangle (Triangulation<1> &);
+template <>
+void GridGenerator::hyper_cube_slit (Triangulation<1> &,
+                                    const double,
+                                    const double);
+template <>
+void GridGenerator::hyper_L (Triangulation<1> &,
+                            const double,
+                            const double);
+template <>
+void GridGenerator::hyper_ball (Triangulation<1> &,
+                               const Point<1> &,
+                               const double);
+template <>
+void GridGenerator::hyper_shell (Triangulation<1> &,
+                                const Point<1> &,
+                                const double,
+                                const double,
+                                const unsigned int);
+template <>
+void
+GridGenerator::hyper_cube_slit (Triangulation<2> &tria,
+                               const double left,
+                               const double right);
+template <>
+void
+GridGenerator::hyper_L (Triangulation<2> &tria,
+                       const double a,
+                       const double b);
+template <>
+void
+GridGenerator::hyper_ball (Triangulation<2> &tria,
+                          const Point<2>    &p,
+                          const double      radius);
+template <>
+void GridGenerator::hyper_shell (Triangulation<2>   &tria,
+                                const Point<2>     &center,
+                                const double        inner_radius,
+                                const double        outer_radius,
+                                const unsigned int  n_cells);
+template <>
+void
+GridGenerator::half_hyper_shell (Triangulation<2>   &tria,
+                                const Point<2>     &center,
+                                const double        inner_radius,
+                                const double        outer_radius,
+                                const unsigned int  n_cells);
+template <>
+void GridGenerator::hyper_cube_slit (Triangulation<3> &,
+                                    const double,
+                                    const double);
+template<>
+void GridGenerator::enclosed_hyper_cube (Triangulation<3> &tria,
+                                        const double l,
+                                        const double r,
+                                        const double d,
+                                        bool colorize);
+template <>
+void
+GridGenerator::hyper_L (Triangulation<3> &tria,
+                       const double a,
+                       const double b);
+template <>
+void
+GridGenerator::hyper_ball (Triangulation<3> &tria,
+                          const Point<3>   &p,
+                          const double radius);
+template <>
+void GridGenerator::hyper_shell (Triangulation<3>   &,
+                                const Point<3>     &,
+                                const double        ,
+                                const double        ,
+                                const unsigned int  );
+template <>
+void GridGenerator::laplace_transformation (Triangulation<1> &,
+                                           const std::map<unsigned int,Point<1> > &);
+
+
 #endif
index 3381df122e1b395d74b2a3be68a7ffeda1536548..fa1d7a26d533b3b8b2e8d0cea7fd36c78901b2e1 100644 (file)
@@ -307,4 +307,19 @@ class GridIn
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+void
+GridIn<2>::debug_output_grid (const std::vector<CellData<2> > &cells,
+                             const std::vector<Point<2> >    &vertices,
+                             std::ostream                    &out);
+template <>
+void
+GridIn<3>::debug_output_grid (const std::vector<CellData<3> > &cells,
+                             const std::vector<Point<3> >    &vertices,
+                             std::ostream                    &out);
+
+
 #endif
index d633784bd398ccfbd1c3346e11af35bcc0db41fc..765922212e17e980284f79c910d33586ab7726c0 100644 (file)
@@ -747,4 +747,24 @@ class GridOut
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+unsigned int GridOut::n_boundary_faces (const Triangulation<1> &) const;
+template <>
+void GridOut::write_ucd_faces (const Triangulation<1> &,
+                              const unsigned int,
+                              std::ostream &) const;
+template <>
+void GridOut::write_gnuplot (const Triangulation<1> &tria,
+                            std::ostream           &out,
+                            const Mapping<1>       *);
+template <>
+void GridOut::write_eps (const Triangulation<1> &,
+                        std::ostream &,
+                        const Mapping<1> *);
+
+
+
 #endif
index a967e365c8188131a07a8acd30e58be39f5d293a..a980ac9b8a15ca5c2ec7b2f5ded7b01532778000 100644 (file)
@@ -937,4 +937,15 @@ class GridReordering : private GridReorderingInfo<dim>
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <> const unsigned int GridReorderingInfo<2>::rotational_states_of_cells;
+template <> const unsigned int GridReorderingInfo<2>::rotational_states_of_faces;
+template <> const unsigned int GridReorderingInfo<3>::rotational_states_of_cells;
+template <> const unsigned int GridReorderingInfo<3>::rotational_states_of_faces;
+template <> void GridReordering<2>::Cell::insert_faces (std::map<Face,FaceData> &global_faces);
+template <> void GridReordering<3>::Cell::insert_faces (std::map<Face,FaceData> &global_faces);
+template <> void GridReordering<1>::reorder_cells (std::vector<CellData<1> > &);
+
+
 #endif
index af67385f3be41e5ab19bbfb273992f034b3ddf88..ddfe2cd1f6b44617282c21354cb645a08e9e3ca8 100644 (file)
@@ -324,10 +324,6 @@ class TriaDimensionInfo<3>
 
 /*------------------------------------------------------------------------*/
 
-//TODO:[WB] (compiler) Move the TriaNumberCache into the Triangulation class
-//  once the compiler supports this (gcc2.95 does not allow this at present)
-
-
 
 /**
  * Cache class used to store the number of used and active elements
@@ -3227,6 +3223,156 @@ class Triangulation : public TriaDimensionInfo<dim>,
 };
 
 
+
+/* -------------- declaration of explicit specializations ------------- */
+
+
+template <> TriaDimensionInfo<1>::cell_iterator Triangulation<1>::begin (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::raw_cell_iterator Triangulation<1>::end () const;
+template <> TriaDimensionInfo<2>::cell_iterator Triangulation<2>::begin (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::raw_cell_iterator Triangulation<2>::end () const;
+template <> TriaDimensionInfo<3>::cell_iterator Triangulation<3>::begin (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::raw_cell_iterator Triangulation<3>::end () const;
+template <> void Triangulation<1>::create_triangulation (const std::vector<Point<1> >    &v,
+                                                        const std::vector<CellData<1> > &cells,
+                                                        const SubCellData                          &subcelldata);
+template <> void Triangulation<2>::create_triangulation (const std::vector<Point<2> >    &v,
+                                                        const std::vector<CellData<2> > &cells,
+                                                        const SubCellData                          &subcelldata);
+template <> void Triangulation<3>::create_triangulation (const std::vector<Point<3> >    &v,
+                                                        const std::vector<CellData<3> > &cells,
+                                                        const SubCellData                          &subcelldata);
+template <> void Triangulation<1>::distort_random (const double factor,
+                                                  const bool   keep_boundary);
+template <> void Triangulation<1>::clear_user_pointers ();
+template <> void Triangulation<1>::clear_user_flags ();
+template <> void Triangulation<2>::clear_user_pointers ();
+template <> void Triangulation<2>::clear_user_flags ();
+template <> void Triangulation<3>::clear_user_pointers ();
+template <> void Triangulation<3>::clear_user_flags ();
+template <> void Triangulation<1>::save_user_flags_quad (std::ostream &) const;
+template <> void Triangulation<1>::save_user_flags_quad (std::vector<bool> &) const;
+template <> void Triangulation<1>::load_user_flags_quad (std::istream &);
+template <> void Triangulation<1>::load_user_flags_quad (const std::vector<bool> &);
+template <> void Triangulation<1>::save_user_flags_hex (std::ostream &) const;
+template <> void Triangulation<1>::save_user_flags_hex (std::vector<bool> &) const;
+template <> void Triangulation<1>::load_user_flags_hex (std::istream &);
+template <> void Triangulation<1>::load_user_flags_hex (const std::vector<bool> &);
+template <> void Triangulation<2>::save_user_flags_hex (std::ostream &) const;
+template <> void Triangulation<2>::save_user_flags_hex (std::vector<bool> &) const;
+template <> void Triangulation<2>::load_user_flags_hex (std::istream &);
+template <> void Triangulation<2>::load_user_flags_hex (const std::vector<bool> &);
+template <> TriaDimensionInfo<1>::raw_cell_iterator Triangulation<1>::begin_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::active_cell_iterator Triangulation<1>::begin_active (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::raw_cell_iterator Triangulation<1>::last_raw () const;
+template <> TriaDimensionInfo<1>::raw_cell_iterator Triangulation<1>::last_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::cell_iterator Triangulation<1>::last () const;
+template <> TriaDimensionInfo<1>::cell_iterator Triangulation<1>::last (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::active_cell_iterator Triangulation<1>::last_active () const;
+template <> TriaDimensionInfo<1>::active_cell_iterator Triangulation<1>::last_active (const unsigned int level) const;
+template <> TriaDimensionInfo<1>::raw_face_iterator Triangulation<1>::begin_raw_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::face_iterator Triangulation<1>::begin_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_face_iterator Triangulation<1>::begin_active_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_face_iterator Triangulation<1>::end_face () const;
+template <> TriaDimensionInfo<1>::raw_face_iterator Triangulation<1>::last_raw_face () const;
+template <> TriaDimensionInfo<1>::raw_face_iterator Triangulation<1>::last_raw_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::face_iterator Triangulation<1>::last_face () const;
+template <> TriaDimensionInfo<1>::face_iterator Triangulation<1>::last_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_face_iterator Triangulation<1>::last_active_face () const;
+template <> TriaDimensionInfo<1>::active_face_iterator Triangulation<1>::last_active_face (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_quad_iterator Triangulation<1>::begin_raw_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::quad_iterator Triangulation<1>::begin_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_quad_iterator Triangulation<1>::begin_active_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_quad_iterator Triangulation<1>::end_quad () const;
+template <> TriaDimensionInfo<1>::raw_quad_iterator Triangulation<1>::last_raw_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_quad_iterator Triangulation<1>::last_raw_quad () const;
+template <> TriaDimensionInfo<1>::quad_iterator Triangulation<1>::last_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::quad_iterator Triangulation<1>::last_quad () const;
+template <> TriaDimensionInfo<1>::active_quad_iterator Triangulation<1>::last_active_quad (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_quad_iterator Triangulation<1>::last_active_quad () const;
+template <> TriaDimensionInfo<1>::raw_hex_iterator Triangulation<1>::begin_raw_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::hex_iterator Triangulation<1>::begin_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_hex_iterator Triangulation<1>::begin_active_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_hex_iterator Triangulation<1>::end_hex () const;
+template <> TriaDimensionInfo<1>::raw_hex_iterator Triangulation<1>::last_raw_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::raw_hex_iterator Triangulation<1>::last_raw_hex () const;
+template <> TriaDimensionInfo<1>::hex_iterator Triangulation<1>::last_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::hex_iterator Triangulation<1>::last_hex () const;
+template <> TriaDimensionInfo<1>::active_hex_iterator Triangulation<1>::last_active_hex (const unsigned int) const;
+template <> TriaDimensionInfo<1>::active_hex_iterator Triangulation<1>::last_active_hex () const;
+template <> TriaDimensionInfo<2>::raw_cell_iterator Triangulation<2>::begin_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::active_cell_iterator Triangulation<2>::begin_active (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::raw_cell_iterator Triangulation<2>::last_raw () const;
+template <> TriaDimensionInfo<2>::raw_cell_iterator Triangulation<2>::last_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::cell_iterator Triangulation<2>::last () const;
+template <> TriaDimensionInfo<2>::cell_iterator Triangulation<2>::last (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::active_cell_iterator Triangulation<2>::last_active () const;
+template <> TriaDimensionInfo<2>::active_cell_iterator Triangulation<2>::last_active (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::raw_face_iterator Triangulation<2>::begin_raw_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::face_iterator Triangulation<2>::begin_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::active_face_iterator Triangulation<2>::begin_active_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::raw_face_iterator Triangulation<2>::end_face () const;
+template <> TriaDimensionInfo<2>::raw_face_iterator Triangulation<2>::last_raw_face () const;
+template <> TriaDimensionInfo<2>::raw_face_iterator Triangulation<2>::last_raw_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::face_iterator Triangulation<2>::last_face () const;
+template <> TriaDimensionInfo<2>::face_iterator Triangulation<2>::last_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::active_face_iterator Triangulation<2>::last_active_face () const;
+template <> TriaDimensionInfo<2>::active_face_iterator Triangulation<2>::last_active_face (const unsigned int level) const;
+template <> TriaDimensionInfo<2>::raw_hex_iterator Triangulation<2>::begin_raw_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::hex_iterator Triangulation<2>::begin_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::active_hex_iterator Triangulation<2>::begin_active_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::raw_hex_iterator Triangulation<2>::end_hex () const;
+template <> TriaDimensionInfo<2>::raw_hex_iterator Triangulation<2>::last_raw_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::raw_hex_iterator Triangulation<2>::last_raw_hex () const;
+template <> TriaDimensionInfo<2>::hex_iterator Triangulation<2>::last_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::hex_iterator Triangulation<2>::last_hex () const;
+template <> TriaDimensionInfo<2>::active_hex_iterator Triangulation<2>::last_active_hex (const unsigned int) const;
+template <> TriaDimensionInfo<2>::active_hex_iterator Triangulation<2>::last_active_hex () const;
+template <> TriaDimensionInfo<3>::raw_cell_iterator Triangulation<3>::begin_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::active_cell_iterator Triangulation<3>::begin_active (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::raw_cell_iterator Triangulation<3>::last_raw () const;
+template <> TriaDimensionInfo<3>::raw_cell_iterator Triangulation<3>::last_raw (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::cell_iterator Triangulation<3>::last () const;
+template <> TriaDimensionInfo<3>::cell_iterator Triangulation<3>::last (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::active_cell_iterator Triangulation<3>::last_active () const;
+template <> TriaDimensionInfo<3>::active_cell_iterator Triangulation<3>::last_active (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::raw_face_iterator Triangulation<3>::begin_raw_face (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::face_iterator Triangulation<3>::begin_face (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::active_face_iterator Triangulation<3>::begin_active_face (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::raw_face_iterator Triangulation<3>::end_face () const;
+template <> TriaDimensionInfo<3>::raw_face_iterator Triangulation<3>::last_raw_face () const;
+template <> TriaDimensionInfo<3>::raw_face_iterator Triangulation<3>::last_raw_face (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::face_iterator Triangulation<3>::last_face () const;
+template <> TriaDimensionInfo<3>::face_iterator Triangulation<3>::last_face (const unsigned int level) const;
+template <> TriaDimensionInfo<3>::active_face_iterator Triangulation<3>::last_active_face () const;
+template <> TriaDimensionInfo<3>::active_face_iterator Triangulation<3>::last_active_face (const unsigned int level) const;
+template <> unsigned int Triangulation<1>::n_active_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<1>::n_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<2>::n_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<2>::n_active_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<3>::n_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<3>::n_active_cells (const unsigned int level) const;
+template <> unsigned int Triangulation<1>::n_quads () const;
+template <> unsigned int Triangulation<1>::n_quads (const unsigned int) const;
+template <> unsigned int Triangulation<1>::n_active_quads (const unsigned int) const;
+template <> unsigned int Triangulation<1>::n_active_quads () const;
+template <> unsigned int Triangulation<1>::max_adjacent_cells () const;
+template <> void Triangulation<1>::execute_refinement ();
+template <> void Triangulation<2>::execute_refinement ();
+template <> void Triangulation<3>::execute_refinement ();
+template <> void Triangulation<3>::prepare_refinement_dim_dependent ();
+template <> void Triangulation<1>::delete_children (cell_iterator &cell);
+template <> void Triangulation<2>::delete_children (cell_iterator &cell);
+template <> void Triangulation<3>::delete_children (cell_iterator &cell);
+template <> void Triangulation<1>::update_number_cache_quads ();
+template <> void Triangulation<1>::update_number_cache_hexes ();
+template <> void Triangulation<2>::update_number_cache_hexes ();
+
+template <> void CellData<1>::rotate (const unsigned int);
+template <> void CellData<2>::rotate (const unsigned int times);
+template <> void CellData<3>::rotate (const unsigned int times);
+
+
 #endif
 
 
index 67fb34fae62939a58b55e72ccc67b163f9623507..f36d506cc566b735126c80b1ed69682bc85d9c24 100644 (file)
@@ -2039,6 +2039,27 @@ class CellAccessor :  public TriaObjectAccessor<dim,dim>
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <> Point<2> TriaObjectAccessor<2, 2>::barycenter () const;
+template <> Point<3> TriaObjectAccessor<2, 3>::barycenter () const;
+template <> Point<3> TriaObjectAccessor<3, 3>::barycenter () const;
+template <> bool CellAccessor<1>::at_boundary () const;
+template <> unsigned char CellAccessor<1>::material_id () const;
+template <> void CellAccessor<1>::set_material_id (const unsigned char mat_id) const;
+template <> bool CellAccessor<1>::point_inside (const Point<1> &p) const;
+template <> bool CellAccessor<2>::at_boundary () const;
+template <> unsigned char CellAccessor<2>::material_id () const;
+template <> void CellAccessor<2>::set_material_id (const unsigned char mat_id) const;
+template <> bool CellAccessor<2>::point_inside (const Point<2> &p) const;
+template <> bool CellAccessor<3>::at_boundary () const;
+template <> unsigned char CellAccessor<3>::material_id () const;
+template <> void CellAccessor<3>::set_material_id (const unsigned char mat_id) const;
+template <> bool CellAccessor<3>::point_inside (const Point<3> &) const;
+template <> bool CellAccessor<1>::has_boundary_lines () const;
+
+
+
 // include more templates in debug and optimized mode
 #  include "tria_accessor.templates.h"
 
index 5b893bced9befed0287104d0af5860fae6c5aee4..780998d926fdb8b26b660199e3d0a3bf6e63951a 100644 (file)
@@ -367,6 +367,25 @@ class StraightBoundary : public Boundary<dim>
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+void
+StraightBoundary<1>::
+get_normals_at_vertices (const Triangulation<1>::face_iterator &,
+                        FaceVertexNormals &) const;
+template <>
+void
+StraightBoundary<2>::
+get_normals_at_vertices (const Triangulation<2>::face_iterator &face,
+                        Boundary<2>::FaceVertexNormals &face_vertex_normals) const;
+template <>
+void
+StraightBoundary<3>::
+get_normals_at_vertices (const Triangulation<3>::face_iterator &face,
+                        Boundary<3>::FaceVertexNormals &face_vertex_normals) const;
+
+
 /*----------------------------   boundary-function.h     ---------------------------*/
 
 #endif
index f11996fef9642caf920a368cc72fbdf6c64294f8..247d1c7285d308caa44aa6b7dd5fcd77684fd922 100644 (file)
@@ -357,4 +357,55 @@ class HalfHyperShellBoundary : public HyperShellBoundary<dim>
 
 
 
+/* -------------- declaration of explicit specializations ------------- */
+
+template <>
+Point<1>
+HyperBallBoundary<1>::
+get_new_point_on_quad (const Triangulation<1>::quad_iterator &) const;
+template <>
+void
+HyperBallBoundary<1>::get_intermediate_points_on_line (
+  const Triangulation<1>::line_iterator &,
+  std::vector<Point<1> > &) const;
+template <>
+void
+HyperBallBoundary<3>::get_intermediate_points_on_quad (
+  const Triangulation<3>::quad_iterator &quad,
+  std::vector<Point<3> > &points) const;
+template <>
+void
+HyperBallBoundary<1>::
+get_normals_at_vertices (const Triangulation<1>::face_iterator &,
+                        FaceVertexNormals &) const;
+template <>
+Point<1>
+HalfHyperBallBoundary<1>::
+get_new_point_on_quad (const Triangulation<1>::quad_iterator &) const;
+template <>
+void
+HalfHyperBallBoundary<1>::
+get_intermediate_points_on_quad (const Triangulation<1>::quad_iterator &,
+                                std::vector<Point<1> > &) const;
+template <>
+void
+HalfHyperBallBoundary<1>::
+get_normals_at_vertices (const Triangulation<1>::face_iterator &,
+                        Boundary<1>::FaceVertexNormals &) const;
+template <>
+Point<1>
+HalfHyperShellBoundary<1>::
+get_new_point_on_quad (const Triangulation<1>::quad_iterator &) const;
+template <>
+void
+HalfHyperShellBoundary<1>::
+get_intermediate_points_on_quad (const Triangulation<1>::quad_iterator &,
+                                std::vector<Point<1> > &) const;
+template <>
+void
+HalfHyperShellBoundary<1>::
+get_normals_at_vertices (const Triangulation<1>::face_iterator &,
+                        Boundary<1>::FaceVertexNormals &) const;
+
+
 #endif
index 2216f0db0a11a90f71181dcda85b3ab91058a35c..8ab682c267e1a96290ebbd499be4f9200497d72c 100644 (file)
@@ -574,4 +574,5 @@ class TriangulationLevel<3> :  public TriangulationLevel<2>
 };
 
 
+
 #endif

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.