PDPerturbationHandler Class Reference

#include <IpPDPerturbationHandler.hpp>

Inheritance diagram for PDPerturbationHandler:

AlgorithmStrategyObject ReferencedObject

List of all members.


Detailed Description

Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual system.

This class is used by the PDFullSpaceSolver to handle the cases where the primal-dual system is singular or has the wrong inertia. The perturbation factors are obtained based on simple heuristics, taking into account the size of previous perturbations.

Public Member Functions

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.
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 perturbation factors.
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 singular matrix.
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 matrix with an incorrect number of negative eigenvalues.
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.
Constructors/Destructors
 PDPerturbationHandler ()
 Default Constructor.
virtual ~PDPerturbationHandler ()
 Default destructor.

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 Methods for IpoptType.


Constructor & Destructor Documentation

Default Constructor.

virtual ~PDPerturbationHandler (  )  [inline, virtual]

Default destructor.


Member Function Documentation

bool InitializeImpl ( const OptionsList options,
const std::string &  prefix 
) [virtual]

Implementation of the initialization method that has to be overloaded by for each derived class.

Implements AlgorithmStrategyObject.

References OptionsList::GetNumericValue().

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 perturbation factors.

Usually, the returned perturbation factors are zero, but if the system is thought to be structurally singular, they might be positive. If the return value is false, no suitable perturbation could be found.

References IpoptData::Append_info_string(), DBG_ASSERT, DBG_START_METH, AlgorithmStrategyObject::IpData(), and IpoptData::Set_info_regu_x().

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 singular matrix.

If the return value is false, no suitable perturbation could be found.

References IpoptData::Append_info_string(), DBG_ASSERT, DBG_START_METH, AlgorithmStrategyObject::IpData(), Ipopt::J_DETAILED, Ipopt::J_LINEAR_ALGEBRA, AlgorithmStrategyObject::Jnlst(), Journalist::Printf(), and IpoptData::Set_info_regu_x().

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 matrix with an incorrect number of negative eigenvalues.

If the return value is false, no suitable perturbation could be found.

References DBG_ASSERT, and DBG_START_METH.

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.

void RegisterOptions ( SmartPtr< RegisteredOptions roptions  )  [static]

Methods for IpoptType.

Referenced by Ipopt::RegisterOptions_Algorithm().


The documentation for this class was generated from the following files:

Generated on Fri Sep 26 07:44:26 2008 for SimTKcore by  doxygen 1.5.6