Main Page

Jump to: navigation, search

This documentation wiki is for the computational mechanics software from Oregon State University in the research group of Prof. John A. Nairn. This software package focuses on material point method (MPM) calculations (OSParticulas and NairnMPM), but also includes basic finite element analysis (FEA) calculations (NairnFEA).


Getting Starting

The calculation engines for material point method (MPM) simulations are called OSParticulas and NairnMPM. The calculation engine for finite element analysis (FEA) is called NairnFEA. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:

Input Files for Calculations

MPM simulations using OSParticulas or NairnMPM or FEA calculations using NairnFEA are controlled by input from an XML input file. This input file can be created manually by using any text or XML editing software. It is usually preferred, however, to use a higher-level scripting language to set up the calculations and then have an interpreter format those commands into the XML files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the NairnFEAMPM application (Mac only) or the NairnFEAMPMViz (Java tool) application. The scripting languages in these two applications are almost identical.

MPM and FEA Input Files

The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:

Input File Documentation Notes

Scripted input files are comprised of a series of commands and XML input files are comprised of a series of XML elements. This documentation will explain these commands and elements using the style:

 Command (arg1),(arg2),<(arg3)>,<(arg4)>
 <Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command>


  • Command is the command name.
  • (arg1),(arg2), etc., specify arguments whose function will be explained along with the command.
  • <(arg3)> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.
  • attr1, attr2, etc., are attributes to the XML element.


Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:

  • NairnFEAMPM - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited to some other 3D graphics tools.
  • NairnFEAMPMViz - this application (Java program for Windows or Linux) has many options for 2D visualization, but for 3D. it can only plot results version time.
  • ParaView - to use this free, multi-platform tool, your the results have to be archived as VTK files (by using the VTKArchive Custom Task) or extracted to VTK files using ExtractMPM. The custom task get grid-based plots and the later gets particle-based plots.
  • VTK Legacy Files - VTK files output by the VTKArchive Custom Task can potentially be read by other graphics tools besides ParaView (it is a common file format for graphics tools).
  • ExtractMPM - for customizable visualization options, you can use the ExtractMPM tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, XML files, and VTK files.

The visualization tools in the nairn-mpm-fea project (NairnFEAMPM, NairnFEAMPMViz, and ExtractMPM) automatically support all archive output file formats created by NairnMPM and NairnFEA and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:

Personal tools