NOX
Development
|
Shared Jacobian for NOX::Petsc::Group objects. More...
#include <NOX_Petsc_SharedJacobian.H>
Public Member Functions | |
SharedJacobian (Mat &j) | |
Constructor. | |
SharedJacobian (Mat &j, Mat &p) | |
Constructor with separate Matrices for the Jacobian and preconditioner. | |
~SharedJacobian () | |
Destructor. | |
Mat & | getJacobian (const Group *newowner) |
Get a reference to the Jacobian AND take ownership. | |
const Mat & | getJacobian () const |
Return a const pointer to the Jacobian. | |
bool | isOwner (const Group *grp) const |
Return true if grp is the owner of the Jacobian. | |
Mat & | getPrec (const Group *newowner) |
Get a reference to the Jacobian AND take ownership. | |
const Mat & | getPrec () const |
Return a const pointer to the Jacobian. | |
Protected Attributes | |
Mat * | jacobian |
Pointer to Petsc Jacobian matrix. | |
Mat * | prec |
Pointer to Petsc Preconditioning Matrix. | |
const Group * | owner |
Pointer to const group that owns Jacobian. | |
Shared Jacobian for NOX::Petsc::Group objects.
Due to the size of the Jacobian, we cannot afford to have multiple copies. Instead we implement a shared Jacobian that all groups use.
NOTE: An additional matrix is included with the SharedJacobian in anticipation of having a separate Matrix for the Jacobian and the Preconditioner. This option will be available in the future.