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/fe/mapping_q.h> 26 #include <deal.II/hp/mapping_collection.h> 32 DEAL_II_NAMESPACE_OPEN
34 template <
int dim,
typename Number>
class Function;
35 template <
int dim,
typename Number>
struct FunctionMap;
37 template <
int dim>
class QGauss;
39 template <
typename number>
class Vector;
41 template <
int dim,
int spacedim>
class Mapping;
42 template <
int dim,
int spacedim>
class DoFHandler;
46 template <
int dim,
int spacedim>
class DoFHandler;
47 template <
int dim,
int spacedim>
class MappingCollection;
48 template <
int dim>
class QCollection;
403 template <
typename VectorType,
int dim,
int spacedim,
template <
int,
int>
class DoFHandlerType>
405 const DoFHandlerType<dim,spacedim> &dof,
413 template <
typename VectorType,
typename DoFHandlerType>
414 void interpolate (
const DoFHandlerType &dof,
434 template <
int dim,
class InVector,
class OutVector,
int spacedim>
438 const InVector &data_1,
487 template <
typename VectorType,
typename DoFHandlerType>
491 const DoFHandlerType &dof_handler,
520 template <
int dim,
int spacedim,
521 template <
int,
int>
class DoFHandlerType,
525 const VectorType &u1,
526 const DoFHandlerType<dim, spacedim> &dof2,
542 template <
int dim,
int spacedim,
543 template <
int,
int>
class DoFHandlerType,
547 const VectorType &u1,
548 const DoFHandlerType<dim, spacedim> &dof2,
560 template <
int dim,
int spacedim,
561 template <
int,
int>
class DoFHandlerType,
565 (
const InterGridMap<DoFHandlerType<dim, spacedim> > &intergridmap,
566 const VectorType &u1,
590 template <
int dim,
typename VectorType,
int spacedim>
597 const bool enforce_zero_boundary =
false,
601 const bool project_to_boundary_first =
false);
607 template <
int dim,
typename VectorType,
int spacedim>
613 const bool enforce_zero_boundary =
false,
617 const bool project_to_boundary_first =
false);
623 template <
int dim,
typename VectorType,
int spacedim>
630 const bool enforce_zero_boundary =
false,
634 const bool project_to_boundary_first =
false);
640 template <
int dim,
typename VectorType,
int spacedim>
646 const bool enforce_zero_boundary =
false,
650 const bool project_to_boundary_first =
false);
701 template <
typename DoFHandlerType>
705 const DoFHandlerType &dof,
707 std::map<types::global_dof_index,double> &boundary_values,
714 template <
int dim,
int spacedim>
720 std::map<types::global_dof_index,double> &boundary_values,
732 template <
typename DoFHandlerType>
736 const DoFHandlerType &dof,
739 std::map<types::global_dof_index,double> &boundary_values,
751 template <
typename DoFHandlerType>
754 (
const DoFHandlerType &dof,
757 std::map<types::global_dof_index,double> &boundary_values,
767 template <
typename DoFHandlerType>
770 (
const DoFHandlerType &dof,
772 std::map<types::global_dof_index,double> &boundary_values,
837 template <
typename DoFHandlerType>
841 const DoFHandlerType &dof,
857 template <
typename DoFHandlerType>
861 const DoFHandlerType &dof,
878 template <
typename DoFHandlerType>
881 (
const DoFHandlerType &dof,
896 template <
typename DoFHandlerType>
899 (
const DoFHandlerType &dof,
955 template <
int dim,
int spacedim>
960 std::map<types::global_dof_index,double> &boundary_values,
961 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
967 template <
int dim,
int spacedim>
971 std::map<types::global_dof_index,double> &boundary_values,
972 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
977 template <
int dim,
int spacedim>
982 std::map<types::global_dof_index,double> &boundary_values,
983 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
989 template <
int dim,
int spacedim>
993 std::map<types::global_dof_index,double> &boundary_values,
994 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1034 template <
int dim,
int spacedim>
1040 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1048 template <
int dim,
int spacedim>
1053 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
1112 const unsigned int first_vector_component,
1128 const unsigned int first_vector_component,
1231 const unsigned int first_vector_component,
1246 const unsigned int first_vector_component,
1301 const unsigned int first_vector_component,
1317 const unsigned int first_vector_component,
1530 template <
int dim,
template <
int,
int>
class DoFHandlerType,
int spacedim>
1533 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1534 const unsigned int first_vector_component,
1535 const std::set<types::boundary_id> &boundary_ids,
1548 template <
int dim,
template <
int,
int>
class DoFHandlerType,
int spacedim>
1551 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1552 const unsigned int first_vector_component,
1553 const std::set<types::boundary_id> &boundary_ids,
1571 template <
int dim,
template <
int,
int>
class DoFHandlerType,
int spacedim>
1574 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1575 const unsigned int first_vector_component,
1576 const std::set<types::boundary_id> &boundary_ids,
1589 template <
int dim,
template <
int,
int>
class DoFHandlerType,
int spacedim>
1592 (
const DoFHandlerType<dim,spacedim> &dof_handler,
1593 const unsigned int first_vector_component,
1594 const std::set<types::boundary_id> &boundary_ids,
1611 template <
int dim,
int spacedim>
1622 template <
int dim,
int spacedim>
1631 template <
int dim,
int spacedim>
1641 template <
int dim,
int spacedim>
1655 template <
int dim,
int spacedim>
1665 template <
int dim,
int spacedim>
1673 template <
int dim,
int spacedim>
1685 template <
int dim,
int spacedim>
1707 template <
int dim,
int spacedim>
1718 template <
int dim,
int spacedim>
1727 template <
int dim,
int spacedim>
1740 template <
int dim,
int spacedim>
1755 template <
int dim,
int spacedim>
1761 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1770 template <
int dim,
int spacedim>
1775 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1783 template <
int dim,
int spacedim>
1789 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1799 template <
int dim,
int spacedim>
1804 const std::set<types::boundary_id> &boundary_ids = std::set<types::boundary_id>());
1924 template <
int dim,
class InVector,
class OutVector,
int spacedim>
1927 const InVector &fe_function,
1929 OutVector &difference,
1933 const double exponent = 2.);
1939 template <
int dim,
class InVector,
class OutVector,
int spacedim>
1941 const InVector &fe_function,
1943 OutVector &difference,
1947 const double exponent = 2.);
1952 template <
int dim,
class InVector,
class OutVector,
int spacedim>
1955 const InVector &fe_function,
1957 OutVector &difference,
1961 const double exponent = 2.);
1967 template <
int dim,
class InVector,
class OutVector,
int spacedim>
1969 const InVector &fe_function,
1971 OutVector &difference,
1975 const double exponent = 2.);
1989 template <
int dim,
typename VectorType,
int spacedim>
1991 const VectorType &fe_function,
2008 template <
int dim,
typename VectorType,
int spacedim>
2011 const VectorType &fe_function,
2027 template <
int dim,
typename VectorType,
int spacedim>
2030 const VectorType &fe_function,
2040 template <
int dim,
typename VectorType,
int spacedim>
2043 const VectorType &fe_function,
2062 template <
int dim,
typename VectorType,
int spacedim>
2065 const VectorType &fe_function,
2074 template <
int dim,
typename VectorType,
int spacedim>
2077 const VectorType &fe_function,
2091 template <
int dim,
typename VectorType,
int spacedim>
2095 const VectorType &fe_function,
2105 template <
int dim,
typename VectorType,
int spacedim>
2109 const VectorType &fe_function,
2124 template <
int dim,
typename VectorType,
int spacedim>
2128 const VectorType &fe_function,
2137 template <
int dim,
typename VectorType,
int spacedim>
2141 const VectorType &fe_function,
2155 template <
int dim,
typename VectorType,
int spacedim>
2158 const VectorType &fe_function,
2168 template <
int dim,
typename VectorType,
int spacedim>
2171 const VectorType &fe_function,
2186 template <
int dim,
typename VectorType,
int spacedim>
2189 const VectorType &fe_function,
2198 template <
int dim,
typename VectorType,
int spacedim>
2201 const VectorType &fe_function,
2215 template <
int dim,
typename VectorType,
int spacedim>
2219 const VectorType &fe_function,
2229 template <
int dim,
typename VectorType,
int spacedim>
2233 const VectorType &fe_function,
2248 template <
int dim,
typename VectorType,
int spacedim>
2252 const VectorType &fe_function,
2261 template <
int dim,
typename VectorType,
int spacedim>
2265 const VectorType &fe_function,
2320 template <
typename VectorType>
2322 const std::vector<bool> &p_select = std::vector<bool>());
2348 template <
int dim,
typename VectorType,
int spacedim>
2352 const VectorType &v,
2353 const unsigned int component);
2359 template <
int dim,
typename VectorType,
int spacedim>
2362 const VectorType &v,
2363 const unsigned int component);
2395 template<
typename DoFHandlerType,
typename VectorType>
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.");
2415 "The given point is inside a cell of a " 2416 "parallel::distributed::Triangulation that is not " 2417 "locally owned by this processor.");
2421 DEAL_II_NAMESPACE_CLOSE
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
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 >())
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 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)
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
std::map< types::boundary_id, const Function< dim, Number > * > type
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