ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
Public Types | Public Member Functions | List of all members
ryujin::NavierStokes::DiagonalMatrix< dim, Number > Class Template Reference

#include <source/navier_stokes/parabolic_solver_gmg_operators.h>

Public Types

using vector_type = dealii::LinearAlgebra::distributed::Vector< Number >
 
using block_vector_type = dealii::LinearAlgebra::distributed::BlockVector< Number >
 

Public Member Functions

 DiagonalMatrix ()=default
 
void reinit (const vector_type &lumped_mass_matrix, const vector_type &density, const dealii::AffineConstraints< Number > &affine_constraints)
 
vector_typeget_vector ()
 
block_vector_typeget_block_vector ()
 
void vmult (vector_type &dst, const vector_type &src) const
 
void vmult (block_vector_type &dst, const block_vector_type &src) const
 

Detailed Description

template<int dim, typename Number>
class ryujin::NavierStokes::DiagonalMatrix< dim, Number >

A diagonal matrix used as a preconditioner for the non-multigrid CG iteration. The diagonal matrix is constructed by computing \(d_i=1/(\rho_i m_i)\) for a given lumped mass matrix \( m_i \), and a density field \( \rho_i \).

Definition at line 41 of file parabolic_solver_gmg_operators.h.

Member Typedef Documentation

◆ vector_type

template<int dim, typename Number >
using ryujin::NavierStokes::DiagonalMatrix< dim, Number >::vector_type = dealii::LinearAlgebra::distributed::Vector<Number>

Definition at line 47 of file parabolic_solver_gmg_operators.h.

◆ block_vector_type

template<int dim, typename Number >
using ryujin::NavierStokes::DiagonalMatrix< dim, Number >::block_vector_type = dealii::LinearAlgebra::distributed::BlockVector<Number>

Definition at line 52 of file parabolic_solver_gmg_operators.h.

Constructor & Destructor Documentation

◆ DiagonalMatrix()

template<int dim, typename Number >
ryujin::NavierStokes::DiagonalMatrix< dim, Number >::DiagonalMatrix ( )
default

Constructor

Member Function Documentation

◆ reinit()

template<int dim, typename Number >
void ryujin::NavierStokes::DiagonalMatrix< dim, Number >::reinit ( const vector_type lumped_mass_matrix,
const vector_type density,
const dealii::AffineConstraints< Number > &  affine_constraints 
)
inline

Compute the inverse of a given density \( \rho_i \) and a given lumped mass matrix \( m_i \), viz., \(d_i=1/(\rho_i m_i)\).

Definition at line 64 of file parabolic_solver_gmg_operators.h.

Referenced by ryujin::NavierStokes::ParabolicSolver< Description, dim, Number >::backward_euler_step().

◆ get_vector()

template<int dim, typename Number >
vector_type & ryujin::NavierStokes::DiagonalMatrix< dim, Number >::get_vector ( )
inline

Get access to the internal vector to be externally filled.

Definition at line 89 of file parabolic_solver_gmg_operators.h.

◆ get_block_vector()

template<int dim, typename Number >
block_vector_type & ryujin::NavierStokes::DiagonalMatrix< dim, Number >::get_block_vector ( )
inline

Get access to the internal vector to be externally filled.

Definition at line 97 of file parabolic_solver_gmg_operators.h.

◆ vmult() [1/2]

template<int dim, typename Number >
void ryujin::NavierStokes::DiagonalMatrix< dim, Number >::vmult ( vector_type dst,
const vector_type src 
) const
inline

Apply on a vector.

Definition at line 105 of file parabolic_solver_gmg_operators.h.

◆ vmult() [2/2]

template<int dim, typename Number >
void ryujin::NavierStokes::DiagonalMatrix< dim, Number >::vmult ( block_vector_type dst,
const block_vector_type src 
) const
inline

Apply on a block vector.

Definition at line 119 of file parabolic_solver_gmg_operators.h.


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