|
Panzer Version of the Day
|
Tpetra-backed implementation of LinearObjContainer. More...
#include <Panzer_TpetraLinearObjContainer.hpp>

Public Types | |
| typedef LinearObjContainer::Members | Members |
| typedef Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > | VectorType |
| typedef Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > | MultiVectorType |
| typedef Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > | CrsMatrixType |
| typedef Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > | CrsGraphType |
| typedef Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > | MapType |
| typedef Tpetra::Import< LocalOrdinalT, GlobalOrdinalT, NodeT > | ImportType |
| typedef Tpetra::Export< LocalOrdinalT, GlobalOrdinalT, NodeT > | ExportType |
Public Types inherited from panzer::LinearObjContainer | |
| enum | Members { X =0x1 , DxDt =0x2 , F =0x4 , Mat =0x8 } |
| Bitmask flags identifying which of the linear objects (solution, time derivative, residual, matrix) are present/requested. More... | |
Public Member Functions | |
| TpetraLinearObjContainer (const Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > &domain, const Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > &range) | |
| Construct from the domain (solution) and range (residual) Tpetra maps, building the corresponding Thyra vector spaces. | |
| virtual void | initialize () |
| Zeroes out whichever of x, dxdt, f, and A are currently set. | |
| void | clear () |
| Wipe out stored data. | |
Public Member Functions inherited from panzer::LinearObjContainer | |
| virtual | ~LinearObjContainer () |
Public Member Functions inherited from panzer::GlobalEvaluationData_Default | |
| GlobalEvaluationData_Default () | |
| GlobalEvaluationData_Default (const GlobalEvaluationData_Default &s) | |
| virtual void | ghostToGlobal (int) |
| virtual void | globalToGhost (int) |
| virtual void | initializeData () |
| void | setRequiresDirichletAdjustment (bool b) |
| bool | requiresDirichletAdjustment () const |
Public Member Functions inherited from panzer::GlobalEvaluationData | |
| virtual | ~GlobalEvaluationData ()=0 |
| virtual void | print (std::ostream &os) const |
| Diagnostic function for determinning what's in this object. | |
Public Member Functions inherited from panzer::ThyraObjContainer< ScalarT > | |
| virtual | ~ThyraObjContainer () |
| void | clear () |
Private Member Functions | |
| TpetraLinearObjContainer () | |
ThyraObjContainer overrides: Thyra-wrapped views of the same underlying Tpetra data. | |
| typedef Thyra::TpetraOperatorVectorExtraction< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > | TOE |
| Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > | domainSpace |
| Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > | rangeSpace |
| Teuchos::RCP< Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > | x |
| Teuchos::RCP< Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > | dxdt |
| Teuchos::RCP< Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > | f |
| Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > | A |
| Teuchos::RCP< Thyra::VectorBase< ScalarT > > | toThyraVector (const Teuchos::RCP< MultiVectorType > &mv, const Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > &space) const |
| Wrap one of x/dxdt/f as a Thyra vector, whatever concrete kind it is. | |
| virtual void | set_x_th (const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &in) |
| virtual Teuchos::RCP< Thyra::VectorBase< ScalarT > > | get_x_th () const |
| virtual void | set_dxdt_th (const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &in) |
| virtual Teuchos::RCP< Thyra::VectorBase< ScalarT > > | get_dxdt_th () const |
| virtual void | set_f_th (const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &in) |
| virtual Teuchos::RCP< Thyra::VectorBase< ScalarT > > | get_f_th () const |
| virtual void | set_A_th (const Teuchos::RCP< Thyra::LinearOpBase< ScalarT > > &in) |
| virtual Teuchos::RCP< Thyra::LinearOpBase< ScalarT > > | get_A_th () const |
Direct Tpetra accessors for the solution, time derivative, residual, and Jacobian. | |
| void | set_x (const Teuchos::RCP< MultiVectorType > &in) |
| const Teuchos::RCP< VectorType > | get_x () const |
| const Teuchos::RCP< MultiVectorType > | get_x_mv () const |
| void | set_dxdt (const Teuchos::RCP< MultiVectorType > &in) |
| const Teuchos::RCP< VectorType > | get_dxdt () const |
| const Teuchos::RCP< MultiVectorType > | get_dxdt_mv () const |
| void | set_f (const Teuchos::RCP< MultiVectorType > &in) |
| const Teuchos::RCP< VectorType > | get_f () const |
| const Teuchos::RCP< MultiVectorType > | get_f_mv () const |
| void | set_A (const Teuchos::RCP< CrsMatrixType > &in) |
| const Teuchos::RCP< CrsMatrixType > | get_A () const |
| void | initializeMatrix (ScalarT value) |
Sets every entry of the Jacobian matrix A to value. | |
Tpetra-backed implementation of LinearObjContainer.
Holds the solution vector x, its time derivative dxdt, the residual vector f, and the Jacobian matrix A as Tpetra objects, and (via ThyraObjContainer) exposes Thyra-wrapped views of the same data so panzer's linear-algebra-agnostic code can operate on them without depending on Tpetra directly. Built and populated by a matching Tpetra linear object factory.
| ScalarT | the field scalar type. |
| LocalOrdinalT | local ordinal type. |
| GlobalOrdinalT | global ordinal type. |
| NodeT | Kokkos node type; defaults to panzer::TpetraNodeType. |
Definition at line 48 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef LinearObjContainer::Members panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::Members |
Definition at line 53 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::Vector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::VectorType |
Definition at line 55 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::MultiVector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::MultiVectorType |
Definition at line 56 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::CrsMatrix<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsMatrixType |
Definition at line 57 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::CrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsGraphType |
Definition at line 58 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::MapType |
Definition at line 59 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::Import<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ImportType |
Definition at line 60 of file Panzer_TpetraLinearObjContainer.hpp.
| typedef Tpetra::Export<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ExportType |
Definition at line 61 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 217 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
|
inline |
Construct from the domain (solution) and range (residual) Tpetra maps, building the corresponding Thyra vector spaces.
| [in] | domain | map for the solution/time-derivative vectors (x, dxdt) and the Jacobian's domain space. |
| [in] | range | map for the residual vector (f) and the Jacobian's range space. |
Definition at line 68 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Zeroes out whichever of x, dxdt, f, and A are currently set.
Implements panzer::LinearObjContainer.
Definition at line 79 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Wipe out stored data.
Definition at line 91 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 119 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 120 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 121 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 123 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 124 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 125 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 127 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 128 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 129 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 131 of file Panzer_TpetraLinearObjContainer.hpp.
|
inline |
Definition at line 132 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Sets every entry of the Jacobian matrix A to value.
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 136 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 146 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 154 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 157 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 165 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 168 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 170 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 173 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlinevirtual |
Implements panzer::ThyraObjContainer< ScalarT >.
Definition at line 175 of file Panzer_TpetraLinearObjContainer.hpp.
|
inlineprivate |
Wrap one of x/dxdt/f as a Thyra vector, whatever concrete kind it is.
Thyra::createVector() needs a genuine Tpetra::Vector, but these fields are stored as MultiVector so they can also hold a Tpetra::FEMultiVector (which derives from MultiVector, not Vector). Two cases:
The FE case deliberately derives its space from the vector's CURRENT map instead of reusing the container's stored space. An FEMultiVector's active map switches between its owned and owned+shared views across beginAssembly()/endAssembly(), and Thyra::createVector does NOT check the supplied space against the vector's map – it uses the space verbatim whenever one is given (see getOrCreateTpetraVectorSpace in Thyra_TpetraThyraWrappers_def.hpp). Passing the stored space blindly would therefore yield a Thyra vector silently claiming a space its data does not match, rather than an error.
Definition at line 203 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 219 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 220 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 222 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 222 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 222 of file Panzer_TpetraLinearObjContainer.hpp.
|
private |
Definition at line 223 of file Panzer_TpetraLinearObjContainer.hpp.