-
-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sparsity pattern insert #3338
Merged
chrisrichardson
merged 15 commits into
FEniCS:main
from
schnellerhase:sparsity_pattern_insert
Aug 27, 2024
Merged
Sparsity pattern insert #3338
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
a01b318
Add single index insert to sparsity pattern.
schnellerhase d8ea430
Remove some superfluous {}
schnellerhase 9982c7e
export new insert function
schnellerhase c946c0f
Make use of new insert functionality to simplify code
schnellerhase c1b5746
Extend insert doc to make clear how the block insertion works
schnellerhase 01c9236
Fix doc
schnellerhase f5ca9d5
Merge branch 'main' into sparsity_pattern_insert
schnellerhase b50640e
to -> into
schnellerhase eae7cb9
Remove duplicate comment
schnellerhase 51675dc
Merge branch 'main' into sparsity_pattern_insert
schnellerhase 0766807
Merge branch 'main' into sparsity_pattern_insert
chrisrichardson 7dee1fa
Remove dense matrix example
schnellerhase 2791e0a
{} style adapted
schnellerhase b7c310e
Missed some
schnellerhase 28ec172
Update doctring
schnellerhase File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this covered by passing rows and cols of length 1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It it, but the interface of the caller becomes cleaner. Instead of needing to call
we can now simply call
same holds for the python interface with
numpy
arrays.Also, in combination with the span based version it makes clearer how the sparsity pattern is to be used, i.e. loop over entries and dense matrices and do not pre-compute the entries and then pass it in bulk. Sparsity pattern already performs the caching and associated memory management.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, it's clear from the improved docstring. I don't see the point of this new method, the clarity of overloading functions is debatable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To add, the interface is vectorised from the Python end to encourage users to pass in multiple entries, avoiding the overhead of the function call.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How/where is the interface vectorized? I can not find that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chrisrichardson mentioned the other day, we might instead of the integer version consider to create a non owning
const std::vector<std::int32_t>&
version, this should allow for the interface to beinsert({row}, {col})
, i.e. it allows for conversion from an initializer list.