16 #ifndef dealii__matrix_tools_h 17 #define dealii__matrix_tools_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/function.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/thread_management.h> 24 #include <deal.II/lac/constraint_matrix.h> 25 #include <deal.II/dofs/function_map.h> 29 #ifdef DEAL_II_WITH_PETSC 30 # include <petscsys.h> 33 DEAL_II_NAMESPACE_OPEN
40 template<
typename number>
class Vector;
47 template <
int dim,
int spacedim>
class Mapping;
48 template <
int dim,
int spacedim>
class DoFHandler;
52 template <
int>
class QCollection;
53 template <
int,
int>
class MappingCollection;
58 #ifdef DEAL_II_WITH_PETSC 73 #ifdef DEAL_II_WITH_TRILINOS 239 template <
int dim,
int spacedim,
typename number>
251 template <
int dim,
int spacedim,
typename number>
274 template <
int dim,
int spacedim,
typename number>
288 template <
int dim,
int spacedim,
typename number>
300 template <
int dim,
int spacedim,
typename number>
311 template <
int dim,
int spacedim,
typename number>
321 template <
int dim,
int spacedim,
typename number>
334 template <
int dim,
int spacedim,
typename number>
366 template <
int dim,
int spacedim,
typename number>
373 std::vector<types::global_dof_index> &dof_to_boundary_mapping,
375 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
382 template <
int dim,
int spacedim,
typename number>
388 std::vector<types::global_dof_index> &dof_to_boundary_mapping,
390 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
395 template <
int dim,
int spacedim,
typename number>
402 std::vector<types::global_dof_index> &dof_to_boundary_mapping,
404 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
409 template <
int dim,
int spacedim,
typename number>
415 std::vector<types::global_dof_index> &dof_to_boundary_mapping,
417 std::vector<unsigned int> component_mapping = std::vector<unsigned int>());
435 template <
int dim,
int spacedim>
447 template <
int dim,
int spacedim>
469 template <
int dim,
int spacedim>
483 template <
int dim,
int spacedim>
496 template <
int dim,
int spacedim>
508 template <
int dim,
int spacedim>
519 template <
int dim,
int spacedim>
533 template <
int dim,
int spacedim>
546 "You are providing either a right hand side function or a " 547 "coefficient with a number of vector components that is " 548 "inconsistent with the rest of the arguments. If you do " 549 "provide a coefficient or right hand side function, then " 550 "it either needs to have as many components as the finite " 551 "element in use, or only a single vector component. In " 552 "the latter case, the same value will be taken for " 553 "each vector component of the finite element.");
762 template <
typename number>
768 const bool eliminate_columns =
true);
775 template <
typename number>
781 const bool eliminate_columns =
true);
783 #ifdef DEAL_II_WITH_PETSC 808 const bool eliminate_columns =
true);
834 const bool eliminate_columns =
true);
844 const bool eliminate_columns =
true);
848 #ifdef DEAL_II_WITH_TRILINOS 871 const bool eliminate_columns =
true);
882 const bool eliminate_columns =
true);
908 const bool eliminate_columns =
true);
919 const bool eliminate_columns =
true);
940 template <
typename number>
943 const std::vector<types::global_dof_index> &local_dof_indices,
946 const bool eliminate_columns);
952 "You are providing a matrix whose subdivision into " 953 "blocks in either row or column direction does not use " 954 "the same blocks sizes as the solution vector or " 955 "right hand side vectors, respectively.");
960 DEAL_II_NAMESPACE_CLOSE
void create_boundary_mass_matrix(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim-1 > &q, SparseMatrix< number > &matrix, const std::map< types::boundary_id, const Function< spacedim, number > *> &boundary_functions, Vector< number > &rhs_vector, std::vector< types::global_dof_index > &dof_to_boundary_mapping, const Function< spacedim, number > *const weight=0, std::vector< unsigned int > component_mapping=std::vector< unsigned int >())
void create_mass_matrix(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim > &q, SparseMatrix< number > &matrix, const Function< spacedim, number > *const a=0, const ConstraintMatrix &constraints=ConstraintMatrix())
void create_laplace_matrix(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim > &q, SparseMatrix< double > &matrix, const Function< spacedim > *const a=0, const ConstraintMatrix &constraints=ConstraintMatrix())
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcComponentMismatch()
static ::ExceptionBase & ExcBlocksDontMatch()
unsigned char boundary_id