MPM Input Files
MPM simulations are run using NairnMPM. Some of the key features of these code engines (with links) are listed here. The documentation on this page explains how to run MPM calculations by described all the sections of input command files.
Input Command File Overview
When using NairnFEAMPM or NairnFEAMPMViz to set up calculations, the input command files are usually script files written using the custom scripting language. When you interpret these scripts, the applications will create an XML input command file that is needed to drive the code engines. Click this link to see a sample scripted MPM input command file for simulation of two colliding disks.
Alternatively, you can directly create XML input command files. Because this approach cannot use the language control options of a scripting language, it is much less powerful then scripting methods and much harder to customize for a range of simulations. If you do use the manual XML method, the files must conform to the structure defined here. Click this link to see a sample XML MPM input command file for simulation of two colliding disks.
Main Header
This section defines the type of analysis to run and provides an optional description of the calculations. When using a scripting language, the header is created automatically and its content is controlled by commands defined below. When manually writing XML files, the header, which is required, is defined in a single header block:
<Header> (commands) </Header>
The possible header commands are
- Analysis Command - pick the type of MPM analysis to run.
- ConsistentUnits Command - pick input and output units for the calculations
- Annotation Commands - these commands let you annotate the calculations.
- Processors Command - pick number of processors for parallel code.
- Setting Developer Flags
MPM Header
This section defines many settings and features for the MPM calculations. When using a scripting language, the MPM header is created automatically by various commands defined in this section. When writing XML input files, all these commands must be within a single MPM header block:
<MPMHeader> (commands) </MPMHeader>
The possible MPM header commands are given below by categories.
- MPM Methods and Simulation Timing - these commands determine the MPM method to use, the time step, and the maximum simulations time.
- MPM Archiving Options - these commands determine which results are archived and where they are saved.
- MPM Global Archiving Options - these commands determine which results are archived in a global results file.
- Crack Settings - these commands define various simulation features when using cracks.
- Damping Options - these commands set up grid-based damping options.
- LeaveLimit Command - this command determine what happens when particles leave the grid.
Creating the MPM Background Grid
Although MPM is a particle method, it uses a background grid for calculations. In general, this grid is a regular grid of orthogonal elements with linear shape functions. The background grid is easily generated with a few commands. NairnMPM does allow explicitly generated grids, but you should never use them because many important features of MPM rely on a regular grid and are only efficient for a regular grid (e.g., uGIMP and CPDI shape functions).
Creating the Material Points
In MPM the object is discretized by a collection of material points. Once the background grid is created, the material points are added to that grid using a series of Region and Hole commands or additionally by directly translating pixels in an image to an MPM model. Each of these command fills part of the grid with a collection of material points and those material points are assigned initial conditions and material type.
Defining Material Models
Each material point is assigned a material type. NairnMPM supports numerous material models. For plasticity materials, each material type can choose from among a set of hardening laws. Finally, when using explicit cracks, the material points along the cracks can be assigned to various traction laws. The information on these options are in the following sections:
- Material Models - all material models available for MPM simulations
- Hardening Laws - all hardening laws available for plasticity materials
- Traction Laws - all traction laws available for modeling cohesive zones on cracks
Using Explicit Cracks
An advanced feature of NairnMPM is that it can model explicit cracks including multiple cracks, interacting cracks, and crack propagation. To create a simultion with cracks, you first define the cracks and then optionally customize crack settings to customize crack modeling methods. To include crack propagation, you also need to set all needed material fracture properties. Crack surface contact is modeled and it can either model frictional contact) or use the crack to model imperfect interface.
Multimaterial MPM
Running in multimaterial mode allows a simulation to model contact between materials (such as frictional contact) or to model material-material contact as an imperfect interface.
Boundary Conditions
In MPM, boundary conditions can be applied to nodes on the grid or applied directly on the particles:
- Grid-Based Boundary Conditions - These boundary conditions are applied to nodes on the grid and are used to set velocity, temperature, and concentration. Grid-based velocity conditions can also set up object symmetry planes.
- Particle-Based Boundary Conditions - These boundary conditions are applied to the particles and are used to set forces, tractions, and fluxes.
Thermal Calculations
MPM simulations can do thermal calculations that account for thermal strains in the stress analysis and can model thermal conduction.
Diffusion Calculations
MPM simulations can model diffusion and track concentration of an absorbed solvent in the materials. The concentration is couple to strains by solvent expansion coefficients of the materials.
Gravitation Field
MPM calculations can apply a gravitation field (or actually any constant body forces).
Custom Tasks
Custom tasks are special calculations that are performed at the end of each time step in MPM calculations. Custom tasks can be written by users working with NairnMPM source code. These user-defined custom tasks can then be scheduled when needed in some calculations. The current custom tasks are:
- VTKArchive Custom Task - to archive results extrapolated to the grid in "VTK Legacy" files.
- HistoryArchive Custom Task - to archive material history data to a tab-delimited file.
- ReverseLoad Custom Task - to monitor crack length and perform actions when a specified crack length is reached.
- AdjustTimeStep Custom Task - to adjust time step during the calculations according to current stress state of the particles.
- Undocumented Custom Task - you can include custom tasks that are in NairnMPM but not yet supported by scripted files.
- Writing a Custom Task - explains how to write source code for a new custom task.
XML Insertion
When writing scripted input files, it is sometimes useful to insert raw XML commands into the automatically-format XML input file. The two commands that help in this task are:
- Entity Command - to define entities that will appear in the automatically-format XML input file.
- XMLData Command - to insert raw XML data into various sections of the automatically-format XML input file.