|
| | PIPSIPMppInterface (DistributedInputTree *tree, MPI_Comm comm=MPI_COMM_WORLD, const std::string &settings="PIPSIPMpp.opt") |
| | Constructor for PIPSIPMppInterface.
|
|
| ~PIPSIPMppInterface () |
| | Destructor.
|
| TerminationStatus | run () |
| | Runs the complete solution process (presolve, solve, postsolve).
|
| TerminationStatus | presolve () |
| | Runs the presolve step.
|
| TerminationStatus | termination_status () const |
| | Gets the current termination status.
|
| double | getObjective () |
| | Gets the objective value of the solved problem.
|
| int | n_iterations () const |
| | Gets the number of iterations performed by the solver.
|
| double | getRootObjective () const |
| | Gets the block 0 (the root) objective value.
|
| std::vector< double > | gatherPrimalSolution () |
| | Gathers the primal solution from all processes.
|
| std::vector< double > | gatherDualSolutionEq () |
| | Gathers the dual solution for equality constraints from all processes.
|
| std::vector< double > | gatherDualSolutionIneq () |
| | Gathers the dual solution for inequality constraints from all processes.
|
| std::vector< double > | gatherDualSolutionIneqUpp () |
| | Gathers the dual solution for upper bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherDualSolutionIneqLow () |
| | Gathers the dual solution for lower bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherDualSolutionVarBounds () |
| | Gathers the dual solution for variable bounds from all processes.
|
| std::vector< double > | gatherDualSolutionVarBoundsUpp () |
| | Gathers the dual solution for upper bounds on variables from all processes.
|
| std::vector< double > | gatherDualSolutionVarBoundsLow () |
| | Gathers the dual solution for lower bounds on variables from all processes.
|
| std::vector< double > | gatherSlacksInequalityUp () |
| | Gathers the slack variables for upper bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherSlacksInequalityLow () |
| | Gathers the slack variables for lower bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherSlacksVarsUp () |
| | Gathers the slack variables for upper bounds on variables from all processes.
|
| std::vector< double > | gatherSlacksVarsLow () |
| | Gathers the slack variables for lower bounds on variables from all processes.
|
| std::vector< double > | gatherPrimalResidsEQ () |
| | Gathers the primal residuals for equality constraints from all processes.
|
| std::vector< double > | gatherPrimalResidsIneqUp () |
| | Gathers the primal residuals for upper bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherPrimalResidsIneqLow () |
| | Gathers the primal residuals for lower bounds on inequality constraints from all processes.
|
| std::vector< double > | gatherDualResids () |
| | Gathers the dual residuals (gradient of the Lagrangian) from all processes.
|
| std::vector< double > | getRootPrimalColSolution () const |
| | Gets the block 0 (the root) primal column solution from the current process.
|
| std::vector< double > | getBlockPrimalColSolution (int block) const |
| | Gets the primal column solution for the given block from the current process.
|
| void | allgatherBlocksizes (std::vector< unsigned int > &block_lengths_col, std::vector< unsigned int > &block_lengths_A, std::vector< unsigned int > &block_lengths_C) const |
| | Gathers the sizes of all blocks from all processes.
|
|
void | postsolveComputedSolution () |
| | Postsolves the computed solution to obtain the solution to the original problem.
|
| std::vector< double > | gatherEqualityConsValues () |
| | Gathers the values of the equality constraints Ax-b from all processes.
|
| std::vector< double > | gatherInequalityConsValues () |
| | Gathers the values of the inequality constraints Cx-d from all processes.
|
|
void | getVarsUnscaledUnperm () |
| | Gets the unscaled and unpermuted variables.
|
|
void | getResidsUnscaledUnperm () |
| | Gets the unscaled and unpermuted residuals.
|
|
|
std::unique_ptr< DistributedFactory > | factory |
| | Factory for creating problem-related objects.
|
|
std::unique_ptr< Problem > | presolved_problem |
| | The problem after presolving (possibly the same as original).
|
|
std::unique_ptr< Problem > | dataUnpermNotHier |
| | Data after presolve but before permutation, scaling, and hierarchical data structure creation.
|
|
std::unique_ptr< Problem > | original_problem |
| | The original problem data.
|
|
std::unique_ptr< Variables > | variables |
| | Variables of the (presolved) problem.
|
|
std::unique_ptr< Variables > | unscaleUnpermNotHierVars |
| | Unscaled and unpermuted variables.
|
|
std::unique_ptr< Variables > | postsolved_variables |
| | Variables of the original problem after postsolving.
|
|
std::unique_ptr< Residuals > | residuals |
| | Residuals of the (presolved) problem.
|
|
std::unique_ptr< Residuals > | unscaleUnpermNotHierResids |
| | Unscaled and unpermuted residuals.
|
|
std::unique_ptr< Residuals > | postsolvedResids |
| | Residuals after postsolving.
|
|
std::unique_ptr< Presolver > | presolver |
| | The presolver instance.
|
|
std::unique_ptr< Postsolver > | postsolver |
| | The postsolver instance.
|
|
std::unique_ptr< Scaler > | scaler |
| | The scaler instance.
|
|
std::unique_ptr< PIPSIPMppSolver > | solver |
| | The main solver instance.
|
|
MPI_Comm | comm = MPI_COMM_NULL |
| | The MPI communicator.
|
|
const int | my_rank = -1 |
| | The rank of the current MPI process.
|
|
TerminationStatus | result {TerminationStatus::DID_NOT_RUN} |
| | The result status of the solution process.
|
|
bool | ran_solver = false |
| | Flag indicating whether the solver has been run.
|
The main interface class for PIPS-IPM++.
This class provides a high-level interface for setting up and solving block structured linear optimization problems using the PIPS-IPM++ solver. It handles problem reading, presolving, solving, and postsolving.