|
Panzer Version of the Day
|
#include <Panzer_BlockedTpetraLinearObjFactory.hpp>

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_ |
Definition at line 52 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef BlockedTpetraLinearObjContainer<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::BTLOC |
Definition at line 55 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::Vector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::VectorType |
Definition at line 56 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::CrsMatrix<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsMatrixType |
Definition at line 57 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::Operator<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::OperatorType |
Definition at line 58 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::CrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::CrsGraphType |
Definition at line 59 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::Map<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::MapType |
Definition at line 60 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::Import<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ImportType |
Definition at line 61 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::Export<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ExportType |
Definition at line 62 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::FECrsGraph<LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsGraphType |
Definition at line 64 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Tpetra::FECrsMatrix<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::FECrsMatrixType |
Definition at line 65 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Thyra::TpetraVector<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ThyraVector |
Definition at line 67 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| typedef Thyra::TpetraLinearOp<ScalarT,LocalOrdinalT,GlobalOrdinalT,NodeT> panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::ThyraLinearOp |
Definition at line 68 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| 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 |
||
| ) |
| [in] | useFEAssembly | Opt 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.
| 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.
| 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.
|
virtual |
Definition at line 124 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
inlinevirtual |
Read in a vector from a file. Fill a particular vector in the linear object container.
| [in] | identifier | Key for specifying which file(s) to read |
| [in] | loc | Linear object container to fill with the vector |
| [in] | id | Id for the field to be filled |
Implements panzer::LinearObjFactory< Traits >.
Definition at line 104 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inlinevirtual |
Write in a vector from a file. Fill a particular vector in the linear object container.
| [in] | identifier | Key for specifying which file(s) to read |
| [in] | loc | Linear object container to fill with the vector |
| [in] | id | Id for the field to be filled |
Implements panzer::LinearObjFactory< Traits >.
Definition at line 107 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
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.
|
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.
|
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.
|
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.
|
virtual |
Implements panzer::LinearObjFactory< Traits >.
Definition at line 164 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Implements panzer::LinearObjFactory< Traits >.
Definition at line 187 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
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.
|
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.
|
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.
|
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.
|
inline |
Use preconstructed scatter evaluators.
Definition at line 160 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inline |
Use preconstructed gather evaluators.
Definition at line 172 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inline |
Use preconstructed gather evaluators.
Definition at line 177 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inline |
Use preconstructed gather evaluators.
Definition at line 182 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inline |
Use preconstructed gather evaluators.
Definition at line 197 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
inline |
Use preconstructed dirichlet scatter evaluators.
Definition at line 202 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
virtual |
Initialize container with a specific set of member values.
Implements panzer::LinearObjFactory< Traits >.
Definition at line 441 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeContainer | ( | int | mem, |
| BTLOC & | loc | ||
| ) | const |
Initialize container with a specific set of member values.
Definition at line 460 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Initialize container with a specific set of member values.
Implements panzer::LinearObjFactory< Traits >.
Definition at line 449 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| void panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::initializeGhostedContainer | ( | int | mem, |
| BTLOC & | loc | ||
| ) | const |
Initialize container with a specific set of member values.
Definition at line 481 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Get the domain vector space (x and dxdt)
Implements panzer::ThyraObjFactory< double >.
Definition at line 561 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Get the range vector space (f)
Implements panzer::ThyraObjFactory< double >.
Definition at line 584 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| 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.
| 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.
| 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.
| 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.
|
virtual |
Get a Thyra operator.
Implements panzer::ThyraObjFactory< double >.
Definition at line 673 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Get the domain vector space (x and dxdt)
Implements panzer::ThyraObjFactory< double >.
Definition at line 715 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| 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.
| 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.
| 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.
| 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.
|
virtual |
get the map from the matrix
Definition at line 977 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
get the ghosted map from the matrix
Definition at line 988 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
get the graph of the crs matrix
Definition at line 1000 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
get the ghosted graph of the crs matrix
Definition at line 1020 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
get importer for converting an overalapped object to a "normal" object
Definition at line 1040 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
get exporter for converting an overalapped object to a "normal" object
Definition at line 1051 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
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.
|
virtual |
Definition at line 1076 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Definition at line 1090 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Definition at line 1104 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraMatrix | ( | int | i, |
| int | j | ||
| ) | const |
Definition at line 1588 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| Teuchos::RCP< Tpetra::CrsMatrix< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraMatrix | ( | int | i, |
| int | j | ||
| ) | const |
Definition at line 1609 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
inline |
True if this factory was constructed with FE assembly enabled.
Definition at line 315 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
| 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.
| 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.
| Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraDomainVector | ( | int | i | ) | const |
Definition at line 1633 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraDomainVector | ( | int | i | ) | const |
Definition at line 1642 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getTpetraRangeVector | ( | int | i | ) | const |
Definition at line 1651 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| Teuchos::RCP< Tpetra::Vector< ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT > > panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getGhostedTpetraRangeVector | ( | int | i | ) | const |
Definition at line 1660 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| int panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getBlockRowCount | ( | ) | const |
how many block rows
Definition at line 1669 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| int panzer::BlockedTpetraLinearObjFactory< Traits, ScalarT, LocalOrdinalT, GlobalOrdinalT, NodeT >::getBlockColCount | ( | ) | const |
how many block columns
Definition at line 1677 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
| 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.
| 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.
|
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.
|
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.
|
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.
|
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.
|
inline |
Definition at line 366 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
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.
|
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.
|
protected |
Definition at line 525 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 533 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
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.
|
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.
|
protected |
Definition at line 815 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 843 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 902 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 297 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 933 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 945 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 963 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1118 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1132 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1145 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1158 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1172 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protectedvirtual |
Definition at line 1470 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
virtual |
Definition at line 1202 of file Panzer_BlockedTpetraLinearObjFactory_impl.hpp.
|
protected |
Definition at line 399 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 400 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 401 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
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.
|
protected |
Definition at line 406 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 407 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 408 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 411 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 421 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 422 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
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.
|
mutableprotected |
Definition at line 429 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 461 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 462 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 463 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 464 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 465 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 467 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 468 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 472 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 473 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 474 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 475 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
protected |
Definition at line 479 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
mutableprotected |
Definition at line 481 of file Panzer_BlockedTpetraLinearObjFactory.hpp.
|
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.