[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
BirosGhattasPreconditioner< Real > Class Template Reference

Full-space system preconditioner based on the reduced-space. More...

#include <kkt_birosghattas_preconditioners.hpp>

Inheritance diagram for BirosGhattasPreconditioner< Real >:
Collaboration diagram for BirosGhattasPreconditioner< Real >:

Public Member Functions

 BirosGhattasPreconditioner (const ROL::Ptr< ROL::Objective< Real >> objective, const ROL::Ptr< ROL::Constraint< Real >> equal_constraints, const ROL::Ptr< const ROL::Vector< Real >> design_variables, const ROL::Ptr< const ROL::Vector< Real >> lagrange_mult, const ROL::Ptr< ROL::Secant< Real > > secant, const bool use_approximate_preconditioner=false)
 Constructor.
 
virtual void vmult (dealiiSolverVectorWrappingROL< Real > &dst, const dealiiSolverVectorWrappingROL< Real > &src) const
 Application of KKT preconditionner on vector src outputted into dst.
 
virtual void Tvmult (dealiiSolverVectorWrappingROL< Real > &dst, const dealiiSolverVectorWrappingROL< Real > &src) const
 Application of transposed KKT preconditioner on vector src outputted into dst. More...
 

Protected Attributes

const ROL::Ptr< ROL::Objective_SimOpt< Real > > objective_
 Objective function.
 
const ROL::Ptr< PHiLiP::FlowConstraints< PHILIP_DIM > > equal_constraints_
 Equality constraints.
 
const ROL::Ptr< const ROL::Vector_SimOpt< Real > > design_variables_
 Design variables.
 
const ROL::Ptr< const ROL::Vector< Real > > lagrange_mult_
 Lagrange multipliers.
 
const ROL::Ptr< const ROL::Vector< Real > > simulation_variables_
 Simulation design variables.
 
const ROL::Ptr< const ROL::Vector< Real > > control_variables_
 Control design variables.
 
const ROL::Ptr< ROL::Secant< Real > > secant_
 Secant method used to precondition the reduced Hessian.
 
const bool use_approximate_preconditioner_
 
const unsigned int mpi_rank
 MPI rank used to reset the deallog depth.
 
dealii::ConditionalOStream pcout
 Parallel std::cout that only outputs on mpi_rank==0.
 

Detailed Description

template<typename Real = double>
class BirosGhattasPreconditioner< Real >

Full-space system preconditioner based on the reduced-space.

See Biros and Ghattas' 2005 paper.

Definition at line 16 of file kkt_birosghattas_preconditioners.hpp.

Member Function Documentation

◆ Tvmult()

template<typename Real = double>
virtual void BirosGhattasPreconditioner< Real >::Tvmult ( dealiiSolverVectorWrappingROL< Real > &  dst,
const dealiiSolverVectorWrappingROL< Real > &  src 
) const
inlinevirtual

Application of transposed KKT preconditioner on vector src outputted into dst.

Same as vmult since this KKT preconditioner is symmetric.

Definition at line 98 of file kkt_birosghattas_preconditioners.hpp.

Member Data Documentation

◆ use_approximate_preconditioner_

template<typename Real = double>
const bool BirosGhattasPreconditioner< Real >::use_approximate_preconditioner_
protected

Use an approximate inverse of the Jacobian and Jacobian transpose using the preconditioner to obtain the "tilde" operator version of Biros and Ghattas.

Definition at line 40 of file kkt_birosghattas_preconditioners.hpp.


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