#include <LOCA_EpetraNew_Group.H>
Inheritance diagram for LOCA::EpetraNew::Group:
Public Member Functions | |
| Group (NOX::Parameter::List &printingParams, LOCA::EpetraNew::Interface::Required &i, NOX::Epetra::Vector &initialGuess, const LOCA::ParameterVector &p) | |
| Constructor with NO linear system (VERY LIMITED). | |
| Group (NOX::Parameter::List &printingParams, LOCA::EpetraNew::Interface::Required &i, NOX::Epetra::Vector &initialGuess, NOX::EpetraNew::LinearSystem &linSys, const LOCA::ParameterVector &p) | |
| Standard Constructor. | |
| Group (NOX::Parameter::List &printingParams, LOCA::EpetraNew::Interface::TimeDependent &i, NOX::Epetra::Vector &initialGuess, NOX::EpetraNew::LinearSystem &linSys, const LOCA::ParameterVector &p) | |
| Constructor with time-dependent interface. | |
| 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::EpetraNew::Interface::Required & | 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. | |
| void | setJacobianOperatorForSolve (const Epetra_Operator &op) const |
| Sets the Jacobian operator. | |
Overloaded NOX::EpetraNew::Group methods. | |
| virtual NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Assignment operator. | |
| virtual NOX::Abstract::Group & | operator= (const NOX::EpetraNew::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. | |
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::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). | |
Implementation of LOCA::TimeDependent::AbstractGroup virtual methods. | |
| virtual NOX::Abstract::Group::ReturnType | computeMassMatrix () |
| virtual NOX::Abstract::Group::ReturnType | applyMassMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| virtual bool | isMassMatrix () const |
| Is mass matrix valid. | |
| virtual NOX::Abstract::Group::ReturnType | applyShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result, double shift) const |
| virtual NOX::Abstract::Group::ReturnType | applyShiftedMatrix (const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result, double shift) const |
| virtual NOX::Abstract::Group::ReturnType | applyShiftedMatrixInverse (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result, double shift) |
Implementation of LOCA::Bifurcation::TPBord::AbstractGroup virtual methods. | |
| virtual void | scaleVector (NOX::Abstract::Vector &x) const |
| Scales a vector using scaling vector. | |
Protected Attributes | |
| LOCA::ParameterVector | params |
| Parameter vector. | |
| LOCA::EpetraNew::Interface::Required & | userInterface |
| Reference to the user supplied interface functions. | |
| bool | interfaceTime |
| Flag indicating whether interface is derived from LOCA::EpetraNew::Interface::TimeDependent. | |
| 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::EpetraNew::Group and LOCA::Abstract::Group classes and therefore inherits the implementation of the NOX::Abstract::Group interface provided by NOX::EpetraNew::Group.
This class provides implementations of LOCA AbstractGroup virtual methods specific to the EpetraNew 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::EpetraNew::Group parent class are overloaded here. They both set the entire contents of the parameter vector in the problem interface before calling the NOX::EpetraNew::Group computeF() and computeJacobian().
|
||||||||||||||||||||
|
Constructor with NO linear system (VERY LIMITED). WARNING: If this constructor is used, then methods that require a Jacobian or preconditioning will not be available. You will be limited to simple algorithms like nonlinear-CG with no preconditioning. |
|
||||||||||||||||||||||||||||||||||||
|
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. |
|
||||||||||||
|
Multiply the mass matrix by a vector. (Currently only has matrix-free implementation.) Reimplemented from LOCA::TimeDependent::AbstractGroup. |
|
||||||||||||||||
|
Multiply the shifted matrix by a vector. (Currently only has matrix-free implementation.) Reimplemented from LOCA::TimeDependent::AbstractGroup. |
|
||||||||||||||||||||
|
Solve the linear system with the shifted matrix, using the same solver and settings as for the Jacobian matrix. Reimplemented from LOCA::Abstract::Group. |
|
|
Overloaded computeF(). Calls LOCA::EpetraNew::Interface::setParams before evalulating F. Reimplemented from NOX::EpetraNew::Group. |
|
|
Overloaded computeJacobian(). Calls LOCA::EpetraNew::Interface::setParams before evalulating J. Reimplemented from NOX::EpetraNew::Group. |
|
|
Compute the mass matrix for the system. (Currently only has matrix-free implementation.) Reimplemented from LOCA::TimeDependent::AbstractGroup. |
|
||||||||||||
|
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. |
|
|
Is mass matrix valid. The default assumes the mass matrix is the identity, and therefore merely returns true. Reimplemented from LOCA::TimeDependent::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