Reference documentation for deal.II version 9.0.0
|
#include <deal.II/matrix_free/operators.h>
Public Member Functions | |
CellwiseInverseMassMatrix (const FEEvaluationBase< dim, n_components, Number > &fe_eval) | |
void | apply (const AlignedVector< VectorizedArray< Number > > &inverse_coefficient, const unsigned int n_actual_components, const VectorizedArray< Number > *in_array, VectorizedArray< Number > *out_array) const |
void | fill_inverse_JxW_values (AlignedVector< VectorizedArray< Number > > &inverse_jxw) const |
Private Attributes | |
const FEEvaluationBase< dim, n_components, Number > & | fe_eval |
AlignedVector< VectorizedArray< Number > > | inverse_shape |
This class implements the operation of the action of the inverse of a mass matrix on an element for the special case of an evaluation object with as many quadrature points as there are cell degrees of freedom. It uses algorithms from FEEvaluation and produces the exact mass matrix for DGQ elements. This algorithm uses tensor products of inverse 1D shape matrices over quadrature points, so the inverse operation is exactly as expensive as applying the forward operator on each cell. Of course, for continuous finite elements this operation does not produce the inverse of a mass operation as the coupling between the elements cannot be considered by this operation.
The equation may contain variable coefficients, so the user is required to provide an array for the inverse of the local coefficient (this class provide a helper method 'fill_inverse_JxW_values' to get the inverse of a constant-coefficient operator).
Definition at line 589 of file operators.h.
|
inline |
Constructor. Initializes the shape information from the ShapeInfo field in the class FEEval.
Definition at line 822 of file operators.h.
|
inline |
Applies the inverse mass matrix operation on an input array. It is assumed that the passed input and output arrays are of correct size, namely FEEval::dofs_per_cell * n_components long. The inverse of the local coefficient (also containing the inverse JxW values) must be passed as first argument. Passing more than one component in the coefficient is allowed.
Definition at line 881 of file operators.h.
|
inline |
Fills the given array with the inverse of the JxW values, i.e., a mass matrix with coefficient 1. Non-unit coefficients must be multiplied (in inverse form) to this array.
Definition at line 852 of file operators.h.
|
private |
A reference to the FEEvaluation object for getting the JxW_values.
Definition at line 622 of file operators.h.
|
private |
A structure to hold inverse shape functions
Definition at line 627 of file operators.h.