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

KKT_Operator to be used with dealii::SolverBase class. More...

#include <kkt_operator.hpp>

Collaboration diagram for KKT_Operator< Real >:

Public Member Functions

 KKT_Operator (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)
 Constructor.
 
unsigned int size ()
 Returns the size of the KKT system.
 
void vmult (dealiiSolverVectorWrappingROL< Real > &dst, const dealiiSolverVectorWrappingROL< Real > &src) const
 Application of KKT matrix on vector src outputted into dst.
 
void Tvmult (dealiiSolverVectorWrappingROL< Real > &dst, const dealiiSolverVectorWrappingROL< Real > &src) const
 Application of transposed KKT matrix on vector src outputted into dst. More...
 
void print (const dealiiSolverVectorWrappingROL< Real > &vector_format)
 Print the KKT system if the program is run with 1 MPI process. More...
 

Protected Attributes

const ROL::Ptr< ROL::Objective< Real > > objective_
 Objective function.
 
const ROL::Ptr< ROL::Constraint< Real > > equal_constraints_
 Equality constraints.
 
const ROL::Ptr< const ROL::Vector< Real > > design_variables_
 Design variables.
 
const ROL::Ptr< const ROL::Vector< Real > > lagrange_mult_
 Lagrange multipliers.
 

Private Attributes

const ROL::Ptr< ROL::Vector< Real > > temp_design_variables_size_vector_
 Used to perform the Lagrangian Hessian in two steps.
 

Detailed Description

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

KKT_Operator to be used with dealii::SolverBase class.

Definition at line 11 of file kkt_operator.hpp.

Member Function Documentation

◆ print()

template<typename Real = double>
void KKT_Operator< Real >::print ( const dealiiSolverVectorWrappingROL< Real > &  vector_format)
inline

Print the KKT system if the program is run with 1 MPI process.

If more than 1 MPI process is used, we can't print out the matrix since the information is distributed

Definition at line 114 of file kkt_operator.hpp.

◆ Tvmult()

template<typename Real = double>
void KKT_Operator< Real >::Tvmult ( dealiiSolverVectorWrappingROL< Real > &  dst,
const dealiiSolverVectorWrappingROL< Real > &  src 
) const
inline

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

Same as vmult since KKT matrix is symmetric.

Definition at line 104 of file kkt_operator.hpp.


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