Template Class BlockPreconditionerAugmentedLagrangian

Class Documentation

template<typename VectorType, typename BlockVectorType = TrilinosWrappers::MPI::BlockVector>
class BlockPreconditionerAugmentedLagrangian

Two-by-two block preconditioner for augmented Lagrangian systems.

Public Functions

inline BlockPreconditionerAugmentedLagrangian(const LinearOperator<VectorType> Aug_inv_, const LinearOperator<VectorType> C_, const LinearOperator<VectorType> Ct_, const LinearOperator<VectorType> invW_, const double gamma_ = 1e1)

Build the block preconditioner from linear-operator building blocks.

inline void vmult(BlockVectorType &v, const BlockVectorType &u) const

Apply the block preconditioner to a two-block vector.