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

#include <Panzer_BlockedTpetraLinearObjFactory.hpp>

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

Public Types

typedef BlockedTpetraLinearObjContainer< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > BTLOC
 
typedef Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > VectorType
 
typedef Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > CrsMatrixType
 
typedef Tpetra::Operator< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > OperatorType
 
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 Thyra::TpetraVector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > ThyraVector
 
typedef Thyra::TpetraLinearOp< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > ThyraLinearOp
 

Public Member Functions

 BlockedTpetraLinearObjFactory (const Teuchos::RCP< const Teuchos::MpiComm< int > > &comm, const Teuchos::RCP< const BlockedDOFManager > &gidProvider, bool useFEAssembly=false)
 
 BlockedTpetraLinearObjFactory (const Teuchos::RCP< const Teuchos::MpiComm< int > > &comm, const std::vector< Teuchos::RCP< const panzer::GlobalIndexer > > &gidProviders, bool useFEAssembly=false)
 Ctor that takes a vector of DOFManagers instead of the BlockedDOFManager. Plan is to deprecate the BlockedDOFManager, but for now it is ingrained in all gather/scatter operators.
 
 BlockedTpetraLinearObjFactory (const Teuchos::RCP< const Teuchos::MpiComm< int > > &comm, const Teuchos::RCP< const GlobalIndexer > &rowProvider, const Teuchos::RCP< const GlobalIndexer > &colProvider, bool useFEAssembly=false)
 Ctor for a non-square factory, whose range and domain differ.
 
virtual ~BlockedTpetraLinearObjFactory ()
 
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
 
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.
 
void initializeContainer (int, LinearObjContainer &loc) const
 
void initializeContainer (int mem, BTLOC &loc) const
 
void initializeGhostedContainer (int, LinearObjContainer &loc) const
 
void initializeGhostedContainer (int mem, BTLOC &loc) const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraDomainSpace () const
 Get the domain vector space (x and dxdt)
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraRangeSpace () const
 Get the range vector space (f)
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraDomainSpace (int blk) const
 Get the domain vector space (x and dxdt)
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getThyraRangeSpace (int blk) const
 Get the range vector space (f)
 
Teuchos::RCP< Thyra::VectorBase< ScalarT > > getThyraDomainVector () const
 Get a domain vector.
 
Teuchos::RCP< Thyra::VectorBase< ScalarT > > getThyraRangeVector () const
 Get a range vector.
 
Teuchos::RCP< Thyra::LinearOpBase< ScalarT > > getThyraMatrix () const
 Get a Thyra operator.
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getGhostedThyraDomainSpace () const
 Get the domain vector space (x and dxdt)
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > getGhostedThyraRangeSpace () const
 Get the range vector space (f)
 
Teuchos::RCP< Thyra::VectorBase< ScalarT > > getGhostedThyraDomainVector () const
 Get a domain vector.
 
Teuchos::RCP< Thyra::VectorBase< ScalarT > > getGhostedThyraRangeVector () const
 Get a range vector.
 
Teuchos::RCP< Thyra::BlockedLinearOpBase< ScalarT > > getGhostedThyraMatrix () const
 Get a Thyra operator.
 
virtual Teuchos::RCP< const MapType > getMap (int i) const
 get the map from the matrix
 
virtual Teuchos::RCP< const MapType > getGhostedMap (int i) const
 get the ghosted map from the matrix
 
virtual Teuchos::RCP< const CrsGraphType > getGraph (int i, int j) const
 get the graph of the crs matrix
 
virtual Teuchos::RCP< const CrsGraphType > getGhostedGraph (int i, int j) const
 get the ghosted graph of the crs matrix
 
virtual Teuchos::RCP< const ImportType > getGhostedImport (int i) const
 get importer for converting an overalapped object to a "normal" object
 
virtual Teuchos::RCP< const ExportType > getGhostedExport (int j) const
 get exporter for converting an overalapped object to a "normal" object
 
virtual Teuchos::RCP< const MapType > getColMap (int i) const
 
virtual Teuchos::RCP< const MapType > getGhostedColMap (int i) const
 
virtual Teuchos::RCP< const ImportType > getGhostedColImport (int i) const
 
virtual Teuchos::RCP< const ExportType > getGhostedColExport (int i) const
 
Teuchos::RCP< CrsMatrixType > getTpetraMatrix (int i, int j) const
 
Teuchos::RCP< CrsMatrixType > getGhostedTpetraMatrix (int i, int j) const
 
bool useFEAssembly () const
 True if this factory was constructed with FE assembly enabled.
 
Teuchos::RCP< FECrsGraphType > getFEGraph (int i, int j) const
 Get the (cached) FE graph for block (i,j), built via the Tpetra::FECrsGraph "V2" ctor.
 
Teuchos::RCP< FECrsMatrixType > getFEMatrix (int i, int j) const
 Get the (cached) FECrsMatrix for block (i,j).
 
Teuchos::RCP< VectorType > getTpetraDomainVector (int i) const
 
Teuchos::RCP< VectorType > getGhostedTpetraDomainVector (int i) const
 
Teuchos::RCP< VectorType > getTpetraRangeVector (int i) const
 
Teuchos::RCP< VectorType > getGhostedTpetraRangeVector (int i) const
 
int getBlockRowCount () const
 how many block rows
 
int getBlockColCount () const
 how many block columns
 
void addExcludedPair (int rowBlock, int colBlock)
 exclude a block pair from the matrix
 
void addExcludedPairs (const std::vector< std::pair< int, int > > &exPairs)
 exclude a vector of pairs from the matrix
 
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 operator.
 
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.
 
Teuchos::RCP< const panzer::BlockedDOFManager > getGlobalIndexer () const
 
Teuchos::RCP< const panzer::GlobalIndexer > getDomainGlobalIndexer () const
 
Teuchos::RCP< const panzer::GlobalIndexer > getRangeGlobalIndexer () const
 Get the range unique global indexer this factory was created with.
 
virtual Teuchos::RCP< const CrsGraphType > buildTpetraGhostedGraph (int i, int j) const
 
- 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< double >
virtual ~ThyraObjFactory ()
 

Protected Member Functions

Teuchos::RCP< const GlobalIndexer > getGlobalIndexer (int i) const
 
Teuchos::RCP< const GlobalIndexer > getColGlobalIndexer (int i) const
 
void makeRoomForBlocks (std::size_t blockCnt, std::size_t colBlockCnt=0)
 Allocate the space in the std::vector objects so we can fill with appropriate Tpetra data.
 
void ghostToGlobalThyraVector (const Teuchos::RCP< const Thyra::VectorBase< ScalarT > > &in, const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &out, bool col) const
 
void ghostToGlobalThyraMatrix (const Thyra::LinearOpBase< ScalarT > &in, Thyra::LinearOpBase< ScalarT > &out) const
 
void globalToGhostThyraVector (const Teuchos::RCP< const Thyra::VectorBase< ScalarT > > &in, const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &out, bool col) const
 
void adjustForDirichletConditions (const VectorType &local_bcs, const VectorType &global_bcs, const Teuchos::Ptr< VectorType > &f, const Teuchos::Ptr< CrsMatrixType > &A, bool zeroVectorRows) const
 
void ghostToGlobalTpetraVector (int i, const VectorType &in, VectorType &out, bool col) const
 
void ghostToGlobalTpetraMatrix (int blockRow, const CrsMatrixType &in, CrsMatrixType &out) const
 
void globalToGhostTpetraVector (int i, const VectorType &in, VectorType &out, bool col) const
 
virtual Teuchos::RCP< const MapType > buildTpetraMap (int i) const
 
virtual Teuchos::RCP< const MapType > buildTpetraGhostedMap (int i) const
 
virtual Teuchos::RCP< const MapType > buildColTpetraMap (int i) const
 
virtual Teuchos::RCP< const MapType > buildColTpetraGhostedMap (int i) const
 
virtual Teuchos::RCP< const CrsGraphType > buildTpetraGraph (int i, int j) const
 
virtual Teuchos::RCP< FECrsGraphType > buildFEGraph (int i, int j) const
 

Static Protected Member Functions

static void splitIntoBlocks (const Teuchos::RCP< const GlobalIndexer > &ugi, Teuchos::RCP< const BlockedDOFManager > &blocked, std::vector< Teuchos::RCP< const GlobalIndexer > > &blocks)
 

Protected Attributes

Teuchos::RCP< const GlobalIndexer > blockProvider_
 
Teuchos::RCP< const BlockedDOFManager > blockedDOFManager_
 
std::vector< Teuchos::RCP< const GlobalIndexer > > gidProviders_
 
bool hasColProvider_
 
Teuchos::RCP< const GlobalIndexer > colBlockProvider_
 
Teuchos::RCP< const BlockedDOFManager > colBlockedDOFManager_
 
std::vector< Teuchos::RCP< const GlobalIndexer > > colGidProviders_
 
std::unordered_set< std::pair< int, int >, panzer::pair_hash > excludedPairs_
 
Teuchos::RCP< Thyra::ProductVectorSpaceBase< ScalarT > > rangeSpace_
 
Teuchos::RCP< Thyra::ProductVectorSpaceBase< ScalarT > > ghostedRangeSpace_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > domainSpace_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > ghostedDomainSpace_
 
Teuchos::RCP< const Teuchos::MpiComm< int > > comm_
 
std::vector< Teuchos::RCP< const MapType > > maps_
 
std::vector< Teuchos::RCP< const MapType > > ghostedMaps_
 
std::unordered_map< std::pair< int, int >, Teuchos::RCP< const CrsGraphType >, panzer::pair_hash > graphs_
 
std::unordered_map< std::pair< int, int >, Teuchos::RCP< const CrsGraphType >, panzer::pair_hash > ghostedGraphs_
 
std::vector< Teuchos::RCP< const ImportType > > importers_
 
std::vector< Teuchos::RCP< const ExportType > > exporters_
 
std::vector< Teuchos::RCP< const MapType > > colMaps_
 
std::vector< Teuchos::RCP< const MapType > > ghostedColMaps_
 
std::vector< Teuchos::RCP< const ImportType > > colImporters_
 
std::vector< Teuchos::RCP< const ExportType > > colExporters_
 
bool useFEAssembly_
 
std::unordered_map< std::pair< int, int >, Teuchos::RCP< FECrsGraphType >, panzer::pair_hash > feGraphs_
 
std::unordered_map< std::pair< int, int >, const FECrsMatrixType *, panzer::pair_hash > feAssemblyOpenOn_
 

Detailed Description

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

Definition at line 52 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

Member Typedef Documentation

◆ BTLOC

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef BlockedTpetraLinearObjContainer<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::BTLOC

Definition at line 55 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ VectorType

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

Definition at line 56 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ CrsMatrixType

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

Definition at line 57 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ OperatorType

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Operator<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::OperatorType

Definition at line 58 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ CrsGraphType

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

Definition at line 59 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ MapType

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

Definition at line 60 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ImportType

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

Definition at line 61 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ExportType

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

Definition at line 62 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ FECrsGraphType

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

Definition at line 64 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ FECrsMatrixType

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

Definition at line 65 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ThyraVector

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Thyra::TpetraVector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ThyraVector

Definition at line 67 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ThyraLinearOp

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
typedef Thyra::TpetraLinearOp<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ThyraLinearOp

Definition at line 68 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

Constructor & Destructor Documentation

◆ BlockedTpetraLinearObjFactory() [1/3]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::BlockedTpetraLinearObjFactory ( const Teuchos::RCP< const Teuchos::MpiComm< int > > &  comm,
const Teuchos::RCP< const BlockedDOFManager > &  gidProvider,
bool  useFEAssembly = false 
)
Parameters
[in]useFEAssemblyOpt in to assembling each (i,j) block into a Tpetra::FECrsMatrix instead of a separate owned/ghosted CrsMatrix pair joined by an explicit export. Defaults to false, which leaves the classic behavior of this class completely unchanged.

Definition at line 47 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ BlockedTpetraLinearObjFactory() [2/3]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::BlockedTpetraLinearObjFactory ( const Teuchos::RCP< const Teuchos::MpiComm< int > > &  comm,
const std::vector< Teuchos::RCP< const panzer::GlobalIndexer > > &  gidProviders,
bool  useFEAssembly = false 
)

Ctor that takes a vector of DOFManagers instead of the BlockedDOFManager. Plan is to deprecate the BlockedDOFManager, but for now it is ingrained in all gather/scatter operators.

Definition at line 65 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ BlockedTpetraLinearObjFactory() [3/3]

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

Ctor for a non-square factory, whose range and domain differ.

This is what a distributed parameter needs: the rows are indexed by the solution, the columns by the parameter. Either provider may be a BlockedDOFManager or a flat GlobalIndexer; a flat one contributes a single block. Not supported together with FE assembly.

Definition at line 76 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ ~BlockedTpetraLinearObjFactory()

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

Member Function Documentation

◆ readVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual void panzer::BlockedTpetraLinearObjFactory< 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 104 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ writeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual void panzer::BlockedTpetraLinearObjFactory< 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 107 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< LinearObjContainer > panzer::BlockedTpetraLinearObjFactory< 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 133 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ buildPrimitiveLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual Teuchos::RCP< LinearObjContainer > panzer::BlockedTpetraLinearObjFactory< 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 112 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildGhostedLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< LinearObjContainer > panzer::BlockedTpetraLinearObjFactory< 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 149 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ buildPrimitiveGhostedLinearObjContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
virtual Teuchos::RCP< LinearObjContainer > panzer::BlockedTpetraLinearObjFactory< 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 117 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ globalToGhostContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalContainer ( const LinearObjContainer &  ghostContainer,
LinearObjContainer &  container,
int  mem 
) const
virtual

◆ adjustForDirichletConditions() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 210 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ applyDirichletBCs()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 363 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ buildReadOnlyDomainContainer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< ReadOnlyVector_GlobalEvaluationData > panzer::BlockedTpetraLinearObjFactory< 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 379 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getComm()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::MpiComm< int > panzer::BlockedTpetraLinearObjFactory< 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 434 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ buildScatter()

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

Use preconstructed scatter evaluators.

Definition at line 160 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildGather()

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

Use preconstructed gather evaluators.

Definition at line 172 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildGatherTangent()

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

Use preconstructed gather evaluators.

Definition at line 177 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildGatherDomain()

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

Use preconstructed gather evaluators.

Definition at line 182 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildGatherOrientation()

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

Use preconstructed gather evaluators.

Definition at line 197 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ buildScatterDirichlet()

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

Use preconstructed dirichlet scatter evaluators.

Definition at line 202 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ initializeContainer() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 441 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ initializeContainer() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeContainer ( int  mem,
BTLOC &  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 460 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ initializeGhostedContainer() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 449 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ initializeGhostedContainer() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeGhostedContainer ( int  mem,
BTLOC &  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 481 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraDomainSpace() [1/2]

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

Get the domain vector space (x and dxdt)

Implements panzer::ThyraObjFactory< double >.

Definition at line 561 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraRangeSpace() [1/2]

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

Get the range vector space (f)

Implements panzer::ThyraObjFactory< double >.

Definition at line 584 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraDomainSpace() [2/2]

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

Get the domain vector space (x and dxdt)

Definition at line 601 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraRangeSpace() [2/2]

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

Get the range vector space (f)

Definition at line 620 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraDomainVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::VectorBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getThyraDomainVector ( ) const

Get a domain vector.

Definition at line 632 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraRangeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::VectorBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getThyraRangeVector ( ) const

Get a range vector.

Definition at line 661 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getThyraMatrix()

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

Get a Thyra operator.

Implements panzer::ThyraObjFactory< double >.

Definition at line 673 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraDomainSpace()

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

Get the domain vector space (x and dxdt)

Implements panzer::ThyraObjFactory< double >.

Definition at line 715 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraRangeSpace()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Thyra::VectorSpaceBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedThyraRangeSpace ( ) const

Get the range vector space (f)

Definition at line 738 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraDomainVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::VectorBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedThyraDomainVector ( ) const

Get a domain vector.

Definition at line 755 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraRangeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::VectorBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedThyraRangeVector ( ) const

Get a range vector.

Definition at line 767 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedThyraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Thyra::BlockedLinearOpBase< ScalarT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedThyraMatrix ( ) const

Get a Thyra operator.

Definition at line 779 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getMap()

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

get the map from the matrix

Definition at line 977 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedMap()

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

get the ghosted map from the matrix

Definition at line 988 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGraph()

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

get the graph of the crs matrix

Definition at line 1000 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedGraph()

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

get the ghosted graph of the crs matrix

Definition at line 1020 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedImport()

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

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

Definition at line 1040 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedExport()

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

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

Definition at line 1051 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getColMap()

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

The column-side counterparts of the four accessors above. For a square factory each simply forwards to the row-side version, so the two agree object for object and callers need not care which they asked for.

Definition at line 1062 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGhostedColMap()

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

◆ getGhostedColImport()

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

◆ getGhostedColExport()

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

◆ getTpetraMatrix()

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

◆ getGhostedTpetraMatrix()

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

◆ useFEAssembly()

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

True if this factory was constructed with FE assembly enabled.

Definition at line 315 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ getFEGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsGraphType > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEGraph ( int  i,
int  j 
) const

Get the (cached) FE graph for block (i,j), built via the Tpetra::FECrsGraph "V2" ctor.

Definition at line 1554 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getFEMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< typename BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsMatrixType > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getFEMatrix ( int  i,
int  j 
) const

Get the (cached) FECrsMatrix for block (i,j).

Unlike getTpetraMatrix()/getGhostedTpetraMatrix(), which hand back a freshly allocated matrix on every call, this returns the same object each time. That sharing is the whole point in FE mode: the owned and ghosted containers must wrap one matrix so endAssembly() can perform the ghost->global migration in place.

Definition at line 1574 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getTpetraDomainVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraDomainVector ( int  i) const

◆ getGhostedTpetraDomainVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraDomainVector ( int  i) const

◆ getTpetraRangeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraRangeVector ( int  i) const

◆ getGhostedTpetraRangeVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraRangeVector ( int  i) const

◆ getBlockRowCount()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
int panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getBlockRowCount ( ) const

how many block rows

Definition at line 1669 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getBlockColCount()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
int panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getBlockColCount ( ) const

how many block columns

Definition at line 1677 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ addExcludedPair()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::addExcludedPair ( int  rowBlock,
int  colBlock 
)

exclude a block pair from the matrix

Definition at line 509 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ addExcludedPairs()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::addExcludedPairs ( const std::vector< std::pair< int, int > > &  exPairs)

exclude a vector of pairs from the matrix

Definition at line 516 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ beginFill() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 1736 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ beginFill() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 operator.

Under FE assembly the ghosted container holds no operator 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 1716 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ endFill() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 1816 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ endFill() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< 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 1800 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ getGlobalIndexer() [1/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP< const panzer::BlockedDOFManager > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGlobalIndexer ( ) const
inline

Definition at line 366 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ getDomainGlobalIndexer()

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

Get the domain unique 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 373 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ getRangeGlobalIndexer()

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

Get the range unique global indexer this factory was created with.

Implements panzer::LinearObjFactory< Traits >.

Definition at line 377 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ getGlobalIndexer() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const GlobalIndexer > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGlobalIndexer ( int  i) const
protected

◆ getColGlobalIndexer()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const GlobalIndexer > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getColGlobalIndexer ( int  i) const
protected

◆ splitIntoBlocks()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::splitIntoBlocks ( const Teuchos::RCP< const GlobalIndexer > &  ugi,
Teuchos::RCP< const BlockedDOFManager > &  blocked,
std::vector< Teuchos::RCP< const GlobalIndexer > > &  blocks 
)
staticprotected

Split a global indexer into per-block field indexers: a BlockedDOFManager contributes its field managers, a flat indexer contributes itself.

Definition at line 103 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ makeRoomForBlocks()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::makeRoomForBlocks ( std::size_t  blockCnt,
std::size_t  colBlockCnt = 0 
)
protected

Allocate the space in the std::vector objects so we can fill with appropriate Tpetra data.

Definition at line 540 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.

◆ ghostToGlobalThyraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalThyraVector ( const Teuchos::RCP< const Thyra::VectorBase< ScalarT > > &  in,
const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &  out,
bool  col 
) const
protected

◆ ghostToGlobalThyraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalThyraMatrix ( const Thyra::LinearOpBase< ScalarT > &  in,
Thyra::LinearOpBase< ScalarT > &  out 
) const
protected

◆ globalToGhostThyraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::globalToGhostThyraVector ( const Teuchos::RCP< const Thyra::VectorBase< ScalarT > > &  in,
const Teuchos::RCP< Thyra::VectorBase< ScalarT > > &  out,
bool  col 
) const
protected

◆ adjustForDirichletConditions() [2/2]

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::adjustForDirichletConditions ( const VectorType &  local_bcs,
const VectorType &  global_bcs,
const Teuchos::Ptr< VectorType > &  f,
const Teuchos::Ptr< CrsMatrixType > &  A,
bool  zeroVectorRows 
) const
protected

◆ ghostToGlobalTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalTpetraVector ( int  i,
const VectorType &  in,
VectorType &  out,
bool  col 
) const
protected

◆ ghostToGlobalTpetraMatrix()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostToGlobalTpetraMatrix ( int  blockRow,
const CrsMatrixType &  in,
CrsMatrixType &  out 
) const
protected

◆ globalToGhostTpetraVector()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::globalToGhostTpetraVector ( int  i,
const VectorType &  in,
VectorType &  out,
bool  col 
) const
protected

◆ buildTpetraMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildTpetraMap ( int  i) const
protectedvirtual

◆ buildTpetraGhostedMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildTpetraGhostedMap ( int  i) const
protectedvirtual

◆ buildColTpetraMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildColTpetraMap ( int  i) const
protectedvirtual

◆ buildColTpetraGhostedMap()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildColTpetraGhostedMap ( int  i) const
protectedvirtual

◆ buildTpetraGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildTpetraGraph ( int  i,
int  j 
) const
protectedvirtual

◆ buildFEGraph()

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

◆ buildTpetraGhostedGraph()

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT >
Teuchos::RCP< const Tpetra::CrsGraph< LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::buildTpetraGhostedGraph ( int  i,
int  j 
) const
virtual

Member Data Documentation

◆ blockProvider_

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

Definition at line 399 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ blockedDOFManager_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const BlockedDOFManager> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::blockedDOFManager_
protected

Definition at line 400 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ gidProviders_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const GlobalIndexer> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::gidProviders_
protected

Definition at line 401 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ hasColProvider_

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

False unless a separate column provider was supplied, in which case the three members below mirror the three above for the domain.

Definition at line 405 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colBlockProvider_

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

Definition at line 406 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colBlockedDOFManager_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const BlockedDOFManager> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colBlockedDOFManager_
protected

Definition at line 407 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colGidProviders_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const GlobalIndexer> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colGidProviders_
protected

Definition at line 408 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ excludedPairs_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::unordered_set<std::pair<int,int>,panzer::pair_hash> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::excludedPairs_
protected

Definition at line 411 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ rangeSpace_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Thyra::ProductVectorSpaceBase<ScalarT> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::rangeSpace_
mutableprotected

Definition at line 421 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ghostedRangeSpace_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<Thyra::ProductVectorSpaceBase<ScalarT> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedRangeSpace_
mutableprotected

Definition at line 422 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ domainSpace_

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

These are only a product space when the column side is blocked. A flat column provider gives a single SPMD space, matching the single vector the non-blocked domain gather fills.

Definition at line 428 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ghostedDomainSpace_

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

Definition at line 429 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ comm_

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

Definition at line 461 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ maps_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const MapType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::maps_
mutableprotected

Definition at line 462 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ghostedMaps_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const MapType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedMaps_
mutableprotected

Definition at line 463 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ graphs_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::unordered_map<std::pair<int,int>,Teuchos::RCP<const CrsGraphType>,panzer::pair_hash> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::graphs_
mutableprotected

Definition at line 464 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ghostedGraphs_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::unordered_map<std::pair<int,int>,Teuchos::RCP<const CrsGraphType>,panzer::pair_hash> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedGraphs_
mutableprotected

Definition at line 465 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ importers_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const ImportType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::importers_
mutableprotected

Definition at line 467 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ exporters_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const ExportType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::exporters_
mutableprotected

Definition at line 468 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colMaps_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const MapType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colMaps_
mutableprotected

Definition at line 472 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ ghostedColMaps_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const MapType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ghostedColMaps_
mutableprotected

Definition at line 473 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colImporters_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const ImportType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colImporters_
mutableprotected

Definition at line 474 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ colExporters_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const ExportType> > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::colExporters_
mutableprotected

Definition at line 475 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ useFEAssembly_

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

Definition at line 479 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ feGraphs_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::unordered_map<std::pair<int,int>,Teuchos::RCP<FECrsGraphType>,panzer::pair_hash> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::feGraphs_
mutableprotected

Definition at line 481 of file Panzer_BlockedTpetraLinearObjFactory.hpp.

◆ feAssemblyOpenOn_

template<typename Traits , typename ScalarT , typename LocalOrdinalT , typename GlobalOrdinalT , typename NodeT = panzer::TpetraNodeType>
std::unordered_map<std::pair<int,int>,const FECrsMatrixType *,panzer::pair_hash> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::feAssemblyOpenOn_
mutableprotected

Which FE matrices currently have an assembly open, tracked so the paired beginFill(ghosted)/beginFill(global) calls AssemblyEngine makes – which in FE mode hold the same matrix per block – collapse into a single beginAssembly()/endAssembly().

This cannot be derived from the matrix itself: Tpetra::FECrsMatrix keeps its assembly state in a private fillState_, and the public isFillActive() reports the underlying CrsMatrix's state, which is decoupled from it.

Keyed by block rather than by matrix pointer so a stray unbalanced call on one block cannot silently suppress the begin/end on another.

Definition at line 494 of file Panzer_BlockedTpetraLinearObjFactory.hpp.


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