Repository navigation
MOOSE - MFEM benchmarks #33740
Check these boxes if you have followed the posting rules.
QuestionHi, I am investigating using MOOSE and/or MFEM for an elasticity problem and was interested in the comparative performance of MOOSE with both the Libmesh and MFEM backends, and pure MFEM. The flexibility of MOOSE is a big plus for my application but performance is also pretty key. A few quick benchmark tests using the MFEM example 2, MOOSE-MFEM linear elasticity example and a comparative MOOSE beam bending test show MFEM being quite a bit faster than MOOSE, but I was surprised to see such a large gap between pure MFEM and MFEM-MOOSE. All of these are using BoomerAMG as a preconditioner with the same settings, and PCG as the solver. Below is the table showing my results (please note this was quite a quick study), I'm interested to see if anyone has any comments on the reason for the slowdown with MFEM-MOOSE compared to pure MFEM. Or if anyone has done any other performance studies on MOOSE-MFEM I would be grateful to hear! I've also attached the MOOSE input file I used.
|
Replies: 3 comments 13 replies
|
Hi @1wertyuiop5 - do you happen to have your MOOSE-MFEM inputs that you were comparing to MFEM here? I can think of a few possibilities (particularly around some re-assembly in deformed problems like this), but it'd be good to rule out any solver differences first. Also tagging @Heinrich-BR, who has last performed some comparison runs between MFEM and MOOSE-MFEM examples |
|
Hi @1wertyuiop5, would it be too much work to repeat the experiment above and get a new table while setting (a)
|
|
@1wertyuiop5 could you also share your libmesh-MOOSE input? |
Quick draft of a branch adding the ability to set the
SystemOptionsto make things consistent with the solver in MFEM Example 2 here - https://github.com/alexanderianblair/platypus-moose/tree/alexanderianblair/mfem-hypreboomeramg-optionsThe new user parameters of note to set, for consistency, are
Solvers/amg/fespace=H1FESpaceandSolvers/amg/vector_treatment=by_component. Does that bring your timings closer to native MFEM? Looks like it's making a significant difference my side, locally