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
New PR: Eigen system supports shell matrices #15315
Conversation
Job Documentation on 4ae1b39 wanted to post the following: View the site here This comment will be updated on new commits. |
@@ -50,7 +50,8 @@ | |||
|
|||
[Executioner] | |||
type = Eigenvalue | |||
solve_type = MF_MONOLITH_NEWTON | |||
matrix_free = true |
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.
This is so much better!
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.
Nice
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.
looks like some very neat capability!
@@ -114,7 +122,17 @@ class NonlinearEigenSystem : public NonlinearSystemBase | |||
* is the real and the imaginary part of | |||
* the eigenvalue, respectively. | |||
*/ | |||
virtual const std::pair<Real, Real> getNthConvergedEigenvalue(dof_id_type n); | |||
virtual const std::pair<Real, Real> getConvergedEigenvalue(dof_id_type n); |
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.
If you're returning by value, is there a point to making the return value const
? Also if returning by value, can you make this method const
?
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.
Will do
51aebaa
to
ddb7174
Compare
In order to get the best performance, users should use petsc-3.13 or higher Closes idaholab#7398
We will remove EST_MF_MONOLITH_NEWTON once Rattlesnake is updated
since it is scalable
… the preconditioning matrix.
because libmesh could rebuild matrices due to mesh changes or something else.
ddb7174
to
b9d4ec4
Compare
@lindsayad Hopefully, addressed your comments. Haha |
b9d4ec4
to
1328b95
Compare
1328b95
to
4ae1b39
Compare
Job Modules debug on 4ae1b39 : invalidated by @fdkong Cancelling job due to step taking longer than the max 21600 seconds |
@lindsayad It is ready to review or merge |
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.
beautiful code
/opt/civet/build_0/moose/framework/src/utils/SlepcSupport.C:385:40: error: this statement may fall through [-Werror=implicit-fallthrough=] 385 | solver_params._eigen_matrix_free = true; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /opt/civet/build_0/moose/framework/src/utils/SlepcSupport.C:387:5: note: here 387 | case Moose::EST_NEWTON: | ^~~~ cc1plus: all warnings being treated as errors We changed APIs in idaholab#15315, and we need to reserve the old APIs for Griffin for a second. I will go to update Griffin to use new APIs. Once that is done, we could remove the old APIs. Refs idaholab#15315
/opt/civet/build_0/moose/framework/src/utils/SlepcSupport.C:385:40: error: this statement may fall through [-Werror=implicit-fallthrough=] 385 | solver_params._eigen_matrix_free = true; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /opt/civet/build_0/moose/framework/src/utils/SlepcSupport.C:387:5: note: here 387 | case Moose::EST_NEWTON: | ^~~~ cc1plus: all warnings being treated as errors We changed APIs in idaholab#15315, and we need to reserve the old APIs for Griffin for a second. I will go to update Griffin to use new APIs. Once that is done, we could remove the old APIs. Refs idaholab#15315
@pbalest and @amherm reported an issue to me that an input in Griffin worked before but stopped working. It is not so obvious how that can stop working so I had to spend quite some time on bisection and finally located the trouble some in Griffin, which is a MOOSE submodule update from 22ad65b to 983f0ab. There are bunch of things going on during these two hashes, but this is one is the most susceptible. |
I checked PR a while ago and did not see anything wrong. Do you have a moose-only input file? |
No. It is a complicated Griffin input. An eigenvalue problem with flux coupled with delayed neutron precursor drift. The capability is tested in Griffin but the test works fine. I have no idea how this can break that input. I can send you the input to you. The hash in Griffin from working to non-working is 47473250 -> 26589755. |
I am checking out moose hash 8e8e1dc, the merge commit of this PR to make sure it is indeed this one causing trouble. |
Could you add a griffin branch or PR? So I could just grab your branch. |
Ok, let me add that input into a branch. |
Please grab my |
Wait, this hash (8e8e1dc) seems working ok. Could be something else breaking the input. Or maybe I need to do a make clobberall... |
@@ -137,7 +137,7 @@ PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(const InputParameters & p | |||
for (unsigned int var = 0; var < n_vars; var++) | |||
addSystem(var, off_diag[var], _pre_type[var]); | |||
|
|||
_nl.nonlinearSolver()->attach_preconditioner(this); | |||
_nl.attachPreconditioner(this); |
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.
@fdkong there are several places in Griffin that need to be patched like this here.
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.
OK, I will take a look
@amherm could you please get in touch with me or Alex. |
Hi Guillaume,
Is there anything you need from me regarding this?
Thanks,
Andrew
On Fri, Jun 10, 2022 at 11:50 PM Guillaume Giudicelli < ***@***.***> wrote:
@amherm could you please get in touch with me or Alex. We'd like to have
your name for the acknowledgements in a paper and it's not listed on Github
thank you! — Reply to this email directly, view it on GitHub, or
unsubscribe
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
@amherm
<https://urldefense.com/v3/__https://github.com/amherm__;!!KwNVnqRv!GvsviNJt0kL0RNCMpUagHPWV4vtDo6tCU0oQ9VVUXiLysJwjNY1Dms7L9CYiEhEnUIX1vJ6iyfi5889sZYE9fho$>
could you please get in touch with me or Alex.
We'd like to have your name for the acknowledgements in a paper and it's
not listed on Github
thank you!
—
Reply to this email directly, view it on GitHub
<https://urldefense.com/v3/__https://github.com/idaholab/moose/pull/15315*issuecomment-1152848211__;Iw!!KwNVnqRv!GvsviNJt0kL0RNCMpUagHPWV4vtDo6tCU0oQ9VVUXiLysJwjNY1Dms7L9CYiEhEnUIX1vJ6iyfi5889sSDenRI4$>,
or unsubscribe
<https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AHTKD4V6NPL3YUBDJ4EP6UTVOQEGNANCNFSM4NFCR3UQ__;!!KwNVnqRv!GvsviNJt0kL0RNCMpUagHPWV4vtDo6tCU0oQ9VVUXiLysJwjNY1Dms7L9CYiEhEnUIX1vJ6iyfi5889sopflITA$>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Respectfully,
Andrew Hermosillo
Graduate Student
Texas A&M University
Nuclear Engineering
|
Ok got your name, that's all I wanted. I should have guessed. Thanks Andrew! |
Refs #14406
A new PR is required to use the new libmesh and the new PETSc in the civet. I simply move the old PR #14406 here.
Shell matrices for nonlinear and linear solvers.
Allow users to attach a customized preconditioner (with a matrix-free option for preconditioner). Closes Attach preconditioner for Eigen solver #14297
Support array kernels
Add an option (
precond_matrix_includes_eigen
) to allow users to add eigen kernels into the preconditioning matrixgetConvergedEigenvalue
returns only eigenvalues without touching the eigenvectors. Closes Getting eigenvalue in NonlinearEigenSystem changes solution #14506Closes #14297