Skip to content

Conversation

@vovannikov
Copy link
Contributor

Description and Context

In order to proceed with removal of the base inheritances of NOX::Nln::Interface::RequiredBase and NOX::Nln::Interface::JacobianBase quite substantial modifications are required. This is just one of them and it effectively removes Epetra_Operator yet from one more place. It is also required for #1524.

A temporary wrapper NOX::Nln::MatrixFree::SparseOperatorWrapper is introduced here. Ultimately, it will be either simplified or completely removed later.

While working on this PR, I noticed that the default interface of Core::LinAlg::SparseOperator is excessive: most of the methods should be removed. For instance,

  • is_dbc_applied() - it is very specific and is used in a single place of the code.
  • add_other() - it is odd and not used at all.
    This is just what I identified by a quick look.

Related Issues and Pull Requests

#1524, #1535, #1486

@maxfirmbach
Copy link
Contributor

@vovannikov I agree with the excessiveness of the SparseOperator interface. There are already a few issues to clean those things up e.g. #136 concerning the matrix addition methods and #863 as general effort to clean up our matrix implementations and interfaces.

Copy link
Contributor

@maxfirmbach maxfirmbach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@maxfirmbach
Copy link
Contributor

I think we should aim to get rid of SparseOperatorWrapper again at a later point in time if possible.

@vovannikov
Copy link
Contributor Author

I think we should aim to get rid of SparseOperatorWrapper again at a later point in time if possible.

@maxfirmbach, I fully agree. To prevent its unintended spread around the code, I made it a nested private class, such that it is impossible to use it in any other instance.

@vovannikov vovannikov merged commit 8b4acef into 4C-multiphysics:main Dec 3, 2025
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants