amdis-core merge requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests2020-02-08T22:52:48Zhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/158removed some headers from amdis and moved them to independent repository dune...2020-02-08T22:52:48ZPraetorius, Simonremoved some headers from amdis and moved them to independent repository dune-blockedhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/159simplify solver info2020-02-08T22:37:13ZPraetorius, Simonsimplify solver infohttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/161Cleanup DiscreteFunctions2020-02-08T20:49:55ZPraetorius, SimonCleanup DiscreteFunctionshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/157generator function writer2020-02-07T14:49:28ZPraetorius, Simongenerator function writerAdd generator functions for BackupWriter and GMshWriterAdd generator functions for BackupWriter and GMshWriterhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/156corrected creator for sequential istl communication2020-02-03T10:36:41ZPraetorius, Simoncorrected creator for sequential istl communicationhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/149allow to pass bool parameter to stokes operator2020-02-03T09:47:54ZPraetorius, Simonallow to pass bool parameter to stokes operatorhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/154Add unused examples to CMakeLists2020-02-03T09:47:02ZMüller, FelixAdd unused examples to CMakeLists- Add the examples `neumann.cc`, `periodic.cc`, `traversal.cc`, `treecontainer.cc` to `CMakeLists.txt` to prevent bitrot
- Fix some errors with the examples above
- Create `examples/output/` and copy `examples/macro/` to build directory ...- Add the examples `neumann.cc`, `periodic.cc`, `traversal.cc`, `treecontainer.cc` to `CMakeLists.txt` to prevent bitrot
- Fix some errors with the examples above
- Create `examples/output/` and copy `examples/macro/` to build directory via cmakehttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/153Bug in setDatatransfer to DataTransferOperation2020-02-02T11:30:48ZPraetorius, SimonBug in setDatatransfer to DataTransferOperationhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/150initialize solver preconditioner correctly2020-01-31T18:16:53ZPraetorius, Simoninitialize solver preconditioner correctlyhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/148mtl krylov runner create precon2020-01-31T17:42:05ZPraetorius, Simonmtl krylov runner create preconCreate the preconditioner in the `runner::init()` method, to allow to register preconditioners even after runner is constructed.Create the preconditioner in the `runner::init()` method, to allow to register preconditioners even after runner is constructed.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/151workaround for communicators in blocked bases, use SequentialCommunication if...2020-01-31T16:35:53ZPraetorius, Simonworkaround for communicators in blocked bases, use SequentialCommunication if not flat MultiIndexThis workaround is implemented to at least allow that blocked bases compile with `ParallelGlobalBasis`. By default, if the basis is blocked, i.e. the MultiIndex is not a flat MultiIndex, the basis uses a `SequentialCommunication` instead...This workaround is implemented to at least allow that blocked bases compile with `ParallelGlobalBasis`. By default, if the basis is blocked, i.e. the MultiIndex is not a flat MultiIndex, the basis uses a `SequentialCommunication` instead of a backend communication object.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/152Add overload for LagrangeBasis with single node2020-01-31T14:46:46ZMüller, FelixAdd overload for LagrangeBasis with single nodeThis MR provides an overload to `LagrangePreBasisCreatorImpl` to return a single-node prebasis `lagrange<k>()` when using `LagrangeBasis<Grid, k>`.This MR provides an overload to `LagrangePreBasisCreatorImpl` to return a single-node prebasis `lagrange<k>()` when using `LagrangeBasis<Grid, k>`.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/147Wrap DistributedCommunication::RemoteIndices in unique_ptr to fix move issue ...2020-01-24T12:58:37ZMüller, FelixWrap DistributedCommunication::RemoteIndices in unique_ptr to fix move issue in c++14Due to missing copy elision in c++14 the PETSc Comm object `DistributedCommunication` is required to have a copy or move constructor in the statement (`ParallelGlobalBasis.hpp:89`)
```cpp
, comm_(CommunicationCreator<Comm>::create(st...Due to missing copy elision in c++14 the PETSc Comm object `DistributedCommunication` is required to have a copy or move constructor in the statement (`ParallelGlobalBasis.hpp:89`)
```cpp
, comm_(CommunicationCreator<Comm>::create(static_cast<Super const&>(*this), name + "->solver"))
```
Since the member `Dune::RemoteIndices` declares a private copy and no move constructor we need to wrap it into a `unique_ptr` to provide move semantics.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/143remove comm from solver2020-01-20T15:23:25ZPraetorius, Simonremove comm from solverhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/146moved the sparsity pattern update method to the bilinear form2020-01-10T19:17:32ZPraetorius, Simonmoved the sparsity pattern update method to the bilinear formhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/144Add a destructor to Notifier to prevent Segfault w/o extending the Lifetime o...2020-01-10T18:19:15ZMüller, FelixAdd a destructor to Notifier to prevent Segfault w/o extending the Lifetime of Objects via shared_ptrAlso extended the testsAlso extended the testshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/145Added missing include2020-01-07T18:04:06ZMüller, FelixAdded missing includeAdded missing include for `Dune::range`Added missing include for `Dune::range`https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/142cleanup for petscsolver2020-01-03T14:25:46ZPraetorius, Simoncleanup for petscsolverhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/136Matrix-Vector facade class2019-12-30T22:32:05ZPraetorius, SimonMatrix-Vector facade classThis MR redesigns the matrix and vector front-/backend. Therefore, the `MatrixBase` and `VectorBase` classes are renamed to `xxxFacade` classes, where the actual backend is passed by template-template parameter, instantiated with just th...This MR redesigns the matrix and vector front-/backend. Therefore, the `MatrixBase` and `VectorBase` classes are renamed to `xxxFacade` classes, where the actual backend is passed by template-template parameter, instantiated with just the value-type of the coefficients to store in the matrix/vector. This reduces the length of the template parameter list and releases the backend from basis dependency. Also, the facade classes do not directly depend on the basis type, but get the basis as constructor argument that allows to, e.g. construct the matrix pattern, or to store a type-erased sizeInfo of the basis. This type-erasure is used in several places by just using `std::functions`
Also, we have added a sparsity pattern argument to the matrix `init()` method, where the actual pattern is initialized in the facade class to allow block patterns to be initialized at a central location.
The facade class performs several (concept) checks on the input and just forwards the necessary data and ranges to the backend implementation.
The `DOFVector`, `LinearForm` and `BiLinearForm` are now parametrized with the `BackendTraits` type, to allow user-defined traits with own backend implementations to be passed to the facade classes.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/141cmake have package rename2019-12-28T14:52:00ZPraetorius, Simoncmake have package rename