I plan to add this transformation to my upcoming book on computational geometry. This mapping provides a one-to-one correspondence between RGB color and locations on a dance floor for a positioning correction in a project on robotic square dancers. Fun!
This animation shows three ways to visualize a rotation:
Summarizes the meaning of the deformation gradient tensor, stretches, rotations, etc. Also shows how material line segments, volumes, and area vectors change in response to deformation.
You may download the rest of the document here
In a conventional MPM formulation, the shape functions on the grid are the same as in a traditional FEM solution. In the CPDI, the shape functions on the grid are replaced by alternative (and still linearly complete*) shape functions, given by piecewise linear interpolations of the traditional FEM shape functions to the boundaries of the particles. This change provides FEM-level accuracy in moderately deforming regions while retaining the attractive feature of MPM that particles can move arbitrarily relative to one another in massively deforming regions (provided, of course, that the deformation is updated in a manner compatible with the constitutive model).
In the images below, the shaded regions are the traditional FEM “tent” linear shape functions in 1-D, and the solid lines are the CPDI interpolated shape functions, which clearly change based on particle position relative to the grid. Both the traditional FEM tent functions and these new CPDI functions are linearly complete (i.e., they can exactly fit any affine function). The tremendous advantage of CPDI is that the basis functions are extraordinarily simple over a particle domain, thus facilitating exact and efficient evaluation of integrals over particle domains.
Aleatory uncertainty in constitutive modeling refers to the intrinsic variability in material properties caused by differences in micromorphology (e.g., grain orientation or size, microcracks, inclusions, etc.) from sample to sample. Accordingly, a numerical simulation of a nominally axisymmetric problem must be run in full 3D (non-axisymmetric) mode if there is any possibility of a bifurcation from stability.
Dynamic indentation experiments, in which a spherical ball impacts to top free surface of a cylindrical specimen, nicely illustrate that fracture properties must have spatial variability — in fact, the intrinsic instability that leads to radial cracking is regarded by the Utah CSM group as a potential inexpensive means of inferring the spatial frequency of natural variations in material properties.
MMS stands for “Method of Manufactured Solutions,” which is a rather sleazy sounding name for what is actually a respected and rigorous method of verifying that a finite element (or other) code is correctly solving the governing equations.
A simple introduction to MMS may be found on page 11 of The ASME guide for verification and validation in solid mechanics. The basic idea is to analytically determine forcing functions that would lead to a specific, presumably nontrivial, solution (of your choice) for the dependent variable of a differential equation. Then you would verify a numerical solver for that differential equation by running it using your analytically determined forcing function. The difference between the code’s prediction and your selected manufactured solution provides a quantitative measure of error.
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 (www.python.org) and makes use of the NumPy module (www.numpy.scipy.org). 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.