![]() |
Reference documentation for deal.II version 9.1.0-pre
|
#include <deal.II/lac/tensor_product_matrix.h>
Public Member Functions | |
TensorProductMatrixSymmetricSum ()=default | |
TensorProductMatrixSymmetricSum (const std::array< Table< 2, VectorizedArray< Number >>, dim > &mass_matrix, const std::array< Table< 2, VectorizedArray< Number >>, dim > &derivative_matrix) | |
TensorProductMatrixSymmetricSum (const Table< 2, VectorizedArray< Number >> &mass_matrix, const Table< 2, VectorizedArray< Number >> &derivative_matrix) | |
void | reinit (const std::array< Table< 2, VectorizedArray< Number >>, dim > &mass_matrix, const std::array< Table< 2, VectorizedArray< Number >>, dim > &derivative_matrix) |
void | reinit (const Table< 2, VectorizedArray< Number >> &mass_matrix, const Table< 2, VectorizedArray< Number >> &derivative_matrix) |
![]() | |
unsigned int | m () const |
unsigned int | n () const |
void | vmult (const ArrayView< VectorizedArray< Number > > &dst, const ArrayView< const VectorizedArray< Number > > &src) const |
void | apply_inverse (const ArrayView< VectorizedArray< Number > > &dst, const ArrayView< const VectorizedArray< Number > > &src) const |
Private Member Functions | |
template<typename MatrixArray > | |
void | reinit_impl (MatrixArray &&mass_matrix, MatrixArray &&derivative_matrix) |
Additional Inherited Members | |
![]() | |
TensorProductMatrixSymmetricSumBase ()=default | |
![]() | |
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 319 of file tensor_product_matrix.h.
|
default |
Default constructor.
TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, size >::TensorProductMatrixSymmetricSum | ( | const std::array< Table< 2, VectorizedArray< Number >>, dim > & | mass_matrix, |
const std::array< Table< 2, VectorizedArray< Number >>, dim > & | derivative_matrix | ||
) |
TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, size >::TensorProductMatrixSymmetricSum | ( | const Table< 2, VectorizedArray< Number >> & | mass_matrix, |
const Table< 2, VectorizedArray< Number >> & | derivative_matrix | ||
) |
void TensorProductMatrixSymmetricSum< dim, VectorizedArray< Number >, size >::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 >, size >::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. |