Skip to content
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

Static condensation #3883

Merged
merged 19 commits into from
Oct 22, 2024
Merged

Static condensation #3883

merged 19 commits into from
Oct 22, 2024

Conversation

lindsayad
Copy link
Member

@lindsayad lindsayad commented Jun 20, 2024

Adds the ability to condense out element internal degrees of freedom. This can be used to eliminate internal degrees of freedom in high order CFEM or to eliminate internal degrees of freedom in HDG methods

@lindsayad lindsayad force-pushed the static-condensation branch 3 times, most recently from bdb4d4e to 21e8140 Compare June 24, 2024 15:33
@lindsayad lindsayad changed the title [WIP] Static condensation Static condensation Jun 24, 2024
@lindsayad lindsayad force-pushed the static-condensation branch 5 times, most recently from aa8246a to 1468055 Compare June 25, 2024 18:47
lindsayad added a commit to lindsayad/moose that referenced this pull request Jun 26, 2024
Use the same mutex for both `operator<<` overloads. Refs CIVET
failure https://civet.inl.gov/job/2295949/ on libMesh/libmesh#3883
@moosebuild
Copy link

Job Test mac on 11f7769 : invalidated by @lindsayad

@moosebuild
Copy link

moosebuild commented Jun 26, 2024

Job Coverage on 31388ef wanted to post the following:

Coverage

d25162 #3883 31388e
Total Total +/- New
Rate 61.87% 62.01% +0.14% 80.50%
Hits 72020 72451 +431 487
Misses 44392 44388 -4 118

Diff coverage report

Full coverage report

Warnings

  • New new line coverage rate 80.50% is less than the suggested 90.0%

This comment will be updated on new commits.

@lindsayad lindsayad marked this pull request as ready for review June 26, 2024 17:54
@lindsayad lindsayad requested a review from roystgnr June 26, 2024 17:54
@lindsayad lindsayad self-assigned this Jun 26, 2024
@lindsayad lindsayad mentioned this pull request Jun 26, 2024
5 tasks
@lindsayad
Copy link
Member Author

I've opened #3891 to keep track of what all I'm planning to do with this class. I think it makes sense to address #3891 with multiple PRs as it breaks up the author and reviewer work into logical chunks

Copy link
Member

@roystgnr roystgnr left a comment

Choose a reason for hiding this comment

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

There may be other issues I've missed; this is a pretty massive PR, and I'm running out of pre-vacation time, and I've already hit you with a ton of complaints. ;-)

There are a few obvious utility things we could split into smaller PRs if you wanted to get those in ASAP.

* Fills the vector \p di with the global degree of freedom indices
* for the element. For one variable, and potentially for a
* non-default element p refinement level
*/
Copy link
Member

Choose a reason for hiding this comment

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

We've got to have some documentation here on how those functors work.

Copy link
Member

Choose a reason for hiding this comment

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

Still need docs here

include/base/dof_map.h Outdated Show resolved Hide resolved
include/base/dof_map.h Outdated Show resolved Hide resolved
include/base/libmesh_common.h Outdated Show resolved Hide resolved
include/geom/elem.h Outdated Show resolved Hide resolved
include/numerics/static_condensation.h Outdated Show resolved Hide resolved
src/base/dof_map.C Show resolved Hide resolved
src/base/dof_map.C Show resolved Hide resolved
src/numerics/numeric_vector.C Outdated Show resolved Hide resolved
src/numerics/static_condensation.C Outdated Show resolved Hide resolved
@lindsayad
Copy link
Member Author

I think what I will do is split out the utilities into their own PRs. And then I'm going to add more work that's coming from using this in the HDG example. I'm pretty sure in that example I will not be allowed to remove the pressure dofs (even though they are all "internal") from the global system, so some more work will still need to be done to handle this in the library. Given that, I'm returning this to draft for now

@lindsayad
Copy link
Member Author

I will not be allowed to remove the pressure dofs (even though they are all "internal")

this will go along with @roystgnr's desire to use "condensed"/"uncondensed" verbiage over internal/trace

@lindsayad lindsayad marked this pull request as draft July 1, 2024 19:36
@lindsayad lindsayad changed the title Static condensation [WIP] Static condensation Jul 5, 2024
@lindsayad
Copy link
Member Author

Alright, here is one datapoint that suggests the DofMap modifications don't impact some simulation types. This is a profile from process 0 of the updated HDG NS example run on 32 procs with 885,761 dofs. As we would hope for, all the computation is in the solve

parallel-mumps0

@lindsayad
Copy link
Member Author

MOOSE failure is unrelated and already codified in idaholab/moose#27555

@lindsayad
Copy link
Member Author

This should be ready for another round of review

@lindsayad
Copy link
Member Author

I was kind of hoping I would come back and see another review on this 😢

.clang-format Outdated Show resolved Hide resolved
src/solvers/linear_solver.C Outdated Show resolved Hide resolved
src/solvers/petsc_linear_solver.C Outdated Show resolved Hide resolved
* Fills the vector \p di with the global degree of freedom indices
* for the element. For one variable, and potentially for a
* non-default element p refinement level
*/
Copy link
Member

Choose a reason for hiding this comment

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

Still need docs here

@roystgnr
Copy link
Member

If John happens to pipe in before CI finishes then definitely address any concerns of his, but if CI finishes first then just hit "Merge" as fast as you can; I've made you suffer more than long enough.

@lindsayad
Copy link
Member Author

Nah, your reviews have been great. Thank you!

@moosebuild
Copy link

Job Coverage, step Generate coverage on 6949cb4 wanted to post the following:

Coverage

69e327 #3883 6949cb
Total Total +/- New
Rate 62.19% 62.33% +0.14% 80.46%
Hits 72470 72901 +431 486
Misses 44068 44064 -4 118

Diff coverage report

Full coverage report

Warnings

  • New new line coverage rate 80.46% is less than the suggested 90.0%

This comment will be updated on new commits.

@lindsayad lindsayad merged commit 0c0313d into libMesh:devel Oct 22, 2024
20 checks passed
@lindsayad lindsayad deleted the static-condensation branch October 22, 2024 04:14
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.

4 participants