Feature/observer
- Oct 09, 2019
-
-
Müller, Felix authored
Major changes: Add wrapper class AdaptiveGrid<Grid> to be used instead of a dune-grid within AMDiS. This provides most of the grid interface and supports automatic updates of bases. Change: MeshCreator now returns an AdaptiveGrid Change: ProblemStat uses AdaptiveGrid internally and returns an object of that type Add class ParallelGlobalBasis<Basis> as a replacement for a dune-functions basis. This implements the complete interface and can be used as a replacement for a regular basis in all contexts. It supports automatic updates. Add free function makeGlobalBasis to make a ParallelGlobalBasis Change: AMDiS basis creators now return a ParallelGlobalBasis Change: ProblemStat uses ParallelGlobalBasis internally and returns an object of that type Add classes Observer/Signals. Classes can derive from those to take part in the automatic update feature. Add update(Event const& e) methods to classes using the feature above. They implement the action to be done when the registered Event is triggered. Remove GridTransfer[-Manager] and replace with the new Observer/Signals implementation Change: linear algebra communicator is now a part of ParallelGlobalBasis Add wrapper for DataTransfer objects that can be used instead of a base class pointer and performs deep-copy operations on copy construction and assignment Change: DOFVector DataTransfer member is now stored using the new wrapper class DataTransferWrapper Change: preAdapt, adapt, postAdapt callbacks are now called after calling the respective grid function. Classes that previously used any of them had their methods changed accordingly. Minor changes: Remove Comm argument for ctor of [Bi-]LinearForm, DOFVector Change ctor argument from Comm to Basis in linearalgebra/<impl>/[Matrix-, Vector-]Backend.hpp Simplify DOFVector copy/move by defaulting Remove DOFVector::resize override Remove DOFVectorInterface.hpp Change: linearalgebra/Traits.hpp includes the backend-specific Traits file. This is required to break an include loop. Add global 'solver category' initfile parameter used by the ISTL backend communicator when no parameter at prefix + '->category' is found Fix commented out parts in DOFVectorTest, DiscreteFunctionTest Add unit test for Observer functionality Add helper function wrap_or_share (see amdis/common/SharedPtr.hpp) Fix backend = ISTL check for ISTLCommTest in CMakeLists
-