Ferrite.jl icon indicating copy to clipboard operation
Ferrite.jl copied to clipboard

SparseMatrixCSR extension

Open termi-official opened this issue 1 year ago • 6 comments

Towards #848 and #628 . This should show how we could assemble into custom sparse matrix formats.

TODO

  • [x] Fix inhomogeneous boundary conditions
  • [x] Add devdocs
  • [x] Add test

termi-official avatar Dec 23 '23 21:12 termi-official

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.01%. Comparing base (6228782) to head (60bf45f). Report is 1 commits behind head on master.

:exclamation: Current head 60bf45f differs from pull request most recent head 0b5a861

Please upload reports for the commit 0b5a861 to get more accurate results.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #864      +/-   ##
==========================================
+ Coverage   92.94%   93.01%   +0.06%     
==========================================
  Files          38       39       +1     
  Lines        5756     5812      +56     
==========================================
+ Hits         5350     5406      +56     
  Misses        406      406              

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov-commenter avatar Dec 28 '23 01:12 codecov-commenter

I suppose in all(?) cases the solver will dictate what matrix you need to, or can, use. Is there any solver that can handle SparseMatrixCSR but not SparseMatrixCSC?

fredrikekre avatar Jul 03 '24 08:07 fredrikekre

Nice! It could be nice to use the SparseMatrixCSR in one of the tutorials also (for testing and showing user that it is possible)

I decided to not use it in one of the tutorials for now, because I didn't wanted to clutter any of these. It should also be clear how to use it from the docstring of start_assemble ? Which test is missing in https://github.com/Ferrite-FEM/Ferrite.jl/pull/864/files#diff-7fa26eddc1fe6a8a5341e0fcdffb1d8c256e6a566819cfcf70b625ef80ab6abd ? (At least codecov says I have coverage).

termi-official avatar Jul 03 '24 08:07 termi-official

I suppose in all(?) cases the solver will dictate what matrix you need to, or can, use. Is there any solver that can handle SparseMatrixCSR but not SparseMatrixCSC?

If you talk about matrix formats, then e.g. Ginkgo and Hypre just have CSR formats (and no CSC).

termi-official avatar Jul 03 '24 08:07 termi-official

Yea but then you wouldn't go through SparseMatrixCSR.jl but directly to a HYPRE matrix or Ginkgo matrix?

fredrikekre avatar Jul 03 '24 08:07 fredrikekre

Yea but then you wouldn't go through SparseMatrixCSR.jl but directly to a HYPRE matrix or Ginkgo matrix?

Yes

termi-official avatar Jul 03 '24 10:07 termi-official