ExaDG
Loading...
Searching...
No Matches
ExaDG::OperatorBase< dim, Number, n_components > Class Template Reference
Inheritance diagram for ExaDG::OperatorBase< dim, Number, n_components >:
ExaDG::ConvDiff::CombinedOperator< dim, MultigridNumber > ExaDG::IncNS::MomentumOperator< dim, MultigridNumber > ExaDG::IncNS::ProjectionOperator< dim, MultigridNumber > ExaDG::Poisson::LaplaceOperator< dim, MultigridNumber, n_components >

Public Types

typedef OperatorBase< dim, Number, n_components > This
typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType
typedef std::pair< unsigned int, unsigned int > Range
typedef CellIntegrator< dim, n_components, Number > IntegratorCell
typedef FaceIntegrator< dim, n_components, Number > IntegratorFace
typedef dealii::LAPACKFullMatrix< Number > LAPACKMatrix
typedef dealii::FullMatrix< dealii::TrilinosScalar > FullMatrix_

Public Member Functions

void set_time (double const time) const
double get_time () const
unsigned int get_level () const
dealii::AffineConstraints< Number > const & get_affine_constraints () const
dealii::MatrixFree< dim, Number > const & get_matrix_free () const
unsigned int get_dof_index () const
unsigned int get_dof_index_inhomogeneous () const
unsigned int get_quad_index () const
bool operator_is_singular () const
void vmult (VectorType &dst, VectorType const &src) const
void vmult_add (VectorType &dst, VectorType const &src) const
void vmult_interface_down (VectorType &dst, VectorType const &src) const
void vmult_add_interface_up (VectorType &dst, VectorType const &src) const
dealii::types::global_dof_index m () const
dealii::types::global_dof_index n () const
Number el (unsigned int const, unsigned int const) const
bool is_empty_locally () const
void initialize_dof_vector (VectorType &vector) const
virtual void set_inhomogeneous_constrained_values (VectorType &solution) const
void set_constrained_dofs_to_zero (VectorType &vector) const
void calculate_inverse_diagonal (VectorType &diagonal) const
void initialize_block_diagonal_preconditioner (bool const initialize) const
void update_block_diagonal_preconditioner () const
void apply_inverse_block_diagonal (VectorType &dst, VectorType const &src) const
virtual void get_constant_modes (std::vector< std::vector< bool > > &constant_modes, std::vector< std::vector< double > > &constant_modes_values) const
void apply (VectorType &dst, VectorType const &src) const
void apply_add (VectorType &dst, VectorType const &src) const
void assemble_matrix_if_matrix_based () const
void apply_matrix_based (VectorType &dst, VectorType const &src) const
void apply_matrix_based_add (VectorType &dst, VectorType const &src) const
virtual void rhs (VectorType &dst) const
virtual void rhs_add (VectorType &dst) const
virtual void evaluate (VectorType &dst, VectorType const &src) const
virtual void evaluate_add (VectorType &dst, VectorType const &src) const
void calculate_diagonal (VectorType &diagonal) const
void add_diagonal (VectorType &diagonal) const
void add_block_diagonal_matrices (std::vector< LAPACKMatrix > &matrices) const
void apply_inverse_block_diagonal_matrix_based (VectorType &dst, VectorType const &src) const
void initialize_block_diagonal_preconditioner_matrix_free (bool const initialize) const
void update_block_diagonal_preconditioner_matrix_free () const
void initialize_block_diagonal_preconditioner_matrix_based (bool const initialize) const
void update_block_diagonal_preconditioner_matrix_based () const
void apply_add_block_diagonal_elementwise (unsigned int const cell, dealii::VectorizedArray< Number > *const dst, dealii::VectorizedArray< Number > const *const src, unsigned int const problem_size) const
virtual void compute_factorized_additive_schwarz_matrices () const
void apply_inverse_additive_schwarz_matrices (VectorType &dst, VectorType const &src) const

Static Public Attributes

static unsigned int const dimension = dim
static unsigned int const vectorization_length = dealii::VectorizedArray<Number>::size()

Protected Types

typedef Elementwise::OperatorBase< dim, Number, This > ElementwiseOperator
typedef Elementwise::PreconditionerBase< dealii::VectorizedArray< Number > > ElementwisePreconditionerBase
typedef Elementwise::IterativeSolver< dim, n_components, Number, ElementwiseOperator, ElementwisePreconditionerBase > ElementwiseSolver

Protected Member Functions

void reinit (dealii::MatrixFree< dim, Number > const &matrix_free, dealii::AffineConstraints< Number > const &constraints, OperatorBaseData const &data)
void reinit_cell (IntegratorCell &integrator, unsigned int const cell) const
void reinit_face (IntegratorFace &integrator_m, IntegratorFace &integrator_p, unsigned int const face) const
void reinit_boundary_face (IntegratorFace &integrator_m, unsigned int const face) const
void reinit_face_cell_based (IntegratorFace &integrator_m, IntegratorFace &integrator_p, unsigned int const cell, unsigned int const face, dealii::types::boundary_id const boundary_id) const
virtual void do_cell_integral (IntegratorCell &integrator) const
virtual void do_face_integral (IntegratorFace &integrator_m, IntegratorFace &integrator_p) const
virtual void do_boundary_integral (IntegratorFace &integrator, OperatorType const &operator_type, dealii::types::boundary_id const &boundary_id) const
virtual void do_boundary_integral_continuous (IntegratorFace &integrator, OperatorType const &operator_type, dealii::types::boundary_id const &boundary_id) const
virtual void do_face_int_integral (IntegratorFace &integrator_m, IntegratorFace &integrator_p) const
virtual void do_face_ext_integral (IntegratorFace &integrator_m, IntegratorFace &integrator_p) const
virtual void do_face_int_integral_cell_based (IntegratorFace &integrator_m, IntegratorFace &integrator_p) const

Protected Attributes

lazy_ptr< dealii::MatrixFree< dim, Number > > matrix_free
double time
lazy_ptr< dealii::AffineConstraints< Number > > constraint
dealii::AffineConstraints< double > constraint_double
IntegratorFlags integrator_flags
bool is_dg
std::shared_ptr< ElementwiseOperator > elementwise_operator
std::shared_ptr< ElementwisePreconditionerBase > elementwise_preconditioner
std::shared_ptr< ElementwiseSolver > elementwise_solver

Member Function Documentation

◆ apply_inverse_block_diagonal()

template<int dim, typename Number, int n_components>
void ExaDG::OperatorBase< dim, Number, n_components >::apply_inverse_block_diagonal ( VectorType & dst,
VectorType const & src ) const

This function applies the inverse block diagonal to a src vector and stores the result in the dst vector. This function may be called with identical dst, src vectors.


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