-
Notifications
You must be signed in to change notification settings - Fork 47
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
Lumped Mass Matrix Implementations #1217
Comments
A related question here is which of these projections need to be lumped. The diagonal is a fine preconditioner for a consistent L^2 projection, and typically has some quality improvements. I concede it may be too expensive for the SNES residual for the diffusive fluxes, and I think John mentioned at some point that lumping is arguably better there since it's more local. I think the intent was to reference this comment for an implementation strategy that could go into |
My general logic for whether lumped or consistent is whether the projection occurs every timestep, or is done less frequently. So the turbulent statistics is consistent (though that's also a very small problem to solve anyways since it's on a 2D slice), but the velocity gradient projection (needed for the data-driven SGS) is lumped since that's needed every non-linear iteration. |
Let's try adding this conservative lumping to |
You mean as a built-in for PETSc, or building and setting the Pmat explicitly? I was originally thinking the latter, but I guess there's no reason that it can't be integrated into PETSc proper. |
I'd make it |
@jedbrown I cannot find a description of the lumping in that other PR. Is this something I can use for PyLith? |
I have a functioning prototype that fails fluids regression tests by a "small", "acceptable" margin (at least for being a completely different method). Any specific tests you want to see? |
Cool. You had some tests in a profile comparing consistent and lumped for hex elements. Can you do that with quadratic tets and include consistent, diagonal, and this lumping? |
Are you talking about the tests I did for the spanwise turbulent statistics collection? That should be easy to do for hexes, but the fluids code doesn't support tets right now. |
Hmm, |
I've confirmed that the conservative and rowsum entries are not identical to each other, but are still pretty close (order 1e-4 maximum relative difference). |
Cool that they're that close. I don't a priori have an explanation for that. We could use the projection of diagnostic variables in Ratel as a test of interesting fields on tet meshes. |
Currently, all the lumped mass matrix implementations (in the fluids code at least) utilize a row-sum technique, which will not work for higher-order tets.
Possible solution to this would be to use "special lumping", as described in this thread: #1147 (comment). Jed's comment sketches out a way to possibly implement that method at a global level rather than the element level presented in Hughes' FEM book.
Relevant existing threads:
The text was updated successfully, but these errors were encountered: