#include <matrix_free_utils.h>
Public Types | |
using | VectorType = LinearAlgebra::distributed::Vector<number> |
Public Member Functions | |
CouplingOperator (const Inclusions< dim > &inclusions, const DoFHandler< dim > &dof_handler, const AffineConstraints< number > &constraints=AffineConstraints< number >(), const MappingQ< dim > &mapping=MappingQ1< dim >(), const FiniteElement< dim > &fe=FE_Q< dim >(1)) | |
void | initialize_dof_vector (VectorType &vec) 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 |
Private Attributes | |
Utilities::MPI::RemotePointEvaluation< dim > | rpe |
ObserverPointer< const Mapping< dim > > | mapping |
ObserverPointer< const FiniteElement< dim > > | fe |
ObserverPointer< const DoFHandler< dim > > | dof_handler |
ObserverPointer< const Inclusions< dim > > | inclusions |
ObserverPointer< const AffineConstraints< number > > | constraints |
const unsigned int | n_coefficients |
Class responsible to provide the action of the coupling operator in a matrix-free fashion.
Definition at line 52 of file matrix_free_utils.h.
using CouplingOperator< dim, number, n_components >::VectorType = LinearAlgebra::distributed::Vector<number> |
Definition at line 55 of file matrix_free_utils.h.
CouplingOperator< dim, number, n_components >::CouplingOperator | ( | const Inclusions< dim > & | inclusions, |
const DoFHandler< dim > & | dof_handler, | ||
const AffineConstraints< number > & | constraints = AffineConstraints<number>(), | ||
const MappingQ< dim > & | mapping = MappingQ1<dim>(), | ||
const FiniteElement< dim > & | fe = FE_Q<dim>(1) ) |
Constructor. Takes an Inclusions
instance, a reference to the background triangulation and an optional mapping to initialize the evaluator on remote points.
Definition at line 37 of file matrix_free_utils.cc.
References rpe, and Inclusions< spacedim >::rtree_extraction_level.
void CouplingOperator< dim, number, n_components >::initialize_dof_vector | ( | VectorType & | vec | ) | const |
Definition at line 77 of file matrix_free_utils.cc.
void CouplingOperator< dim, number, n_components >::Tvmult | ( | VectorType & | dst, |
const VectorType & | src ) const |
Definition at line 163 of file matrix_free_utils.cc.
References VectorOperation::add, LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::begin(), LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::compress(), constraints, dof_handler, FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::evaluate(), fe, FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::get_value(), inclusions, mapping, FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::reinit(), rpe, LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::update_ghost_values(), and EvaluationFlags::values.
Referenced by Tvmult_add().
void CouplingOperator< dim, number, n_components >::Tvmult_add | ( | VectorType & | dst, |
const VectorType & | src ) const |
Definition at line 247 of file matrix_free_utils.cc.
References LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::reinit(), rpe, and Tvmult().
void CouplingOperator< dim, number, n_components >::vmult | ( | VectorType & | dst, |
const VectorType & | src ) const |
Definition at line 87 of file matrix_free_utils.cc.
References VectorOperation::add, LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::compress(), constraints, dof_handler, fe, inclusions, mapping, FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::quadrature_point_indices(), FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::reinit(), rpe, FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::submit_value(), FEPointEvaluation< int n_components_, int dim, int spacedim, typename Number >::test_and_sum(), LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::update_ghost_values(), and EvaluationFlags::values.
Referenced by vmult_add().
void CouplingOperator< dim, number, n_components >::vmult_add | ( | VectorType & | dst, |
const VectorType & | src ) const |
Definition at line 233 of file matrix_free_utils.cc.
References LinearAlgebra::distributed::Vector< typename Number, typename MemorySpace >::reinit(), rpe, and vmult().
|
private |
Definition at line 91 of file matrix_free_utils.h.
|
private |
Definition at line 89 of file matrix_free_utils.h.
|
private |
Definition at line 88 of file matrix_free_utils.h.
|
private |
Definition at line 90 of file matrix_free_utils.h.
|
private |
Definition at line 87 of file matrix_free_utils.h.
|
private |
Definition at line 92 of file matrix_free_utils.h.
|
private |
Definition at line 86 of file matrix_free_utils.h.
Referenced by CouplingOperator(), Tvmult(), Tvmult_add(), vmult(), and vmult_add().