Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::TSymLinearSolver Class Reference

General driver for linear solvers for sparse indefinite symmetric matrices. More...

#include <IpTSymLinearSolver.hpp>

+ Inheritance diagram for Ipopt::TSymLinearSolver:

Public Member Functions

bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 Implementation of the initialization method that has to be overloaded by for each derived class.
 
Constructor/Destructor
 TSymLinearSolver (SmartPtr< SparseSymLinearSolverInterface > solver_interface, SmartPtr< TSymScalingMethod > scaling_method)
 Constructor.
 
virtual ~TSymLinearSolver ()
 Destructor.
 
Methods for requesting solution of the linear system.
virtual ESymSolverStatus MultiSolve (const SymMatrix &A, std::vector< SmartPtr< const Vector > > &rhsV, std::vector< SmartPtr< Vector > > &solV, bool check_NegEVals, Index numberOfNegEVals)
 Solve operation for multiple right hand sides.
 
virtual Index NumberOfNegEVals () const
 Number of negative eigenvalues detected during last factorization.
 
virtual bool IncreaseQuality ()
 Request to increase quality of solution for next solve.
 
virtual bool ProvidesInertia () const
 Query whether inertia is computed by linear solver.
 
Methods related to the detection of linearly dependent

rows in a matrix

bool ProvidesDegeneracyDetection () const
 
ESymSolverStatus DetermineDependentRows (Index n_rows, Index n_cols, Index n_jac_nz, Number *jac_c_vals, Index *jac_c_iRow, Index *jac_c_jCol, std::list< Index > &c_deps)
 
- Public Member Functions inherited from Ipopt::SymLinearSolver
 SymLinearSolver ()
 
virtual ~SymLinearSolver ()
 
ESymSolverStatus Solve (const SymMatrix &A, const Vector &rhs, Vector &sol, bool check_NegEVals, Index numberOfNegEVals)
 Solve operation for a single right hand side.
 
- Public Member Functions inherited from Ipopt::AlgorithmStrategyObject
bool Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
 This method is called every time the algorithm starts again - it is used to reset any internal state.
 
bool ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Reduced version of the Initialize method, which does not require special Ipopt information.
 
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- 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
 

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 Methods for OptionsList.
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 TSymLinearSolver ()
 Default Constructor.
 
 TSymLinearSolver (const TSymLinearSolver &)
 Copy Constructor.
 
void operator= (const TSymLinearSolver &)
 Default Assignment Operator.
 
Internal functions
ESymSolverStatus InitializeStructure (const SymMatrix &symT_A)
 Initialize nonzero structure.
 
void GiveMatrixToSolver (bool new_matrix, const SymMatrix &sym_A)
 Copy the elements of the matrix in the required format into the array that is provided by the solver interface.
 

Private Attributes

SmartPtr< SparseSymLinearSolverInterfacesolver_interface_
 Strategy Object for an interface to a linear solver.
 
Information about the matrix
TaggedObject::Tag atag_
 Tag for the incoming matrix.
 
Index dim_
 Number of rows and columns of the matrix.
 
Index nonzeros_triplet_
 Number of nonzeros of the matrix in triplet format.
 
Index nonzeros_compressed_
 Number of nonzeros in compressed format.
 
Initialization flags
bool have_structure_
 Flag indicating if the internal structures are initialized.
 
bool linear_scaling_on_demand_
 Flag indicating whether the scaling objected is to be switched on when increased quality is requested.
 
bool initialized_
 Flag indicating if the InitializeStructure method has been called for the linear solver.
 
Stuff for scaling of the linear system.
SmartPtr< TSymScalingMethodscaling_method_
 Strategy Object for a method that computes scaling factors for the matrices.
 
Numberscaling_factors_
 Array storing the scaling factors.
 
bool use_scaling_
 Flag indicating whether scaling should be performed.
 
bool just_switched_on_scaling_
 Flag indicating whether we just switched on the scaling.
 
information about the matrix.
Indexairn_
 row indices of matrix in triplet (MA27) format.
 
Indexajcn_
 column indices of matrix in triplet (MA27) format.
 
SmartPtr< TripletToCSRConverter