Reference documentation for deal.II version 9.1.0-pre
Public Types | Public Member Functions | Private Member Functions | List of all members
MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType > Class Template Reference

#include <deal.II/matrix_free/operators.h>

Inheritance diagram for MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >:
[legend]

Public Types

using value_type = typename Base< dim, VectorType >::value_type
 
using size_type = typename Base< dim, VectorType >::size_type
 
- Public Types inherited from MatrixFreeOperators::Base< dim, VectorType >
using value_type = typename VectorType::value_type
 
using size_type = typename VectorType::size_type
 

Public Member Functions

 MassOperator ()
 
virtual void compute_diagonal () override
 
- Public Member Functions inherited from MatrixFreeOperators::Base< dim, VectorType >
 Base ()
 
virtual ~Base () override=default
 
virtual void clear ()
 
void initialize (std::shared_ptr< const MatrixFree< dim, value_type >> data, const std::vector< unsigned int > &selected_row_blocks=std::vector< unsigned int >(), const std::vector< unsigned int > &selected_column_blocks=std::vector< unsigned int >())
 
void initialize (std::shared_ptr< const MatrixFree< dim, value_type >> data, const MGConstrainedDoFs &mg_constrained_dofs, const unsigned int level, const std::vector< unsigned int > &selected_row_blocks=std::vector< unsigned int >())
 
void initialize (std::shared_ptr< const MatrixFree< dim, value_type >> data_, const std::vector< MGConstrainedDoFs > &mg_constrained_dofs, const unsigned int level, const std::vector< unsigned int > &selected_row_blocks=std::vector< unsigned int >())
 
size_type m () const
 
size_type n () const
 
void vmult_interface_down (VectorType &dst, const VectorType &src) const
 
void vmult_interface_up (VectorType &dst, const VectorType &src) const
 
void vmult (VectorType &dst, const VectorType &src) const
 
void Tvmult (VectorType &dst, const VectorType &src) const
 
void vmult_add (VectorType &dst, const VectorType &src) const
 
void Tvmult_add (VectorType &dst, const VectorType &src) const
 
value_type el (const unsigned int row, const unsigned int col) const
 
virtual std::size_t memory_consumption () const
 
void initialize_dof_vector (VectorType &vec) const
 
std::shared_ptr< const MatrixFree< dim, value_type > > get_matrix_free () const
 
const std::shared_ptr< DiagonalMatrix< VectorType > > & get_matrix_diagonal_inverse () const
 
const std::shared_ptr< DiagonalMatrix< VectorType > > & get_matrix_diagonal () const
 
void precondition_Jacobi (VectorType &dst, const VectorType &src, const value_type omega) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (const char *identifier=nullptr) const
 
void unsubscribe (const char *identifier=nullptr) const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

virtual void apply_add (VectorType &dst, const VectorType &src) const override
 
void local_apply_cell (const MatrixFree< dim, value_type > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static::ExceptionBase & ExcInUse (int arg1, std::string arg2, std::string arg3)
 
static::ExceptionBase & ExcNoSubscriber (std::string arg1, std::string arg2)
 
- Protected Member Functions inherited from MatrixFreeOperators::Base< dim, VectorType >
void preprocess_constraints (VectorType &dst, const VectorType &src) const
 
void postprocess_constraints (VectorType &dst, const VectorType &src) const
 
void set_constrained_entries_to_one (VectorType &dst) const
 
virtual void Tapply_add (VectorType &dst, const VectorType &src) const
 
- Protected Attributes inherited from MatrixFreeOperators::Base< dim, VectorType >
std::shared_ptr< const MatrixFree< dim, value_type > > data
 
std::shared_ptr< DiagonalMatrix< VectorType > > diagonal_entries
 
std::shared_ptr< DiagonalMatrix< VectorType > > inverse_diagonal_entries
 
std::vector< unsigned int > selected_rows
 
std::vector< unsigned int > selected_columns
 

Detailed Description

template<int dim, int fe_degree, int n_q_points_1d = fe_degree + 1, int n_components = 1, typename VectorType = LinearAlgebra::distributed::Vector<double>>
class MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >

This class implements the operation of the action of a mass matrix.

Note that this class only supports the non-blocked vector variant of the Base operator because only a single FEEvaluation object is used in the apply function.

Author
Daniel Arndt, 2016

Definition at line 676 of file operators.h.

Member Typedef Documentation

template<int dim, int fe_degree, int n_q_points_1d = fe_degree + 1, int n_components = 1, typename VectorType = LinearAlgebra::distributed::Vector<double>>
using MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::value_type = typename Base<dim, VectorType>::value_type

Number alias.

Definition at line 682 of file operators.h.

template<int dim, int fe_degree, int n_q_points_1d = fe_degree + 1, int n_components = 1, typename VectorType = LinearAlgebra::distributed::Vector<double>>
using MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::size_type = typename Base<dim, VectorType>::size_type

size_type needed for preconditioner classes.

Definition at line 687 of file operators.h.

Constructor & Destructor Documentation

template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename VectorType >
MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::MassOperator ( )

Constructor.

Definition at line 1650 of file operators.h.

Member Function Documentation

template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename VectorType >
void MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::compute_diagonal ( )
overridevirtual

For preconditioning, we store a lumped mass matrix at the diagonal entries.

Implements MatrixFreeOperators::Base< dim, VectorType >.

Definition at line 1663 of file operators.h.

template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename VectorType >
void MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::apply_add ( VectorType &  dst,
const VectorType &  src 
) const
overrideprivatevirtual

Applies the mass matrix operation on an input vector. It is assumed that the passed input and output vector are correctly initialized using initialize_dof_vector().

Implements MatrixFreeOperators::Base< dim, VectorType >.

Definition at line 1699 of file operators.h.

template<int dim, int fe_degree, int n_q_points_1d = fe_degree + 1, int n_components = 1, typename VectorType = LinearAlgebra::distributed::Vector<double>>
void MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType >::local_apply_cell ( const MatrixFree< dim, value_type > &  data,
VectorType &  dst,
const VectorType &  src,
const std::pair< unsigned int, unsigned int > &  cell_range 
) const
private

For this operator, there is just a cell contribution.

Definition at line 1716 of file operators.h.


The documentation for this class was generated from the following file: