Skip to content

Andy on 30853#5

Open
WilkAndy wants to merge 14 commits into
hugary1995:neml2_assemblyfrom
WilkAndy:andy-on-30853
Open

Andy on 30853#5
WilkAndy wants to merge 14 commits into
hugary1995:neml2_assemblyfrom
WilkAndy:andy-on-30853

Conversation

@WilkAndy

@WilkAndy WilkAndy commented Dec 5, 2025

Copy link
Copy Markdown

Stacked on idaholab#30853: please merge into neml2_assembly before upstream integration

As advised by @dschwen , this PR is closely tied to the original idaholab#30853 , and i need both for the simulations I'm currently doing, so I'm hoping you can merge my two additions into neml2_assembly before idaholab#30853 goes to idaholab:next.

@hugary1995 - please advise if this isn't what you want. Thanks!

hugary1995 and others added 14 commits November 25, 2025 17:44
- NEML2Assembly: gather JxW, coord, etc.
- NEML2FEInterpolation: gather dofmap, shape function values/gradiantes for each coupled variable
- NEML2Kernel: define batched operations
- NEML2PreKernel: inherited from NEML2Kernel, for operations _before_ the constitutive update
- NEML2PostKernel: inherited from NEML2Kernel, for operations _after_ the constitutive update

Examples:

- NEML2SmallStrain: inherited from NEML2PreKernel, coupled to displacement gradients, calculates the small strain tensor
- NEML2StressDivergence: inherited from NEML2PostKernel, retrieves stress from the NEML2ModelExecutor and uses it to calculate the residual

Also add corresponding documentation and tests. Retire BatchMaterial.

close idaholab#30850
…ile, set restep=false because ExplicitMixedOrder assumes no timestep cutting
@WilkAndy WilkAndy requested a review from dschwen as a code owner December 5, 2025 23:03
@WilkAndy

WilkAndy commented Dec 5, 2025

Copy link
Copy Markdown
Author

@hugary1995 , i think i misunderstood @dschwen about combining these two MOOSE PRs. He's talking about eating two half-doughnuts at once, or ?!?! Let's leave this till Monday when you can chat with him.

@dschwen

dschwen commented Dec 7, 2025

Copy link
Copy Markdown
Collaborator

Very nice PR. Have you checked what the lumped mass matrix tags in other explicit time integrators are?

@WilkAndy

WilkAndy commented Dec 7, 2025

Copy link
Copy Markdown
Author

Very nice PR. Have you checked what the lumped mass matrix tags in other explicit time integrators are?

I just had a look, using moose/framework/src/timeintegrators> find . -name "*.C" | xargs grep "addVector(" and the only relevant thing appeared to be ./ExplicitTimeIntegrator.C: _mass_matrix_diag_inverted(addVector("mass_matrix_diag_inverted", true, GHOSTED)), . The only module to have a timeintegrator is solid_mechanics modules. So it looks like we're the only ones who want a lumped mass matrix in the whole of MOOSE.

@dschwen

dschwen commented Dec 7, 2025

Copy link
Copy Markdown
Collaborator

That can't be true. ActuallyExplicitEuler uses mass lumping, but it does not use the tag system (I should update that class...). So maybe ExplicitMixedOrder is the only time integrator that uses a matrix tag for the mass matrix.

@WilkAndy

WilkAndy commented Dec 7, 2025

Copy link
Copy Markdown
Author

That can't be true. ActuallyExplicitEuler uses mass lumping, but it does not use the tag system (I should update that class...). So maybe ExplicitMixedOrder is the only time integrator that uses a matrix tag for the mass matrix.

Aha, i thought you were thinking that the stuff below should be generalised in my ExplicitMassDamping Kernel, to allow other timesteppers to use the Kernel:

 if (nl.hasVector("mass_matrix_lumped"))
    return nl.getVector("mass_matrix_lumped");

@hugary1995

Copy link
Copy Markdown
Owner

Uhm, anything I can help with? I am fine merging this.

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.

3 participants