Go to the documentation of this file.
11 #ifndef __IPITERATIVEPARDISOSOLVERINTERFACE_HPP__
12 #define __IPITERATIVEPARDISOSOLVERINTERFACE_HPP__
40 const std::string& prefix);
61 Index numberOfNegEVals);
237 Index numberOfNegEVals);
Index normal_pardiso_iter_max_levels_
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *ia, const Index *ja, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
ipfint * IPARM_
Parameter and info array for Pardiso.
ESymSolverStatus
Enum to report outcome of a linear solve.
Number pardiso_iter_dropping_schur_
PardisoMatchingStrategy match_strat_
Option that controls the matching strategy.
Index pardiso_max_iter_
Options for the preconditioner.
IpoptCalculatedQuantities & IpCq() const
Number normal_pardiso_iter_relative_tol_
EMatrixFormat
Enum to specify sparse matrix format.
Number normal_pardiso_iter_dropping_factor_
bool have_symbolic_factorization_
Flag indicating if symbolic factorization has already been performed.
Index normal_pardiso_max_iter_
Number pardiso_iter_dropping_factor_
void operator=(const IterativePardisoSolverInterface &)
Overloaded Equals Operator.
Index pardiso_iter_max_levels_
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
double Number
Type of all numbers.
IterativePardisoSolverInterface(IterativeSolverTerminationTester &normal_tester, IterativeSolverTerminationTester &pd_tester)
Constructor.
Number normal_pardiso_iter_inverse_norm_factor_
ipfint MTYPE_
Matrix type; real and symmetric indefinite.
double * DPARM_
Parameter and info array for Pardiso.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja)
Method for initializing internal stuctures.
PardisoMatchingStrategy
Type for mathcing strategies.
void ** PT_
Internal data address pointers.
IpoptData & IpData() const
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
Number pardiso_iter_relative_tol_
@ CSR_Format_1_Offset
Compressed sparse row format for lower triangular part, with 1 offset.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
ESymSolverStatus Solve(const Index *ia, const Index *ja, Index nrhs, double *rhs_vals)
Call Pardiso to do the Solve.
Number pardiso_iter_dropping_factor_used_
Actualy used dropping tolerances.
Index negevals_
Number of negative eigenvalues.
bool initialized_
Flag indicating if internal data is initialized.
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements are to be stored.
Number normal_pardiso_iter_dropping_factor_used_
int Index
Type of all indices of vectors, matrices etc.
ipfint MSGLVL_
Message level.
bool pardiso_redo_symbolic_fact_only_if_inertia_wrong_
Flag indicating whether the symbolic factorization should only be done after perturbed elements,...
Index pardiso_iter_coarse_size_
InexactData & InexData()
Method to easily access Inexact data.
Index normal_pardiso_iter_coarse_size_
Template class for Smart Pointers.
Index pardiso_iter_max_row_fill_
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
FORTRAN_INTEGER_TYPE ipfint
virtual ~IterativePardisoSolverInterface()
Destructor.
IterativePardisoSolverInterface(const IterativePardisoSolverInterface &)
Copy Constructor.
Number decr_factor_
Decrease factor for dropping tolerances.
ESymSolverStatus Factorization(const Index *ia, const Index *ja, bool check_NegEVals, Index numberOfNegEVals)
Call Pardiso to factorize the Matrix.
Index dim_
Number of rows and columns of the matrix.
ipfint MNUM_
Actual matrix for the solution phase.
ESymSolverStatus SymbolicFactorization(const Index *ia, const Index *ja)
Call Pardiso to do the analysis phase.
Number normal_pardiso_iter_dropping_schur_
Index pardiso_max_droptol_corrections_
Maximal number of decreases of drop tolerance during one solve.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Number pardiso_iter_dropping_schur_used_
This base class is for the termination tests for the iterative linear solver in the inexact version o...
Index nonzeros_
Number of nonzeros of the matrix in triplet representation.
IpoptAdditionalCq & AdditionalCq()
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
Interface to the linear solver Pardiso, derived from SparseSymLinearSolverInterface.
SmartPtr< IterativeSolverTerminationTester > pd_tester_
Termination tester for primal-dual step computation.
bool skip_inertia_check_
Flag indicating if the interia is always assumed to be correct.
IterativePardisoSolverInterface()
Default Constructor.
Number normal_pardiso_iter_dropping_schur_used_
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Index normal_pardiso_iter_max_row_fill_
ipfint MAXFCT_
Maximal number of factors with identical nonzero structure.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
SmartPtr< IterativeSolverTerminationTester > normal_tester_
Termination tester for normal step computation.
Number pardiso_iter_inverse_norm_factor_
This class stores a list of user set options.
double * a_
Array for storing the values of the matrix.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Class for all Chen-Goldfarb penalty method specific calculated quantities.
bool pardiso_repeated_perturbation_means_singular_
Flag indicating whether repeated perturbed elements even after a new symbolic factorization should be...