Panzer Version of the Day
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > Class Template Reference

#include <Panzer_TpetraLinearObjFactory_decl.hpp>

Inheritance diagram for panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >:
Inheritance graph
[legend]

Public Types

typedef TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > ContainerType
 
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
 
typedef Tpetra::FECrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > FECrsGraphType
 
typedef Tpetra::FECrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > FECrsMatrixType
 
typedef Tpetra::FEMultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > FEMultiVectorType
 

Public Member Functions

 TpetraLinearObjFactory (const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< const GlobalIndexer > &gidProvider, bool useFEAssembly=false)
 
 TpetraLinearObjFactory (const Teuchos::RCP< const Teuchos::Comm< int > > &comm, const Teuchos::RCP< const GlobalIndexer > &rowProvider, const Teuchos::RCP< const GlobalIndexer > &colProvider, bool useFEAssembly=false)
 
virtual ~TpetraLinearObjFactory ()
 
virtual void readVector (const std::string &, LinearObjContainer &, int) const
 
virtual void writeVector (const std::string &, const LinearObjContainer &, int) const
 
virtual Teuchos::RCP< LinearObjContainer > buildLinearObjContainer () const
 
virtual Teuchos::RCP< LinearObjContainer > buildPrimitiveLinearObjContainer () const
 
virtual Teuchos::RCP< LinearObjContainer > buildGhostedLinearObjContainer () const
 
virtual Teuchos::RCP< LinearObjContainer > buildPrimitiveGhostedLinearObjContainer () const
 
virtual void globalToGhostContainer (const LinearObjContainer &container, LinearObjContainer &ghostContainer, int) const
 
virtual void ghostToGlobalContainer (const LinearObjContainer &ghostContainer, LinearObjContainer &container, int) const
 
virtual void adjustForDirichletConditions (const LinearObjContainer &localBCRows, const LinearObjContainer &globalBCRows, LinearObjContainer &ghostedObjs, bool zeroVectorRows=false, bool adjustX=false) const
 
virtual void applyDirichletBCs (const LinearObjContainer &counter, LinearObjContainer &result) const
 
virtual Teuchos::RCP< ReadOnlyVector_GlobalEvaluationData > buildReadOnlyDomainContainer () const
 
virtual Teuchos::MpiComm< int > getComm () const
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildScatter () const
 Use preconstructed scatter evaluators.
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildGather () const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildGatherTangent () const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildGatherDomain () const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildGatherOrientation () const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > buildScatterDirichlet () const
 Use preconstructed dirichlet scatter evaluators.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraDomainSpace () const
 Get the domain space.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getGhostedThyraDomainSpace () const
 Get the domain space.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraRangeSpace () const
 Get the range space.
 
virtual Teuchos::RCP< Thyra::LinearOpBase< ScalarT > > getThyraMatrix () const
 Get a matrix operator.
 
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedTpetraVector () const
 
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedTpetraColVector () const
 
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getTpetraVector () const
 
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getTpetraColVector () const
 
Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getTpetraMatrix () const
 
Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedTpetraMatrix () const
 
bool useFEAssembly () const
 True if this factory was constructed with FE assembly enabled.
 
Teuchos::RCP< FECrsGraphType > getFEGraph () const
 Get the (cached) FE graph, built via the Tpetra::FECrsGraph "V2" constructor.
 
Teuchos::RCP< FECrsMatrixType > getFEMatrix () const
 Build a new Tpetra::FECrsMatrix over the (cached) FE graph. Fresh object per call.
 
Teuchos::RCP< FEMultiVectorType > getFEMultiVector (std::size_t numVectors=1) const
 Build a new Tpetra::FEMultiVector compatible with the FE graph.
 
Teuchos::RCP< FEMultiVectorType > getFEColMultiVector (std::size_t numVectors=1) const
 Build a domain-space (solution-side) FE multivector.
 
void initializeContainer (int, LinearObjContainer &loc) const
 
void initializeContainer (int mem, TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &loc) const
 
void initializeGhostedContainer (int, LinearObjContainer &loc) const
 
void initializeGhostedContainer (int mem, TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &loc) const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > getMap () const
 get the map from the matrix
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > getColMap () const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedMap () const
 get the ghosted map from the matrix
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedColMap () const
 
virtual const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGraph () const
 get the graph of the crs matrix
 
virtual const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedGraph () const
 get the ghosted graph of the crs matrix
 
virtual const Teuchos::RCP< Tpetra::Import< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedImport () const
 get importer for converting an overalapped object to a "normal" object
 
virtual const Teuchos::RCP< Tpetra::Import< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedColImport () const
 
virtual const Teuchos::RCP< Tpetra::Export< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedExport () const
 get exporter for converting an overalapped object to a "normal" object
 
virtual const Teuchos::RCP< Tpetra::Export< LocalOrdinalT, GlobalOrdinalT, NodeT > > getGhostedColExport () const
 
virtual const Teuchos::RCP< const Teuchos::Comm< int > > getTeuchosComm () const
 get exporter for converting an overalapped object to a "normal" object
 
Teuchos::RCP< const panzer::GlobalIndexer > getDomainGlobalIndexer () const
 
Teuchos::RCP< const panzer::GlobalIndexer > getRangeGlobalIndexer () const
 Get the domain global indexer this factory was created with.
 
virtual void beginFill (LinearObjContainer &loc) const
 Open a container for filling. Takes either a ghosted or an owned container.
 
virtual void beginFill (LinearObjContainer &ghostContainer, const LinearObjContainer &container) const
 Open the ghosted container for filling, giving it the owned container's matrix.
 
virtual void endFill (LinearObjContainer &loc) const
 Close a container after filling. Takes either a ghosted or an owned container.
 
virtual void endFill (LinearObjContainer &ghostContainer, const LinearObjContainer &container) const
 Close the ghosted container after filling, returning the borrowed matrix.
 
- Public Member Functions inherited from panzer::LinearObjFactory< Traits >
virtual ~LinearObjFactory ()
 
template<typename BuilderT >
void buildGatherScatterEvaluators (const BuilderT &builder)
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildScatter (const Teuchos::ParameterList &pl) const
 Use preconstructed scatter evaluators.
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildGather (const Teuchos::ParameterList &pl) const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildGatherTangent (const Teuchos::ParameterList &pl) const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildGatherDomain (const Teuchos::ParameterList &pl) const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildGatherOrientation (const Teuchos::ParameterList &pl) const
 Use preconstructed gather evaluators.
 
template<typename EvalT >
Teuchos::RCP< PHX::Evaluator< Traits > > buildScatterDirichlet (const Teuchos::ParameterList &pl) const
 Use preconstructed dirichlet scatter evaluators.
 
- Public Member Functions inherited from panzer::ThyraObjFactory< ScalarT >
virtual ~ThyraObjFactory ()
 

Protected Member Functions

void ghostToGlobalTpetraVector (const Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &in, Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &out, bool col) const
 
void ghostToGlobalTpetraMatrix (const Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &in, Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &out) const
 
void globalToGhostTpetraVector (const Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &in, Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &out, bool col) const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildMap () const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildColMap () const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildGhostedMap () const
 
virtual const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildGhostedColMap () const
 
virtual const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildGraph () const
 
virtual const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > buildGhostedGraph () const
 
virtual const Teuchos::RCP< FECrsGraphType > buildFEGraph () const
 

Protected Attributes

Teuchos::RCP< const Teuchos::Comm< int > > comm_
 
Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > map_
 
Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > cMap_
 
Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > ghostedMap_
 
Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > cGhostedMap_
 
Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > graph_
 
Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > ghostedGraph_
 
Teuchos::RCP< FECrsGraphType > feGraph_
 
const FECrsMatrixType * feAssemblyOpenOn_ = nullptr
 
Teuchos::RCP< ImportType > ghostedImporter_
 
Teuchos::RCP< ImportType > ghostedColImporter_
 
Teuchos::RCP< ExportType > ghostedExporter_
 
Teuchos::RCP< ExportType > ghostedColExporter_
 
Teuchos::RCP< const GlobalIndexer > gidProvider_
 
Teuchos::RCP< const GlobalIndexer > colGidProvider_
 
bool hasColProvider_
 
bool useFEAssembly_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > rangeSpace_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > domainSpace_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > ghostedDomainSpace_
 

Detailed Description

template<typename Traits, typename ScalarT, typename LocalOrdinalT, typename GlobalOrdinalT, typename NodeT = panzer::TpetraNodeType>
class panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >

Definition at line 47 of file Panzer_TpetraLinearObjFactory_decl.hpp.

Member Typedef Documentation

◆ ContainerType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef TpetraLinearObjContainer<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ContainerType

Definition at line 50 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ VectorType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Vector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::VectorType

Definition at line 51 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ MultiVectorType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::MultiVector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::MultiVectorType

Definition at line 52 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ CrsMatrixType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::CrsMatrix<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsMatrixType

Definition at line 53 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ CrsGraphType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::CrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsGraphType

Definition at line 54 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ MapType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::MapType

Definition at line 55 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ImportType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Import<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ImportType

Definition at line 56 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ExportType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Export<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ExportType

Definition at line 57 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ FECrsGraphType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::FECrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsGraphType

Definition at line 58 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ FECrsMatrixType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::FECrsMatrix<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsMatrixType

Definition at line 59 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ FEMultiVectorType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::FEMultiVector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FEMultiVectorType

Definition at line 60 of file Panzer_TpetraLinearObjFactory_decl.hpp.

Constructor & Destructor Documentation

◆ TpetraLinearObjFactory() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::TpetraLinearObjFactory ( const Teuchos::RCP< const Teuchos::Comm< int > > &  comm,
const Teuchos::RCP< const GlobalIndexer > &  gidProvider,
bool  useFEAssembly = false 
)
Parameters
[in]useFEAssemblyOpt in to building Tpetra::FECrsGraph/FECrsMatrix/FEMultiVector objects via getFEGraph()/getFEMatrix()/getFEMultiVector(). Defaults to false, which preserves prior behavior exactly and leaves those methods unusable.

Definition at line 40 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ TpetraLinearObjFactory() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::TpetraLinearObjFactory ( const Teuchos::RCP< const Teuchos::Comm< int > > &  comm,
const Teuchos::RCP< const GlobalIndexer > &  rowProvider,
const Teuchos::RCP< const GlobalIndexer > &  colProvider,
bool  useFEAssembly = false 
)

Definition at line 54 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ ~TpetraLinearObjFactory()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::~TpetraLinearObjFactory ( )
virtual

Definition at line 69 of file Panzer_TpetraLinearObjFactory_impl.hpp.

Member Function Documentation

◆ readVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::readVector ( const std::string &  identifier,
LinearObjContainer &  loc,
int  id 
) const
inlinevirtual

Read in a vector from a file. Fill a particular vector in the linear object container.

Parameters
[in]identifierKey for specifying which file(s) to read
[in]locLinear object container to fill with the vector
[in]idId for the field to be filled

Implements panzer::LinearObjFactory< Traits >.

Definition at line 79 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ writeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::writeVector ( const std::string &  identifier,
const LinearObjContainer &  loc,
int  id 
) const
inlinevirtual

Write in a vector from a file. Fill a particular vector in the linear object container.

Parameters
[in]identifierKey for specifying which file(s) to read
[in]locLinear object container to fill with the vector
[in]idId for the field to be filled

Implements panzer::LinearObjFactory< Traits >.

Definition at line 82 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< LinearObjContainer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildLinearObjContainer ( ) const
virtual

Build a container with all the neccessary linear algebra objects. This is the non-ghosted version.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 78 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildPrimitiveLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual Teuchos::RCP< LinearObjContainer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildPrimitiveLinearObjContainer ( ) const
inlinevirtual

Build a container with all the neccessary linear algebra objects, purely on the single physics. This gives linear algebra objects that are relevant for a single physics solve. In many cases this is simply a call to buildLinearObjContainer however, in a few important cases (for instance in stochastic galerkin methods) this will return a container for a single instantiation of the physics. This is the non-ghosted version.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 87 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildGhostedLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< LinearObjContainer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGhostedLinearObjContainer ( ) const
virtual

Build a container with all the neccessary linear algebra objects. This is the ghosted version.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 88 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildPrimitiveGhostedLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual Teuchos::RCP< LinearObjContainer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildPrimitiveGhostedLinearObjContainer ( ) const
inlinevirtual

Build a container with all the neccessary linear algebra objects, purely on the single physics. This gives linear algebra objects that are relevant for a single physics solve. In many cases this is simply a call to buildGhostedLinearObjContainer however, in a few important cases (for instance in stochastic galerkin methods) this will return a container for a single instantiation of the physics. This is the ghosted version.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 92 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ globalToGhostContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::globalToGhostContainer ( const LinearObjContainer &  container,
LinearObjContainer &  ghostContainer,
int  mem 
) const
virtual

◆ ghostToGlobalContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalContainer ( const LinearObjContainer &  ghostContainer,
LinearObjContainer &  container,
int  mem 
) const
virtual

◆ adjustForDirichletConditions()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::adjustForDirichletConditions ( const LinearObjContainer &  localBCRows,
const LinearObjContainer &  globalBCRows,
LinearObjContainer &  ghostedObjs,
bool  zeroVectorRows = false,
bool  adjustX = false 
) const
virtual

Adjust the residual vector and Jacobian matrix (if they exist) for applied dirichlet conditions. The adjustment considers if a boundary condition was set globally and locally and based on that result adjust the ghosted matrix and residual vector so that when they are summed across processors they resulting Dirichlet condition is correct.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 199 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ applyDirichletBCs()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::applyDirichletBCs ( const LinearObjContainer &  counter,
LinearObjContainer &  result 
) const
virtual

Adjust a vector by replacing selected rows with the value of the evaluated dirichlet conditions. This is handled through the standard container mechanism.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 277 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildReadOnlyDomainContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< ReadOnlyVector_GlobalEvaluationData > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildReadOnlyDomainContainer ( ) const
virtual

Build a GlobalEvaluationDataContainer that handles all domain communication. This is used primarily for gather operations and hides the allocation and usage of the ghosted vector from the user.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 292 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getComm()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::MpiComm< int > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getComm ( ) const
virtual

Acess to the MPI Comm used in constructing this LOF.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 325 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildScatter()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildScatter ( ) const
inline

Use preconstructed scatter evaluators.

Definition at line 137 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildGather()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGather ( ) const
inline

Use preconstructed gather evaluators.

Definition at line 142 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildGatherTangent()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGatherTangent ( ) const
inline

Use preconstructed gather evaluators.

Definition at line 147 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildGatherDomain()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGatherDomain ( ) const
inline

Use preconstructed gather evaluators.

Definition at line 152 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildGatherOrientation()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGatherOrientation ( ) const
inline

Use preconstructed gather evaluators.

Definition at line 157 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ buildScatterDirichlet()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
template<typename EvalT >
Teuchos::RCP< panzer::CloneableEvaluator > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildScatterDirichlet ( ) const
inline

Use preconstructed dirichlet scatter evaluators.

Definition at line 162 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ getThyraDomainSpace()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getThyraDomainSpace ( ) const
virtual

Get the domain space.

Implements panzer::ThyraObjFactory< ScalarT >.

Definition at line 334 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraDomainSpace()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedThyraDomainSpace ( ) const
virtual

Get the domain space.

Implements panzer::ThyraObjFactory< ScalarT >.

Definition at line 350 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getThyraRangeSpace()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getThyraRangeSpace ( ) const
virtual

Get the range space.

Implements panzer::ThyraObjFactory< ScalarT >.

Definition at line 366 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getThyraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::LinearOpBase< ScalarT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getThyraMatrix ( ) const
virtual

Get a matrix operator.

Implements panzer::ThyraObjFactory< ScalarT >.

Definition at line 378 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraVector ( ) const

Definition at line 896 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedTpetraColVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraColVector ( ) const

Definition at line 905 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraVector ( ) const

Definition at line 914 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getTpetraColVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraColVector ( ) const

Definition at line 923 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getTpetraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraMatrix ( ) const

Definition at line 932 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedTpetraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraMatrix ( ) const

Definition at line 955 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ useFEAssembly()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
bool panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::useFEAssembly ( ) const
inline

True if this factory was constructed with FE assembly enabled.

Definition at line 189 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ getFEGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsGraphType > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEGraph ( ) const

Get the (cached) FE graph, built via the Tpetra::FECrsGraph "V2" constructor.

Definition at line 524 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getFEMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsMatrixType > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEMatrix ( ) const

Build a new Tpetra::FECrsMatrix over the (cached) FE graph. Fresh object per call.

Definition at line 976 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getFEMultiVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FEMultiVectorType > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEMultiVector ( std::size_t  numVectors = 1) const

Build a new Tpetra::FEMultiVector compatible with the FE graph.

Build a range-space (residual-side) FE multivector.

Its owned+shared view is over getGhostedMap(), i.e. the same ghosted ROW map the scatter evaluators index with the GlobalIndexer's local ids, and the same map getGhostedExport() migrates from. Mirrors getGhostedTpetraVector().

Definition at line 991 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getFEColMultiVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FEMultiVectorType > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEColMultiVector ( std::size_t  numVectors = 1) const

Build a domain-space (solution-side) FE multivector.

Its owned+shared view is over getGhostedColMap(). Mirrors getGhostedTpetraColVector(); use this for x/dxdt, and getFEMultiVector() for f.

Definition at line 1013 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ initializeContainer() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeContainer ( int  mem,
LinearObjContainer &  loc 
) const
virtual

Initialize container with a specific set of member values.

Note
This will overwrite everything in the container and zero out values not requested.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 389 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ initializeContainer() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeContainer ( int  mem,
TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  loc 
) const

Initialize container with a specific set of member values.

Note
This will overwrite everything in the container and zero out values not requested.

Definition at line 398 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ initializeGhostedContainer() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeGhostedContainer ( int  mem,
LinearObjContainer &  loc 
) const
virtual

Initialize container with a specific set of member values.

Note
This will overwrite everything in the container and zero out values not requested.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 420 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ initializeGhostedContainer() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeGhostedContainer ( int  mem,
TpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  loc 
) const

Initialize container with a specific set of member values.

Note
This will overwrite everything in the container and zero out values not requested.

Definition at line 429 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getMap ( ) const
virtual

get the map from the matrix

Definition at line 462 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getColMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getColMap ( ) const
virtual

Definition at line 473 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedMap ( ) const
virtual

get the ghosted map from the matrix

Definition at line 483 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedColMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedColMap ( ) const
virtual

Definition at line 493 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGraph ( ) const
virtual

get the graph of the crs matrix

Definition at line 504 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedGraph ( ) const
virtual

get the ghosted graph of the crs matrix

Definition at line 514 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedImport()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Import< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedImport ( ) const
virtual

get importer for converting an overalapped object to a "normal" object

Definition at line 539 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedColImport()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Import< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedColImport ( ) const
virtual

Definition at line 550 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedExport()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Export< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedExport ( ) const
virtual

get exporter for converting an overalapped object to a "normal" object

Definition at line 564 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getGhostedColExport()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Export< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedColExport ( ) const
virtual

Definition at line 575 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getTeuchosComm()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< const Teuchos::Comm< int > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTeuchosComm ( ) const
virtual

get exporter for converting an overalapped object to a "normal" object

Definition at line 1029 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ getDomainGlobalIndexer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP< const panzer::GlobalIndexer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getDomainGlobalIndexer ( ) const
inlinevirtual

Get the domain global indexer this factory was created with. For a non-square factory this is the column provider; it is the row provider only when no separate column provider was supplied.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 273 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ getRangeGlobalIndexer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP< const panzer::GlobalIndexer > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getRangeGlobalIndexer ( ) const
inlinevirtual

Get the domain global indexer this factory was created with.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 277 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ beginFill() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::beginFill ( LinearObjContainer &  ) const
virtual

Open a container for filling. Takes either a ghosted or an owned container.

AssemblyEngine calls this on both, so nothing here may assume which it was handed. Use the two-argument overload for the ghosted container when the owned one it will be migrated into is known.

Reimplemented from panzer::LinearObjFactory< Traits >.

Definition at line 1055 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ beginFill() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::beginFill ( LinearObjContainer &  ghostContainer,
const LinearObjContainer &  container 
) const
virtual

Open the ghosted container for filling, giving it the owned container's matrix.

Under FE assembly the ghosted container holds no matrix of its own; this is where it borrows the owned one. Outside FE assembly it is exactly beginFill(ghostContainer).

Reimplemented from panzer::LinearObjFactory< Traits >.

Definition at line 1036 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ endFill() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::endFill ( LinearObjContainer &  ) const
virtual

Close a container after filling. Takes either a ghosted or an owned container.

As with beginFill, AssemblyEngine calls this on both.

Reimplemented from panzer::LinearObjFactory< Traits >.

Definition at line 1116 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ endFill() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::endFill ( LinearObjContainer &  ghostContainer,
const LinearObjContainer &  container 
) const
virtual

Close the ghosted container after filling, returning the borrowed matrix.

The counterpart of beginFill(ghostContainer,container). Outside FE assembly it is exactly endFill(ghostContainer).

Reimplemented from panzer::LinearObjFactory< Traits >.

Definition at line 1097 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ ghostToGlobalTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalTpetraVector ( const Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  in,
Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  out,
bool  col 
) const
protected

Definition at line 154 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ ghostToGlobalTpetraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalTpetraMatrix ( const Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  in,
Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  out 
) const
protected

Definition at line 168 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ globalToGhostTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::globalToGhostTpetraVector ( const Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  in,
Tpetra::MultiVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > &  out,
bool  col 
) const
protected

Definition at line 185 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildMap ( ) const
protectedvirtual

Definition at line 592 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildColMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildColMap ( ) const
protectedvirtual

Definition at line 605 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildGhostedMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGhostedMap ( ) const
protectedvirtual

Definition at line 622 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildGhostedColMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGhostedColMap ( ) const
protectedvirtual

Definition at line 636 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGraph ( ) const
protectedvirtual

Definition at line 653 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildGhostedGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildGhostedGraph ( ) const
protectedvirtual

Definition at line 676 of file Panzer_TpetraLinearObjFactory_impl.hpp.

◆ buildFEGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
const Teuchos::RCP< typename TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsGraphType > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildFEGraph ( ) const
protectedvirtual

Definition at line 780 of file Panzer_TpetraLinearObjFactory_impl.hpp.

Member Data Documentation

◆ comm_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const Teuchos::Comm<int> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::comm_
protected

Definition at line 323 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ map_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::map_
mutableprotected

Definition at line 324 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ cMap_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::cMap_
mutableprotected

Definition at line 325 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedMap_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedMap_
mutableprotected

Definition at line 326 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ cGhostedMap_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::cGhostedMap_
mutableprotected

Definition at line 327 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ graph_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::CrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::graph_
mutableprotected

Definition at line 328 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedGraph_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Tpetra::CrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedGraph_
mutableprotected

Definition at line 329 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ feGraph_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<FECrsGraphType> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::feGraph_
mutableprotected

Definition at line 330 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ feAssemblyOpenOn_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
const FECrsMatrixType* panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::feAssemblyOpenOn_ = nullptr
mutableprotected

Which FE matrix (if any) currently has an assembly open, tracked so the paired beginFill()/endFill() calls AssemblyEngine makes on the ghosted AND global containers – which in FE mode hold the same matrix – collapse into a single beginAssembly()/endAssembly() pair.

This cannot be derived from the matrix itself: Tpetra::FECrsMatrix keeps its assembly state in a private fillState_ member with no public accessor, and the public isFillActive()/isFillComplete() report the underlying CrsMatrix fill state, which is decoupled from it – a freshly built FECrsMatrix is fill-active while its fillState_ is still "closed", so those are not usable as a proxy.

Non-owning: only ever compared for identity, never dereferenced.

Definition at line 345 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedImporter_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<ImportType> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedImporter_
mutableprotected

Definition at line 346 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedColImporter_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<ImportType> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedColImporter_
mutableprotected

Definition at line 347 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedExporter_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<ExportType> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedExporter_
mutableprotected

Definition at line 348 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedColExporter_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<ExportType> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedColExporter_
mutableprotected

Definition at line 349 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ gidProvider_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const GlobalIndexer> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::gidProvider_
protected

Definition at line 351 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ colGidProvider_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const GlobalIndexer> panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colGidProvider_
protected

Definition at line 352 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ hasColProvider_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
bool panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::hasColProvider_
protected

Definition at line 354 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ useFEAssembly_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
bool panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::useFEAssembly_
protected

Definition at line 355 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ rangeSpace_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const Thyra::VectorSpaceBase<double> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::rangeSpace_
mutableprotected

Definition at line 357 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ domainSpace_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const Thyra::VectorSpaceBase<double> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::domainSpace_
mutableprotected

Definition at line 358 of file Panzer_TpetraLinearObjFactory_decl.hpp.

◆ ghostedDomainSpace_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const Thyra::VectorSpaceBase<double> > panzer::TpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedDomainSpace_
mutableprotected

Definition at line 359 of file Panzer_TpetraLinearObjFactory_decl.hpp.


The documentation for this class was generated from the following files: