Skip to content

GMGPolar v2.0.0

Choose a tag to compare

@mknaranja mknaranja released this 24 Apr 18:28
· 58 commits to main since this release
91e3a9b
  1. Enhancements and New Class Layout:
  • Linear Algebra:
    • Introduced custom Vector and SparseMatrix classes.
    • Added a (cyclic) Tridiagonal Solver for improved performance and usability.
  • Input Functions:
    • Separated into distinct components: DomainGeometry, BoundaryConditions, SourceTerm, etc.
  • Polar Grid:
    • Indexing is now based on circle/radial smoother.
  • Residual:
    • Improved the residual calculation by addressing the unintuitive behavior that previously applied only to the interior part of the matrix.
  • Direct Solver:
    • Fixed a bug where boundary values were not treated correctly.
    • Built matrices to be symmetric, reducing factorization time.
  • Smoother:
    • Separated into extrapolated and standard smoothers.
    • Replaced the LU-Decomposition algorithm with the Thomas algorithm for improved efficiency.
  1. New Features
  • Introduced W- and F cycles for enhanced solving capabilities.
  • Added FMG (Full Multigrid) to obtain improved starting solutions.
  • Implemented advanced caching behavior options for the "Give" implementation strategy.
  • Added a faster strategy named 'Take,' which is appropriate for cases where memory is less of a constraint, resulting in an 80% increase in memory usage.
  • Comprehensive Unit Tests: Integrated Google Unit Tests for all classes, ensuring robust and reliable functionality across the codebase.
  1. Performance Improvements
  • Removed the task-based approach, which did not scale well with increasing parallelization.
  • Reduced maximum usage by 61.5% by constructing symmetric matrices and utilizing the tridiagonal structure of smoother matrices.
  1. Updated Features
  • Added a new LU decomposition solver, allowing users to choose between MUMPS and the in-house solver for greater flexibility and performance.