NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | List of all members
LOCA::MultiPredictor::Secant Class Reference

Secant predictor strategy More...

#include <LOCA_MultiPredictor_Secant.H>

Inheritance diagram for LOCA::MultiPredictor::Secant:
Inheritance graph
[legend]
Collaboration diagram for LOCA::MultiPredictor::Secant:
Collaboration graph
[legend]

Public Member Functions

 Secant (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &predParams)
 Constructor. More...
 
virtual ~Secant ()
 Destructor.
 
 Secant (const Secant &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
LOCA::MultiPredictor::AbstractStrategy
operator= (const LOCA::MultiPredictor::AbstractStrategy &source)
 Assignment operator.
 
virtual Teuchos::RCP
< LOCA::MultiPredictor::AbstractStrategy
clone (NOX::CopyType type=NOX::DeepCopy) const
 Clone function.
 
virtual
NOX::Abstract::Group::ReturnType 
compute (bool baseOnSecant, const std::vector< double > &stepSize, LOCA::MultiContinuation::ExtendedGroup &grp, const LOCA::MultiContinuation::ExtendedVector &prevXVec, const LOCA::MultiContinuation::ExtendedVector &xVec)
 Compute the predictor given the current and previous solution vectors. Set baseOnSecant to false if the predictor orientation should not be based on the secant vector (first or last steps of a continuation run). More...
 
virtual
NOX::Abstract::Group::ReturnType 
evaluate (const std::vector< double > &stepSize, const LOCA::MultiContinuation::ExtendedVector &xVec, LOCA::MultiContinuation::ExtendedMultiVector &result) const
 Evaluate predictor with step size stepSize. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeTangent (LOCA::MultiContinuation::ExtendedMultiVector &tangent)
 Compute tangent to predictor and store in tangent.
 
virtual bool isTangentScalable () const
 Is the tangent vector for this predictor scalable. More...
 
- Public Member Functions inherited from LOCA::MultiPredictor::AbstractStrategy
 AbstractStrategy ()
 Constructor.
 
virtual ~AbstractStrategy ()
 Destructor.
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 LOCA global data object.
 
Teuchos::RCP
< LOCA::MultiPredictor::AbstractStrategy
firstStepPredictor
 First step predictor.
 
bool isFirstStep
 Flag indicating whether this is the first step.
 
bool isFirstStepComputed
 Flag indicating whether first step predictor has been computed.
 
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedMultiVector
predictor
 Stores predictor vector.
 
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedVector
secant
 Stores secant vector for setting orientation.
 
bool initialized
 Flag indicating whether vectors have been initialized.
 

Additional Inherited Members

- Protected Member Functions inherited from LOCA::MultiPredictor::AbstractStrategy
virtual void setPredictorOrientation (bool baseOnSecant, const std::vector< double > &stepSize, const LOCA::MultiContinuation::ExtendedGroup &grp, const LOCA::MultiContinuation::ExtendedVector &prevXVec, const LOCA::MultiContinuation::ExtendedVector &xVec, LOCA::MultiContinuation::ExtendedVector &secant, LOCA::MultiContinuation::ExtendedMultiVector &tangent)
 Sets orientation of predictor based on parameter change from previous steps. More...
 

Detailed Description

Secant predictor strategy

This class implements a predictor strategy based on computing the secant vector $v$ to the continuation curve given by

\[ v = x - x_o \]

where $x$ is the current solution vector and $x_o$ is the previous solution vector. Note that for multi-parameter continuation, the solution component for each secant direction is given as above, with the parameter components given by the identity matrix.

For the first step of a continuation run, $x_o$ is not defined, and so a different predictor is used for this step. This predictor is specified via the "First Step Predictor" sublist of the "Predictor" sublist. This predictor is instantiated using the LOCA::Factory as usual.

The parameters used by this class supplied in the constructor are:

Constructor & Destructor Documentation

LOCA::MultiPredictor::Secant::Secant ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
const Teuchos::RCP< LOCA::Parameter::SublistParser > &  topParams,
const Teuchos::RCP< Teuchos::ParameterList > &  predParams 
)

Constructor.

Parameters
global_data[in] Global data object used for LOCA::Factory
topParams[in] Parsed top-level parameter list used when creating first step predictor
predParams[in] Predictor parameters used to obtain "First Step Predictor" as described above.

References firstStepPredictor, Teuchos::ParameterList::get(), LOCA::Parameter::SublistParser::getSublist(), globalData, and LOCA::GlobalData::locaFactory.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::MultiPredictor::Secant::compute ( bool  baseOnSecant,
const std::vector< double > &  stepSize,
LOCA::MultiContinuation::ExtendedGroup grp,
const LOCA::MultiContinuation::ExtendedVector prevXVec,
const LOCA::MultiContinuation::ExtendedVector xVec 
)
virtual

Compute the predictor given the current and previous solution vectors. Set baseOnSecant to false if the predictor orientation should not be based on the secant vector (first or last steps of a continuation run).

This method actually implements the secant calculation described above

Implements LOCA::MultiPredictor::AbstractStrategy.

References LOCA::MultiContinuation::ExtendedVector::clone(), LOCA::Extended::Vector::createMultiVector(), NOX::Abstract::Group::Ok, NOX::Abstract::Vector::scale(), NOX::ShapeCopy, NOX::Utils::StepperDetails, and LOCA::Extended::Vector::update().

NOX::Abstract::Group::ReturnType LOCA::MultiPredictor::Secant::evaluate ( const std::vector< double > &  stepSize,
const LOCA::MultiContinuation::ExtendedVector xVec,
LOCA::MultiContinuation::ExtendedMultiVector result 
) const
virtual

Evaluate predictor with step size stepSize.

This method computes result[i] = xVec[i] + stepSize[i] * v[i] for each i, where v[i] is the ith predictor direction.

Implements LOCA::MultiPredictor::AbstractStrategy.

References NOX::Abstract::Group::Ok.

bool LOCA::MultiPredictor::Secant::isTangentScalable ( ) const
virtual

Is the tangent vector for this predictor scalable.

For the secant predictor, this always returns true.

Implements LOCA::MultiPredictor::AbstractStrategy.


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