Skip to content
  • Müller, Felix's avatar
    Redesign of automatic basis, communicator and DOFVector updates · 707a73ff
    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
    707a73ff