Refactor MFEM objects away from MFEMGeneralUserObject#32701
Refactor MFEM objects away from MFEMGeneralUserObject#32701nmnobre merged 28 commits intoidaholab:nextfrom
Conversation
a45642d to
2f4bd12
Compare
|
Job Documentation, step Docs: sync website on 1c3e5c0 wanted to post the following: View the site here This comment will be updated on new commits. |
|
Job Precheck, step Clang format on ff03cf6 wanted to post the following: Your code requires style changes. A patch was auto generated and copied here
Alternatively, with your repository up to date and in the top level of your repository:
|
2d2f48d to
f641dc0
Compare
|
Job Coverage, step Generate coverage on 1c3e5c0 wanted to post the following: Framework coverage
Modules coverageCoverage did not change Full coverage reportsReports
This comment will be updated on new commits. |
||||||||||||||||||||||||||
032a699 to
025f6b5
Compare
alexanderianblair
left a comment
There was a problem hiding this comment.
I like this a lot - major improvement to the user experience. Just one minor query:
nmnobre
left a comment
There was a problem hiding this comment.
I've just skimmed (technically on holiday... I'm a disaster at holidaying): I'd like some docs. :P I can see we removed the docs for MFEMGeneralUserObject, but its replacements didn't get the same honours. Also, let's run Valgrind if we haven't.
654f80e to
ce8ef57
Compare
nmnobre
left a comment
There was a problem hiding this comment.
In addition to thanking you for the obvious improvement this is, I'd also like to honestly thank you for all the docstrings you added :)
5735046 to
4ca7f48
Compare
|
At the risk of delaying this a few more hours, how do you like this: nmnobre@473f244 ? |
Update MFEM base header documentation and small API cleanup. - add doxygen coverage for the non-override MFEMObject and MFEMExecutedObject APIs - document the MFEM executed-object dependency metadata structures - remove unnecessary interface using-declarations from MFEMObject These changes are limited to framework/include/mfem/base/MFEMObject.h and framework/include/mfem/base/MFEMExecutedObject.h. Co-authored-by: OpenAI Codex <codex@openai.com>
Tighten the MFEM executed-object cache and naming cleanup around the ongoing warehouse-backed refactor. This updates MFEMExecutedObject to lazily build requested/supplied dependency sets, switches it over to getParam-based access, and adds missing doxygen on MFEMProblem and FEProblemBase helper APIs touched by this work. On the MFEM problem side, remove immediate warehouse round-trips after addObject() where the returned shared_ptr is already sufficient, and simplify a few remaining shared_ptr casts. Also replace misleading UserObjectName parameters used for MFEM-specific systems with dedicated derivative string classes: - MFEMFESpaceName for MFEM FESpace references - MFEMSolverName for MFEM solver/preconditioner references The new MFEM name types are registered with the parser/JSON machinery, and the affected MFEM variables, solvers, indicators, problem helpers, and unit tests are updated accordingly. Co-authored-by: OpenAI Codex <codex@openai.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…d::string> No existing execute object produces more than one resource, and there is no precedent in the libMesh-backed MOOSE objects for that either. Replace the three plural produced*Names() virtual methods returning std::set<std::string> with singular produced*Name() methods returning std::optional<std::string>, and update all six overriding subclasses and the documentation accordingly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rface "supplied" is the term used by DependencyResolverInterface (getSuppliedItems). Rename the three virtual helpers accordingly across all overriding subclasses and documentation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4ca7f48 to
54a8f8d
Compare
Co-authored-by: Alex Lindsay <alexander.lindsay@inl.gov>
b5ab1ff to
1c3e5c0
Compare
There was a problem hiding this comment.
Thanks again for this @lindsayad, it's a clear usability improvement (and thanks for tweaking the name to haveParameter instead and squashing the commits! 😍).
I approve those changes which aren't mine.
The only thing still itching is {get,has}MFEMObject(), though not enough to hold this I don't think. Only one is templated but they both could be, and the template argument encloses sufficient information to determine the system unambiguously, right? Problem is I can't think of a way to do this, but to implement a map...
|
Thanks for the review!
Could be potential follow-on work |
|
Job Test, step Results summary on 1c3e5c0 wanted to post the following: Framework test summaryCompared against 217deaa in job civet.inl.gov/job/3749200. No change Modules test summaryCompared against 217deaa in job civet.inl.gov/job/3749200. No change |
|
Failure in fetching RELAP-7 is surely unrelated. |
Closes #31434