DUNE-FEM (unstable)
This is the reference implementation of a block vector as it is expected as the second template parameter to Dune::Fem::BlockVectorDiscreteFunction. More...
#include <dune/fem/function/blockvectors/referenceblockvector.hh>
Public Types | |
enum | |
Size of each block. | |
typedef ArrayType::value_type | FieldType |
Type of the field the dofs lie in. | |
typedef ArrayType::iterator | IteratorType |
Iterator to iterate over the dofs. | |
typedef ArrayType::const_iterator | ConstIteratorType |
Constant iterator to iterate over the dofs. | |
typedef FieldType | value_type |
Typedef to make this class STL-compatible. | |
typedef SizeType | size_type |
Typedef to make this class STL-compatible. | |
typedef SubVector< DofContainerType, StaticOffsetSubMapper< BlockSize > > | DofBlockType |
Type of one (mutable) block. | |
typedef DofBlockType | ConstDofBlockType |
Type of one constant block. | |
typedef Field | DofType |
make consistent with discrete function | |
Public Member Functions | |
ReferenceBlockVector (SizeType size) | |
Constructor; use this to create a block vector with 'size' blocks. More... | |
void | setMemoryFactor (const double memFactor) |
set memory overestimate factor, here does nothing | |
void | reserve (const int size) |
Reserve memory. More... | |
void | resize (SizeType size) |
Resize the block vector. | |
ConstDofBlockType | operator[] (const unsigned int i) const |
Constant access the i-th block. | |
DofBlockType | operator[] (const unsigned int i) |
Access the i-th block. | |
ConstDofBlockPtrType | blockPtr (const unsigned int i) const |
Constant access for the i-th block. | |
DofBlockPtrType | blockPtr (const unsigned int i) |
Access the i-th block. | |
IteratorType | begin () |
Iterator pointing to the first dof. | |
ConstIteratorType | begin () const |
Const-iterator pointing to the first dof. | |
IteratorType | end () |
Iterator pointing to the last dof. | |
ConstIteratorType | end () const |
Const-iterator pointing to the last dof. | |
IteratorType | beforeEnd () |
Iterator pointing to last dof. | |
ConstIteratorType | beforeEnd () const |
Iterator pointing to last dof. | |
IteratorType | beforeBegin () |
Iterator pointing to before the first dof. | |
ConstIteratorType | beforeBegin () const |
Iterator pointing to before the first dof. | |
IteratorType | find (const SizeType dof) |
Iterator pointing to a given dof (non blocked numbering) | |
ConstIteratorType | find (const SizeType dof) const |
Iterator pointing to a given dof (non blocked numbering) | |
SizeType | size () const |
Number of blocks. | |
SizeType | numDofs () const |
Number of dofs in the block vector. | |
const ThisType & | operator+= (const ThisType &other) |
Add another block vector to *this. | |
const ThisType & | operator-= (const ThisType &other) |
Subtract another block vector from *this. | |
FieldType | operator* (const ThisType &other) const |
Scalar product between *this and another block vector. | |
const ThisType & | operator*= (const FieldType &scalar) |
Scale this block vector. More... | |
void | axpy (const FieldType &scalar, const ThisType &other) |
Add a scalar multiple of another block vector to this block vector. More... | |
void | clear () |
Clear this block vector, i.e. set each dof to 0. | |
std::size_t | usedMemorySize () const |
void | copyContent (const size_t newIndex, const size_t oldIndex) |
void | memMoveBackward (const size_t length, const size_t oldStartIdx, const size_t newStartIdx) |
move memory blocks backwards | |
void | memMoveForward (const size_t length, const size_t oldStartIdx, const size_t newStartIdx) |
move memory blocks forward | |
Detailed Description
class Dune::Fem::ReferenceBlockVector< F, BlockSize >
This is the reference implementation of a block vector as it is expected as the second template parameter to Dune::Fem::BlockVectorDiscreteFunction.
- Template Parameters
-
F The ground fields. All dofs are elements of this field. BlockSize Size of the blocks
Constructor & Destructor Documentation
◆ ReferenceBlockVector()
|
inlineexplicit |
Constructor; use this to create a block vector with 'size' blocks.
The dofs are not initialized.
- Parameters
-
[in] size Number of blocks
Member Function Documentation
◆ axpy()
|
inlineinherited |
Add a scalar multiple of another block vector to this block vector.
Semantic in pseudocode: " *this = *this + scalar*v "
- Parameters
-
[in] scalar Scalar factor by which v is multiplied before it is added to *this [in] other The other block vector
◆ copyContent()
|
inlineinherited |
implements array[ newIndex ] = array[ oldIndex ]
◆ operator*=()
|
inlineinherited |
Scale this block vector.
- Parameters
-
[in] scalar Factor for the scaling
- Returns
- Constant reference to *this
◆ reserve()
|
inlineinherited |
Reserve memory.
This method is a no-op. It is defined here to make the block vector compatible to the managed dof storage mechanisms used by Dune::Fem::BlockVectorDiscreteFunction
- Parameters
-
[in] size Number of blocks
◆ usedMemorySize()
|
inlineinherited |
return memory used by this block vector
The documentation for this class was generated from the following file:
- dune/fem/function/blockvectors/referenceblockvector.hh