|
NOX Development
|
Holder for objects that are shared between NOX::Abstract::Groups. More...
#include <NOX_SharedObjectTemplate.H>

Public Member Functions | |
| SharedObject (const Teuchos::RCP< Object > &newObject) | |
| Constructor. | |
| ~SharedObject () | |
| Destructor. | |
| Teuchos::RCP< Object > | getObject (const Owner *newOwner) |
| Get a non-const reference to the underlying object. | |
| Teuchos::RCP< const Object > | getObject () const |
| Return a const reference to the underlying object. | |
| bool | isOwner (const Owner *checkOwner) const |
| Return true if testOwner is the owner of the Jacobian. | |
Protected Attributes | |
| Teuchos::RCP< Object > | object |
| Pointer to the shared object. | |
| const Owner * | owner |
| Pointer to const object that owns the shared object. | |
Holder for objects that are shared between NOX::Abstract::Groups.
Due to the size of certain operators (i.e. the Jacobian and Preconditioning Matrices), we cannot afford to have multiple copies. Instead we implement a shared object class that that all groups use.
|
inline |
|
inline |
Return a const reference to the underlying object.
References object.
|
inline |
Get a non-const reference to the underlying object.
Referenced by NOX::Epetra::Group::applyJacobianInverse(), NOX::Epetra::Group::computeGradient(), NOX::Epetra::Group::computeJacobian(), NOX::Epetra::Group::computeNormNewtonSolveResidual(), NOX::Epetra::Group::getLinearSystem(), NOX::Epetra::Group::getLinearSystem(), NOX::Epetra::Group::Group(), NOX::Epetra::Group::isPreconditioner(), and NOX::Epetra::Group::operator=().
|
inline |
Return true if testOwner is the owner of the Jacobian.
References owner.
Referenced by NOX::Epetra::Group::isJacobian(), and NOX::Epetra::Group::isPreconditioner().
|
protected |
Pointer to the shared object.
Referenced by getObject(), getObject(), and SharedObject().
|
protected |
Pointer to const object that owns the shared object.
Referenced by getObject(), isOwner(), and SharedObject().