|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
hierarchical/dofvector.hh
Go to the documentation of this file.
70 HierarchicalDofBlock ( const HierarchicalDofBlock< std::remove_const_t< DofContainer > > &other )
89 static decltype( auto ) access ( const MultiTypeBlockVector< V... > &data, std::size_t baseIndex, const Hybrid::CompositeIndex< component, I, offset, SI > &index )
91 return access( data[ std::integral_constant< std::size_t, component >() ], baseIndex, index.subIndex() );
95 static decltype( auto ) access ( MultiTypeBlockVector< V... > &data, std::size_t baseIndex, const Hybrid::CompositeIndex< component, I, offset, SI > &index )
97 return access( data[ std::integral_constant< std::size_t, component >() ], baseIndex, index.subIndex() );
101 static const K &access ( const BlockVector< FieldVector< K, n >, A > &data, std::size_t baseIndex, int index )
107 static K &access ( BlockVector< FieldVector< K, n >, A > &data, std::size_t baseIndex, int index )
161 void axpy ( const FieldType &scalar, const ThisType &other ) { data_.axpy( scalar, other.data_ ); }
180 ConstIteratorType begin () const { DUNE_THROW( NotImplemented, "HierarchicalDofVector does not provide iterators" ); }
181 IteratorType begin () { DUNE_THROW( NotImplemented, "HierarchicalDofVector does not provide iterators" ); }
183 ConstIteratorType end () const { DUNE_THROW( NotImplemented, "HierarchicalDofVector does not provide iterators" ); }
184 IteratorType end () { DUNE_THROW( NotImplemented, "HierarchicalDofVector does not provide iterators" ); }
214 Hybrid::forEach( std::index_sequence_for< V... >(), [ &data, size ] ( auto &&i ) { ThisType::reserve( data[ i ], size ); } );
226 Hybrid::forEach( std::index_sequence_for< V... >(), [ &data, size ] ( auto &&i ) { ThisType::resize( data[ i ], size ); } );
270 static void memMoveBackward ( HierarchicalDofVector< DC > &array, int length, int oldStartIdx, int newStartIdx )
275 static void memMoveForward ( HierarchicalDofVector< DC > &array, int length, int oldStartIdx, int newStartIdx )
304 static void memMoveBackward ( MultiTypeBlockVector< V... > &array, int length, int oldStartIdx, int newStartIdx )
306 Hybrid::forEach( std::index_sequence_for< V... >(), [ &array, length, oldStartIdx, newStartIdx ] ( auto &&i ) {
307 SpecialArrayFeatures< HierarchicalDofVector< DC > >::memMoveBackward( array[ i ], length, oldStartIdx, newStartIdx );
312 static void memMoveBackward ( BlockVector< B, A > &array, int length, int oldStartIdx, int newStartIdx )
314 for( int oldIdx = oldStartIdx+length-1, newIdx = newStartIdx + length-1; oldIdx >= oldStartIdx; --oldIdx, --newIdx )
319 static void memMoveForward ( MultiTypeBlockVector< V... > &array, int length, int oldStartIdx, int newStartIdx )
321 Hybrid::forEach( std::index_sequence_for< V... >(), [ &array, length, oldStartIdx, newStartIdx ] ( auto &&i ) {
322 SpecialArrayFeatures< HierarchicalDofVector< DC > >::memMoveForward( array[ i ], length, oldStartIdx, newStartIdx );
327 static void memMoveForward ( BlockVector< B, A > &array, int length, int oldStartIdx, int newStartIdx )
329 for( int oldIdx = oldStartIdx, newIdx = newStartIdx; oldIdx < oldStartIdx+length; ++oldIdx, ++newIdx )
336 Hybrid::forEach( std::index_sequence_for< V... >(), [ &array, newIndex, oldIndex ] ( auto &&i ) {
constexpr auto size(const T &t)
constexpr void forEach(Range &&range, F &&f)
size_type dim() const
std::ptrdiff_t index() const
#define DUNE_THROW(E,...)
void assign(T &dst, const T &src, bool mask)
T field_type
Definition hybrid.hh:86
Definition hybrid.hh:99
Definition hybrid.hh:142
Definition defaultblockvectors.hh:27
Definition hierarchical/dofvector.hh:60
static constexpr std::size_t blockSize
Definition hierarchical/dofvector.hh:64
HierarchicalDofBlock(const HierarchicalDofBlock< std::remove_const_t< DofContainer > > &other)
Definition hierarchical/dofvector.hh:70
Impl::BlockIndicesFor< DofContainer >::Type BlockIndices
Definition hierarchical/dofvector.hh:63
HierarchicalDofBlock(DofContainer &data, std::size_t baseIndex)
Definition hierarchical/dofvector.hh:66
Definition hierarchical/dofvector.hh:122
Definition hierarchical/dofvector.hh:131
FieldType value_type
Definition hierarchical/dofvector.hh:141
DofContainerType & array() noexcept
obtain underlaying DoF storage
Definition hierarchical/dofvector.hh:168
void memMoveForward(int length, int oldStartIdx, int newStartIdx)
Definition hierarchical/dofvector.hh:199
HierarchicalDofVector(SizeType size)
Definition hierarchical/dofvector.hh:150
void resize(SizeType size)
Definition hierarchical/dofvector.hh:171
Impl::BlockIndicesFor< DC >::Type BlockIndices
Definition hierarchical/dofvector.hh:144
void reserve(SizeType size)
Definition hierarchical/dofvector.hh:170
void axpy(const FieldType &scalar, const ThisType &other)
Definition hierarchical/dofvector.hh:161
static constexpr std::size_t blockSize
Definition hierarchical/dofvector.hh:145
ConstIteratorType begin() const
Definition hierarchical/dofvector.hh:180
HierarchicalDofBlock< DofContainerType > DofBlockType
Definition hierarchical/dofvector.hh:148
std::size_t SizeType
Definition hierarchical/dofvector.hh:139
void setMemoryFactor(double memFactor)
Definition hierarchical/dofvector.hh:191
FieldTraits< DofContainerType >::field_type FieldType
Definition hierarchical/dofvector.hh:137
ThisType & operator+=(const ThisType &other)
Definition hierarchical/dofvector.hh:155
void copyContent(int newIndex, int oldIndex)
Definition hierarchical/dofvector.hh:204
ConstDofBlockType operator[](SizeType i) const
Definition hierarchical/dofvector.hh:152
ThisType & operator*=(const FieldType &scalar)
Definition hierarchical/dofvector.hh:157
HierarchicalDofBlock< const DofContainerType > ConstDofBlockType
Definition hierarchical/dofvector.hh:147
ThisType & operator-=(const ThisType &other)
Definition hierarchical/dofvector.hh:156
std::size_t usedMemorySize() const
Definition hierarchical/dofvector.hh:186
FieldType * IteratorType
Definition hierarchical/dofvector.hh:178
FieldType operator*(const ThisType &other) const
Definition hierarchical/dofvector.hh:159
ConstIteratorType end() const
Definition hierarchical/dofvector.hh:183
SizeType size_type
Definition hierarchical/dofvector.hh:142
const FieldType * ConstIteratorType
Definition hierarchical/dofvector.hh:177
DC DofContainerType
Definition hierarchical/dofvector.hh:135
const DofContainerType & array() const noexcept
obtain underlaying DoF storage
Definition hierarchical/dofvector.hh:166
void memMoveBackward(int length, int oldStartIdx, int newStartIdx)
Definition hierarchical/dofvector.hh:194
static void memMoveForward(HierarchicalDofVector< DC > &array, int length, int oldStartIdx, int newStartIdx)
Definition hierarchical/dofvector.hh:275
static void memMoveBackward(HierarchicalDofVector< DC > &array, int length, int oldStartIdx, int newStartIdx)
Definition hierarchical/dofvector.hh:270
static void setMemoryFactor(HierarchicalDofVector< DC > &array, double memFactor)
Definition hierarchical/dofvector.hh:267
static std::size_t used(const HierarchicalDofVector< DC > &array)
Definition hierarchical/dofvector.hh:262
static void assign(HierarchicalDofVector< DC > &array, int newIndex, int oldIndex)
Definition hierarchical/dofvector.hh:280
T data(T... args)
T forward(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8