- assemblyThe NEML2Assembly object to use to provide assembly information
C++ Type:UserObjectName
Controllable:No
Description:The NEML2Assembly object to use to provide assembly information
- feThe NEML2FEInterpolation object to use to couple variables
C++ Type:UserObjectName
Controllable:No
Description:The NEML2FEInterpolation object to use to couple variables
NEML2CentralDifference
This object functions in much the similar way as ExplicitMixedOrder, but completely skips the regular element/node loops when evaluating the right-hand-side residual. This object is designed to interface with NEML2 to perform the material model evaluation and residual assembly.
Implementation details
This object caches the finite element context using the NEML2FEAssembly and the NEML2FEInterpolation objects. The solution is re-interpolated onto the finite element function space after each explicit solution update.
In addition, this object zeros out the algebraic element/node ranges before evaluating the residual. Therefore, regular MOOSE kernels don't work with this time integrator.
Limitations
Designed for explicit solves only; no Jacobian contributions are produced by the NEML2 kernels in this workflow.
Requires the NEML2 assembly/interpolation objects to have compatible element types within each block (one per element type/order when mixing).
Syntax
Input Parameters
- first_order_varsA subset of variables that require first-order integration (velocity only) to be applied by this time integrator.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:A subset of variables that require first-order integration (velocity only) to be applied by this time integrator.
- mass_matrix_tagmassThe tag for the mass matrix
Default:mass
C++ Type:TagName
Controllable:No
Description:The tag for the mass matrix
- recompute_mass_matrix_after_mesh_changeFalseIf set to true, the mass matrix will be recomputed when the mesh changes (e.g. through adaptivity). If use_constant_mass is set to true, adadaptivity is used, and this parameter is not set to true, the simulation will error out when the mesh changes.
Default:False
C++ Type:bool
Controllable:No
Description:If set to true, the mass matrix will be recomputed when the mesh changes (e.g. through adaptivity). If use_constant_mass is set to true, adadaptivity is used, and this parameter is not set to true, the simulation will error out when the mesh changes.
- second_order_varsA subset of variables that require second-order integration (velocity and acceleration) to be applied by this time integrator.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:A subset of variables that require second-order integration (velocity and acceleration) to be applied by this time integrator.
- use_constant_massFalseIf set to true, will only compute the mass matrix in the first time step, and keep using it throughout the simulation.
Default:False
C++ Type:bool
Controllable:No
Description:If set to true, will only compute the mass matrix in the first time step, and keep using it throughout the simulation.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Example input files
Input Files
- (modules/solid_mechanics/test/tests/neml2/explicit_dynamics/neml2_adaptivity.i)
- (modules/solid_mechanics/test/tests/neml2/explicit_dynamics/neml2.i)
The detailed documentation of this object/syntax is only available when MOOSE is compiled with NEML2. To enable NEML2, please follow the NEML2 installation guide.