amdis-core merge requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests2019-06-11T13:48:48Zhttps://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 componenthttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/52add fake container-like datastructure with all no-op2019-05-08T14:17:38ZPraetorius, Simonadd fake container-like datastructure with all no-opThis fake container con be used as argument to functions expecting a container that is filled or accessed somehow, if you do not want to do anything.
TODO:
* [x] Needs a testThis fake container con be used as argument to functions expecting a container that is filled or accessed somehow, if you do not want to do anything.
TODO:
* [x] Needs a testhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/51add hybrid utility SwitchCases for dynamic and static dispatching2019-05-08T15:56:54ZPraetorius, Simonadd hybrid utility SwitchCases for dynamic and static dispatchingThis is a hybrid variant of `Dune::switchCases` with runtime and compiletime index sets.
TODO:
* [x] Add a test for switch casesThis is a hybrid variant of `Dune::switchCases` with runtime and compiletime index sets.
TODO:
* [x] Add a test for switch caseshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/50add static size information for Eigen matrix type2019-05-08T23:04:22ZPraetorius, Simonadd static size information for Eigen matrix typeTODO:
* [x] Add a test for static size informationTODO:
* [x] Add a test for static size informationhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/49replace deprecated AMDiS::init and finalize with Environment2019-05-08T09:18:07ZPraetorius, Simonreplace deprecated AMDiS::init and finalize with EnvironmentAfter merging the `Environment` class, some examples and test need to be adapted.After merging the `Environment` class, some examples and test need to be adapted.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/48Add explicit return type for lambdas2019-05-08T09:18:35ZPraetorius, SimonAdd explicit return type for lambdasIf there is an error within a lambda in a recursive hierarchy of calls, the return type might not be extracted correctly and I get an additional error `using xyz before deduction of auto` or something similar. This might be reduced, by e...If there is an error within a lambda in a recursive hierarchy of calls, the return type might not be extracted correctly and I get an additional error `using xyz before deduction of auto` or something similar. This might be reduced, by explicitly stating the return type of a lambda if known.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/47rewritten mesh creator to support more general creation2019-06-08T13:31:08ZPraetorius, Simonrewritten mesh creator to support more general creationAutomatically create dune grids by different strategies.
1. If a `macro file name` is given, try to determine by file extension which reader to use and read the grid from file
2. else if the parameter `mesh->structured` is given, try...Automatically create dune grids by different strategies.
1. If a `macro file name` is given, try to determine by file extension which reader to use and read the grid from file
2. else if the parameter `mesh->structured` is given, try to construct a structured grid
3. else try to create the grid depending on the grid typehttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/46add functionality to remove an added marker2019-05-03T21:51:12ZPraetorius, Simonadd functionality to remove an added marker