![]() |
Reference documentation for deal.II version 9.2.0
|
#include <deal.II/lac/tensor_product_matrix.h>
Private Member Functions | |
| template<typename MatrixArray > | |
| void | reinit_impl (MatrixArray &&mass_matrix, MatrixArray &&derivative_matrix) |
Additional Inherited Members | |
Public Types inherited from TensorProductMatrixSymmetricSumBase< dim, VectorizedArray< Number >, n_rows_1d > | |
| using | value_type = VectorizedArray< Number > |
Static Public Attributes inherited from TensorProductMatrixSymmetricSumBase< dim, VectorizedArray< Number >, n_rows_1d > | |
| static constexpr int | n_rows_1d_static |
Protected Member Functions inherited from TensorProductMatrixSymmetricSumBase< dim, VectorizedArray< Number >, n_rows_1d > | |
| TensorProductMatrixSymmetricSumBase ()=default | |
Protected Attributes inherited from TensorProductMatrixSymmetricSumBase< dim, VectorizedArray< Number >, n_rows_1d > | |
| std::array< Table< 2, VectorizedArray< Number > >, dim > | mass_matrix |
| std::array< Table< 2, VectorizedArray< Number > >, dim > | derivative_matrix |
| std::array< AlignedVector< VectorizedArray< Number > >, dim > | eigenvalues |
| std::array< Table< 2, VectorizedArray< Number > >, dim > | eigenvectors |
This is the template specialization for VectorizedArray<Number> being the arithmetic template. For a detailed description see the main documentation of the generic TensorProductMatrixSymmetricSum class.
Definition at line 336 of file tensor_product_matrix.h.
|
default |
Default constructor.
| TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, n_rows_1d >::TensorProductMatrixSymmetricSum | ( | const std::array< Table< 2, VectorizedArray< Number >>, dim > & | mass_matrix, |
| const std::array< Table< 2, VectorizedArray< Number >>, dim > & | derivative_matrix | ||
| ) |
Constructor that is equivalent to the empty constructor and immediately calling reinit(const std::array<Table<2,VectorizedArray<Number> >, dim>&,const std::array<Table<2,VectorizedArray<Number> >, dim>&).
| TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, n_rows_1d >::TensorProductMatrixSymmetricSum | ( | const Table< 2, VectorizedArray< Number >> & | mass_matrix, |
| const Table< 2, VectorizedArray< Number >> & | derivative_matrix | ||
| ) |
Constructor that is equivalent to the empty constructor and immediately calling reinit(const Table<2,VectorizedArray<Number> >&,const Table<2,VectorizedArray<Number> >&).
| void TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, n_rows_1d >::reinit | ( | const std::array< Table< 2, VectorizedArray< Number >>, dim > & | mass_matrix, |
| const std::array< Table< 2, VectorizedArray< Number >>, dim > & | derivative_matrix | ||
| ) |
Initializes the tensor product matrix by copying the arrays of 1D mass matrices mass_matrix and 1D derivative matrices derivative_matrix into its base class counterparts, respectively, and by assembling the regarding generalized eigenvalues and eigenvectors in TensorProductMatrixSymmetricSumBase::eigenvalues and TensorProductMatrixSymmetricSumBase::eigenvectors, respectively. Note that the current implementation requires each \(M_{d}\) to be symmetric and positive definite and every \(A_{d}\) to be symmetric and invertible but not necessarily positive definite.
| void TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, n_rows_1d >::reinit | ( | const Table< 2, VectorizedArray< Number >> & | mass_matrix, |
| const Table< 2, VectorizedArray< Number >> & | derivative_matrix | ||
| ) |
This function is equivalent to the previous reinit() except that we consider the same 1D mass matrix mass_matrix and the same 1D derivative matrix derivative_matrix for each tensor direction.
|
private |
A generic implementation of all reinit() functions based on perfect forwarding, that allows to pass lvalue as well as rvalue arguments.
| MatrixArray | Has to be convertible to the underlying type of TensorProductMatrixSymmetricSumBase::mass_matrix and TensorProductMatrixSymmetricSumBase::derivative_matrix. |