Reference documentation for deal.II version 8.4.2
vector_tools.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2016 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii__vector_tools_h
17 #define dealii__vector_tools_h
18 
19 
20 #include <deal.II/base/config.h>
21 #include <deal.II/base/exceptions.h>
22 #include <deal.II/base/quadrature_lib.h>
23 #include <deal.II/base/point.h>
24 #include <deal.II/dofs/function_map.h>
25 #include <deal.II/fe/mapping_q.h>
26 #include <deal.II/hp/mapping_collection.h>
27 
28 #include <map>
29 #include <vector>
30 #include <set>
31 
32 DEAL_II_NAMESPACE_OPEN
33 
34 template <int dim, typename Number> class Function;
35 template <int dim, typename Number> struct FunctionMap;
36 template <int dim> class Quadrature;
37 template <int dim> class QGauss;
38 
39 template <typename number> class Vector;
40 template <typename number> class FullMatrix;
41 template <int dim, int spacedim> class Mapping;
42 template <int dim, int spacedim> class DoFHandler;
43 template <typename gridtype> class InterGridMap;
44 namespace hp
45 {
46  template <int dim, int spacedim> class DoFHandler;
47  template <int dim, int spacedim> class MappingCollection;
48  template <int dim> class QCollection;
49 }
50 class ConstraintMatrix;
51 
52 
53 //TODO: Move documentation of functions to the functions!
54 
317 namespace VectorTools
318 {
324  enum NormType
325  {
378 
379  };
403  template <typename VectorType, int dim, int spacedim, template <int, int> class DoFHandlerType>
404  void interpolate (const Mapping<dim,spacedim> &mapping,
405  const DoFHandlerType<dim,spacedim> &dof,
406  const Function<spacedim,double> &function,
407  VectorType &vec);
408 
413  template <typename VectorType, typename DoFHandlerType>
414  void interpolate (const DoFHandlerType &dof,
416  VectorType &vec);
417 
434  template <int dim, class InVector, class OutVector, int spacedim>
435  void interpolate (const DoFHandler<dim,spacedim> &dof_1,
436  const DoFHandler<dim,spacedim> &dof_2,
437  const FullMatrix<double> &transfer,
438  const InVector &data_1,
439  OutVector &data_2);
440 
487  template <typename VectorType, typename DoFHandlerType>
488  void
491  const DoFHandlerType &dof_handler,
492  const std::map<types::material_id, const Function<DoFHandlerType::space_dimension, double> *> &function_map,
493  VectorType &dst,
494  const ComponentMask &component_mask = ComponentMask());
495 
520  template <int dim, int spacedim,
521  template <int, int> class DoFHandlerType,
522  typename VectorType>
523  void
524  interpolate_to_different_mesh (const DoFHandlerType<dim, spacedim> &dof1,
525  const VectorType &u1,
526  const DoFHandlerType<dim, spacedim> &dof2,
527  VectorType &u2);
528 
542  template <int dim, int spacedim,
543  template <int, int> class DoFHandlerType,
544  typename VectorType>
545  void
546  interpolate_to_different_mesh (const DoFHandlerType<dim, spacedim> &dof1,
547  const VectorType &u1,
548  const DoFHandlerType<dim, spacedim> &dof2,
549  const ConstraintMatrix &constraints,
550  VectorType &u2);
551 
552 
560  template <int dim, int spacedim,
561  template <int, int> class DoFHandlerType,
562  typename VectorType>
563  void
565  (const InterGridMap<DoFHandlerType<dim, spacedim> > &intergridmap,
566  const VectorType &u1,
567  const ConstraintMatrix &constraints,
568  VectorType &u2);
569 
590  template <int dim, typename VectorType, int spacedim>
591  void project (const Mapping<dim, spacedim> &mapping,
592  const DoFHandler<dim,spacedim> &dof,
593  const ConstraintMatrix &constraints,
594  const Quadrature<dim> &quadrature,
595  const Function<spacedim,double> &function,
596  VectorType &vec,
597  const bool enforce_zero_boundary = false,
598  const Quadrature<dim-1> &q_boundary = (dim > 1 ?
599  QGauss<dim-1>(2) :
600  Quadrature<dim-1>(0)),
601  const bool project_to_boundary_first = false);
602 
607  template <int dim, typename VectorType, int spacedim>
608  void project (const DoFHandler<dim,spacedim> &dof,
609  const ConstraintMatrix &constraints,
610  const Quadrature<dim> &quadrature,
611  const Function<spacedim,double> &function,
612  VectorType &vec,
613  const bool enforce_zero_boundary = false,
614  const Quadrature<dim-1> &q_boundary = (dim > 1 ?
615  QGauss<dim-1>(2) :
616  Quadrature<dim-1>(0)),
617  const bool project_to_boundary_first = false);
618 
623  template <int dim, typename VectorType, int spacedim>
624  void project (const hp::MappingCollection<dim, spacedim> &mapping,
625  const hp::DoFHandler<dim,spacedim> &dof,
626  const ConstraintMatrix &constraints,
627  const hp::QCollection<dim> &quadrature,
628  const Function<spacedim,double> &function,
629  VectorType &vec,
630  const bool enforce_zero_boundary = false,
631  const hp::QCollection<dim-1> &q_boundary = hp::QCollection<dim-1>(dim > 1 ?
632  QGauss<dim-1>(2) :
633  Quadrature<dim-1>(0)),
634  const bool project_to_boundary_first = false);
635 
640  template <int dim, typename VectorType, int spacedim>
641  void project (const hp::DoFHandler<dim,spacedim> &dof,
642  const ConstraintMatrix &constraints,
643  const hp::QCollection<dim> &quadrature,
644  const Function<spacedim,double> &function,
645  VectorType &vec,
646  const bool enforce_zero_boundary = false,
647  const hp::QCollection<dim-1> &q_boundary = hp::QCollection<dim-1>(dim > 1 ?
648  QGauss<dim-1>(2) :
649  Quadrature<dim-1>(0)),
650  const bool project_to_boundary_first = false);
651 
701  template <typename DoFHandlerType>
702  void
705  const DoFHandlerType &dof,
706  const typename FunctionMap<DoFHandlerType::space_dimension>::type &function_map,
707  std::map<types::global_dof_index,double> &boundary_values,
708  const ComponentMask &component_mask = ComponentMask());
709 
714  template <int dim, int spacedim>
715  void
717  (const hp::MappingCollection<dim,spacedim> &mapping,
718  const hp::DoFHandler<dim,spacedim> &dof,
719  const typename FunctionMap<spacedim>::type &function_map,
720  std::map<types::global_dof_index,double> &boundary_values,
721  const ComponentMask &component_mask = ComponentMask());
722 
732  template <typename DoFHandlerType>
733  void
736  const DoFHandlerType &dof,
737  const types::boundary_id boundary_component,
738  const Function<DoFHandlerType::space_dimension,double> &boundary_function,
739  std::map<types::global_dof_index,double> &boundary_values,
740  const ComponentMask &component_mask = ComponentMask());
741 
751  template <typename DoFHandlerType>
752  void
754  (const DoFHandlerType &dof,
755  const types::boundary_id boundary_component,
756  const Function<DoFHandlerType::space_dimension,double> &boundary_function,
757  std::map<types::global_dof_index,double> &boundary_values,
758  const ComponentMask &component_mask = ComponentMask());
759 
760 
767  template <typename DoFHandlerType>
768  void
770  (const DoFHandlerType &dof,
771  const typename FunctionMap<DoFHandlerType::space_dimension>::type &function_map,
772  std::map<types::global_dof_index,double> &boundary_values,
773  const ComponentMask &component_mask = ComponentMask());
774 
775 
837  template <typename DoFHandlerType>
838  void
841  const DoFHandlerType &dof,
842  const typename FunctionMap<DoFHandlerType::space_dimension>::type &function_map,
843  ConstraintMatrix &constraints,
844  const ComponentMask &component_mask = ComponentMask());
845 
857  template <typename DoFHandlerType>
858  void
861  const DoFHandlerType &dof,
862  const types::boundary_id boundary_component,
863  const Function<DoFHandlerType::space_dimension,double> &boundary_function,
864  ConstraintMatrix &constraints,
865  const ComponentMask &component_mask = ComponentMask());
866 
878  template <typename DoFHandlerType>
879  void
881  (const DoFHandlerType &dof,
882  const types::boundary_id boundary_component,
883  const Function<DoFHandlerType::space_dimension,double> &boundary_function,
884  ConstraintMatrix &constraints,
885  const ComponentMask &component_mask = ComponentMask());
886 
887 
896  template <typename DoFHandlerType>
897  void
899  (const DoFHandlerType &dof,
900  const typename FunctionMap<DoFHandlerType::space_dimension>::type &function_map,
901  ConstraintMatrix &constraints,
902  const ComponentMask &component_mask = ComponentMask());
903 
904 
955  template <int dim, int spacedim>
956  void project_boundary_values (const Mapping<dim, spacedim> &mapping,
957  const DoFHandler<dim,spacedim> &dof,
958  const typename FunctionMap<spacedim>::type &boundary_functions,
959  const Quadrature<dim-1> &q,
960  std::map<types::global_dof_index,double> &boundary_values,
961  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
962 
967  template <int dim, int spacedim>
969  const typename FunctionMap<spacedim>::type &boundary_function,
970  const Quadrature<dim-1> &q,
971  std::map<types::global_dof_index,double> &boundary_values,
972  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
973 
977  template <int dim, int spacedim>
979  const hp::DoFHandler<dim,spacedim> &dof,
980  const typename FunctionMap<spacedim>::type &boundary_functions,
981  const hp::QCollection<dim-1> &q,
982  std::map<types::global_dof_index,double> &boundary_values,
983  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
984 
989  template <int dim, int spacedim>
991  const typename FunctionMap<spacedim>::type &boundary_function,
992  const hp::QCollection<dim-1> &q,
993  std::map<types::global_dof_index,double> &boundary_values,
994  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
995 
1034  template <int dim, int spacedim>
1035  void project_boundary_values (const Mapping<dim, spacedim> &mapping,
1036  const DoFHandler<dim,spacedim> &dof,
1037  const typename FunctionMap<spacedim>::type &boundary_functions,
1038  const Quadrature<dim-1> &q,
1039  ConstraintMatrix &constraints,
1040  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1041 
1048  template <int dim, int spacedim>
1050  const typename FunctionMap<spacedim>::type &boundary_function,
1051  const Quadrature<dim-1> &q,
1052  ConstraintMatrix &constraints,
1053  std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1054 
1055 
1110  template <int dim>
1112  const unsigned int first_vector_component,
1113  const Function<dim,double> &boundary_function,
1114  const types::boundary_id boundary_component,
1115  ConstraintMatrix &constraints,
1116  const Mapping<dim> &mapping = StaticMappingQ1<dim>::mapping);
1117 
1126  template <int dim>
1128  const unsigned int first_vector_component,
1129  const Function<dim,double> &boundary_function,
1130  const types::boundary_id boundary_component,
1131  ConstraintMatrix &constraints,
1133 
1229  template <int dim>
1231  const unsigned int first_vector_component,
1232  const Function<dim,double> &boundary_function,
1233  const types::boundary_id boundary_component,
1234  ConstraintMatrix &constraints,
1235  const Mapping<dim> &mapping = StaticMappingQ1<dim>::mapping);
1236 
1237 
1244  template <int dim>
1246  const unsigned int first_vector_component,
1247  const Function<dim,double> &boundary_function,
1248  const types::boundary_id boundary_component,
1249  ConstraintMatrix &constraints,
1251 
1252 
1299  template<int dim>
1301  const unsigned int first_vector_component,
1302  const Function<dim,double> &boundary_function,
1303  const types::boundary_id boundary_component,
1304  ConstraintMatrix &constraints,
1305  const Mapping<dim> &mapping = StaticMappingQ1<dim>::mapping);
1306 
1315  template<int dim>
1317  const unsigned int first_vector_component,
1318  const Function<dim,double> &boundary_function,
1319  const types::boundary_id boundary_component,
1320  ConstraintMatrix &constraints,
1322 
1323 
1530  template <int dim, template <int, int> class DoFHandlerType, int spacedim>
1531  void
1533  (const DoFHandlerType<dim,spacedim> &dof_handler,
1534  const unsigned int first_vector_component,
1535  const std::set<types::boundary_id> &boundary_ids,
1536  typename FunctionMap<spacedim>::type &function_map,
1537  ConstraintMatrix &constraints,
1539 
1548  template <int dim, template <int, int> class DoFHandlerType, int spacedim>
1549  void
1551  (const DoFHandlerType<dim,spacedim> &dof_handler,
1552  const unsigned int first_vector_component,
1553  const std::set<types::boundary_id> &boundary_ids,
1554  ConstraintMatrix &constraints,
1556 
1571  template <int dim, template <int, int> class DoFHandlerType, int spacedim>
1572  void
1574  (const DoFHandlerType<dim,spacedim> &dof_handler,
1575  const unsigned int first_vector_component,
1576  const std::set<types::boundary_id> &boundary_ids,
1577  typename FunctionMap<spacedim>::type &function_map,
1578  ConstraintMatrix &constraints,
1580 
1589  template <int dim, template <int, int> class DoFHandlerType, int spacedim>
1590  void
1592  (const DoFHandlerType<dim,spacedim> &dof_handler,
1593  const unsigned int first_vector_component,
1594  const std::set<types::boundary_id> &boundary_ids,
1595  ConstraintMatrix &constraints,
1597 
1598 
1600 
1604 
1611  template <int dim, int spacedim>
1612  void create_right_hand_side (const Mapping<dim, spacedim> &mapping,
1613  const DoFHandler<dim,spacedim> &dof,
1614  const Quadrature<dim> &q,
1615  const Function<spacedim,double> &rhs,
1616  Vector<double> &rhs_vector);
1617 
1622  template <int dim, int spacedim>
1624  const Quadrature<dim> &q,
1625  const Function<spacedim,double> &rhs,
1626  Vector<double> &rhs_vector);
1627 
1631  template <int dim, int spacedim>
1633  const hp::DoFHandler<dim,spacedim> &dof,
1634  const hp::QCollection<dim> &q,
1635  const Function<spacedim,double> &rhs,
1636  Vector<double> &rhs_vector);
1637 
1641  template <int dim, int spacedim>
1643  const hp::QCollection<dim> &q,
1644  const Function<spacedim,double> &rhs,
1645  Vector<double> &rhs_vector);
1646 
1655  template <int dim, int spacedim>
1657  const DoFHandler<dim,spacedim> &dof,
1658  const Point<spacedim> &p,
1659  Vector<double> &rhs_vector);
1660 
1665  template <int dim, int spacedim>
1667  const Point<spacedim> &p,
1668  Vector<double> &rhs_vector);
1669 
1673  template <int dim, int spacedim>
1675  const hp::DoFHandler<dim,spacedim> &dof,
1676  const Point<spacedim> &p,
1677  Vector<double> &rhs_vector);
1678 
1685  template <int dim, int spacedim>
1687  const Point<spacedim> &p,
1688  Vector<double> &rhs_vector);
1689 
1707  template <int dim, int spacedim>
1709  const DoFHandler<dim,spacedim> &dof,
1710  const Point<spacedim> &p,
1711  const Point<dim> &direction,
1712  Vector<double> &rhs_vector);
1713 
1718  template <int dim, int spacedim>
1720  const Point<spacedim> &p,
1721  const Point<dim> &direction,
1722  Vector<double> &rhs_vector);
1723 
1727  template <int dim, int spacedim>
1729  const hp::DoFHandler<dim,spacedim> &dof,
1730  const Point<spacedim> &p,
1731  const Point<dim> &direction,
1732  Vector<double> &rhs_vector);
1733 
1740  template <int dim, int spacedim>
1742  const Point<spacedim> &p,
1743  const Point<dim> &direction,
1744  Vector<double> &rhs_vector);
1745 
1755  template <int dim, int spacedim>
1757  const DoFHandler<dim,spacedim> &dof,
1758  const Quadrature<dim-1> &q,
1759  const Function<spacedim,double> &rhs,
1760  Vector<double> &rhs_vector,
1761  const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1762 
1770  template <int dim, int spacedim>
1772  const Quadrature<dim-1> &q,
1773  const Function<spacedim,double> &rhs,
1774  Vector<double> &rhs_vector,
1775  const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1776 
1783  template <int dim, int spacedim>
1785  const hp::DoFHandler<dim,spacedim> &dof,
1786  const hp::QCollection<dim-1> &q,
1787  const Function<spacedim,double> &rhs,
1788  Vector<double> &rhs_vector,
1789  const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1790 
1799  template <int dim, int spacedim>
1801  const hp::QCollection<dim-1> &q,
1802  const Function<spacedim,double> &rhs,
1803  Vector<double> &rhs_vector,
1804  const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1805 
1807 
1811 
1924  template <int dim, class InVector, class OutVector, int spacedim>
1925  void integrate_difference (const Mapping<dim,spacedim> &mapping,
1926  const DoFHandler<dim,spacedim> &dof,
1927  const InVector &fe_function,
1928  const Function<spacedim,double> &exact_solution,
1929  OutVector &difference,
1930  const Quadrature<dim> &q,
1931  const NormType &norm,
1932  const Function<spacedim,double> *weight = 0,
1933  const double exponent = 2.);
1934 
1939  template <int dim, class InVector, class OutVector, int spacedim>
1941  const InVector &fe_function,
1942  const Function<spacedim,double> &exact_solution,
1943  OutVector &difference,
1944  const Quadrature<dim> &q,
1945  const NormType &norm,
1946  const Function<spacedim,double> *weight = 0,
1947  const double exponent = 2.);
1948 
1952  template <int dim, class InVector, class OutVector, int spacedim>
1954  const hp::DoFHandler<dim,spacedim> &dof,
1955  const InVector &fe_function,
1956  const Function<spacedim,double> &exact_solution,
1957  OutVector &difference,
1958  const hp::QCollection<dim> &q,
1959  const NormType &norm,
1960  const Function<spacedim,double> *weight = 0,
1961  const double exponent = 2.);
1962 
1967  template <int dim, class InVector, class OutVector, int spacedim>
1969  const InVector &fe_function,
1970  const Function<spacedim,double> &exact_solution,
1971  OutVector &difference,
1972  const hp::QCollection<dim> &q,
1973  const NormType &norm,
1974  const Function<spacedim,double> *weight = 0,
1975  const double exponent = 2.);
1976 
1989  template <int dim, typename VectorType, int spacedim>
1990  void point_difference (const DoFHandler<dim,spacedim> &dof,
1991  const VectorType &fe_function,
1992  const Function<spacedim,double> &exact_solution,
1993  Vector<double> &difference,
1994  const Point<spacedim> &point);
1995 
2008  template <int dim, typename VectorType, int spacedim>
2009  void point_difference (const Mapping<dim, spacedim> &mapping,
2010  const DoFHandler<dim,spacedim> &dof,
2011  const VectorType &fe_function,
2012  const Function<spacedim,double> &exact_solution,
2013  Vector<double> &difference,
2014  const Point<spacedim> &point);
2015 
2027  template <int dim, typename VectorType, int spacedim>
2028  void
2030  const VectorType &fe_function,
2031  const Point<spacedim> &point,
2032  Vector<double> &value);
2033 
2040  template <int dim, typename VectorType, int spacedim>
2041  void
2043  const VectorType &fe_function,
2044  const Point<spacedim> &point,
2045  Vector<double> &value);
2046 
2062  template <int dim, typename VectorType, int spacedim>
2063  double
2065  const VectorType &fe_function,
2066  const Point<spacedim> &point);
2067 
2074  template <int dim, typename VectorType, int spacedim>
2075  double
2077  const VectorType &fe_function,
2078  const Point<spacedim> &point);
2079 
2091  template <int dim, typename VectorType, int spacedim>
2092  void
2093  point_value (const Mapping<dim, spacedim> &mapping,
2094  const DoFHandler<dim,spacedim> &dof,
2095  const VectorType &fe_function,
2096  const Point<spacedim> &point,
2097  Vector<double> &value);
2098 
2105  template <int dim, typename VectorType, int spacedim>
2106  void
2108  const hp::DoFHandler<dim,spacedim> &dof,
2109  const VectorType &fe_function,
2110  const Point<spacedim> &point,
2111  Vector<double> &value);
2112 
2124  template <int dim, typename VectorType, int spacedim>
2125  double
2126  point_value (const Mapping<dim,spacedim> &mapping,
2127  const DoFHandler<dim,spacedim> &dof,
2128  const VectorType &fe_function,
2129  const Point<spacedim> &point);
2130 
2137  template <int dim, typename VectorType, int spacedim>
2138  double
2140  const hp::DoFHandler<dim,spacedim> &dof,
2141  const VectorType &fe_function,
2142  const Point<spacedim> &point);
2143 
2155  template <int dim, typename VectorType, int spacedim>
2156  void
2158  const VectorType &fe_function,
2159  const Point<spacedim> &point,
2161 
2168  template <int dim, typename VectorType, int spacedim>
2169  void
2171  const VectorType &fe_function,
2172  const Point<spacedim> &point,
2174 
2186  template <int dim, typename VectorType, int spacedim>
2189  const VectorType &fe_function,
2190  const Point<spacedim> &point);
2191 
2198  template <int dim, typename VectorType, int spacedim>
2201  const VectorType &fe_function,
2202  const Point<spacedim> &point);
2203 
2215  template <int dim, typename VectorType, int spacedim>
2216  void
2217  point_gradient (const Mapping<dim, spacedim> &mapping,
2218  const DoFHandler<dim,spacedim> &dof,
2219  const VectorType &fe_function,
2220  const Point<spacedim> &point,
2222 
2229  template <int dim, typename VectorType, int spacedim>
2230  void
2232  const hp::DoFHandler<dim,spacedim> &dof,
2233  const VectorType &fe_function,
2234  const Point<spacedim> &point,
2236 
2248  template <int dim, typename VectorType, int spacedim>
2250  point_gradient (const Mapping<dim,spacedim> &mapping,
2251  const DoFHandler<dim,spacedim> &dof,
2252  const VectorType &fe_function,
2253  const Point<spacedim> &point);
2254 
2261  template <int dim, typename VectorType, int spacedim>
2264  const hp::DoFHandler<dim,spacedim> &dof,
2265  const VectorType &fe_function,
2266  const Point<spacedim> &point);
2267 
2269 
2273 
2320  template <typename VectorType>
2321  void subtract_mean_value(VectorType &v,
2322  const std::vector<bool> &p_select = std::vector<bool>());
2323 
2324 
2348  template <int dim, typename VectorType, int spacedim>
2349  double compute_mean_value (const Mapping<dim, spacedim> &mapping,
2350  const DoFHandler<dim,spacedim> &dof,
2351  const Quadrature<dim> &quadrature,
2352  const VectorType &v,
2353  const unsigned int component);
2354 
2359  template <int dim, typename VectorType, int spacedim>
2360  double compute_mean_value (const DoFHandler<dim,spacedim> &dof,
2361  const Quadrature<dim> &quadrature,
2362  const VectorType &v,
2363  const unsigned int component);
2365 
2395  template<typename DoFHandlerType, typename VectorType>
2396  void get_position_vector(const DoFHandlerType &dh,
2397  VectorType &vector,
2398  const ComponentMask &mask = ComponentMask());
2399 
2401 
2405  DeclExceptionMsg (ExcNonInterpolatingFE,
2406  "You are attempting an operation that requires the "
2407  "finite element involved to be 'interpolating', i.e., "
2408  "it needs to have support points. The finite element "
2409  "you are using here does not appear to have those.");
2410 
2414  DeclExceptionMsg (ExcPointNotAvailableHere,
2415  "The given point is inside a cell of a "
2416  "parallel::distributed::Triangulation that is not "
2417  "locally owned by this processor.");
2418 }
2419 
2420 
2421 DEAL_II_NAMESPACE_CLOSE
2422 
2423 #endif
void project_boundary_values_curl_conforming(const hp::DoFHandler< dim > &dof_handler, const unsigned int first_vector_component, const Function< dim, double > &boundary_function, const types::boundary_id boundary_component, ConstraintMatrix &constraints, const hp::MappingCollection< dim, dim > &mapping_collection=hp::StaticMappingQ1< dim >::mapping_collection)
void compute_nonzero_tangential_flux_constraints(const DoFHandlerType< dim, spacedim > &dof_handler, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, typename FunctionMap< spacedim >::type &function_map, ConstraintMatrix &constraints, const Mapping< dim, spacedim > &mapping=StaticMappingQ1< dim >::mapping)
unsigned char material_id
Definition: types.h:130
void project_boundary_values(const DoFHandler< dim, spacedim > &dof, const typename FunctionMap< spacedim >::type &boundary_function, const Quadrature< dim-1 > &q, ConstraintMatrix &constraints, std::vector< unsigned int > component_mapping=std::vector< unsigned int >())
double compute_mean_value(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim > &quadrature, const VectorType &v, const unsigned int component)
void compute_no_normal_flux_constraints(const DoFHandlerType< dim, spacedim > &dof_handler, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, ConstraintMatrix &constraints, const Mapping< dim, spacedim > &mapping=StaticMappingQ1< dim >::mapping)
void project_boundary_values_div_conforming(const hp::DoFHandler< dim > &dof_handler, const unsigned int first_vector_component, const Function< dim, double > &boundary_function, const types::boundary_id boundary_component, ConstraintMatrix &constraints, const hp::MappingCollection< dim, dim > &mapping_collection=hp::StaticMappingQ1< dim >::mapping_collection)
void compute_nonzero_normal_flux_constraints(const DoFHandlerType< dim, spacedim > &dof_handler, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, typename FunctionMap< spacedim >::type &function_map, ConstraintMatrix &constraints, const Mapping< dim, spacedim > &mapping=StaticMappingQ1< dim >::mapping)
void point_difference(const DoFHandler< dim, spacedim > &dof, const VectorType &fe_function, const Function< spacedim, double > &exact_solution, Vector< double > &difference, const Point< spacedim > &point)
void create_right_hand_side(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim > &q, const Function< spacedim, double > &rhs, Vector< double > &rhs_vector)
void get_position_vector(const DoFHandlerType &dh, VectorType &vector, const ComponentMask &mask=ComponentMask())
void create_boundary_right_hand_side(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim-1 > &q, const Function< spacedim, double > &rhs, Vector< double > &rhs_vector, const std::set< types::boundary_id > &boundary_ids=std::set< types::boundary_id >())
void project_boundary_values_curl_conforming_l2(const hp::DoFHandler< dim > &dof_handler, const unsigned int first_vector_component, const Function< dim, double > &boundary_function, const types::boundary_id boundary_component, ConstraintMatrix &constraints, const hp::MappingCollection< dim, dim > &mapping_collection=hp::StaticMappingQ1< dim >::mapping_collection)
void compute_normal_flux_constraints(const DoFHandlerType< dim, spacedim > &dof_handler, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, ConstraintMatrix &constraints, const Mapping< dim, spacedim > &mapping=StaticMappingQ1< dim >::mapping)
void create_point_source_vector(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Point< spacedim > &p, Vector< double > &rhs_vector)
void point_gradient(const DoFHandler< dim, spacedim > &dof, const VectorType &fe_function, const Point< spacedim > &point, std::vector< Tensor< 1, spacedim, typename VectorType::value_type > > &value)
Abstract base class for mapping classes.
Definition: dof_tools.h:52
#define DeclExceptionMsg(Exception, defaulttext)
Definition: exceptions.h:533
void subtract_mean_value(VectorType &v, const std::vector< bool > &p_select=std::vector< bool >())
std::map< types::boundary_id, const Function< dim, Number > * > type
Definition: function_map.h:81
void project(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const ConstraintMatrix &constraints, const Quadrature< dim > &quadrature, const Function< spacedim, double > &function, VectorType &vec, const bool enforce_zero_boundary=false, const Quadrature< dim-1 > &q_boundary=(dim > 1 ? QGauss< dim-1 >(2) :Quadrature< dim-1 >(0)), const bool project_to_boundary_first=false)
Definition: hp.h:102
void point_value(const DoFHandler< dim, spacedim > &dof, const VectorType &fe_function, const Point< spacedim > &point, Vector< double > &value)
Definition: mpi.h:48
void interpolate_boundary_values(const DoFHandlerType &dof, const typename FunctionMap< DoFHandlerType::space_dimension >::type &function_map, ConstraintMatrix &constraints, const ComponentMask &component_mask=ComponentMask())
unsigned char boundary_id
Definition: types.h:110
void integrate_difference(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const InVector &fe_function, const Function< spacedim, double > &exact_solution, OutVector &difference, const Quadrature< dim > &q, const NormType &norm, const Function< spacedim, double > *weight=0, const double exponent=2.)
void interpolate_to_different_mesh(const DoFHandlerType< dim, spacedim > &dof1, const VectorType &u1, const DoFHandlerType< dim, spacedim > &dof2, VectorType &u2)
void interpolate_based_on_material_id(const Mapping< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &mapping, const DoFHandlerType &dof_handler, const std::map< types::material_id, const Function< DoFHandlerType::space_dimension, double > *> &function_map, VectorType &dst, const ComponentMask &component_mask=ComponentMask())