Constructs the DOFVector from a given global basis and optionally a DataTransferOperation that
Constructs the DOFVector from a given global basis or a grid view and a basis factory, and optionally a DataTransferOperation that defines how the DOFVector is handled during grid adaption.
defines how the DOFVector is handled during grid adaption.
#### Arguments
#### Arguments
`Basis basis`
`Basis basis`
: Either a `shared_ptr` to the `GlobalBasis` type or anything that can be converted to that, e.g. a
: Either a `shared_ptr` to the `GlobalBasis` type or anything that can be converted to that, e.g. a reference or a `unique_ptr`. References to lvalues are wrapped into non-destroying `shared_ptr`s whereas rvalue-references are moved into new basis objects.
reference or a `unique_ptr` or a dune-functions `DefaultGlobalBasis`. References to lavlues are
wrapped into non-destroying `shared_ptr`s whereas rvalue-references are moved into new basis objects.
`GV gridView`
: A grid view provided by the grid
`PBF preBasisFactory`
: A factory to create a pre-basis, see [the ref page on GlobalBasis](../GlobalBasis#making-a-prebasis)
`DataTransferOperation op`
`DataTransferOperation op`
: The operation performed during data-transfer, either `DataTransferOperation::INTERPOLATE` or `DataTransferOperation::NO_OPERATION`
: The operation performed during data-transfer, either `DataTransferOperation::INTERPOLATE` or `DataTransferOperation::NO_OPERATION`
...
@@ -316,10 +320,10 @@ A `DiscreteFunction` is the interpretation of a `DOFVector` as grid function.
...
@@ -316,10 +320,10 @@ A `DiscreteFunction` is the interpretation of a `DOFVector` as grid function.
[`MatrixBase`](#class-matrixbase) | Base class for vectors
[`MatrixFacade`](#class-matrixfacade) | Base class for matrices
[`VectorBase`](#class-vectorbase) | Base class for Matrices
[`VectorFacade`](#class-vectorfacade) | Base class for vectors
## class `MatrixBase`
## class `MatrixFacade`
Defined in header [`<amdis/linearalgebra/MatrixBase.hpp>`](https://gitlab.mn.tu-dresden.de/amdis/amdis-core/blob/master/amdis/linearalgebra/MatrixBase.hpp)
Defined in header [`<amdis/linearalgebra/MatrixFacade.hpp>`](https://gitlab.mn.tu-dresden.de/amdis/amdis-core/blob/master/amdis/linearalgebra/MatrixFacade.hpp)
```c++
```c++
template<classRowBasis,
template<classT,template<class>classMatrixImpl>
classColBasis,
classMatrixFacade
classBackend>
classMatrixBase
```
```
`MatrixBase` is an interface class for matrices storing additionally pointers to the row and column basis, `RowBasis` and `ColBasis`, respectively.
`MatrixFacade` is an interface class for matrices storing the implementation and rediricting to its interface functions.
The template parameter `Backend` refers to the actual implementation of the matrix data-structure.
The template parameter `T` defines the coefficient type of the matrix, `MatrixImpl` refers to the actual implementation of the matrix data-structure.
`RowBasis` | The type of the finite element space / basis of the row
`Impl` | The Linear-Algebra implementation used to store the assembled coefficients
`RowLocalView` | `typename RowBasis::LocalView`
`ColBasis` | The type of the finite element space / basis of the column
`ColLocalView` | `typename ColBasis::LocalView`
`Backend` | The Linear-Algebra backend used to store the assembled coefficients
## class `VectorBase`
## class `VectorFacade`
Defined in header [`<amdis/linearalgebra/VectorBase.hpp>`](https://gitlab.mn.tu-dresden.de/amdis/amdis-core/blob/master/amdis/linearalgebra/VectorBase.hpp)
Defined in header [`<amdis/linearalgebra/VectorFacade.hpp>`](https://gitlab.mn.tu-dresden.de/amdis/amdis-core/blob/master/amdis/linearalgebra/VectorFacade.hpp)
```c++
```c++
template<classBasis,
template<classT,template<class>classVectorImpl>
classBackend>
classVectorFacade
classVectorBase
```
```
`VectorBase` is an interface class for vectors storing an additional pointer to the global basis, `Basis`.
`VectorFacade` is an interface class for vectors storing the implementation and rediricting to its interface functions.
The template parameter `Backend` refers to the actual implementation of the vector data-structure.
The template parameter `T` defines the coefficient type of the vector, `VectorImpl` refers to the actual implementation of the vector data-structure.