42 #ifndef VECTOR_SPACE_COMPOSITE_STE_H
43 #define VECTOR_SPACE_COMPOSITE_STE_H
47 #include "AbstractLinAlgPack_VectorSpace.hpp"
49 namespace AbstractLinAlgPack {
139 ,
int num_vector_spaces
194 index_type
dim()
const;
213 typedef std::vector<VectorSpace::space_ptr_t> vector_spaces_t;
214 typedef std::vector<index_type> vec_spaces_offsets_t;
219 #ifdef DOXYGEN_COMPILE
223 vector_spaces_t vector_spaces_;
226 vec_spaces_offsets_t vec_spaces_offsets_;
246 return vector_spaces_.size();
253 return &vector_spaces_[0];
259 return &vec_spaces_offsets_[0];
264 #endif // VECTOR_SPACE_COMPOSITE_STE_H
void initialize(const VectorSpace::space_ptr_t vec_spaces[], int num_vector_spaces, const VectorSpace::space_fcty_ptr_t &small_vec_spc_fcty=Teuchos::null)
Initialize with a set of vector space objects.
vec_mut_ptr_t create_member() const
multi_vec_mut_ptr_t create_members(size_type num_vecs) const
space_fcty_ptr_t small_vec_spc_fcty() const
space_ptr_t clone() const
Abstract interface for objects that represent a space for mutable coordinate vectors.
space_ptr_t sub_space(const Range1D &rng) const
Abstract interface for objects that can create vector spaces of a specified dimension.
VectorSpace subclass for the composite of one or more VectorSpace objects.
const VectorSpace::space_ptr_t * vector_spaces() const
const index_type * vector_spaces_offsets() const
Returns array (length this->num_vector_spaces() + 1) of offsets for each constitient vector space in ...
int num_vector_spaces() const
Return the value of num_vec_spaces passed to this->initialize().
bool is_compatible(const VectorSpace &vec_space) const
Returns true if same type and has compatible vector spaces.
void get_vector_space_position(index_type i, int *kth_vector_space, index_type *kth_global_offset) const
Get the position of the vector space object and its offset into the composite vector of the vector sp...