PolyDEAL
 
Loading...
Searching...
No Matches
Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number > Class Template Reference

#include <utils.h>

Inheritance diagram for Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >:
Subscriptor

Public Types

using value_type = number
 
using VectorizedArrayType = VectorizedArray<number>
 
using VectorType = LinearAlgebra::distributed::Vector<number>
 

Public Member Functions

 LaplaceOperatorDG ()
 
void reinit (const Mapping< dim > &mapping, const DoFHandler< dim > &dof_handler, const unsigned int level=numbers::invalid_unsigned_int)
 
void vmult (LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src) const
 
void Tvmult (LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src) const
 
void Tvmult_add (LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src) const
 
void vmult_add (LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src) const
 
types::global_dof_index m () const
 
types::global_dof_index n () const
 
number el (const unsigned int row, const unsigned int col) const
 
void initialize_dof_vector (LinearAlgebra::distributed::Vector< number > &vector) const
 
const DoFHandler< dim > & get_dof_handler () const
 
const Triangulation< dim > & get_triangulation () const
 
const LinearAlgebra::distributed::Vector< number > & get_matrix_diagonal_inverse () const
 
const MatrixFree< dim, number > * get_matrix_free () const
 
const TrilinosWrappers::SparseMatrixget_system_matrix () const
 
void get_system_matrix (TrilinosWrappers::SparseMatrix &mg_matrix) const
 
void rhs (LinearAlgebra::distributed::Vector< number > &b) const
 
void compute_inverse_diagonal ()
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Private Member Functions

void local_apply (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src, const std::pair< unsigned int, unsigned int > &cell_range) const
 
void local_apply_face (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src, const std::pair< unsigned int, unsigned int > &face_range) const
 
void local_apply_boundary (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const LinearAlgebra::distributed::Vector< number > &src, const std::pair< unsigned int, unsigned int > &face_range) const
 
void local_diagonal_cell (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const unsigned int &, const std::pair< unsigned int, unsigned int > &cell_range) const
 
void local_diagonal_face (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const unsigned int &, const std::pair< unsigned int, unsigned int > &face_range) const
 
void local_diagonal_boundary (const MatrixFree< dim, number > &data, LinearAlgebra::distributed::Vector< number > &dst, const unsigned int &, const std::pair< unsigned int, unsigned int > &face_range) const
 

Private Attributes

MatrixFree< dim, number > data
 
LinearAlgebra::distributed::Vector< number > inverse_diagonal_entries
 
int fe_degree
 
TrilinosWrappers::SparseMatrix system_matrix
 
AffineConstraints< number > constraints
 

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)
 

Detailed Description

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
class Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >

Class that implements the action of symmetric interior penalty operator on a vector.

Note
The member function rhs() assume the source term is 1. Different source terms can be defined by suitably changing that function.

Definition at line 365 of file utils.h.

Member Typedef Documentation

◆ value_type

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
using Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::value_type = number

Definition at line 368 of file utils.h.

◆ VectorizedArrayType

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
using Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::VectorizedArrayType = VectorizedArray<number>

Definition at line 369 of file utils.h.

◆ VectorType

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
using Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::VectorType = LinearAlgebra::distributed::Vector<number>

Definition at line 370 of file utils.h.

Constructor & Destructor Documentation

◆ LaplaceOperatorDG()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::LaplaceOperatorDG ( )
inline

Definition at line 373 of file utils.h.

Member Function Documentation

◆ compute_inverse_diagonal()

◆ el()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
number Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::el ( const unsigned int row,
const unsigned int col ) const
inline

Definition at line 465 of file utils.h.

References AssertThrow.

◆ get_dof_handler()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
const DoFHandler< dim > & Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_dof_handler ( ) const
inline

◆ get_matrix_diagonal_inverse()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
const LinearAlgebra::distributed::Vector< number > & Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_matrix_diagonal_inverse ( ) const
inline

◆ get_matrix_free()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
const MatrixFree< dim, number > * Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_matrix_free ( ) const
inline

◆ get_system_matrix() [1/2]

◆ get_system_matrix() [2/2]

◆ get_triangulation()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
const Triangulation< dim > & Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_triangulation ( ) const
inline

◆ initialize_dof_vector()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::initialize_dof_vector ( LinearAlgebra::distributed::Vector< number > & vector) const
inline

◆ local_apply()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src,
const std::pair< unsigned int, unsigned int > & cell_range ) const
inlineprivate

◆ local_apply_boundary()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply_boundary ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src,
const std::pair< unsigned int, unsigned int > & face_range ) const
inlineprivate

◆ local_apply_face()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply_face ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src,
const std::pair< unsigned int, unsigned int > & face_range ) const
inlineprivate

◆ local_diagonal_boundary()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_boundary ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const unsigned int & ,
const std::pair< unsigned int, unsigned int > & face_range ) const
inlineprivate

◆ local_diagonal_cell()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_cell ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const unsigned int & ,
const std::pair< unsigned int, unsigned int > & cell_range ) const
inlineprivate

◆ local_diagonal_face()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_face ( const MatrixFree< dim, number > & data,
LinearAlgebra::distributed::Vector< number > & dst,
const unsigned int & ,
const std::pair< unsigned int, unsigned int > & face_range ) const
inlineprivate

◆ m()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
types::global_dof_index Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::m ( ) const
inline

◆ n()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
types::global_dof_index Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::n ( ) const
inline

◆ reinit()

◆ rhs()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::rhs ( LinearAlgebra::distributed::Vector< number > & b) const
inline

◆ Tvmult()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::Tvmult ( LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src ) const
inline

◆ Tvmult_add()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::Tvmult_add ( LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src ) const
inline

◆ vmult()

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
void Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::vmult ( LinearAlgebra::distributed::Vector< number > & dst,
const LinearAlgebra::distributed::Vector< number > & src ) const
inline

◆ vmult_add()

Member Data Documentation

◆ constraints

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
AffineConstraints<number> Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::constraints
private

◆ data

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
MatrixFree<dim, number> Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::data
private

Definition at line 1074 of file utils.h.

Referenced by Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::compute_inverse_diagonal(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_dof_handler(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_matrix_free(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_system_matrix(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_system_matrix(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::get_triangulation(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::initialize_dof_vector(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply_boundary(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_apply_face(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_boundary(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_cell(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::local_diagonal_face(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::m(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::n(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::reinit(), Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::rhs(), and Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::vmult_add().

◆ fe_degree

◆ inverse_diagonal_entries

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
LinearAlgebra::distributed::Vector<number> Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::inverse_diagonal_entries
private

◆ system_matrix

template<int dim, int degree, int n_qpoints, int n_components, typename number = double>
TrilinosWrappers::SparseMatrix Utils::LaplaceOperatorDG< dim, degree, n_qpoints, n_components, number >::system_matrix
mutableprivate

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