MPM Grid Generation

From OSUPDOCS
Jump to navigation Jump to search

MPM calculations use a background grid. The grid can be easily created with commands on this page.

Grid Generation in Scripted Files

For 2D analyses, the entire grid is generate with the following commands:

GridHoriz (nx),<(symx)>,<(symxdir)>
GridVert (ny),<(symy)>,<(symydir)>
GridThickness (thick)
GridRect (xmin),(xmax),(ymin),(ymax)

For 3D analyses, the entire grid is generated with the following commands:

GridHoriz (nx),<(symx)>,<(symxdir)>
GridVert (ny),<(symy)>,<(symydir)>
GridDepth (nz),<(symz)>,<(symzdir)>
GridRect (xmin),(xmax),(ymin),(ymax),(zmin),(zmax)

where

  • (nx), (ny), (nz) - the number of elements in the x, y, and z directions. For axisymmetric calculations (nx) and (ny) are the number of elements in the R and Z directions.
  • (symx) and (symxdir) (and the analogous ones for y and z) - these optional settings are used to define symmetry planes along one or more axes. Note that a symmetry plane is not allowed in the R direction (i.e., x direction) of axisymmetric calculations.
  • (thick) - the grid thickness in 2D planar calculations (in mm). See below for details on grid thickness.
  • (xmin),(xmax),(ymin),(ymax),(zmin),(zmax) - the ranges for the grid along each axis (in mm) ((zmin) and (zmax) are only used for 3D calculations).

Grid Generation in XML Files

In XML input commands, the entire grid is generated within the <Mesh> block. For 2D analyses, use the following commands:

<Mesh output='file'>
  <Grid units='mm' xmin='(xmin)' xmax='(xmax)' ymin='(ymin)' ymax='(ymax)' thickness='(thick)'>
    <Horiz nx='(nx)' sym='(symx)' symdir='(symxdir)'/>
    <Vert ny='(ny)' sym='(symy)' symdir='(symydir)'/>
  </Grid>
</Mesh>

Axisymmetric calculations use x and y limits for R and Z limits. For 3D analyses, use the following commands:

<Mesh output='file'>
  <Grid units='mm' xmin='(xmin)' xmax='(xmax)' ymin='(ymin)' ymax='(ymax)' zmin='(zmin)' zmax='(zmax)'>
    <Horiz nx='(nx)' sym='(symx)' symdir='(symxdir)'/>
    <Vert ny='(ny)' sym='(symy)' symdir='(symydir)'/>
    <Depth nz='(nz)' sym='(symz)' symdir='(symzdir)'/>
  </Grid>
</Mesh>

The parameters have the same meaning as the parameters for scripted files. XML commands have three additional options:

  1. output='file' - this attribute in the <Mesh> element determines if the nodes and elements should be included in the main output results file or written to separate files in the archive folder. Use the word "file" to write nodes and elements to separate files or omit the attribute to include them in the main file. In large calculations, it is always better to write them to a separate file.
  2. The <Grid> command can use a units attribute to select the input units.
  3. Instead of setting the grid by entering the number cells in each direction, you can optionally specify the cell size by using
    <Horiz cellsize='(size)' sym='(symx)' symdir='(symxdir)'/>
    

    where (size) is the cell size (in mm). Note: if needed, the axis limits will be increased to accomodate an integral number of elements at the desired cell size.

Symmetry Planes

By using the optional (symx) and (symxdir) (and the analogous ones for y and z) in GridHoriz, GridVert, or GridDepth commands (or in <Horiz>, <Vert> or <Depth> XML commands), you can create a symmetry plane along one or more axes. The plane is located at x=(symx) (or y=(symy) or z=(symz)). If the corresponding direction property (e.g., (symxdir)) is equal to -1 (or is omitted), the plane is at the minimum edge for the coordinate; if the direction is equal to +1, the plane is at the maximum edge.

The creation of a symmetry plane will do the following:

  1. Delete all velocity boundary conditions in the specified axis direction that are beyond the symmetry plane because they are not needed (e.g., at values x≤(symx) for (symxdir)=-1 or x≥(symx) for (symxdir)=+1).
  2. Create boundary condition for every node in the plane at (symx) (or (symy) or (symz)) with velocity in the axis direction set to zero. Note that the symmetry plane must fall on a plane of nodes in the grid, otherwise an error will result.
  3. Create a second layer of boundary conditions one element from the symmetry plane (e.g., at (symx)+(symxdir)*cell where cell is the cell size along the axis) also with velocity in the axis direction set to zero (this second layer of boundary conditions may be handled differently in the future, but currently they are standard zero velocity boundary conditions). A second layer of boundary conditions is needed for best results when using GIMP or CPDI shape functions.
  4. Whenever contact occurs for a node on the plane at(symx) (or (symy) or (symz)), the volume gradient in the symmetry direction is set to zero and the volume is doubled.

Symmetry planes are designed to be actual symmetry planes. In other words, the real problem you are trying to solve is where the full object is the object on one side of the symmetry plane combined with its reflection on the opposite side. Although you can manually create pseudo-symmetry planes by creating two rows of zero velocity boundary conditions, the manual approach will not handle contact in multimaterial mode correctly. When contact may occur on the symmetry plane, the code needs to explicitly know about those planes so it can adjust volumes and volume gradients to account for symmetry. The above approach to symmetry achieves that goal (i.e., item #4 above).

Although setting a symmetry plane seems to be a short cut to setting zero velocity boundary conditions on an edge, if that edge corresponds to a real edge of the object and not to a symmetry plane, you should manually create those boundary conditions rather than use a symmetry plane. In other words, the mechanics (especially contact) at an edge are different than at a symmetry plane.

Notes

  1. The thickness in planar 2D calculations defines the thickness of the grid. This attribute is required when doing multimaterial contact including the optional volume check and when using traction or flux boundary conditions. It is optional in other calculations because thickness can be set when defining material points and when defining cracks. If used, however, all material points and cracks will default to the grid thickness. You can enter different values, although it is not recommended (and may change the physics in multimaterial simulations or results to traction or flux boundary conditions). A warning is printed in the output if a crack thickness does not match the grid thickness. Currently no warning is given if material points have different thicknesses.
  2. In scripted files, the GridThickness command must be before the GridRect
  3. When using a GIMP or CPDI shape functions, a particle is considered to have left the grid if it moves into any element on the edge of the analysis. Thus, the use of a GIMP method will cause grid generation to automatically add an extra boundary of elements beyond the dimensions you select.
  4. MPM background grids currently alway use linear elements.