#include <LOCA_LAPACK_Group.H>
Inheritance diagram for LOCA::LAPACK::Group:
Public Member Functions | |
| Group (LOCA::LAPACK::Interface &i, bool hasMassMat=false) | |
| Constructor. | |
| Group (NOX::Parameter::List ¶ms, LOCA::LAPACK::Interface &i, bool hasMassMat=false) | |
| Constructor with parameter list. | |
| Group (LOCA::LAPACK::Interface &i, int m, int n, bool hasMassMat=false) | |
| Constructor with used and allocated dimensions of matrices. | |
| Group (NOX::Parameter::List ¶ms, LOCA::LAPACK::Interface &i, int m, int n, bool hasMassMat=false) | |
| Constructor with parameter list and with used, allocated dims. | |
| Group (const LOCA::LAPACK::Group &source, NOX::CopyType type=NOX::DeepCopy) | |
| Copy constructor. | |
| ~Group () | |
| Destructor. | |
| LOCA::LAPACK::Group & | operator= (const LOCA::LAPACK::Group &source) |
| Assignment operator. | |
| void | printSolution (const NOX::LAPACK::Vector &x_, const double conParam) const |
| Print out a vector and a parameter. | |
| virtual NOX::Abstract::Group::ReturnType | applyMassMatrix (const NOX::LAPACK::Vector &input, NOX::LAPACK::Vector &result) const |
| LAPACK interface to applyMassMatrix | |
| bool | hasMass () const |
| Returns true if system has a mass matrix. | |
Overloaded NOX::LAPACK::Group methods. | |
| NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Assignment operator. | |
| NOX::LAPACK::Group & | operator= (const NOX::LAPACK::Group &source) |
| Assignment operator. | |
| NOX::Abstract::Group * | clone (NOX::CopyType type=NOX::DeepCopy) const |
| Cloning function. | |
| NOX::Abstract::Group::ReturnType | computeF () |
| Overloaded computeF(). | |
| NOX::Abstract::Group::ReturnType | computeJacobian () |
| Overloaded computeJacobian(). | |
Implementation of LOCA::Abstract::Group virtual methods. | |
| LOCA::Abstract::Group & | operator= (const LOCA::Abstract::Group &source) |
| Assignment operator. | |
Implementation of LOCA::Continuation::AbstractGroup virtual methods. | |
| void | setParams (const LOCA::ParameterVector &p) |
| Set the parameter vector. | |
| 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 parameter vector 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 | scaleVector (NOX::Abstract::Vector &x) const |
| Scales a vector. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverseMulti (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector *const *inputs, NOX::Abstract::Vector **outputs, int nVecs) const |
| applyJacobianInverse for multiple right-hand sides | |
| virtual NOX::Abstract::Group::ReturnType | computeEigenvalues (NOX::Parameter::List ¶ms) |
| Compute eigenvalues/eigenvectors. | |
| void | printSolution (const double conParam) const |
| Print out the solution vector and continuation parameter. | |
| void | printSolution (const NOX::Abstract::Vector &x_, const double conParam) const |
| Print out a vector and a parameter. | |
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::TimeDependent::AbstractGroup virtual methods. | |
| virtual NOX::Abstract::Group::ReturnType | computeMassMatrix () |
| Compute the mass matrix of the system. | |
| virtual NOX::Abstract::Group::ReturnType | applyMassMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Multiply the mass matrix by a vector. | |
| virtual bool | isMassMatrix () const |
| Returns true if mass matrix is valid. | |
Implementation of LOCA::Bifurcation::HopfBord::AbstractGroup virtual methods. | |
| virtual NOX::Abstract::Group::ReturnType | applyComplexInverse (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, double frequency, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const |
Solve . | |
| virtual NOX::Abstract::Group::ReturnType | applyComplexInverseMulti (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector *const *inputs_real, const NOX::Abstract::Vector *const *inputs_imag, double frequency, NOX::Abstract::Vector **results_real, NOX::Abstract::Vector **results_imag, int nVecs) const |
| applyComplexInverse for multiple right-hand-sides | |
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 | resetIsValid () |
| resets isValid flags | |
Protected Attributes | |
| LOCA::LAPACK::Interface & | locaProblemInterface |
| Referece to current problem. | |
| ParameterVector | params |
| vector of parameters | |
| NOX::LAPACK::Matrix | massMatrix |
| Mass matrix. | |
| bool | hasMassMatrix |
| Flag indicating whether we have a mass matrix. | |
| bool | isValidMass |
| Flag indicating whether mass matrix is valid. | |
This class is derived both from the NOX::LAPACK::Group and LOCA::Abstract::Group classes and therefore inherits the implementation of the NOX::Abstract::Group interface provided by NOX::LAPACK::Group.
This class provides implementations of LOCA AbstractGroup virtual methods specific to the LAPACK 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 LAPACK routines DGEEV and DGGEV, augements the Jacobian matrix for homotopy (LOCA::Homotopy::AbstractGroup), and stores and manipulates a mass matrix (LOCA::Bifurcation::HopfBord::AbstractGroup). 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. This group can therefore be used as an underlying group for all of LOCA's continuation and bifurcation algorithms.
The computeF() and computeJacobian() methods of the NOX::LAPACK::Group parent class are overloaded here. They both set the entire contents of the parameter vector in the problem interface before calling the NOX::LAPACK::Group computeF() and computeJacobian().
This group has several constructors supplying different information. All require a LOCA::LAPACK::Interface object to link to the application code. Set hasMassMat to true if the system has a mass matrix (only relevant for eigenvalue and Hopf calculations). Pass a parameter list to change the algorithm used for singular Jacobian matrix solves (see LOCA::Bifurcation::TPBord::SingularSolveGroup, only relevant for turning point and pitchfork calculations). Finally, separate used and allocated row/column dimensions can be specified. This functionality exists primarily to link with Fortran codes which preallocate all arrays to a fixed size but only use a portion of that array.
|
||||||||||||
|
Constructor. Set hasMassMat to true if the system has a mass matrix (Only relevant for eigenvalue and Hopf calculations). |
|
||||||||||||||||
|
Constructor with parameter list. Pass a parameter for singular matrix solves. (see LOCA::Bifurcation::TPBord::SingularSolveGroup) |
|
||||||||||||||||||||||||||||||||||||
|
Solve a bordered system of equations. Compute the solution to the bordered system of equations
Reimplemented from LOCA::Abstract::Group. |
|
|
Overloaded computeF(). Calls LOCA::LAPACK::Interface::setParams before evalulating F. Reimplemented from NOX::LAPACK::Group. |
|
|
Overloaded computeJacobian(). Calls LOCA::LAPACK::Interface::setParams before evalulating J. Reimplemented from NOX::LAPACK::Group. |
|
||||||||||||
|
Compute a scaled dot product. The implementation here is a.dot(b) / a.length() 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. The implementation here is x.scale(1.0/sqrt(x.length)) Reimplemented from LOCA::Continuation::AbstractGroup. |
1.3.9.1