Skip to content

MooseMaterialTarget output is never compiled — add a MOOSE-stub compile gate #132

Open

Description

@petlenz

From the 2026-08-02 full-repo review (finding F-04).

Evidence: all six compile-and-run pipelines in tests/CMakeLists.txt emit via StandaloneCxxTarget or NumSimMaterialTarget (the "MOOSE Hencky" gate at line ~169 actually emits via StandaloneCxx); .github/workflows/build.yml never touches MOOSE. Every MOOSE test (MooseTargetTest.cpp, IntegrationTest.cpp:117-187, AlgorithmicTangentTest.cpp:126-238) is substring-only.

Impact: MOOSE is the one shipping backend with zero compile-level backstop, and the one referencing a large external API surface (Material, InputParameters, MaterialProperty<T>, RankTwoTensor/RankFourTensor, registerMooseObject). A boilerplate typo in the emitted .h/.C ships green.

Proposal: check in a minimal stub of exactly the MOOSE surface the emitted code uses; at build time, generate representative materials (linear elastic, Hencky/spectral, tangent-carrying, local-Newton) and compile the emitted .C against the stub with -Wall -Werror. Syntax/semantics gate only — no MOOSE behavior emulation needed. A later step can add a tiny harness to drive computeQpProperties() and FD-check _Jacobian_mult (that part = #12).

Related: #12 (runtime parity against mock RankTwoTensor — this issue is the cheaper compile-level prerequisite).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions