Reference documentation for deal.II version Git e512aac53a 2019-11-15 17:29:53 -0500
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Types | Public Member Functions | Private Member Functions | List of all members
MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType, VectorizedArrayType > 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, VectorizedArrayType >:
[legend]

Public Types

using value_type = typename Base< dim, VectorType, VectorizedArrayType >::value_type
 
using size_type = typename Base< dim, VectorType, VectorizedArrayType >::size_type
 
- Public Types inherited from MatrixFreeOperators::Base< dim, VectorType, VectorizedArrayType >
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, VectorizedArrayType >
 Base ()
 
virtual ~Base () override=default
 
virtual void clear ()
 
void initialize (std::shared_ptr< const MatrixFree< dim, value_type, VectorizedArrayType >> 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, VectorizedArrayType >> 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, VectorizedArrayType >> 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, VectorizedArrayType > > 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 (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") 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, VectorizedArrayType > &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 ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Protected Member Functions inherited from MatrixFreeOperators::Base< dim, VectorType, VectorizedArrayType >
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, VectorizedArrayType >
std::shared_ptr< const MatrixFree< dim, value_type, VectorizedArrayType > > 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>, typename VectorizedArrayType = VectorizedArray<typename VectorType::value_type>>
class MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType, VectorizedArrayType >

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 735 of file operators.h.

Member Typedef Documentation

◆ value_type

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

Number alias.

Definition at line 742 of file operators.h.

◆ size_type

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

size_type needed for preconditioner classes.

Definition at line 748 of file operators.h.

Constructor & Destructor Documentation

◆ MassOperator()

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

Constructor.

Definition at line 1750 of file operators.h.

Member Function Documentation

◆ compute_diagonal()

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

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

Implements MatrixFreeOperators::Base< dim, VectorType, VectorizedArrayType >.

Definition at line 1768 of file operators.h.

◆ apply_add()

template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename VectorType , typename VectorizedArrayType >
void MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType, VectorizedArrayType >::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, VectorizedArrayType >.

Definition at line 1811 of file operators.h.

◆ local_apply_cell()

template<int dim, int fe_degree, int n_q_points_1d = fe_degree + 1, int n_components = 1, typename VectorType = LinearAlgebra::distributed::Vector<double>, typename VectorizedArrayType = VectorizedArray<typename VectorType::value_type>>
void MatrixFreeOperators::MassOperator< dim, fe_degree, n_q_points_1d, n_components, VectorType, VectorizedArrayType >::local_apply_cell ( const MatrixFree< dim, value_type, VectorizedArrayType > &  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 1833 of file operators.h.


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