Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::SchurData Class Referenceabstract

This interface serves as a reference point for multiple classes that need to use SchurData (PCalculator, SchurDriver). More...

#include <SensSchurData.hpp>

+ Inheritance diagram for Ipopt::SchurData:

Public Member Functions

 SchurData ()
 
virtual ~SchurData ()
 
virtual SmartPtr< SchurDataMakeNewSchurDataCopy () const =0
 
virtual void SetData_Flag (Index dim, const Index *flags, Number v=1.0)=0
 Set Data to one for given indices.
 
virtual void SetData_Flag (Index dim, const Index *flags, const Number *values)=0
 Set Data to corresponing Number.
 
virtual Index SetData_Index (Index dim, const Index *flags, Number v=1.0)=0
 
virtual void SetData_List (const std::vector< Index > &list, Number v=1.0)=0
 
virtual void AddData_List (std::vector< Index > cols, std::vector< Index > &delta_u_sort, Index &new_du_size, Index v)=0
 
virtual Index GetNRowsAdded () const
 Returns number of rows/columns in schur matrix.
 
virtual bool Is_Initialized () const
 
virtual void GetRow (Index i, IteratesVector &v) const =0
 Returns the i-th column vector of the matrix.
 
virtual void GetMultiplyingVectors (Index row, std::vector< Index > &indices, std::vector< Number > &factors) const =0
 Returns two vectors that are needed for matrix-vector multiplication of B and P.
 
virtual void Multiply (const IteratesVector &v, Vector &u) const =0
 Computes B*v with B in R(mxn)
 
virtual void TransMultiply (const Vector &u, IteratesVector &v) const =0
 Computes A*u with A in R(nxm), KKT in R(n,n)
 
virtual void PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const =0
 
void Print (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent=0, const std::string &prefix="") const
 
void Print (SmartPtr< const Journalist > jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Protected Member Functions

virtual void Set_Initialized ()
 
virtual void Set_NRows (Index nrows)
 

Private Attributes

bool initialized_
 Makes sure that data is not set twice accidentially.
 
Index nrows_
 Number of columns/rows of corresponding Schur Matrix.
 

Detailed Description

This interface serves as a reference point for multiple classes that need to use SchurData (PCalculator, SchurDriver).

It declares as little as possible, so that SchurData implementations can be very special and fast.

I have not decided yet if there are certain ways I want to impose that SchurData can be set. I will figure this out as soon as I write the upstream classes that need to do that

Nomenclature in this program is based on Victor Zavalas thesis.

Definition at line 29 of file SensSchurData.hpp.

Constructor & Destructor Documentation

◆ SchurData()

Ipopt::SchurData::SchurData ( )
inline

Definition at line 32 of file SensSchurData.hpp.

◆ ~SchurData()

virtual Ipopt::SchurData::~SchurData ( )
inlinevirtual

Definition at line 37 of file SensSchurData.hpp.

Member Function Documentation

◆ MakeNewSchurDataCopy()

virtual SmartPtr< SchurData > Ipopt::SchurData::MakeNewSchurDataCopy ( ) const
pure virtual

Implemented in Ipopt::IndexSchurData.

◆ SetData_Flag() [1/2]

virtual void Ipopt::SchurData::SetData_Flag ( Index  dim,
const Index flags,
Number  v = 1.0 
)
pure virtual

Set Data to one for given indices.

Size of vector is ipopt_x_<full_x_

Implemented in Ipopt::IndexSchurData.

◆ SetData_Flag() [2/2]

virtual void Ipopt::SchurData::SetData_Flag ( Index  dim,
const Index flags,
const Number values 
)
pure virtual

Set Data to corresponing Number.

Implemented in Ipopt::IndexSchurData.

◆ SetData_Index()

virtual Index Ipopt::SchurData::SetData_Index ( Index  dim,
const Index flags,
Number  v = 1.0 
)
pure virtual

Implemented in Ipopt::IndexSchurData.

◆ SetData_List()

virtual void Ipopt::SchurData::SetData_List ( const std::vector< Index > &  list,
Number  v = 1.0 
)
pure virtual

Implemented in Ipopt::IndexSchurData.

◆ AddData_List()

virtual void Ipopt::SchurData::AddData_List ( std::vector< Index cols,
std::vector< Index > &  delta_u_sort,
Index new_du_size,
Index  v 
)
pure virtual

Implemented in Ipopt::IndexSchurData.

◆ GetNRowsAdded()

virtual Index Ipopt::SchurData::GetNRowsAdded ( ) const
inlinevirtual

Returns number of rows/columns in schur matrix.

Reimplemented in Ipopt::IndexSchurData.

Definition at line 77 of file SensSchurData.hpp.

◆ Is_Initialized()

virtual bool Ipopt::SchurData::Is_Initialized ( ) const
inlinevirtual

Definition at line 82 of file SensSchurData.hpp.

◆ GetRow()

virtual void Ipopt::SchurData::GetRow ( Index  i,
IteratesVector v 
) const
pure virtual

Returns the i-th column vector of the matrix.

Implemented in Ipopt::IndexSchurData.

◆ GetMultiplyingVectors()

virtual void Ipopt::SchurData::GetMultiplyingVectors ( Index  row,
std::vector< Index > &  indices,
std::vector< Number > &  factors 
) const
pure virtual

Returns two vectors that are needed for matrix-vector multiplication of B and P.

The index is the row, the first vector are the indices of non-zero components, in this row of B, the second vector gives the numbers in B(row,indices)/

Implemented in Ipopt::IndexSchurData.

◆ Multiply()

virtual void Ipopt::SchurData::Multiply ( const IteratesVector v,
Vector u 
) const
pure virtual

Computes B*v with B in R(mxn)

Implemented in Ipopt::IndexSchurData.

◆ TransMultiply()

virtual void Ipopt::SchurData::TransMultiply ( const Vector u,
IteratesVector v 
) const
pure virtual

Computes A*u with A in R(nxm), KKT in R(n,n)

Implemented in Ipopt::IndexSchurData.

◆ PrintImpl()

virtual void Ipopt::SchurData::PrintImpl ( const Journalist jnlst,
EJournalLevel  level,
EJournalCategory  category,
const std::string &  name,
Index  indent,
const std::string &  prefix 
) const
pure virtual

Implemented in Ipopt::IndexSchurData.

◆ Print() [1/2]

void Ipopt::SchurData::Print ( const Journalist jnlst,
EJournalLevel  level,
EJournalCategory  category,
const std::string &  name,
Index  indent = 0,
const std::string &  prefix = "" 
) const
inline

Definition at line 127 of file SensSchurData.hpp.

◆ Print() [2/2]

void Ipopt::SchurData::Print ( SmartPtr< const Journalist jnlst,
EJournalLevel  level,
EJournalCategory  category,
const std::string &  name,
Index  indent,
const std::string &  prefix 
) const
inline

Definition at line 142 of file SensSchurData.hpp.

◆ Set_Initialized()

virtual void Ipopt::SchurData::Set_Initialized ( )
inlineprotectedvirtual

Definition at line 159 of file SensSchurData.hpp.

◆ Set_NRows()

virtual void Ipopt::SchurData::Set_NRows ( Index  nrows)
inlineprotectedvirtual

Definition at line 164 of file SensSchurData.hpp.

Member Data Documentation

◆ initialized_

bool Ipopt::SchurData::initialized_
private

Makes sure that data is not set twice accidentially.

Definition at line 174 of file SensSchurData.hpp.

◆ nrows_

Index Ipopt::SchurData::nrows_
private

Number of columns/rows of corresponding Schur Matrix.

Definition at line 177 of file SensSchurData.hpp.


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