Template Class CouplingOperator

Class Documentation

template<int dim, typename number, int n_components = 1>
class CouplingOperator

Class responsible to provide the action of the coupling operator in a matrix-free fashion.

Public Types

using VectorType = LinearAlgebra::distributed::Vector<number>

Distributed vector type used by matrix-free operator application.

Public 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))

Constructor.

Takes an Inclusions instance, a reference to the background triangulation and an optional mapping to initialize the evaluator on remote points.

void initialize_dof_vector(VectorType &vec) const

Initialize a vector with the layout expected by this operator.

void vmult(VectorType &dst, const VectorType &src) const

Apply the coupling operator.

void Tvmult(VectorType &dst, const VectorType &src) const

Apply the transpose coupling operator.

void vmult_add(VectorType &dst, const VectorType &src) const

Add the operator action to an existing destination vector.

void Tvmult_add(VectorType &dst, const VectorType &src) const

Add the transpose operator action to an existing destination vector.