#include <NOX_Petsc_Group.H>
Inheritance diagram for NOX::Petsc::Group:
Public Member Functions | |
| Group (Interface &i, Vec &x, Mat &J) | |
| Constructor. | |
| Group (const Group &source, CopyType type=DeepCopy) | |
| Copy constructor. If type is DeepCopy, takes ownership of valid shared Jacobian. | |
| virtual | ~Group () |
| Destructor. | |
| virtual Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Copies the source group into this group. | |
| virtual Abstract::Group & | operator= (const Group &source) |
| See above. | |
| virtual Abstract::Group * | clone (CopyType type=DeepCopy) const |
"Compute" functions. | |
| virtual void | setX (const Vector &y) |
| virtual void | setX (const Abstract::Vector &y) |
| See above. | |
| virtual void | computeX (const Group &grp, const Vector &d, double step) |
| virtual void | computeX (const Abstract::Group &grp, const Abstract::Vector &d, double step) |
| See above. | |
| virtual Abstract::Group::ReturnType | computeF () |
| Compute and store F(x). | |
| virtual Abstract::Group::ReturnType | computeJacobian () |
| Compute and store Jacobian. | |
| virtual Abstract::Group::ReturnType | computeGradient () |
| Compute and store gradient. | |
| virtual Abstract::Group::ReturnType | computeNewton (Parameter::List ¶ms) |
Jacobian operations. | |
Operations using the Jacobian matrix. These may not be defined in matrix-free scenarios. | |
| virtual Abstract::Group::ReturnType | applyJacobian (const Vector &input, Vector &result) const |
| virtual Abstract::Group::ReturnType | applyJacobian (const Abstract::Vector &input, Abstract::Vector &result) const |
| See above. | |
| virtual Abstract::Group::ReturnType | applyJacobianTranspose (const Vector &input, Vector &result) const |
| virtual Abstract::Group::ReturnType | applyJacobianTranspose (const Abstract::Vector &input, Abstract::Vector &result) const |
| See above. | |
| virtual Abstract::Group::ReturnType | applyRightPreconditioning (const Vector &input, Vector &result) const |
| Preconditions a vector using one of the available methods in Petsc. | |
| virtual Abstract::Group::ReturnType | applyRightPreconditioning (Parameter::List &, const Abstract::Vector &input, Abstract::Vector &result) const |
| See above. | |
"Is" functions | |
Checks to see if various objects have been computed. Returns true if the corresponding "compute" function has been called since the last update to the solution vector (via instantiation or computeX). | |
| virtual bool | isF () const |
| Return true if F is valid. | |
| virtual bool | isJacobian () const |
| Return true if the Jacobian is valid. | |
| virtual bool | isGradient () const |
| Return true if the gradient is valid. | |
| virtual bool | isNewton () const |
| Return true if the Newton direction is valid. | |
| virtual bool | isPreconditioner () const |
"Get" functions | |
Note that these function do not check whether or not the vectors are valid. Must use the "Is" functions for that purpose. | |
| virtual const Abstract::Vector & | getX () const |
| Return solution vector. | |
| virtual const Abstract::Vector & | getF () const |
| Return F(x). | |
| virtual double | getNormF () const |
| Return 2-norm of F(x). | |
| virtual const Abstract::Vector & | getGradient () const |
| Return gradient. | |
| virtual const Abstract::Vector & | getNewton () const |
| Return Newton direction. | |
Protected Member Functions | |
| virtual void | resetIsValid () |
| resets the isValid flags to false | |
Protected Attributes | |
| double | normRHS |
| Norm of RHS. | |
| SharedJacobian * | sharedJacobianPtr |
| Pointer to shared Jacobian matrix. | |
| SharedJacobian & | sharedJacobian |
| Reference to shared Jacobian matrix. | |
| string | jacType |
| Specification of Jacobian Type. | |
| Interface & | userInterface |
| Reference to the user supplied interface functions. | |
Vectors | |
| Vector | xVector |
| Solution vector. | |
| Vector | RHSVector |
| Right-hand-side vector (function evaluation). | |
| Vector | gradVector |
| Gradient vector (steepest descent vector). | |
| Vector | NewtonVector |
| Newton direction vector. | |
IsValid flags | |
True if the current solution is up-to-date with respect to the currect xVector. | |
| bool | isValidRHS |
| bool | isValidJacobian |
| bool | isValidGrad |
| bool | isValidNewton |
| bool | isValidPreconditioner |
|
||||||||||||
|
Preconditions a vector using one of the available methods in Petsc. Currently, the preconditioning method corresponds to whatever is available in the user's Petsc installation and is specified in the local .petscrc file. For example, a direct solve can be accomplished by specifying -pc_type lu (serial only), whereas diagonal scaling can be achieved via -pc_type jacobi. |
|
|
Compute and store F(x).
Implements NOX::Abstract::Group. |
|
|
Compute and store gradient.
We can pose the nonlinear equation problem
In that case, the gradient (of
Reimplemented from NOX::Abstract::Group. |
|
|
Compute and store Jacobian. Recall that
The Jacobian is denoted by
Reimplemented from NOX::Abstract::Group. |
|
|
Return 2-norm of F(x). In other words,
Implements NOX::Abstract::Group. |
|
|
Return true if the gradient is valid.
Reimplemented from NOX::Abstract::Group. |
|
|
Return true if the Jacobian is valid.
Reimplemented from NOX::Abstract::Group. |
|
|
Return true if the Newton direction is valid.
Reimplemented from NOX::Abstract::Group. |
|
|
Copies the source group into this group.
Implements NOX::Abstract::Group. |
1.3.9.1