Skip to content
Snippets Groups Projects
  1. Dec 15, 2016
    • Ansgar Burchardt's avatar
      232a414d
    • Christian Engwer's avatar
      Merge branch 'feature/simd-for-multi-rhs' into 'master' · 7843720d
      Christian Engwer authored
      Feature/simd for multi rhs
      
      Update the solvers to solve for multiple rhs vectors simultaniously. This makes use of SIMD abstractions in dune-common (see dune-common!16) to use vectors of SIMD vectors as `FieldType` of the right-hand-side. By this we can make immediate use of SIMD units in modern processors. Using SSE for example we get a speedup of 2 basically for free. This extension is useful whenever the same operator has to be solved for many rhs vectors, e.g. in the case of MS-FEM.
      
      AMG Ist working as long as the coarse grid solver is an iterative solver. I therefore added an additional preprocessor macro to disable the direct coarse solver explicitly.
      
      What is missing currently is multi-rhs support for the direct solvers. I'm preparing a separate merge request for this feature, which will add multi-rhs direct-coarse-grid support for the AMG.
      
      See also: dune-common!81, dune-geometry!13.
      
      
      See merge request !17
      7843720d
  2. Dec 13, 2016
  3. Dec 09, 2016
  4. Dec 06, 2016
  5. Dec 05, 2016
    • Christoph Grüninger's avatar
      Merge branch 'feature/support-various-types-in-superlu' into 'master' · cbdf3270
      Christoph Grüninger authored
      Support various numeric types for SuperLU at once.
      
      Previously, we only supported one numeric type (float, double, complex<float>,
      or complex<double>) that the user could select via a cryptic preprocessor
      define. This was done this way because when including SuperLU headers we
      would otherwise have multiply defined structs in SuperLU. At least in 4.3
      GlobalLU_t is defined in slu_sdefs.h, slu_ddefs.h, slu_cdefs.h, and
      slu_zdefs.h
      
      With this commit we do not include the problematic SuperLU headers anymore.
      Instead why define the functions called by us with extern C within DUNE.
      In addition we now provide all the numeric types for which SuperLU drivers are
      found at the same time.
      
      Hopefully this will also fix problems with multiply defined BLAS routines experienced
      with arpack and SuperLU.
      
      See merge request !77
      cbdf3270
    • Markus Blatt's avatar
      Support various numeric types for SuperLU at once. · d1dcb220
      Markus Blatt authored and Christoph Grüninger's avatar Christoph Grüninger committed
      Previously, we only supported one numeric type (float, double, complex<float>,
      or complex<double>) that the user could select via a cryptic preprocessor
      define. This was done this way because when including SuperLU headers we
      would otherwise have multiply defined structs in SuperLU. At least in 4.3
      GlobalLU_t is defined in slu_sdefs.h, slu_ddefs.h, slu_cdefs.h, and
      slu_zdefs.h
      
      With this commit we do not include the problematic SuperLU headers anymore.
      Instead why define the functions called by us with extern C within DUNE.
      In addition we now provide all the numeric types for which SuperLU drivers are
      found at the same time.
      
      Hopefully this will also fix problems with multiply defined BLAS routines experienced
      with arpack and SuperLU.
      d1dcb220
  6. Nov 25, 2016
  7. Nov 22, 2016
  8. Nov 17, 2016
    • Dominic Kempf's avatar
      Merge branch 'feature/fix-amg-umfpack-when-using-float' into 'master' · 1eafb167
      Dominic Kempf authored
      [bugfix] This fixes an issue when UMFPack is found and AMG with field type float is used.
      
      The selection of UMFPack as a direct solver does not only depend on UMFPack being found, but also whether the field type is double or complex<double>. Otherwise UMFPack cannot be used as a coarse solver in AMG. This PR fixes this issue.
      
      @markus.blatt: Please take a look at this. 
      @smuething: Please take a look at this. 
      
      See merge request !51
      1eafb167
    • Ansgar Burchardt's avatar
      Merge branch 'feature/move-implementation-to-imp' into 'master' · ec617e3b
      Ansgar Burchardt authored
      Move various implementation classes into the 'Imp' namespace
      
      There are various classes in dune-istl that are effectively implementation
      classes internal to dune-istl. A few of them are base_array_unmanaged,
      base_array_window, compressed_base_array_unmanaged,block_vector_unmanaged,
      BlockVectorWindow, compressed_block_vector_unmanaged, CompressedBlockVectorWindow
      
      See #22 for a brief
      discussion.
      
      This patch moves the classes into the namespace 'Imp'.  That way it is
      clear that they are internal.
      
      All code outside of dune-istl using those classes will break, but does
      such code really exist?
      
      See merge request !65
      ec617e3b
    • Oliver Sander's avatar
      Move various implementation classes into the 'Imp' namespace · 13ec7d1b
      Oliver Sander authored and Ansgar Burchardt's avatar Ansgar Burchardt committed
      There are various classes in dune-istl that are effectively implementation
      classes internal to dune-istl. A few of them are base_array_unmanaged,
      base_array_window, compressed_base_array_unmanaged,block_vector_unmanaged,
      BlockVectorWindow, compressed_block_vector_unmanaged, CompressedBlockVectorWindow
      
      See #22 for a brief
      discussion.
      
      This patch moves the classes into the namespace 'Imp'.  That way it is
      clear that they are internal.
      
      All code outside of dune-istl using those classes will break, but does
      such code really exist?
      13ec7d1b
  9. Nov 15, 2016
  10. Nov 11, 2016
  11. Nov 10, 2016
  12. Nov 08, 2016
    • Markus Blatt's avatar
      Merge branch 'feature/remove-forbidden-downcast' into 'master' · d487fef6
      Markus Blatt authored
      Remove forbidden downcast
      
      This removes several constructors and assignments from base class in the class hierarchy around `base_array`. These removed methods are all implemented using a downcast which may result in undefined behaviour.
      Since they are not used anywhere in the core modules we can maybe remove them. According to @markus.blatt  these base classes are all meant to be internal.
      
      This may cause problems if user code explicitly uses the raw base classes and these methods. However, such user code would only be valid if the passed base class reference is actually an upcasted derived class which is very unlikely.
      
      See merge request !66
      d487fef6
  13. Oct 25, 2016
  14. Oct 24, 2016
  15. Oct 21, 2016
  16. Oct 19, 2016
    • Carsten Gräser's avatar
      Merge branch 'feature/fix-implicit-buildmode-doc' into 'master' · 47fc9a57
      Carsten Gräser authored
      Fix implicit buildmode documentation and adjust test accordingly
      
      This basically turns the issue #21 into a feature by correctly describing the constraints of the implicit build mode and the meaning of its parameters. This invalidates the test against the old interface description which is hence dropped by this MR. As a consequence the bcrsimplicitbuild-test passes again.
      
      See merge request !63
      47fc9a57
  17. Oct 18, 2016
Loading