amdis-core merge requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests2019-08-21T11:28:04Zhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/73Restricted integration to interior elements2019-08-21T11:28:04ZMüller, FelixRestricted integration to interior elementsThis avoids summing up elements twice when using the `integrate()` function in parallel with overlapping grids.This avoids summing up elements twice when using the `integrate()` function in parallel with overlapping grids.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/71write only rank 0 in parallel2019-08-21T13:11:39ZPraetorius, Simonwrite only rank 0 in parallelhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/70sum up parallel integrals2019-06-14T08:36:25ZPraetorius, Simonsum up parallel integralshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/69add coefficient type to DefaultProblemTraits2019-06-12T10:32:42ZPraetorius, Simonadd coefficient type to DefaultProblemTraitshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/68unique border partition DataHandle2019-06-12T10:32:25ZPraetorius, Simonunique border partition DataHandleThis MR extracts the `UniqueBorderPartitionDataHandle` from the ParallelISTL branch, since it might be useful also in other implementations.This MR extracts the `UniqueBorderPartitionDataHandle` from the ParallelISTL branch, since it might be useful also in other implementations.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/67Global DOF IDs2019-06-13T11:07:52ZPraetorius, SimonGlobal DOF IDsFor parallel computations one has to identify DOFs in the global grid uniquely. This requires knowledge of the connectivity of DOFs and can not generically be extracted from the global basis without any specialization.
So, this MR adds ...For parallel computations one has to identify DOFs in the global grid uniquely. This requires knowledge of the connectivity of DOFs and can not generically be extracted from the global basis without any specialization.
So, this MR adds a global IdSet for DOFs in a GlobalBasis. The `GlobalBasisIdSet` must be bound to an element and can then extract the globally unique id of a local DOF:
```c++
using IdSet = GlobalBasisIdSet<GlobalBasis>;
IdSet idSet(basis);
for (const auto& e : elements(basis.gridView()))
{
idSet.bind(e);
for (std::size_t i = 0; i < idSet.size(); ++i)
{
auto id = idSet.id(i);
}
idSet.unbind();
}
```https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/66cleanup of DataTransfer, created generator for treeContainer is node-data tem...2019-06-11T13:48:12ZPraetorius, Simoncleanup of DataTransfer, created generator for treeContainer is node-data template is usedhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/65make StandardProblemIteration copyable2019-06-11T13:48:48ZPraetorius, Simonmake StandardProblemIteration copyablehttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/64make capabilities a compile-time test whether backup-restore functionality ca...2019-09-24T11:47:58ZPraetorius, Simonmake capabilities a compile-time test whether backup-restore functionality can be usedhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/63allow current directory for output and make it default2019-06-08T12:16:51ZPraetorius, Simonallow current directory for output and make it defaulthttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/62do not overwrite dirichlet node classification when iterating over intersections2019-06-08T12:16:28ZPraetorius, Simondo not overwrite dirichlet node classification when iterating over intersectionshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/61Filewriter abstraction2019-09-30T08:47:53ZPraetorius, SimonFilewriter abstraction### Summary
Abstraction of the filewriter interface to allow more writers
### Details
The filewriter interface is specified and a creator class added for some writer file formats. ### Summary
Abstraction of the filewriter interface to allow more writers
### Details
The filewriter interface is specified and a creator class added for some writer file formats. https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/60Added missing file BackupRestor.hpp to CMakeLists2019-05-16T11:29:28ZPraetorius, SimonAdded missing file BackupRestor.hpp to CMakeListshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/59change AMDiS::init to Environment in BackupRestoreTest2019-05-12T12:29:41ZPraetorius, Simonchange AMDiS::init to Environment in BackupRestoreTesthttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/58Add generalized derivative and local-to-global adapter to handle the global d...2019-06-08T13:02:21ZPraetorius, SimonAdd generalized derivative and local-to-global adapter to handle the global derivatives uniformly### Summary
Cleanup of Gridfunctions, i.e. separate order, derivative and gridfunction concepts. Add generalized derivative with gradient, divergence and partial derivatives. Add a local-to-global adapter similar to the one found in dune...### Summary
Cleanup of Gridfunctions, i.e. separate order, derivative and gridfunction concepts. Add generalized derivative with gradient, divergence and partial derivatives. Add a local-to-global adapter similar to the one found in dune-localfunctions.
### Details
1. Cleanup of Gridfunctions:
The `GridFunctionConcepts` is split into several parts, `Order.hpp`, `Derivative.hpp` and `GridFunction.hpp` for a cleaner structure. Thereby, the free functions `order()`, `derivative()` and `localFunctions()` now redirect to the corresponding member functions when those member functions are available.
2. Generalized derivatives:
The function `derivative()` is extended by an argument characterizing the type of the derivative, i.e. `tag::gradient`, `tag::divergence`, or `tag::partial` where the last one accepts an argument for the component of the partial derivative. In order to determine the range type of the grid functions, a class `DerivativeTraits` is added, parametrized with the derivative type and the function signature. For the discrete function it is possible to calculate all three derivative types. This is tested in `GradienTest` finally.
3. Local-to-Global adapter:
The calculation of global derivatives from local-basis and geometry Jacobians is abstracted and put into the new class `LocalToGlobalBasisAdapter` that performes cached evaluation of the local basis jacobians and geometry jacobians and the transforms those into global derivatives. This class can be used in the localoperators and is partially adapted already.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/57allo parallel execution of backup-restore tests2019-05-11T22:23:58ZPraetorius, Simonallo parallel execution of backup-restore testsCorrects a bug introduced by MR of backup-restore feature. The test now writes in different files, to allow parallel execution without race conditions.Corrects a bug introduced by MR of backup-restore feature. The test now writes in different files, to allow parallel execution without race conditions.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/56corrected solver creator for istl solvers and preconditioners2019-05-12T08:39:39ZPraetorius, Simoncorrected solver creator for istl solvers and preconditionersCorrected a bug introduced by MR for coefficient types. The test of the `field_type` of matrices was replaced.Corrected a bug introduced by MR for coefficient types. The test of the `field_type` of matrices was replaced.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/55allow proxies to be passed to the assigner classes as output argument2019-05-08T09:17:11ZPraetorius, Simonallow proxies to be passed to the assigner classes as output argumenthttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/54add traits for testing whether something is a template or a type and add enab...2019-05-08T19:14:30ZPraetorius, Simonadd traits for testing whether something is a template or a type and add enable_if_allhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/53add traits to test whether a dune matrix/vector has only one component2019-05-08T09:17:44ZPraetorius, Simonadd traits to test whether a dune matrix/vector has only one component