Skip to content
Snippets Groups Projects
  1. Jan 08, 2023
  2. Sep 30, 2022
  3. Dec 13, 2019
  4. May 09, 2017
  5. Apr 10, 2017
    • Christian Engwer's avatar
      [compatibility] allow to disable the compatibility layer · 28492dbc
      Christian Engwer authored
      depending on a preprocessor define we switch the base classes to be
      pure virtual, or implement a dummy category(). If the classes are pure
      virtual the old interface with an enum is not possible anymore.
      
      To enable/disable the backwards compatibility check we provide a cmake
      flag DUNE_ISTL_SUPPORT_OLD_CATEGORY_INTERFACE, which defaults to 1
      (e.g. backwards compatibility enabled).
      28492dbc
    • Christian Engwer's avatar
      [dynamic polymorphism] make the new category interface backward compatible · d362f37d
      Christian Engwer authored
      - we add helper code to extract the solver category from the enum
        or the virtual function
      - we update the base classes to actually use this code to perform
        consistency checks
      d362f37d
    • Christian Engwer's avatar
      [dynamic polymorphism] add dynamic interface for category check · b022944a
      Christian Engwer authored
      We introduce a new method category to check for the same SolverCategory of different
      components at run time.
      
      This is a drawback compared to compile time checks, but it adds a lot of flexibility as we will
      be able to  write factory classes for solvers and compose/exchange solvers at runtime.
      
      Besides this we added the following changes:
      - an additional intermediate class IterativeSolver encapsulates the data of almost all solvers
      - the solvers now inherit from IterativeSolver and can usually reuse its constructor
      - the solvers now only have to implement _one_ apply method, the other is implemented
        generically
      
      State:
      - currently the example compiles
      - none of the AMG headers has been updated yet
      b022944a
  6. Apr 13, 2015
  7. Jun 12, 2013
    • Markus Blatt's avatar
      Split {solvers|preconditioner}.hh to seperate interface from implementation. · 852123df
      Markus Blatt authored
      The last commits caused compile errors for e.g. clang as I used
      incomplete (only forward declared) types in template classes.
      This patch moves the definition of InverseOperator and Preconditioners
      from the headers solvers.hh and preconditioners into new separate
      headers solver.hh and preconditioner.hh. This allows to include these
      definitions in the previous headers without cause circular include directives.
      852123df
Loading