7#ifndef __IP_AUGSYSTEMSOLVER_HPP__
8#define __IP_AUGSYSTEMSOLVER_HPP__
52 const std::string& prefix
85 Index numberOfNegEVals
88 std::vector<SmartPtr<const Vector> > rhs_xV(1);
90 std::vector<SmartPtr<const Vector> > rhs_sV(1);
92 std::vector<SmartPtr<const Vector> > rhs_cV(1);
94 std::vector<SmartPtr<const Vector> > rhs_dV(1);
96 std::vector<SmartPtr<Vector> > sol_xV(1);
98 std::vector<SmartPtr<Vector> > sol_sV(1);
100 std::vector<SmartPtr<Vector> > sol_cV(1);
102 std::vector<SmartPtr<Vector> > sol_dV(1);
104 return MultiSolve(W, W_factor, D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, rhs_xV, rhs_sV,
105 rhs_cV, rhs_dV, sol_xV, sol_sV, sol_cV, sol_dV, check_NegEVals, numberOfNegEVals);
135 Index numberOfNegEVals
150 for(
Index i = 0; i < nrhs; i++ )
152 retval = Solve(W, W_factor, D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, *rhs_xV[i],
153 *rhs_sV[i], *rhs_cV[i], *rhs_dV[i], *sol_xV[i], *sol_sV[i], *sol_cV[i], *sol_dV[i], check_NegEVals,
#define DECLARE_STD_EXCEPTION(__except_type)
IPOPT_DEPRECATED typedef int Index
Type for all indices.
This is the base class for all algorithm strategy objects.
Base class for Solver for the augmented system.
virtual Index NumberOfNegEVals() const =0
Number of negative eigenvalues detected during last solve.
virtual ESymSolverStatus MultiSolve(const SymMatrix *W, Number W_factor, const Vector *D_x, Number delta_x, const Vector *D_s, Number delta_s, const Matrix *J_c, const Vector *D_c, Number delta_c, const Matrix *J_d, const Vector *D_d, Number delta_d, std::vector< SmartPtr< const Vector > > &rhs_xV, std::vector< SmartPtr< const Vector > > &rhs_sV, std::vector< SmartPtr< const Vector > > &rhs_cV, std::vector< SmartPtr< const Vector > > &rhs_dV, std::vector< SmartPtr< Vector > > &sol_xV, std::vector< SmartPtr< Vector > > &sol_sV, std::vector< SmartPtr< Vector > > &sol_cV, std::vector< SmartPtr< Vector > > &sol_dV, bool check_NegEVals, Index numberOfNegEVals)
Like Solve, but for multiple right hand sides.
virtual ~AugSystemSolver()
Destructor.
AugSystemSolver(const AugSystemSolver &)
Copy Constructor.
AugSystemSolver()
Default constructor.
virtual bool IncreaseQuality()=0
Request to increase quality of solution for next solve.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)=0
overloaded from AlgorithmStrategyObject
virtual bool ProvidesInertia() const =0
Query whether inertia is computed by linear solver.
virtual ESymSolverStatus Solve(const SymMatrix *W, Number W_factor, const Vector *D_x, Number delta_x, const Vector *D_s, Number delta_s, const Matrix *J_c, const Vector *D_c, Number delta_c, const Matrix *J_d, const Vector *D_d, Number delta_d, const Vector &rhs_x, const Vector &rhs_s, const Vector &rhs_c, const Vector &rhs_d, Vector &sol_x, Vector &sol_s, Vector &sol_c, Vector &sol_d, bool check_NegEVals, Index numberOfNegEVals)
Set up the augmented system and solve it for a given right hand side.
void operator=(const AugSystemSolver &)
Default Assignment Operator.
This class stores a list of user set options.
Template class for Smart Pointers.
This is the base class for all derived symmetric matrix types.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ESymSolverStatus
Enum to report outcome of a linear solve.
@ SYMSOLVER_SUCCESS
Successful solve.
ipindex Index
Type of all indices of vectors, matrices etc.
ipnumber Number
Type of all numbers.