amdis-core merge requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests2019-09-11T11:47:21Zhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/96removed unused variable from Marker2019-09-11T11:47:21ZPraetorius, Simonremoved unused variable from Markerhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/95default initialize MPI_Requests2019-09-03T12:03:42ZPraetorius, Simondefault initialize MPI_Requestshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/94Added flat matrix and vector used for ElementMatrix and ElementVector2019-09-03T11:04:01ZPraetorius, SimonAdded flat matrix and vector used for ElementMatrix and ElementVectorhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/93Added outer product for FieldVector2019-09-03T11:04:24ZPraetorius, SimonAdded outer product for FieldVectorhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/92evaluate marker-function only on the barycenter of the element2019-08-28T09:38:55ZPraetorius, Simonevaluate marker-function only on the barycenter of the elementI had the problem, that an evaluation of the gridfunction only in corners of the element was not working for properly refining the grid.I had the problem, that an evaluation of the gridfunction only in corners of the element was not working for properly refining the grid.https://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/91added error messages to umfpack error codes2019-08-28T09:11:45ZPraetorius, Simonadded error messages to umfpack error codeshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/90changed grid construction to allow parallel grids to be created directly2019-08-28T09:11:13ZPraetorius, Simonchanged grid construction to allow parallel grids to be created directlyhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/87update UniqueBorderPartition to support UGGrid2019-08-28T10:54:39ZPraetorius, Simonupdate UniqueBorderPartition to support UGGridhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/85added twist utilities to flip the order of edge DOFs2019-08-28T10:32:51ZPraetorius, Simonadded twist utilities to flip the order of edge DOFshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/84added helper utility to wrap Dune::FunctionFromCallable constructors2019-08-22T06:46:10ZPraetorius, Simonadded helper utility to wrap Dune::FunctionFromCallable constructorshttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/83added code from the mpi14 library for parallel mpi communication with a nice ...2019-08-28T15:42:19ZPraetorius, Simonadded code from the mpi14 library for parallel mpi communication with a nice wrapper interfacehttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/80Feature/petsc cmake2019-08-22T06:46:53ZPraetorius, SimonFeature/petsc cmakeadded cmake modules FindPETScadded cmake modules FindPETSchttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/79Feature/observer2019-10-10T12:34:10ZMüller, FelixFeature/observerThis MR replaces the current mechanism for automatic updates of Dune-bases and `DOFVector`s with an observer pattern mixin.
Adds:
- `AdaptiveGrid` wrapper class to be handed out to the user. This allows addition of functionality to D...This MR replaces the current mechanism for automatic updates of Dune-bases and `DOFVector`s with an observer pattern mixin.
Adds:
- `AdaptiveGrid` wrapper class to be handed out to the user. This allows addition of functionality to Dune-grid types. It is expected to be used instead of a regular grid by the user whenever possible.
- `ParallelGlobalBasis` class expected to be used instead of a regular Dune-basis. The `Communication` object is now paired directly with a basis within this object.
- Mixin classes `Observer` and `Signals` for adding automatic update functionality to other classes.
- Observer unit test
- `SharedPtr.hpp` providing wrapping of objects and `shared_ptr`/`unique_ptr` into `shared_ptr`s
- free function `makeGlobalBasis` to generate a `ParallelGlobalBasis` from a prebasis
Removes:
- `GridTransfer[Manager].hpp` since those are no longer used.
- `DOFVectorInterface.hpp`
Changes:
- Lots of changes due to `feature/petsc_backend`, see !78.
- Interface changes to several classes to use the new `Observed[Grid, Basis]` objects when needed.
- `DOFVector` now creates a new `DataTransfer` on copy. This change is independent of this MR and may be cherry-picked.
- Restructured `preAdapt`/`adapt`/`postAdapt` callbacks in `DataTransfer` and `DOFVector`
- `MeshCreator` now returns an `AdaptiveGrid`
TODOs:
* [x] Cleanup of initial commit
* [x] Clearer names for the new classes
* [x] Test of Observer hierarchy (skipped subjects, multiple subjects) - see discussion belowMüller, FelixMüller, Felixhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/76parallel filewriter2019-08-21T12:05:13ZPraetorius, Simonparallel filewriterWorkaround for buggy VTKSequenceWriterWorkaround for buggy VTKSequenceWriterhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/75corrected init file of heat example to support output2019-08-21T11:10:42ZPraetorius, Simoncorrected init file of heat example to support outputhttps://gitlab.math.tu-dresden.de/amdis/amdis-core/-/merge_requests/74constructor call of FieldVector corrected in convectionDiffusionOperator2019-08-21T11:29:58ZPraetorius, Simonconstructor call of FieldVector corrected in convectionDiffusionOperatorhttps://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/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 used