Comparison of Uniaxial Stress and Uniaxial Strain States

When doing verification of material models it is a very good idea to check both uniaxial stress and uniaxial strain states. For a von Mises material, we can analytically determine what displacements and stresses will be present when the material yields. The following table was created to aid those that work with the von Mises (or J2 plasticity) material model.

There are only three parameters that are used for the table; specifically, the yield stress in uniaxial tension and any two elastic modulii. The table was written so that if only Young’s modulus and Poisson’s ratio are known, the reader can derive any other required values by using the equations included at the bottom of the table.

The LaTeX source for the table can be found here.

Comparison of Uniaxial Stress and Strain for a von Mises Material at Yield

Comparison of Uniaxial Stress and Strain for a von Mises Material at Yield

Research: Weibull fragmentation in the Uintah MPM code

Tough disk impacting brittle disk

Below are links to two simulations of disks colliding. The first is elastic and the second uses a fracture model with spatially variable strength based on a scale-dependent Weibull realization. Both take advantage of the automatic contact property of the MPM.

WeibConstMovie:  disks colliding without fracture

WeibPerturbedGood: disks colliding with heterogeneous fracture

This basic capability to support statistically variable strength in a damage model has been extended to the Kayenta plasticity model in Uintah.

Publication: Statistical perturbation of material properties in Uintah

Swan, S. and R. Brannon (2009)

Illustration of stair-stepping typical of finite sampling from a Weibull distribution

Current simulations of material deformation are a balance between computational effort and accuracy of the simulation. To increase the accuracy of the simulated material response, the simulation becomes more computationally intensive with finer meshes and shorter timesteps, increasing the time and resource requirements needed to perform the simulation.  One method for improving predictions of brittle failure while minimizing computational overhead is to implement statistical variability for the material properties being simulated. This method has low computational overhead and requires a relatively small increase in resource requirements while significantly increasing the precision of simulation results. Currently, most simulation frameworks inaccurately describe brittle and heterogeneous materials as uniform bodies of equal strength and consistency. This over-simplification underscores the need to implement statistical variability to help better predict material response and failure modes for materials that contain intermittent abnormalities such as changes in hardness, strength, and grain size throughout the specimen. Uintah, the computational framework developed by the University of Utah’s C-SAFE program, has a simplistic native Gaussian distribution function that was hard-coded into select material models. The goal of this research is to create an easily duplicable method for enabling dynamic global variability according to a Weibull distribution in constitutive models in Uintah and to implement said ability into the constitutive model Kayenta. The main application of Kayenta is to simulate geological response to penetration and perforation. For the purpose of simulating failure in brittle geological samples, the Weibull distribution produces realistic statistical scatter in constituent properties that correlates well to flaws and irregularities observed in laboratory tests.

Available online:

Stress State Analysis Python Script

General Mohr's Circle for 3D Stress State

General Mohr's Circle for 3D Stress State

Have you ever had a stress state and wanted to simply get the principal stresses without finding a web applet to do it for you? Or maybe you want to know what the deviatoric part of the stress is without finding and using a copy of MATLAB or Mathematica to do the matrix operations for you? This script was written to help answer those questions in as little time as possible with an intuitive command line input syntax.

This script was written in Python ( and makes use of the NumPy module ( Python is a fairly platform independent programming language with more and more programs being dependent on it on all platforms. The NumPy module adds significant scientific computation power to the language by adding N-dimensional matrix support, matrix operations, LAPACK functions (matrix inverse, eigenvalue and eigenvector decompositions, etc.), among other things.

You can download the script here.

Continue reading