|
Thyra Package Browser (Single Doxygen Collection) Version of the Day
|
Concrete subclass of VectorSpaceBase that takes a collection of individual VectorSpaceBase objects distributed over many different processes and creates a single vector space.
More...
#include <Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp>

Private Types | |
| typedef std::vector < Teuchos::RCP< const VectorSpaceBase< Scalar > > > | vecSpaces_t |
Private Attributes | |
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > | intraClusterComm_ |
| int | clusterRootRank_ |
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > | interClusterComm_ |
| vecSpaces_t | vecSpaces_ |
| bool | isEuclidean_ |
| Ordinal | globalDim_ |
| Ordinal | clusterSubDim_ |
| Ordinal | clusterOffset_ |
Constructors/Intializers/Accessors | |
| DefaultClusteredSpmdProductVectorSpace () | |
| | |
| DefaultClusteredSpmdProductVectorSpace (const Teuchos::RCP< const Teuchos::Comm< Ordinal > > &intraClusterComm, const int clusterRootRank, const Teuchos::RCP< const Teuchos::Comm< Ordinal > > &interClusterComm, const int numBlocks, const Teuchos::RCP< const VectorSpaceBase< Scalar > > vecSpaces[]) | |
| | |
| void | initialize (const Teuchos::RCP< const Teuchos::Comm< Ordinal > > &intraClusterComm, const int clusterRootRank, const Teuchos::RCP< const Teuchos::Comm< Ordinal > > &interClusterComm, const int numBlocks, const Teuchos::RCP< const VectorSpaceBase< Scalar > > vecSpaces[]) |
| Initalize. | |
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > | intraClusterComm () const |
| | |
| int | clusterRootRank () const |
| | |
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > | interClusterComm () const |
| | |
| int | clusterSubDim () const |
| int | clusterOffset () const |
Overridden form Teuchos::Describable | |
| std::string | description () const |
| | |
Public overridden from VectorSpaceBase | |
| Ordinal | dim () const |
| | |
| bool | isCompatible (const VectorSpaceBase< Scalar > &vecSpc) const |
| | |
| Teuchos::RCP< const VectorSpaceFactoryBase< Scalar > > | smallVecSpcFcty () const |
| | |
| Scalar | scalarProd (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const |
| | |
| void | scalarProdsImpl (const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const |
| | |
| bool | isEuclidean () const |
| | |
| bool | hasInCoreView (const Range1D &rng, const EViewType viewType, const EStrideType strideType) const |
| | |
| Teuchos::RCP< const VectorSpaceBase< Scalar > > | clone () const |
| | |
Protected overridden from ProductVectorSpaceBase | |
| int | numBlocks () const |
| | |
| Teuchos::RCP< const VectorSpaceBase< Scalar > > | getBlock (const int k) const |
| | |
Protected overridden from VectorSpaceBase | |
| Teuchos::RCP< VectorBase < Scalar > > | createMember () const |
| | |
| Teuchos::RCP< MultiVectorBase < Scalar > > | createMembers (int numMembers) const |
| | |
Concrete subclass of VectorSpaceBase that takes a collection of individual VectorSpaceBase objects distributed over many different processes and creates a single vector space.
What this class does is to take different vector space objects distributed over a set of different clusters of processes and then creates a single vector space object.
Let numClusters be the number of clusters that the processes in the global communicator are partitioned into. Each cluster of processes is represented by another communicator known in this process as intraClusterComm. The communicator that links the root of each cluster is called interClusterComm. All communication is performed with just these two communicators. There is no overall global communicator that encompasses all of the processes.
Within a cluster of processes, the number of constituent vector space objects must be the same. Let v[0]..v[numBlocks-1] be the numBlocks VectorBase objects for constituent vectors in this cluster of processes. There is no assumption make whatsoever about the natrue of the VectorSpaceBase objects or the [Multi]VectorBase objects that they create.
ToDo: Finish documentation!
The default copy constructor and assign operator are allowed and they work correctly and perform shallow copies of the constituent vector spaces!
Definition at line 72 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
typedef std::vector<Teuchos::RCP<const VectorSpaceBase<Scalar> > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::vecSpaces_t [private] |
Definition at line 199 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::DefaultClusteredSpmdProductVectorSpace | ( | ) |
Definition at line 47 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::DefaultClusteredSpmdProductVectorSpace | ( | const Teuchos::RCP< const Teuchos::Comm< Ordinal > > & | intraClusterComm, |
| const int | clusterRootRank, | ||
| const Teuchos::RCP< const Teuchos::Comm< Ordinal > > & | interClusterComm, | ||
| const int | numBlocks, | ||
| const Teuchos::RCP< const VectorSpaceBase< Scalar > > | vecSpaces[] | ||
| ) |
Definition at line 52 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| void Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::initialize | ( | const Teuchos::RCP< const Teuchos::Comm< Ordinal > > & | intraClusterComm, |
| const int | clusterRootRank, | ||
| const Teuchos::RCP< const Teuchos::Comm< Ordinal > > & | interClusterComm, | ||
| const int | numBlocks, | ||
| const Teuchos::RCP< const VectorSpaceBase< Scalar > > | vecSpaces[] | ||
| ) |
Initalize.
| intraClusterComm | [in] The communicator over just this cluster. |
| clusterRootRank | [in] The rank of the root process in *interClusterComm for this cluster of processes. This is also the process that in included in *interClusterComm (which has a different rank ther obviously). |
| interClusterComm | [in] Defines the communicator between the root processes of all of the clusters. For the root process of each cluster *interClusterComm!=Spmd_COMM_NULL, otherwise interClusterComm==Teuchos::null or *interClusterComm==Spmd_COMM_NULL. |
| numBlocks | [in] Number of vector space blocks for this cluster of processes. |
| vecSpaces | [in] Array (length numBlocks) of the vector spaces for this cluster of processes. |
Definition at line 64 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
References Thyra::SpmdVectorSpaceUtilities::computeGlobalDim(), and Thyra::SpmdVectorSpaceUtilities::computeLocalOffset().
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::intraClusterComm | ( | ) | const |
Definition at line 226 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| int Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterRootRank | ( | ) | const |
Definition at line 233 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| Teuchos::RCP< const Teuchos::Comm< Ordinal > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::interClusterComm | ( | ) | const |
Definition at line 241 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| int Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterSubDim | ( | ) | const |
The some of the dimensions of the block vector spaces in this cluster.
Definition at line 248 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| int Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterOffset | ( | ) | const |
The offset of the first element in the first constituent vector in this cluster in the w.r.t. the global vector.
Definition at line 255 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
| std::string Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::description | ( | ) | const |
Definition at line 115 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Ordinal Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::dim | ( | ) | const [virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 129 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| bool Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::isCompatible | ( | const VectorSpaceBase< Scalar > & | vecSpc | ) | const [virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 135 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Teuchos::RCP< const VectorSpaceFactoryBase< Scalar > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::smallVecSpcFcty | ( | ) | const [virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 149 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Scalar Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::scalarProd | ( | const VectorBase< Scalar > & | x, |
| const VectorBase< Scalar > & | y | ||
| ) | const [virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 157 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| void Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::scalarProdsImpl | ( | const MultiVectorBase< Scalar > & | X, |
| const MultiVectorBase< Scalar > & | Y, | ||
| const ArrayView< Scalar > & | scalarProds | ||
| ) | const [virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 167 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
References Thyra::dots().
| bool Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::isEuclidean | ( | ) | const [virtual] |
Reimplemented from Thyra::VectorSpaceBase< Scalar >.
Definition at line 187 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| bool Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::hasInCoreView | ( | const Range1D & | rng, |
| const EViewType | viewType, | ||
| const EStrideType | strideType | ||
| ) | const [virtual] |
Reimplemented from Thyra::VectorSpaceBase< Scalar >.
Definition at line 193 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clone | ( | ) | const [virtual] |
Reimplemented from Thyra::VectorSpaceBase< Scalar >.
Definition at line 202 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| int Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::numBlocks | ( | ) | const [virtual] |
Implements Thyra::ProductVectorSpaceBase< Scalar >.
Definition at line 210 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::getBlock | ( | const int | k | ) | const [virtual] |
Implements Thyra::ProductVectorSpaceBase< Scalar >.
Definition at line 217 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Teuchos::RCP< VectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::createMember | ( | ) | const [protected, virtual] |
Implements Thyra::VectorSpaceBase< Scalar >.
Definition at line 228 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
| Teuchos::RCP< MultiVectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::createMembers | ( | int | numMembers | ) | const [protected, virtual] |
Reimplemented from Thyra::VectorSpaceDefaultBase< Scalar >.
Definition at line 236 of file Thyra_DefaultClusteredSpmdProductVectorSpace_def.hpp.
References Thyra::VectorSpaceDefaultBase< Scalar >::createMembers().
Teuchos::RCP<const Teuchos::Comm<Ordinal> > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::intraClusterComm_ [private] |
Definition at line 204 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
int Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterRootRank_ [private] |
Definition at line 205 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
Teuchos::RCP<const Teuchos::Comm<Ordinal> > Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::interClusterComm_ [private] |
Definition at line 206 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
vecSpaces_t Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::vecSpaces_ [private] |
Definition at line 207 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
bool Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::isEuclidean_ [private] |
Definition at line 208 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
Ordinal Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::globalDim_ [private] |
Definition at line 209 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
Ordinal Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterSubDim_ [private] |
Definition at line 211 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
Ordinal Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >::clusterOffset_ [private] |
Definition at line 213 of file Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp.
1.7.4