16 #ifndef dealii_vector_tools_h 17 #define dealii_vector_tools_h 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/dofs/dof_handler.h> 26 #include <deal.II/hp/dof_handler.h> 27 #include <deal.II/hp/mapping_collection.h> 34 DEAL_II_NAMESPACE_OPEN
36 template <
int dim,
typename RangeNumberType>
class Function;
38 template <
int dim>
class QGauss;
39 template <
int dim,
typename number>
class MatrixFree;
41 template <
typename number>
class Vector;
43 template <
int dim,
int spacedim>
class Mapping;
47 template <
int dim>
class QCollection;
591 template <
int dim,
int spacedim,
typename VectorType,
592 template <
int,
int>
class DoFHandlerType>
594 const DoFHandlerType<dim,spacedim> &dof,
603 template <
int dim,
int spacedim,
typename VectorType,
604 template <
int,
int>
class DoFHandlerType>
606 (
const DoFHandlerType<dim,spacedim> &dof,
627 template <
int dim,
class InVector,
class OutVector,
int spacedim>
631 const InVector &data_1,
680 template <
int dim,
int spacedim,
typename VectorType,
681 template <
int,
int>
class DoFHandlerType>
685 const DoFHandlerType<dim,spacedim> &dof_handler,
715 template <
int dim,
int spacedim,
typename VectorType,
716 template <
int,
int>
class DoFHandlerType>
719 const VectorType &u1,
720 const DoFHandlerType<dim, spacedim> &dof2,
736 template <
int dim,
int spacedim,
typename VectorType,
737 template <
int,
int>
class DoFHandlerType>
740 const VectorType &u1,
741 const DoFHandlerType<dim, spacedim> &dof2,
752 template <
int dim,
int spacedim,
typename VectorType,
753 template <
int,
int>
class DoFHandlerType>
756 (
const InterGridMap<DoFHandlerType<dim, spacedim> > &intergridmap,
757 const VectorType &u1,
812 template <
int dim,
typename VectorType,
int spacedim>
819 const bool enforce_zero_boundary =
false,
823 const bool project_to_boundary_first =
false);
829 template <
int dim,
typename VectorType,
int spacedim>
835 const bool enforce_zero_boundary =
false,
839 const bool project_to_boundary_first =
false);
845 template <
int dim,
typename VectorType,
int spacedim>
852 const bool enforce_zero_boundary =
false,
856 const bool project_to_boundary_first =
false);
862 template <
int dim,
typename VectorType,
int spacedim>
868 const bool enforce_zero_boundary =
false,
872 const bool project_to_boundary_first =
false);
895 template <
int dim,
typename VectorType,
int spacedim>
901 VectorType &vec_result);
927 template <
int dim,
typename VectorType>
930 const unsigned int n_q_points_1d,
932 VectorType &vec_result,
933 const unsigned int fe_component = 0);
938 template <
int dim,
typename VectorType>
942 VectorType &vec_result,
943 const unsigned int fe_component = 0);
996 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1001 const DoFHandlerType<dim,spacedim> &dof,
1003 std::map<types::global_dof_index,number> &boundary_values,
1010 template <
int dim,
int spacedim,
typename number>
1016 std::map<types::global_dof_index,number> &boundary_values,
1028 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1033 const DoFHandlerType<dim,spacedim> &dof,
1036 std::map<types::global_dof_index,number> &boundary_values,
1048 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1052 (
const DoFHandlerType<dim,spacedim> &dof,
1055 std::map<types::global_dof_index,number> &boundary_values,
1065 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1069 (
const DoFHandlerType<dim,spacedim> &dof,
1071 std::map<types::global_dof_index,number> &boundary_values,
1136 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1141 const DoFHandlerType<dim,spacedim> &dof,
1157 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1162 const DoFHandlerType<dim,spacedim> &dof,
1179 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1183 (
const DoFHandlerType<dim,spacedim> &dof,
1198 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
1202 (
const DoFHandlerType<dim,spacedim> &dof,
1272 template <
int dim,
int spacedim,
typename number>
1278 std::map<types::global_dof_index,number> &boundary_values,
1279 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1285 template <
int dim,
int spacedim,
typename number>
1290 std::map<types::global_dof_index,number> &boundary_values,
1291 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1296 template <
int dim,
int spacedim,
typename number>
1302 std::map<types::global_dof_index,number> &boundary_values,
1303 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1309 template <
int dim,
int spacedim,
typename number>
1314 std::map<types::global_dof_index,number> &boundary_values,
1315 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1355 template <
int dim,
int spacedim,
typename number>
1362 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1370 template <
int dim,
int spacedim,
typename number>
1376 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1436 const unsigned int first_vector_component,
1453 const unsigned int first_vector_component,
1557 const unsigned int first_vector_component,
1573 const unsigned int first_vector_component,
1629 const unsigned int first_vector_component,
1646 const unsigned int first_vector_component,
1880 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType>
1883 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1884 const unsigned int first_vector_component,
1885 const std::set<types::boundary_id> &boundary_ids,
1901 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType>
1904 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1905 const unsigned int first_vector_component,
1906 const std::set<types::boundary_id> &boundary_ids,
1926 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType>
1929 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1930 const unsigned int first_vector_component,
1931 const std::set<types::boundary_id> &boundary_ids,
1944 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType>
1947 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1948 const unsigned int first_vector_component,
1949 const std::set<types::boundary_id> &boundary_ids,
1966 template <
int dim,
int spacedim,
typename VectorType>
1971 VectorType &rhs_vector,
1978 template <
int dim,
int spacedim,
typename VectorType>
1982 VectorType &rhs_vector,
1988 template <
int dim,
int spacedim,
typename VectorType>
1993 VectorType &rhs_vector,
1999 template <
int dim,
int spacedim,
typename VectorType>
2003 VectorType &rhs_vector,
2057 template <
int dim,
int spacedim>
2067 template <
int dim,
int spacedim>
2075 template <
int dim,
int spacedim>
2087 template <
int dim,
int spacedim>
2110 template <
int dim,
int spacedim>
2121 template <
int dim,
int spacedim>
2130 template <
int dim,
int spacedim>
2143 template <
int dim,
int spacedim>
2158 template <
int dim,
int spacedim,
typename VectorType>
2163 VectorType &rhs_vector,
2164 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
2173 template <
int dim,
int spacedim,
typename VectorType>
2178 VectorType &rhs_vector,
2179 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
2187 template <
int dim,
int spacedim,
typename VectorType>
2193 VectorType &rhs_vector,
2194 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
2204 template <
int dim,
int spacedim,
typename VectorType>
2209 VectorType &rhs_vector,
2210 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
2305 template <
int dim,
class InVector,
class OutVector,
int spacedim>
2308 const InVector &fe_function,
2310 OutVector &difference,
2314 const double exponent = 2.);
2320 template <
int dim,
class InVector,
class OutVector,
int spacedim>
2322 const InVector &fe_function,
2324 OutVector &difference,
2328 const double exponent = 2.);
2333 template <
int dim,
class InVector,
class OutVector,
int spacedim>
2336 const InVector &fe_function,
2338 OutVector &difference,
2342 const double exponent = 2.);
2348 template <
int dim,
class InVector,
class OutVector,
int spacedim>
2350 const InVector &fe_function,
2352 OutVector &difference,
2356 const double exponent = 2.);
2383 template <
int dim,
int spacedim,
class InVector>
2385 const InVector &cellwise_error,
2387 const double exponent = 2.);
2401 template <
int dim,
typename VectorType,
int spacedim>
2404 const VectorType &fe_function,
2421 template <
int dim,
typename VectorType,
int spacedim>
2425 const VectorType &fe_function,
2452 template <
int dim,
typename VectorType,
int spacedim>
2455 const VectorType &fe_function,
2476 template <
int dim,
typename VectorType,
int spacedim>
2479 const VectorType &fe_function,
2509 template <
int dim,
typename VectorType,
int spacedim>
2510 typename VectorType::value_type
2512 const VectorType &fe_function,
2532 template <
int dim,
typename VectorType,
int spacedim>
2533 typename VectorType::value_type
2535 const VectorType &fe_function,
2560 template <
int dim,
typename VectorType,
int spacedim>
2564 const VectorType &fe_function,
2585 template <
int dim,
typename VectorType,
int spacedim>
2589 const VectorType &fe_function,
2615 template <
int dim,
typename VectorType,
int spacedim>
2616 typename VectorType::value_type
2619 const VectorType &fe_function,
2639 template <
int dim,
typename VectorType,
int spacedim>
2640 typename VectorType::value_type
2643 const VectorType &fe_function,
2667 template <
int dim,
typename VectorType,
int spacedim>
2670 const VectorType &fe_function,
2690 template <
int dim,
typename VectorType,
int spacedim>
2693 const VectorType &fe_function,
2718 template <
int dim,
typename VectorType,
int spacedim>
2721 const VectorType &fe_function,
2740 template <
int dim,
typename VectorType,
int spacedim>
2743 const VectorType &fe_function,
2767 template <
int dim,
typename VectorType,
int spacedim>
2771 const VectorType &fe_function,
2791 template <
int dim,
typename VectorType,
int spacedim>
2795 const VectorType &fe_function,
2820 template <
int dim,
typename VectorType,
int spacedim>
2824 const VectorType &fe_function,
2843 template <
int dim,
typename VectorType,
int spacedim>
2847 const VectorType &fe_function,
2905 template <
typename VectorType>
2907 const std::vector<bool> &p_select = std::vector<bool>());
2933 template <
int dim,
typename VectorType,
int spacedim>
2934 typename VectorType::value_type
2938 const VectorType &v,
2939 const unsigned int component);
2945 template <
int dim,
typename VectorType,
int spacedim>
2946 typename VectorType::value_type
2949 const VectorType &v,
2950 const unsigned int component);
2982 template <
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType,
2983 typename VectorType>
2994 "The given point is inside a cell of a " 2995 "parallel::distributed::Triangulation that is not " 2996 "locally owned by this processor.");
3000 DEAL_II_NAMESPACE_CLOSE
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)
void project_boundary_values_curl_conforming(const 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 Mapping< dim > &mapping=StaticMappingQ1< dim >::mapping)
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)
ActiveSelector::active_cell_iterator active_cell_iterator
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 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)
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcPointNotAvailableHere()
std::map< types::boundary_id, const Function< dim, Number > * > type
void project_boundary_values_curl_conforming_l2(const 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 Mapping< dim > &mapping=StaticMappingQ1< dim >::mapping)
void project_boundary_values_div_conforming(const 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 Mapping< dim > &mapping=StaticMappingQ1< dim >::mapping)