9 #ifndef __IPINEXACTPDSOLVER_HPP__
10 #define __IPINEXACTPDSOLVER_HPP__
41 const std::string& prefix);
bool HessianRequiresChange()
Method for checking if the Hessian matrix has to be modified.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
bool is_pardiso_
flag indicating if we are dealing with the Pardiso solver (temporary)
This is the implemetation of the Primal-Dual System, allowing the usage of an inexact linear solver...
Specialized CompoundVector class specifically for the algorithm iterates.
InexactPDSolver()
Default Constructor.
This is the base class for all algorithm strategy objects.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
double Number
Type of all numbers.
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
IpoptAdditionalCq & AdditionalCq()
bool modify_hessian_with_slacks_
flag indicating if the Hessian for the (s,s) part should be modified with the slacks instead of the i...
SmartPtr< AugSystemSolver > augSysSolver_
Pointer to the Solver for the augmented system.
This is the base class for all derived symmetric matrix types.
virtual ~InexactPDSolver()
Default destructor.
Number tcc_theta_mu_exponent_
mu exponent when multiplied to theta in the tangential component condition
Template class for Smart Pointers.
This class stores a list of user set options.
Base class for Solver for the augmented system.
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
int Index
Type of all indices of vectors, matrices etc.
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
SmartPtr< PDPerturbationHandler > perturbHandler_
Pointer to the Perturbation Handler.
IpoptData & IpData() const
InexactData & InexData()
Method to easily access Inexact data.
InexactPDSolver & operator=(const InexactPDSolver &)
Overloaded Equals Operator.
virtual bool Solve(const IteratesVector &rhs, IteratesVector &sol)
Solve the primal dual system, given one right hand side.
Number tcc_theta_
theta factor in the tangential component condition
IpoptCalculatedQuantities & IpCq() const
Number tcc_psi_
Psi factor in the tangential component condition.
void ComputeResiduals(const SymMatrix &W, const Matrix &J_c, const Matrix &J_d, const Matrix &Pd_L, const Matrix &Pd_U, const Vector &v_L, const Vector &v_U, const Vector &slack_s_L, const Vector &slack_s_U, const Vector &sigma_s, const IteratesVector &rhs, const IteratesVector &res, IteratesVector &resid)
Internal function for computing the residual (resid) given the right hand side (rhs) and the solution...
Index last_info_ls_count_
Index inexact_regularization_ls_count_trigger_
Threshold on line search evaluation count to trigger Hessia modification.