Template Class BlockPreconditionerAugmentedLagrangian¶
Defined in File augmented_lagrangian.h
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.
Public Members
-
LinearOperator<VectorType> K¶
Unused placeholder linear operator kept for backward compatibility.
-
LinearOperator<VectorType> Aug_inv¶
Approximate inverse of the augmented displacement block.
-
LinearOperator<VectorType> C¶
Coupling operator from displacement to multipliers.
-
LinearOperator<VectorType> invW¶
Inverse scaling/mass operator on multiplier space.
-
LinearOperator<VectorType> Ct¶
Transpose coupling operator from multipliers to displacement.
-
double gamma¶
Augmentation/scaling parameter for the multiplier block.
-
inline BlockPreconditionerAugmentedLagrangian(const LinearOperator<VectorType> Aug_inv_, const LinearOperator<VectorType> C_, const LinearOperator<VectorType> Ct_, const LinearOperator<VectorType> invW_, const double gamma_ = 1e1)¶