solution_transfer.cc
solution_transfer_inst2.cc
time_dependent.cc
- vector_tools.cc
+ vector_tools_boundary.cc
+ vector_tools_constraints.cc
+ vector_tools_integrate_difference.cc
+ vector_tools_interpolate.cc
+ vector_tools_mean_value.cc
+ vector_tools_point_value.cc
+ vector_tools_project.cc
+ vector_tools_rhs.cc
)
SET(_inst
point_value_history.inst.in
solution_transfer.inst.in
time_dependent.inst.in
- vector_tools.inst.in
+ vector_tools_boundary.inst.in
+ vector_tools_constraints.inst.in
+ vector_tools_integrate_difference.inst.in
+ vector_tools_interpolate.inst.in
+ vector_tools_mean_value.inst.in
+ vector_tools_point_value.inst.in
+ vector_tools_project.inst.in
+ vector_tools_rhs.inst.in
)
DEAL_II_ADD_LIBRARY(obj_numerics OBJECT ${_src} ${_header} ${_inst})
+++ /dev/null
-// ---------------------------------------------------------------------
-// $Id$
-//
-// Copyright (C) 1998 - 2013 by the deal.II authors
-//
-// This file is part of the deal.II library.
-//
-// The deal.II library is free software; you can use it, redistribute
-// it, and/or modify it under the terms of the GNU Lesser General
-// Public License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-// The full text of the license can be found in the file LICENSE at
-// the top level of the deal.II distribution.
-//
-// ---------------------------------------------------------------------
-
-
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
- {
-#if deal_II_dimension <= deal_II_space_dimension
- namespace VectorTools \{
-
- template
- void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
- (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
- const VEC&,
- const Function<deal_II_space_dimension>&,
- Vector<float>&,
- const Quadrature<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_space_dimension>*,
- const double);
-
- template
- void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
- (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
- const VEC&,
- const Function<deal_II_space_dimension>&,
- Vector<double>&,
- const Quadrature<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_space_dimension>*,
- const double);
-
- template
- void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
- (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
- const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
- const VEC&,
- const Function<deal_II_space_dimension>&,
- Vector<float>&,
- const Quadrature<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_space_dimension>*,
- const double);
-
- template
- void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
- (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
- const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
- const VEC&,
- const Function<deal_II_space_dimension>&,
- Vector<double>&,
- const Quadrature<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_space_dimension>*,
- const double);
-
-
-
- template
- double compute_mean_value<deal_II_dimension>
- (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
- const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
- const Quadrature<deal_II_dimension>&,
- const VEC&,
- const unsigned int);
-
- template
- double compute_mean_value<deal_II_dimension>
- (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
- const Quadrature<deal_II_dimension>&,
- const VEC&,
- const unsigned int);
-
- template
- void interpolate
- (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
- const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
- const Function<deal_II_space_dimension>&,
- VEC&);
-
- template
- void interpolate
- (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
- const Function<deal_II_space_dimension>&,
- VEC&);
-
- template
- void project
- (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const ConstraintMatrix &,
- const Quadrature<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- VEC &,
- const bool,
- const Quadrature<deal_II_dimension-1> &,
- const bool);
-
- template
- void project
- (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const ConstraintMatrix &,
- const Quadrature<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- VEC &,
- const bool,
- const Quadrature<deal_II_dimension-1> &,
- const bool);
-
- template
- void project
- (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension> &,
- const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const ConstraintMatrix &,
- const hp::QCollection<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- VEC &,
- const bool,
- const hp::QCollection<deal_II_dimension-1> &,
- const bool);
-
- template
- void project
- (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const ConstraintMatrix &,
- const hp::QCollection<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- VEC &,
- const bool,
- const hp::QCollection<deal_II_dimension-1> &,
- const bool);
- \}
-#endif
- }
-
-
-
-//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
-// where applicable and move to codimension cases above also when applicable
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
- {
-#if deal_II_dimension == deal_II_space_dimension
-
- namespace VectorTools \{
-
- template
- void point_value<deal_II_dimension> (
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&,
- Vector<double>&);
-
- template
- void interpolate
- (const Mapping<deal_II_dimension>&,
- const hp::DoFHandler<deal_II_dimension>&,
- const Function<deal_II_dimension>&,
- VEC&);
- template
- void interpolate
- (const hp::DoFHandler<deal_II_dimension>&,
- const Function<deal_II_dimension>&,
- VEC&);
-
- template
- double point_value<deal_II_dimension> (
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&);
-
- template
- void point_value<deal_II_dimension> (
- const hp::MappingCollection<deal_II_dimension>&,
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&,
- Vector<double>&);
-
- template
- void interpolate
- (const DoFHandler<deal_II_dimension>&,
- const DoFHandler<deal_II_dimension>&,
- const FullMatrix<double>&,
- const VEC&,
- VEC&);
-
- template
- double point_value<deal_II_dimension> (
- const hp::MappingCollection<deal_II_dimension>&,
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&);
-
- template
- void integrate_difference<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<double>&,
- const hp::QCollection<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_dimension>*,
- const double);
- template
- void integrate_difference<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<float>&,
- const hp::QCollection<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_dimension>*,
- const double);
- template
- void integrate_difference<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension>&,
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<double>&,
- const hp::QCollection<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_dimension>*,
- const double);
- template
- void integrate_difference<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension>&,
- const hp::DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<float>&,
- const hp::QCollection<deal_II_dimension>&,
- const NormType&,
- const Function<deal_II_dimension>*,
- const double);
-
- template
- void point_difference<deal_II_dimension> (
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<double>&,
- const Point<deal_II_dimension>&);
-
- template
- void point_difference<deal_II_dimension> (
- const Mapping<deal_II_dimension>&,
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Function<deal_II_dimension>&,
- Vector<double>&,
- const Point<deal_II_dimension>&);
-
- template
- void point_value<deal_II_dimension> (
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&,
- Vector<double>&);
-
- template
- double point_value<deal_II_dimension> (
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&);
-
- template
- void point_value<deal_II_dimension> (
- const Mapping<deal_II_dimension>&,
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&,
- Vector<double>&);
-
- template
- double point_value<deal_II_dimension> (
- const Mapping<deal_II_dimension>&,
- const DoFHandler<deal_II_dimension>&,
- const VEC&,
- const Point<deal_II_dimension>&);
-
- \}
-#endif
- }
-
-
-for (VEC : SERIAL_VECTORS)
-{
- namespace VectorTools \{
- template
- void subtract_mean_value(VEC &, const std::vector<bool> &);
- \}
-}
-
-
-for (deal_II_dimension : DIMENSIONS)
-{
- namespace VectorTools \{
- template
- void interpolate_boundary_values (
- const MGDoFHandler<deal_II_dimension> &,
- const types::boundary_id,
- const Function<deal_II_dimension> &,
- ConstraintMatrix&,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values (
- const MGDoFHandler<deal_II_dimension> &,
- const types::boundary_id,
- const Function<deal_II_dimension> &,
- std::map<types::global_dof_index,double> &,
- const ComponentMask &);
- \}
-}
-
-
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
- {
-#if deal_II_dimension <= deal_II_space_dimension
- namespace VectorTools \{
- template
- void interpolate_boundary_values
- (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- std::map<types::global_dof_index,double> &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values
- (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const types::boundary_id,
- const Function<deal_II_space_dimension> &,
- std::map<types::global_dof_index,double> &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values (
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const types::boundary_id,
- const Function<deal_II_space_dimension> &,
- std::map<types::global_dof_index,double> &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values
- (const DH<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- std::map<types::global_dof_index,double> &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values (
- const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- ConstraintMatrix &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values
- (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const types::boundary_id,
- const Function<deal_II_space_dimension> &,
- ConstraintMatrix &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values (
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const types::boundary_id,
- const Function<deal_II_space_dimension> &,
- ConstraintMatrix &,
- const ComponentMask &);
-
- template
- void interpolate_boundary_values (
- const DH<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- ConstraintMatrix &,
- const ComponentMask &);
-
- \}
-#endif
- }
-
-
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
- {
-#if deal_II_dimension <= deal_II_space_dimension
- namespace VectorTools \{
- template
- void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
- (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
- const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const Quadrature<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- Vector<double> &);
-
- template
- void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
- (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const Quadrature<deal_II_dimension> &,
- const Function<deal_II_space_dimension> &,
- Vector<double> &);
-
- \}
-#endif
- }
-
-//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
-// where applicable and move to codimension cases above also when applicable
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
- {
- namespace VectorTools \{
-
-#if deal_II_dimension <= deal_II_space_dimension
- template
- void project_boundary_values<deal_II_dimension,deal_II_space_dimension>
- (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension> &,
- const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- const hp::QCollection<deal_II_dimension-1>&,
- std::map<types::global_dof_index,double>&,
- std::vector<unsigned int>);
-
- template
- void project_boundary_values<deal_II_dimension,deal_II_space_dimension>
- (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
- const FunctionMap<deal_II_space_dimension>::type &,
- const hp::QCollection<deal_II_dimension-1>&,
- std::map<types::global_dof_index,double>&,
- std::vector<unsigned int>);
-#endif
-
-#if deal_II_dimension == deal_II_space_dimension
- template
- void create_right_hand_side<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension> &,
- const hp::DoFHandler<deal_II_dimension> &,
- const hp::QCollection<deal_II_dimension> &,
- const Function<deal_II_dimension> &,
- Vector<double> &);
-
- template
- void create_right_hand_side<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension> &,
- const hp::QCollection<deal_II_dimension> &,
- const Function<deal_II_dimension> &,
- Vector<double> &);
-
- template
- void create_point_source_vector<deal_II_dimension>
- (const Mapping<deal_II_dimension> &,
- const DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
- template
- void create_point_source_vector<deal_II_dimension>
- (const DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
-
- template
- void create_point_source_vector<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension> &,
- const hp::DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
- template
- void create_point_source_vector<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
- template
- void create_point_source_vector<deal_II_dimension>
- (const Mapping<deal_II_dimension> &,
- const DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
- template
- void create_point_source_vector<deal_II_dimension>
- (const DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
-
- template
- void create_point_source_vector<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension> &,
- const hp::DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
- template
- void create_point_source_vector<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- const Point<deal_II_dimension> &,
- Vector<double> &);
-
-#if deal_II_dimension > 1
- template
- void
- create_boundary_right_hand_side<deal_II_dimension>
- (const Mapping<deal_II_dimension> &,
- const DoFHandler<deal_II_dimension> &,
- const Quadrature<deal_II_dimension-1> &,
- const Function<deal_II_dimension> &,
- Vector<double> &,
- const std::set<types::boundary_id> &);
-#endif
-
- template
- void
- create_boundary_right_hand_side<deal_II_dimension>
- (const DoFHandler<deal_II_dimension> &,
- const Quadrature<deal_II_dimension-1> &,
- const Function<deal_II_dimension> &,
- Vector<double> &,
- const std::set<types::boundary_id> &);
-
-#if deal_II_dimension > 1
- template
- void
- create_boundary_right_hand_side<deal_II_dimension>
- (const hp::MappingCollection<deal_II_dimension> &,
- const hp::DoFHandler<deal_II_dimension> &,
- const hp::QCollection<deal_II_dimension-1> &,
- const Function<deal_II_dimension> &,
- Vector<double> &,
- const std::set<types::boundary_id> &);
-#endif
-
- template
- void
- create_boundary_right_hand_side<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension> &,
- const hp::QCollection<deal_II_dimension-1> &,
- const Function<deal_II_dimension> &,
- Vector<double> &,
- const std::set<types::boundary_id> &);
-
-
-
-
-
- template
- void project_boundary_values<deal_II_dimension>
- (const Mapping<deal_II_dimension> &,
- const DoFHandler<deal_II_dimension> &,
- const FunctionMap<deal_II_dimension>::type &,
- const Quadrature<deal_II_dimension-1>&,
- std::map<types::global_dof_index,double>&, std::vector<unsigned int>);
-
- template
- void project_boundary_values<deal_II_dimension>
- (const DoFHandler<deal_II_dimension> &,
- const FunctionMap<deal_II_dimension>::type &,
- const Quadrature<deal_II_dimension-1>&,
- std::map<types::global_dof_index,double>&,
- std::vector<unsigned int>);
-
- template
- void project_boundary_values<deal_II_dimension>
- (const Mapping<deal_II_dimension> &,
- const DoFHandler<deal_II_dimension> &,
- const FunctionMap<deal_II_dimension>::type &,
- const Quadrature<deal_II_dimension-1>&,
- ConstraintMatrix&, std::vector<unsigned int>);
-
- template
- void project_boundary_values<deal_II_dimension>
- (const DoFHandler<deal_II_dimension> &,
- const FunctionMap<deal_II_dimension>::type &,
- const Quadrature<deal_II_dimension-1>&,
- ConstraintMatrix&,
- std::vector<unsigned int>);
-
-
-
-#if deal_II_dimension != 1
- template
- void project_boundary_values_curl_conforming<deal_II_dimension>
- (const DoFHandler<deal_II_dimension>&,
- const unsigned int,
- const Function<deal_II_dimension>&,
- const types::boundary_id,
- ConstraintMatrix&,
- const Mapping<deal_II_dimension>&);
- template
- void project_boundary_values_curl_conforming<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension>&,
- const unsigned int,
- const Function<deal_II_dimension>&,
- const types::boundary_id,
- ConstraintMatrix&,
- const hp::MappingCollection<deal_II_dimension>&);
- template
- void project_boundary_values_div_conforming<deal_II_dimension>
- (const DoFHandler<deal_II_dimension>&,
- const unsigned int,
- const Function<deal_II_dimension>&,
- const types::boundary_id,
- ConstraintMatrix&,
- const Mapping<deal_II_dimension>&);
- template
- void project_boundary_values_div_conforming<deal_II_dimension>
- (const hp::DoFHandler<deal_II_dimension>&,
- const unsigned int,
- const Function<deal_II_dimension>&,
- const types::boundary_id,
- ConstraintMatrix&,
- const hp::MappingCollection<deal_II_dimension>&);
- template
- void
- compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
- template
- void
- compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
-#endif
-#endif
- \}
- }
-
-
-
-for (deal_II_dimension : DIMENSIONS)
-{
- namespace VectorTools \{
-
- template
- void interpolate_to_different_mesh
- (const DoFHandler<deal_II_dimension> &,
- const Vector<float> &,
- const DoFHandler<deal_II_dimension> &,
- Vector<float> &);
-
- template
- void interpolate_to_different_mesh
- (const DoFHandler<deal_II_dimension> &,
- const Vector<float> &,
- const DoFHandler<deal_II_dimension> &,
- const ConstraintMatrix &,
- Vector<float> &);
-
- template
- void interpolate_to_different_mesh
- (const InterGridMap<DoFHandler<deal_II_dimension> > &,
- const Vector<float> &,
- const ConstraintMatrix &,
- Vector<float> &);
-
- template
- void interpolate_to_different_mesh
- (const DoFHandler<deal_II_dimension> &,
- const Vector<double> &,
- const DoFHandler<deal_II_dimension> &,
- Vector<double> &);
-
- template
- void interpolate_to_different_mesh
- (const DoFHandler<deal_II_dimension> &,
- const Vector<double> &,
- const DoFHandler<deal_II_dimension> &,
- const ConstraintMatrix &,
- Vector<double> &);
-
- template
- void interpolate_to_different_mesh
- (const InterGridMap<DoFHandler<deal_II_dimension> > &,
- const Vector<double> &,
- const ConstraintMatrix &,
- Vector<double> &);
-
- \}
-}
-
-
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_boundary.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (deal_II_dimension : DIMENSIONS)
+{
+ namespace VectorTools \{
+ template
+ void interpolate_boundary_values (
+ const MGDoFHandler<deal_II_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_dimension> &,
+ ConstraintMatrix&,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const MGDoFHandler<deal_II_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_dimension> &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+ \}
+}
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+ \}
+#endif
+}
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+ namespace VectorTools \{
+#if deal_II_dimension == deal_II_space_dimension
+
+ template
+ void project_boundary_values<deal_II_dimension>
+ (const Mapping<deal_II_dimension> &,
+ const DoFHandler<deal_II_dimension> &,
+ const FunctionMap<deal_II_dimension>::type &,
+ const Quadrature<deal_II_dimension-1>&,
+ std::map<types::global_dof_index,double>&, std::vector<unsigned int>);
+
+ template
+ void project_boundary_values<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension> &,
+ const FunctionMap<deal_II_dimension>::type &,
+ const Quadrature<deal_II_dimension-1>&,
+ std::map<types::global_dof_index,double>&,
+ std::vector<unsigned int>);
+
+ template
+ void project_boundary_values<deal_II_dimension>
+ (const Mapping<deal_II_dimension> &,
+ const DoFHandler<deal_II_dimension> &,
+ const FunctionMap<deal_II_dimension>::type &,
+ const Quadrature<deal_II_dimension-1>&,
+ ConstraintMatrix&, std::vector<unsigned int>);
+
+ template
+ void project_boundary_values<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension> &,
+ const FunctionMap<deal_II_dimension>::type &,
+ const Quadrature<deal_II_dimension-1>&,
+ ConstraintMatrix&,
+ std::vector<unsigned int>);
+
+
+
+#if deal_II_dimension != 1
+ template
+ void project_boundary_values_curl_conforming<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension>&,
+ const unsigned int,
+ const Function<deal_II_dimension>&,
+ const types::boundary_id,
+ ConstraintMatrix&,
+ const Mapping<deal_II_dimension>&);
+ template
+ void project_boundary_values_curl_conforming<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension>&,
+ const unsigned int,
+ const Function<deal_II_dimension>&,
+ const types::boundary_id,
+ ConstraintMatrix&,
+ const hp::MappingCollection<deal_II_dimension>&);
+ template
+ void project_boundary_values_div_conforming<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension>&,
+ const unsigned int,
+ const Function<deal_II_dimension>&,
+ const types::boundary_id,
+ ConstraintMatrix&,
+ const Mapping<deal_II_dimension>&);
+ template
+ void project_boundary_values_div_conforming<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension>&,
+ const unsigned int,
+ const Function<deal_II_dimension>&,
+ const types::boundary_id,
+ ConstraintMatrix&,
+ const hp::MappingCollection<deal_II_dimension>&);
+#endif
+#endif
+ \}
+ }
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_constraints.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+ namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+#if deal_II_dimension != 1
+ template
+ void
+ compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+ template
+ void
+ compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+#endif
+#endif
+ \}
+ }
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_integrate_difference.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+
+ template
+ void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
+ (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+ const VEC&,
+ const Function<deal_II_space_dimension>&,
+ Vector<float>&,
+ const Quadrature<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_space_dimension>*,
+ const double);
+
+ template
+ void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
+ (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+ const VEC&,
+ const Function<deal_II_space_dimension>&,
+ Vector<double>&,
+ const Quadrature<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_space_dimension>*,
+ const double);
+
+ template
+ void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
+ (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
+ const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+ const VEC&,
+ const Function<deal_II_space_dimension>&,
+ Vector<float>&,
+ const Quadrature<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_space_dimension>*,
+ const double);
+
+ template
+ void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
+ (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
+ const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+ const VEC&,
+ const Function<deal_II_space_dimension>&,
+ Vector<double>&,
+ const Quadrature<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_space_dimension>*,
+ const double);
+
+ \}
+#endif
+ }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension == deal_II_space_dimension
+
+ namespace VectorTools \{
+
+ template
+ void integrate_difference<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<double>&,
+ const hp::QCollection<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_dimension>*,
+ const double);
+ template
+ void integrate_difference<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<float>&,
+ const hp::QCollection<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_dimension>*,
+ const double);
+ template
+ void integrate_difference<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<double>&,
+ const hp::QCollection<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_dimension>*,
+ const double);
+ template
+ void integrate_difference<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<float>&,
+ const hp::QCollection<deal_II_dimension>&,
+ const NormType&,
+ const Function<deal_II_dimension>*,
+ const double);
+ \}
+#endif
+ }
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_interpolate.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+
+ template
+ void interpolate
+ (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
+ const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+ const Function<deal_II_space_dimension>&,
+ VEC&);
+
+ template
+ void interpolate
+ (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+ const Function<deal_II_space_dimension>&,
+ VEC&);
+ \}
+#endif
+ }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension == deal_II_space_dimension
+
+ namespace VectorTools \{
+
+ template
+ void interpolate
+ (const Mapping<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
+ const Function<deal_II_dimension>&,
+ VEC&);
+ template
+ void interpolate
+ (const hp::DoFHandler<deal_II_dimension>&,
+ const Function<deal_II_dimension>&,
+ VEC&);
+
+ template
+ void interpolate
+ (const DoFHandler<deal_II_dimension>&,
+ const DoFHandler<deal_II_dimension>&,
+ const FullMatrix<double>&,
+ const VEC&,
+ VEC&);
+ \}
+#endif
+ }
+
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ std::map<types::global_dof_index,double> &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const types::boundary_id,
+ const Function<deal_II_space_dimension> &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ template
+ void interpolate_boundary_values (
+ const DH<deal_II_dimension,deal_II_space_dimension> &,
+ const FunctionMap<deal_II_space_dimension>::type &,
+ ConstraintMatrix &,
+ const ComponentMask &);
+
+ \}
+#endif
+ }
+
+
+
+for (deal_II_dimension : DIMENSIONS)
+{
+ namespace VectorTools \{
+
+ template
+ void interpolate_to_different_mesh
+ (const DoFHandler<deal_II_dimension> &,
+ const Vector<float> &,
+ const DoFHandler<deal_II_dimension> &,
+ Vector<float> &);
+
+ template
+ void interpolate_to_different_mesh
+ (const DoFHandler<deal_II_dimension> &,
+ const Vector<float> &,
+ const DoFHandler<deal_II_dimension> &,
+ const ConstraintMatrix &,
+ Vector<float> &);
+
+ template
+ void interpolate_to_different_mesh
+ (const InterGridMap<DoFHandler<deal_II_dimension> > &,
+ const Vector<float> &,
+ const ConstraintMatrix &,
+ Vector<float> &);
+
+ template
+ void interpolate_to_different_mesh
+ (const DoFHandler<deal_II_dimension> &,
+ const Vector<double> &,
+ const DoFHandler<deal_II_dimension> &,
+ Vector<double> &);
+
+ template
+ void interpolate_to_different_mesh
+ (const DoFHandler<deal_II_dimension> &,
+ const Vector<double> &,
+ const DoFHandler<deal_II_dimension> &,
+ const ConstraintMatrix &,
+ Vector<double> &);
+
+ template
+ void interpolate_to_different_mesh
+ (const InterGridMap<DoFHandler<deal_II_dimension> > &,
+ const Vector<double> &,
+ const ConstraintMatrix &,
+ Vector<double> &);
+
+ \}
+}
+
+
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_mean_value.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+
+ template
+ double compute_mean_value<deal_II_dimension>
+ (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
+ const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+ const Quadrature<deal_II_dimension>&,
+ const VEC&,
+ const unsigned int);
+
+ template
+ double compute_mean_value<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+ const Quadrature<deal_II_dimension>&,
+ const VEC&,
+ const unsigned int);
+
+ \}
+#endif
+ }
+
+
+
+for (VEC : SERIAL_VECTORS)
+{
+ namespace VectorTools \{
+ template
+ void subtract_mean_value(VEC &, const std::vector<bool> &);
+ \}
+}
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_point_value.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension == deal_II_space_dimension
+
+ namespace VectorTools \{
+
+ template
+ void point_value<deal_II_dimension> (
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&,
+ Vector<double>&);
+
+ template
+ double point_value<deal_II_dimension> (
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&);
+
+ template
+ void point_value<deal_II_dimension> (
+ const hp::MappingCollection<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&,
+ Vector<double>&);
+
+ template
+ double point_value<deal_II_dimension> (
+ const hp::MappingCollection<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&);
+
+ template
+ void point_difference<deal_II_dimension> (
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<double>&,
+ const Point<deal_II_dimension>&);
+
+ template
+ void point_difference<deal_II_dimension> (
+ const Mapping<deal_II_dimension>&,
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Function<deal_II_dimension>&,
+ Vector<double>&,
+ const Point<deal_II_dimension>&);
+
+ template
+ void point_value<deal_II_dimension> (
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&,
+ Vector<double>&);
+
+ template
+ double point_value<deal_II_dimension> (
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&);
+
+ template
+ void point_value<deal_II_dimension> (
+ const Mapping<deal_II_dimension>&,
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&,
+ Vector<double>&);
+
+ template
+ double point_value<deal_II_dimension> (
+ const Mapping<deal_II_dimension>&,
+ const DoFHandler<deal_II_dimension>&,
+ const VEC&,
+ const Point<deal_II_dimension>&);
+
+ \}
+#endif
+ }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+ namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const Mapping<deal_II_dimension> &,
+ const DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension> &,
+ const hp::DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const Mapping<deal_II_dimension> &,
+ const DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension> &,
+ const hp::DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+ template
+ void create_point_source_vector<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ const Point<deal_II_dimension> &,
+ Vector<double> &);
+#endif
+ \}
+ }
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
-#include "vector_tools.inst"
+#include "vector_tools_project.inst"
DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+
+ template
+ void project
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const ConstraintMatrix &,
+ const Quadrature<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ VEC &,
+ const bool,
+ const Quadrature<deal_II_dimension-1> &,
+ const bool);
+
+ template
+ void project
+ (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const ConstraintMatrix &,
+ const Quadrature<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ VEC &,
+ const bool,
+ const Quadrature<deal_II_dimension-1> &,
+ const bool);
+
+ template
+ void project
+ (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension> &,
+ const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const ConstraintMatrix &,
+ const hp::QCollection<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ VEC &,
+ const bool,
+ const hp::QCollection<deal_II_dimension-1> &,
+ const bool);
+
+ template
+ void project
+ (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const ConstraintMatrix &,
+ const hp::QCollection<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ VEC &,
+ const bool,
+ const hp::QCollection<deal_II_dimension-1> &,
+ const bool);
+ \}
+#endif
+ }
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+
+namespace VectorTools
+{
+
+// separate implementation for 1D because otherwise we get linker errors since
+// (hp::)FEFaceValues<1> is not compiled
+ template <>
+ void
+ create_boundary_right_hand_side (const Mapping<1,1> &,
+ const DoFHandler<1,1> &,
+ const Quadrature<0> &,
+ const Function<1> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &)
+ {
+ Assert (false, ExcImpossibleInDim(1));
+ }
+
+
+
+ template <>
+ void
+ create_boundary_right_hand_side (const Mapping<1,2> &,
+ const DoFHandler<1,2> &,
+ const Quadrature<0> &,
+ const Function<2> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &)
+ {
+ Assert (false, ExcImpossibleInDim(1));
+ }
+
+
+
+ template <>
+ void
+ create_boundary_right_hand_side (const hp::MappingCollection<1,1> &,
+ const hp::DoFHandler<1,1> &,
+ const hp::QCollection<0> &,
+ const Function<1> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &)
+ {
+ Assert (false, ExcImpossibleInDim(1));
+ }
+
+
+
+ template <>
+ void
+ create_boundary_right_hand_side (const hp::MappingCollection<1,2> &,
+ const hp::DoFHandler<1,2> &,
+ const hp::QCollection<0> &,
+ const Function<2> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &)
+ {
+ Assert (false, ExcImpossibleInDim(1));
+ }
+}
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_rhs.inst"
+
+DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
+ namespace VectorTools \{
+ template
+ void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
+ (const Mapping<deal_II_dimension,deal_II_space_dimension> &,
+ const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const Quadrature<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ Vector<double> &);
+
+ template
+ void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
+ (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+ const Quadrature<deal_II_dimension> &,
+ const Function<deal_II_space_dimension> &,
+ Vector<double> &);
+
+ \}
+#endif
+ }
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+ {
+ namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+ template
+ void create_right_hand_side<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension> &,
+ const hp::DoFHandler<deal_II_dimension> &,
+ const hp::QCollection<deal_II_dimension> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &);
+
+ template
+ void create_right_hand_side<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension> &,
+ const hp::QCollection<deal_II_dimension> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &);
+
+#if deal_II_dimension > 1
+ template
+ void
+ create_boundary_right_hand_side<deal_II_dimension>
+ (const Mapping<deal_II_dimension> &,
+ const DoFHandler<deal_II_dimension> &,
+ const Quadrature<deal_II_dimension-1> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &);
+#endif
+
+ template
+ void
+ create_boundary_right_hand_side<deal_II_dimension>
+ (const DoFHandler<deal_II_dimension> &,
+ const Quadrature<deal_II_dimension-1> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &);
+
+#if deal_II_dimension > 1
+ template
+ void
+ create_boundary_right_hand_side<deal_II_dimension>
+ (const hp::MappingCollection<deal_II_dimension> &,
+ const hp::DoFHandler<deal_II_dimension> &,
+ const hp::QCollection<deal_II_dimension-1> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &);
+#endif
+
+ template
+ void
+ create_boundary_right_hand_side<deal_II_dimension>
+ (const hp::DoFHandler<deal_II_dimension> &,
+ const hp::QCollection<deal_II_dimension-1> &,
+ const Function<deal_II_dimension> &,
+ Vector<double> &,
+ const std::set<types::boundary_id> &);
+
+
+#endif
+ \}
+ }