#include <LOCA_Epetra_Group.H>
Inheritance diagram for LOCA::Epetra::Group:
Public Member Functions | |
| Group (NOX::Parameter::List &printParams, NOX::Parameter::List &linearSolverParams, Interface &i, const ParameterVector &p, NOX::Epetra::Vector &x, Epetra_Operator &J) | |
| Constructor with Jacobian Operator only. | |
| Group (NOX::Parameter::List &printParams, NOX::Parameter::List &linearSolverParams, Interface &i, const ParameterVector &p, NOX::Epetra::Vector &x, Epetra_Operator &J, Epetra_Operator &M) | |
| Constructor with a separate Jacobian (J) and Preconditioner (M). | |
| Group (const Group &source, NOX::CopyType type=NOX::DeepCopy) | |
| Copy constructor. If type is DeepCopy, takes ownership of valid shared Jacobian and shared preconditioning matrix. | |
| virtual | ~Group () |
| Destructor. | |
| virtual Group & | operator= (const Group &source) |
| Assignment operator. | |
| virtual NOX::Epetra::Interface & | getUserInterface () |
| Return the userInterface. | |
| virtual void | printSolution (const NOX::Epetra::Vector &x, const double conParam) const |
| Call the user interface print() routine, any vector. | |
| void | setScaleVector (const NOX::Abstract::Vector &s) |
| Sets the scale vector. | |
Overloaded NOX::Epetra::Group methods. | |
| virtual NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Assignment operator. | |
| virtual NOX::Abstract::Group * | clone (NOX::CopyType type=NOX::DeepCopy) const |
| Cloning function. | |
| virtual NOX::Abstract::Group::ReturnType | computeF () |
| Overloaded computeF(). | |
| virtual NOX::Abstract::Group::ReturnType | computeJacobian () |
| Overloaded computeJacobian(). | |
Implementation of LOCA::Abstract::Group virtual methods. | |
| virtual LOCA::Abstract::Group & | operator= (const LOCA::Abstract::Group &source) |
| Assignment operator. | |
Implementation of LOCA::Continuation::AbstractGroup virtual methods. | |
| virtual void | setParams (const ParameterVector &p) |
| Set the parameters. | |
| virtual void | setParam (int paramID, double val) |
| Set parameter indexed by paramID. | |
| virtual void | setParam (string paramID, double val) |
| Set parameter indexed by paramID. | |
| const LOCA::ParameterVector & | getParams () const |
| Return a const reference to the ParameterVector owned by the group. | |
| virtual double | getParam (int paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual double | getParam (string paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual double | computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const |
| Compute a scaled dot product. | |
| virtual void | printSolution (const double conParam) const |
| Call the user interface print() routine, solution vector. | |
| virtual void | printSolution (const NOX::Abstract::Vector &x, const double conParam) const |
| Call the user interface print() routine, any vector. | |
| virtual NOX::Abstract::Group::ReturnType | applyHouseholderJacobianInverse (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector &f, const NOX::Abstract::Vector &dfdp, const NOX::Abstract::Vector &ux, double up, double beta, NOX::Abstract::Vector &result_x, double &result_p) const |
| Solve arclength continuation equations using Householder projection. | |
| virtual void | scaleVector (NOX::Abstract::Vector &x) const |
| Scales a vector using scaling vector. | |
Implementation of LOCA::MultiContinuation::AbstractGroup virtual methods. | |
| virtual void | projectToDraw (const NOX::Abstract::Vector &x, double *px) const |
| Projects solution to a few scalars for multiparameter continuation. | |
| virtual int | projectToDrawDimension () const |
| Returns the dimension of the project to draw array. | |
Implementation of LOCA::Bifurcation::TPBord::AbstractGroup virtual methods. | |
| virtual NOX::Abstract::Group::ReturnType | applyBorderedJacobianInverse (bool trans, NOX::Parameter::List ¶ms, const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b, const NOX::Abstract::Vector &vInput, double sInput, NOX::Abstract::Vector &vResult, double &sResult) const |
| Solve a bordered system of equations. | |
Implementation of LOCA::Homotopy::AbstractGroup virtual methods. | |
| virtual NOX::Abstract::Group::ReturnType | augmentJacobianForHomotopy (double conParamValue) |
Replace Jacobian by where is the identity matrix and is a scalar (conParamValue). | |
Protected Member Functions | |
| void | setBorderedAztecOptions (const NOX::Parameter::List &p, AztecOO &aztec) const |
| Sets aztec solver options for matrix-free bordered system. | |
Protected Attributes | |
| LOCA::ParameterVector | params |
| Parameter vector. | |
| Interface & | userInterface |
| Reference to the user supplied interface functions. | |
| Epetra_Vector * | tmpVectorPtr2 |
| Extra vector needed for intermediate calculations of LOCA routines. | |
| NOX::Abstract::Vector * | scaleVecPtr |
| Stores a pointer to the scale vector. | |
This class is derived both from the NOX::Epetra::Group and LOCA::Abstract::Group classes and therefore inherits the implementation of the NOX::Abstract::Group interface provided by NOX::Epetra::Group.
This class provides implementations of LOCA AbstractGroup virtual methods specific to the Epetra group. It stores a parameter vector for setting/retrieving parameter values (LOCA::Continuation::AbstractGroup), provides a facility for computing eigenvalues (LOCA::Continuation::AbstractGroup) using the Anasazi package, and augements the Jacobian matrix for homotopy (LOCA::Homotopy::AbstractGroup), It currently has no support for storing a mass matrix and therefore cannot be used in Hopf or generalized eigenvalue computations. Since it is derived from the LOCA::Abstract::Group (which is in-turn derived from all FiniteDifference groups), this group implicitly uses the finite-difference implementations of parameter and second derivatives provided by the FiniteDifference groups.
The computeF() and computeJacobian() methods of the NOX::Epetra::Group parent class are overloaded here. They both set the entire contents of the parameter vector in the problem interface before calling the NOX::Epetra::Group computeF() and computeJacobian().
|
||||||||||||||||||||||||||||
|
Constructor with Jacobian Operator only. Either there is no preconditioning or the Jacobian will be used for preconditioning. An Epetra_Operator must be supplied for the Jacobian even in Matrix-Free mode. linearSolverParams is the "Linear Solver" sublist of parameter list. The scaling vector is set to a default of all one's |
|
||||||||||||||||||||||||||||||||
|
Constructor with a separate Jacobian (J) and Preconditioner (M). linearSolverParams is the "Linear %Solver" sublist of parameter list. The scaling vector is set to a default of all one's |
|
||||||||||||||||||||||||||||||||||||
|
Solve a bordered system of equations. Compute the solution to the bordered system of equations
Reimplemented from LOCA::Abstract::Group. |
|
||||||||||||||||||||||||||||||||||||
|
Solve arclength continuation equations using Householder projection. This method computes a solution to the following system of equations
where
Here
The implementation here uses Aztec with an Ifpack preconditioner for Reimplemented from LOCA::Continuation::AbstractGroup. |
|
|
Overloaded computeF(). Calls LOCA::Epetra::Interface::setParams before evalulating F. Reimplemented from NOX::Epetra::Group. |
|
|
Overloaded computeJacobian(). Calls LOCA::Epetra::Interface::setParams before evalulating J. Reimplemented from NOX::Epetra::Group. |
|
||||||||||||
|
Compute a scaled dot product.
The implementation here uses the scaling vector
If the scaling vector is not provided, the standard dot product is used. Reimplemented from LOCA::Continuation::AbstractGroup. |
|
||||||||||||
|
Projects solution to a few scalars for multiparameter continuation.
This method is called every time a solution is saved by the multiparameter continuation code MF for later visualization and should project the solution vector down to a few scalars. The array The implementation here is to call the corresponding method in the interface. Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
|
|
Returns the dimension of the project to draw array. The implementation here is to call the corresponding method in the interface. Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
|
|
Scales a vector using scaling vector.
The implementation here uses the scaling vector
If the scaling vector is not provided, the vector is rescaled by the square root of its length. Reimplemented from LOCA::Continuation::AbstractGroup. |
|
|
Extra vector needed for intermediate calculations of LOCA routines. NOTE: there already is a tmpVectorPtr in the NOX::Epetra::Group. This is a second temporary vector if that one extra isn't enough. |
1.3.9.1