amdis-core merge requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests2019-05-08T14:17:38Zhttps://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 markerhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/45Provide access function for vectors and matrices2019-05-03T23:00:20ZPraetorius, SimonProvide access function for vectors and matricesFor a general access of matrices and vectors, using various bracket types, the MR introduces the function `access(vector, i)` and `access(matrix, i,j)` that redirects to the specific implementation. Additionally Concepts are added to tes...For a general access of matrices and vectors, using various bracket types, the MR introduces the function `access(vector, i)` and `access(matrix, i,j)` that redirects to the specific implementation. Additionally Concepts are added to test whether an object can be accessed like a vector or matrix.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/44Resize abstraction for matrices and vectors2019-05-04T00:29:14ZPraetorius, SimonResize abstraction for matrices and vectorshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/43extend apply and for_each functions2019-05-03T16:15:35ZPraetorius, Simonextend apply and for_each functionshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/42add cxx feature test for auto templates2019-05-03T16:15:14ZPraetorius, Simonadd cxx feature test for auto templateshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/41allow parallel execution of runner tasks2019-05-03T16:12:23ZPraetorius, Simonallow parallel execution of runner taskshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/40Make FactoryParametrization compatible to dune 2.72021-11-10T18:08:46ZPraetorius, SimonMake FactoryParametrization compatible to dune 2.7https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/38Backup and restore facilities2019-05-09T14:05:00ZPraetorius, SimonBackup and restore facilitiesAdded backup and restore facilities for grid and dofvector. Either call
```c++
problemStat.backup(adaptInfo);
```
(This will backup the files to `[name]->backup->grid` and `[name]->backup->solution`)
and instead of `initialize()` c...Added backup and restore facilities for grid and dofvector. Either call
```c++
problemStat.backup(adaptInfo);
```
(This will backup the files to `[name]->backup->grid` and `[name]->backup->solution`)
and instead of `initialize()` call the function
```c++
problemStat.restore(INIT_ALL);
```
(This will read the grid and solution from the files `[name]->restore->grid` and `[name]->restore->solution`)
Or you can call
```c++
problemStat.backup(filename)
```
and
```c++
problemStat.restore(filename) -> std::unique_ptr<Grid>
```
directly to backup and restore the grid of the problemStat and `dofvector.backup(filename)` and `dofvector.restore(filename)` to backup and restore the data of the dofvector.
If the grid does not support backup-restore, the current gridView is written. This means that the hierarchy information is lost. A warning is printed in this case.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/37Changed raw pointer to shared_ptr in DOFVector and DOFMatrix2019-04-30T14:10:08ZPraetorius, SimonChanged raw pointer to shared_ptr in DOFVector and DOFMatrixAlways store a `shared_ptr` of the GlobalBasis instead of a reference or raw pointer.Always store a `shared_ptr` of the GlobalBasis instead of a reference or raw pointer.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/36added Environment for MPI initialization2019-05-03T16:14:40ZPraetorius, Simonadded Environment for MPI initializationThis MR replaces the old `AMDiS::init()` - `AMDiS::finalize()` pattern with a RAII class `Environment`, to be instantiated at the begin of the main method, i.e.
```c++
int main(int argc, char** argv)
{
Environment env(argc, argv);
...This MR replaces the old `AMDiS::init()` - `AMDiS::finalize()` pattern with a RAII class `Environment`, to be instantiated at the begin of the main method, i.e.
```c++
int main(int argc, char** argv)
{
Environment env(argc, argv);
// get MPI rank and size from environment after instantiation:
std::cout << Environment::mpiRank();
std::cout << Environment::mpiSize();
}
```
the ``finalize'' is called automatically when `env` is destructed, i.e. at the end of main().https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/35make max and min work with user-defined casts2019-04-26T10:26:52ZPraetorius, Simonmake max and min work with user-defined castscorrects a problem with `max(double, FieldVector<double,1>)` and `max(double, FieldMatrix<double,1,1>)`.corrects a problem with `max(double, FieldVector<double,1>)` and `max(double, FieldMatrix<double,1,1>)`.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/34allow order() as memberfunction of gridfunctions2019-04-25T17:40:25ZPraetorius, Simonallow order() as memberfunction of gridfunctionsallow order() as memberfunction of gridfunctions and redirect free function to this memberfunction if availableallow order() as memberfunction of gridfunctions and redirect free function to this memberfunction if availablehttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/32istl AMG preconditioner added2019-04-26T11:21:28ZPraetorius, Simonistl AMG preconditioner addedThe dune-istl AMG method is available as precondition. The corresponding initfile parameters are
```
[...]->solver->precon: [amg,fastamg]
[...]->solver->precon->smoother: [jacobi,sor,ssor] % later more smoothers can be added
[...]->sol...The dune-istl AMG method is available as precondition. The corresponding initfile parameters are
```
[...]->solver->precon: [amg,fastamg]
[...]->solver->precon->smoother: [jacobi,sor,ssor] % later more smoothers can be added
[...]->solver->precon->[...] % general amg parameters, see Dune::Amg::Parameters
[...]->solver->precon->coarsening->[...] % Parameters of Dune::Amg::CoarseningParameters
[...]->solver->precon->aggregation->[...] % Parameters of Dune::Amg::AggregationParameters
[...]->solver->precon->dependency->[...] % Parameters of Dune::Amg::DependencyParameters
[...]->solver->precon->smoother->[...] % Parameters of Dune::Amg::DefaultSmootherArgs
```
See `amdis/linearalgebra/istl/AMGPrecon.hpp` for a detailed list of parameters. The parameter names follow the variable names in the Dune Parameters class.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/31updated the dune install script2019-03-28T11:33:31ZPraetorius, Simonupdated the dune install script