![]() |
deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
|
Namespaces | |
| namespace | internal |
Classes | |
| class | ElementActivationAndDeactivationMatrixFree |
Functions | |
| template<int dim, typename AdditionalData > | |
| void | categorize_by_boundary_ids (const Triangulation< dim > &tria, AdditionalData &additional_data) |
| template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename VectorType > | |
| void | compute_diagonal (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, VectorType &diagonal_global, const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &cell_operation, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0, const unsigned int first_vector_component=0) |
| template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename MemorySpace , typename QuadOperation > | |
| void | compute_diagonal (const Portable::MatrixFree< dim, Number > &matrix_free, LinearAlgebra::distributed::Vector< Number, MemorySpace > &diagonal_global, const QuadOperation &quad_operation, EvaluationFlags::EvaluationFlags evaluation_flags, EvaluationFlags::EvaluationFlags integration_flags, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0, const unsigned int first_vector_component=0) |
| template<typename CLASS , int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename VectorType > | |
| void | compute_diagonal (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, VectorType &diagonal_global, void(CLASS::*cell_operation)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, const CLASS *owning_class, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0, const unsigned int first_vector_component=0) |
| template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename VectorType > | |
| void | compute_diagonal (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, VectorType &diagonal_global, const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &cell_operation, const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &face_operation, const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &boundary_operation, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0, const unsigned int first_vector_component=0) |
| template<typename CLASS , int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename VectorType > | |
| void | compute_diagonal (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, VectorType &diagonal_global, void(CLASS::*cell_operation)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, void(CLASS::*face_operation)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, void(CLASS::*boundary_operation)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, const CLASS *owning_class, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0, const unsigned int first_vector_component=0) |
| template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename MatrixType > | |
| void | compute_matrix (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, const AffineConstraints< Number > &constraints, MatrixType &matrix, const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &cell_operation, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0) |
| template<typename CLASS , int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename MatrixType > | |
| void | compute_matrix (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, const AffineConstraints< Number > &constraints, MatrixType &matrix, void(CLASS::*cell_operation)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, const CLASS *owning_class, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0) |
| template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename MatrixType > | |
| void | compute_matrix (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, const AffineConstraints< Number > &constraints, MatrixType &matrix, const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &cell_operation, const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &face_operation, const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> &boundary_operation, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0) |
| template<typename CLASS , int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number , typename VectorizedArrayType , typename MatrixType > | |
| void | compute_matrix (const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free, const AffineConstraints< Number > &constraints, MatrixType &matrix, void(CLASS::*cell_operation)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, void(CLASS::*face_operation)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, void(CLASS::*boundary_operation)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const, const CLASS *owning_class, const unsigned int dof_handler_index=0, const unsigned int quadrature_index=0, const unsigned int first_selected_component=0) |
A namespace for utility functions in the context of matrix-free operator evaluation.
| void MatrixFreeTools::categorize_by_boundary_ids | ( | const Triangulation< dim > & | tria, |
| AdditionalData & | additional_data | ||
| ) |
Modify additional_data so that cells are categorized according to their boundary IDs, making face integrals in the case of cell-centric loop simpler.
| void MatrixFreeTools::compute_diagonal | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| VectorType & | diagonal_global, | ||
| const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | cell_operation, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0, |
||
| const unsigned int | first_vector_component = 0 |
||
| ) |
Compute the diagonal of a linear operator (diagonal_global), given matrix_free and the local cell integral operation cell_operation. The vector is initialized to the right size in the function.
The parameters dof_handler_index, quadrature_index, and first_selected_component are passed to the constructor of the FEEvaluation that is internally set up.
The parameter first_vector_component is used to select the right starting block in a block vector.
| void MatrixFreeTools::compute_diagonal | ( | const Portable::MatrixFree< dim, Number > & | matrix_free, |
| LinearAlgebra::distributed::Vector< Number, MemorySpace > & | diagonal_global, | ||
| const QuadOperation & | quad_operation, | ||
| EvaluationFlags::EvaluationFlags | evaluation_flags, | ||
| EvaluationFlags::EvaluationFlags | integration_flags, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0, |
||
| const unsigned int | first_vector_component = 0 |
||
| ) |
Same as above but for Portable::MatrixFree.
| void MatrixFreeTools::compute_diagonal | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| VectorType & | diagonal_global, | ||
| void(CLASS::*)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | cell_operation, | ||
| const CLASS * | owning_class, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0, |
||
| const unsigned int | first_vector_component = 0 |
||
| ) |
Same as above but with a class and a function pointer.
| void MatrixFreeTools::compute_diagonal | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| VectorType & | diagonal_global, | ||
| const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | cell_operation, | ||
| const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | face_operation, | ||
| const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | boundary_operation, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0, |
||
| const unsigned int | first_vector_component = 0 |
||
| ) |
Compute the diagonal of a linear operator (diagonal_global), given matrix_free and the local cell integral operation cell_operation, interior face integral operation face_operation, and boundary face integral operation boundary_operation. The vector is initialized to the right size in the function.
The parameters dof_handler_index, quadrature_index, and first_selected_component are passed to the constructor of the FEEvaluation that is internally set up.
| void MatrixFreeTools::compute_diagonal | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| VectorType & | diagonal_global, | ||
| void(CLASS::*)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | cell_operation, | ||
| void(CLASS::*)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | face_operation, | ||
| void(CLASS::*)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | boundary_operation, | ||
| const CLASS * | owning_class, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0, |
||
| const unsigned int | first_vector_component = 0 |
||
| ) |
Same as above but with a class and a function pointer.
| void MatrixFreeTools::compute_matrix | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| const AffineConstraints< Number > & | constraints, | ||
| MatrixType & | matrix, | ||
| const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | cell_operation, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0 |
||
| ) |
Compute the matrix representation of a linear operator (matrix), given matrix_free and the local cell integral operation cell_operation. Constrained entries on the diagonal are set to one.
The parameters dof_handler_index, quadrature_index, and first_selected_component are passed to the constructor of the FEEvaluation that is internally set up.
| void MatrixFreeTools::compute_matrix | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| const AffineConstraints< Number > & | constraints, | ||
| MatrixType & | matrix, | ||
| void(CLASS::*)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | cell_operation, | ||
| const CLASS * | owning_class, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0 |
||
| ) |
Same as above but with a class and a function pointer.
| void MatrixFreeTools::compute_matrix | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| const AffineConstraints< Number > & | constraints, | ||
| MatrixType & | matrix, | ||
| const std::function< void(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | cell_operation, | ||
| const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | face_operation, | ||
| const std::function< void(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &)> & | boundary_operation, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0 |
||
| ) |
Compute the matrix representation of a linear operator (matrix), given matrix_free and the local cell integral operation cell_operation, interior face integral operation face_operation, and boundary face integral operation boundary_operation.
The parameters dof_handler_index, quadrature_index, and first_selected_component are passed to the constructor of the FEEvaluation that is internally set up.
| void MatrixFreeTools::compute_matrix | ( | const MatrixFree< dim, Number, VectorizedArrayType > & | matrix_free, |
| const AffineConstraints< Number > & | constraints, | ||
| MatrixType & | matrix, | ||
| void(CLASS::*)(FEEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | cell_operation, | ||
| void(CLASS::*)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &, FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | face_operation, | ||
| void(CLASS::*)(FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components, Number, VectorizedArrayType > &) const | boundary_operation, | ||
| const CLASS * | owning_class, | ||
| const unsigned int | dof_handler_index = 0, |
||
| const unsigned int | quadrature_index = 0, |
||
| const unsigned int | first_selected_component = 0 |
||
| ) |
Same as above but with a class and a function pointer.