9 #ifndef __IPPDPERTURBATIONHANDLER_HPP__
10 #define __IPPDPERTURBATIONHANDLER_HPP__
38 const std::string& prefix);
This is the base class for all algorithm strategy objects.
This class stores a list of user set options.
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
Number delta_d_last_
The last nonzero value for delta_d.
virtual void CurrentPerturbation(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
Just return the perturbation values that have been determined most recently.
Index degen_iters_
Flag counting matrices in which degeneracy was observed in the first successive iterations.
bool get_deltas_for_wrong_inertia(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
Internal version of PerturbForWrongInertia with the difference, that finalize_test is not called.
virtual bool PerturbForSingularity(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method returns pertubation factors for the case when the most recent factorization resulted in a...
DegenType hess_degenerate_
Flag indicating whether the reduced Hessian matrix is thought to be structurally singular.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
virtual ~PDPerturbationHandler()
Default destructor.
virtual bool PerturbForWrongInertia(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method returns pertubation factors for the case when the most recent factorization resulted in a...
DegenType jac_degenerate_
Flag indicating whether the Jacobian of the constraints is thought to be structurally rank-deficient.
Number delta_xs_dec_fact_
Decrease factor for delta_xs for later perturbations.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
void operator=(const PDPerturbationHandler &)
Overloaded Equals Operator.
Number delta_cd_exp_
Exponent on mu in formula for of perturbation for c and d blocks.
Number delta_x_curr_
The current value for delta_x.
Number delta_xs_init_
Very first trial value for delta_xs perturbation.
Number delta_cd_val_
Size of perturbation for c and d blocks.
Number delta_c_curr_
The current value for delta_c.
DegenType
Type for degeneracy flags.
Number delta_s_curr_
The current value for delta_s.
virtual bool ConsiderNewSystem(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method must be called for each new matrix, and before any other method for generating perturbati...
Number delta_d_curr_
The current value for delta_d.
Number delta_s_last_
The last nonzero value for delta_s.
Number delta_xs_inc_fact_
Increase factor for delta_xs for later perturbations.
bool reset_last_
Flag indicating whether the new values are based on the perturbations in the last iteration or in the...
bool perturb_always_cd_
Flag indicating that the delta_c, delta_d perturbation should always be used.
Index degen_iters_max_
Required number of iterations for degeneracy conclusions.
Number delta_xs_first_inc_fact_
Increase factor for delta_xs for first required perturbation.
Number delta_xs_min_
Smallest possible perturbation for x and s.
PDPerturbationHandler(const PDPerturbationHandler &)
Copy Constructor.
PDPerturbationHandler()
Default Constructor.
TrialStatus test_status_
Current status.
Number delta_cd()
Compute perturbation value for constraints.
Number delta_x_last_
The last nonzero value for delta_x.
Number delta_c_last_
The last nonzero value for delta_c.
TrialStatus
Status of current trial configuration.
@ TEST_DELTA_C_GT_0_DELTA_X_GT_0
@ TEST_DELTA_C_EQ_0_DELTA_X_EQ_0
@ TEST_DELTA_C_EQ_0_DELTA_X_GT_0
@ TEST_DELTA_C_GT_0_DELTA_X_EQ_0
void finalize_test()
This method is call whenever a matrix had been factorization and is not singular.
Number delta_xs_max_
Maximal perturbation for x and s.
bool get_deltas_for_wrong_inertia_called_
Flag indicating if for the given matrix the perturb for wrong inertia method has already been called.
Template class for Smart Pointers.
int Index
Type of all indices of vectors, matrices etc.
double Number
Type of all numbers.