The MOOSE tensor mechanics module is a library for simplifying the implementation of simulation tools that solve mechanics problems. It provides a simple approach for implementing even advanced mechanics models.

Tensor Mechanics Module vs the Solid Mechanics Module

MOOSE has two mechanics modules: "tensor mechanics" and "solid mechanics". However, we are moving towards combining the two approaches over the next few months. The differences between the two modules are summarized in the following table.

Tensor mechanics Solid mechanics
Rank-two tensors are treated as general rank-two tensors Rank-two tensors are treated as length 6 vectors
Elasticity tensor is treated as a rank-four tensor Elasticity tensor is treated as a 6 by 6 matrix
Materials are typically treated as anisotropic Materials are typically treated as isotropic
Used for both mesoscale and macroscale simulations Undergoing deprecation; primarily used for macroscale simulations
Under development by various MOOSE-users at different institutions Undergoing deprecation; primarily under development by the BISON team

Fundamental Background Material

Screen Shot 2016-07-26 at 17.39.03.png
The plug-and-play approach used in the Tensor Mechanics Materials requires at least three separate classes to fully describe a simulation

Options for Computing Strain

Options for Computing Stress


Plasticity with User Objects

The plasticity models in the Tensor Mechanics module are described in the following sections. Each is valid for finite strains, and each has Hardening and Softening:

It is quite easy to add more UserObject based plasticity models to Tensor Mechanics. These are added as GeneralUserObjects: see How to add UserObject plasticity models. If desired, a user can then combine the new plasticity model with any other existing plasticity models in a multi-surface simulation without any further work.

Creep and Plasticity with Recompute Materials

In addition to the User Object based plasticity models, another set of plasticity and creep material models have been developed with the Discrete Material class, which allows for iterations within the material itself. These iterative materials are designated by Recompute at the start of the class name.

The primary development of these Recompute material classes has been in the migration of code capabilities from Solid Mechanics to Tensor Mechanics. These classes use a Radial Return von Mises, or J2, approach to determine the inelastic (plastic or creep) strain increments at each time step. The advantage of the recompute materials is the ability to combine multiple inelastic stress calculations, such as creep and plasticity.


  • Dynamics - Solve dynamic mechanics problems like wave propagation


For examples of how to use TensorMechanics, please see the tensor_mechanics/tests directory. For instance, tensor_mechanics/tests/mohr_coulomb/uni_axial2.i contains an example of a uniaxial compression test where shear bands form, and this is described in the page Mohr-Coulomb: nonassociative