#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. |
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.
Definition at line 58 of file NOX_SharedObjectTemplate.H.
NOX::SharedObject< Object, Owner >::SharedObject | ( | const Teuchos::RCP< Object > & | newObject | ) | [inline] |
NOX::SharedObject< Object, Owner >::~SharedObject | ( | ) | [inline] |
Teuchos::RCP<Object> NOX::SharedObject< Object, Owner >::getObject | ( | const Owner * | newOwner | ) | [inline] |
Get a non-const reference to the underlying object.
Definition at line 71 of file NOX_SharedObjectTemplate.H.
Referenced by LOCA::Epetra::Group::applyComplexMultiVector(), NOX::Epetra::Group::applyJacobianInverse(), LOCA::Epetra::Group::applyJacobianTransposeInverse(), LOCA::Epetra::Group::applyJacobianTransposeInverseMultiVector(), LOCA::Epetra::Group::applyShiftedMatrixInverseMultiVector(), LOCA::Epetra::Group::augmentJacobianForHomotopy(), LOCA::Epetra::Group::computeComplex(), NOX::Epetra::Group::computeGradient(), NOX::Epetra::Group::computeJacobian(), NOX::Epetra::Group::computeNormNewtonSolveResidual(), LOCA::Epetra::Group::computeShiftedMatrix(), NOX::Epetra::Group::getLinearSystem(), NOX::Epetra::Group::Group(), NOX::Epetra::Group::isPreconditioner(), NOX::Epetra::Group::operator=(), and LOCA::Epetra::Group::setJacobianOperatorForSolve().
Teuchos::RCP<const Object> NOX::SharedObject< Object, Owner >::getObject | ( | ) | const [inline] |
Return a const reference to the underlying object.
Definition at line 78 of file NOX_SharedObjectTemplate.H.
bool NOX::SharedObject< Object, Owner >::isOwner | ( | const Owner * | checkOwner | ) | const [inline] |
Return true if testOwner is the owner of the Jacobian.
Definition at line 82 of file NOX_SharedObjectTemplate.H.
Referenced by NOX::Epetra::Group::isJacobian(), and NOX::Epetra::Group::isPreconditioner().
Teuchos::RCP<Object> NOX::SharedObject< Object, Owner >::object [protected] |
Pointer to the shared object.
Definition at line 83 of file NOX_SharedObjectTemplate.H.
Referenced by NOX::SharedObject< NOX::Epetra::LinearSystem, NOX::Epetra::Group >::getObject().
const Owner* NOX::SharedObject< Object, Owner >::owner [protected] |
Pointer to const object that owns the shared object.
Definition at line 91 of file NOX_SharedObjectTemplate.H.
Referenced by NOX::SharedObject< NOX::Epetra::LinearSystem, NOX::Epetra::Group >::getObject().