MPM Region and Hole Commands
In MPM, the most common way to discretize an object is to add material points to the background grid using Region commands and to designate regions of the grid has having no material points using Hole commands. Enclosed in these commands are various shape commands to define the object. An alternative and powerful option for discretizing an object is to create material points automatically from an image of the object.
Region Commands
Once the background grid is created, material points are added to the grid using a series of Region commands (or <Body> commands in XML files). In scripted files, the Region command defines material type, initial velocity, thickness (in 2D), and optionally an initial angle (for some anisotropic materials), temperature, and concentration. The command is
Region (matid),(velx),(vely),(velz_or_thick),<(property),(value)>... (any number of shape commands) EndRegion
In XML files, regions are defined using <Body> elements and optional one PointList element. All these element must be withinthe single MaterialPoints element in the input file:
<MaterialPoints> <PointList> (see help on creating individual material points) </PointList> <Body mat='(matid)' vx='(velx)' vy='(vely)' vz='(velz)' thick='(thick)' angle='(angle)' temp='(temp)' conc='(conc)'> (any number of shape commands) </Body> .... </MaterialPoints>
where
- (matid) is the material ID for a previously defined material.
- (thick) is the thickness of the region in mm.
- (angle) is an optional angle for the material which is only relevant for anisotropic materials. It can be entered as a number or as a user-defined function of the coordinates for the element centroid. The units are degrees.
Between the Region command and the subsequent EndRegion command (or within the <Body> block), there can be any number of Rect, Oval, and PolyPt commands to define the geometry whose elements will use this region's material properties.
Hole Commands
Once the mesh is ready to use shapes, elements within shapes can be removed with a series of Hole commands (or <Hole> commands in XML files). In scripted files, the Hole command is:
Hole (any number of shape commands) EndHole
In XML files, the <Body> block is:
<Hole> (any number of shape commands) </Hole>
Between the Hole command and the subsequent EndHole command (or within the <Hole> block), there can be any number of Rect, Oval, and PolyPt commands to define the geometry whose elements should be removed.
Rect Command
A scripted Rect command defines a region to be assigned element materials or to be defined as a hole:
Rect (xmin),(xmax),(ymin),(ymax)
In XML files, the command is:
<Rect xmin='(xmin)' xmax='(xmax)' ymin='(ymin)' ymax='(ymax)'/>
where
- (xmin),(xmax),(ymin), and (ymax) are the x and y extents of the rectangle (or R and Z extents if axisymmetric). If xmax<xmin or ymax<ymin, they will be automatically switched to define the rectangle. The units are mm (or determined by a units attribute in XML files).
If the defined rectangle overlaps areas that already has assigned elements, or has been defined as a hole, those areas will be ignored.
Oval Command
A scripted Oval command defines a region to be assigned element materials or to be defined as a hole:
Oval (xmin),(xmax),(ymin),(ymax)
In XML files, the command is:
<Oval xmin='(xmin)' xmax='(xmax)' ymin='(ymin)' ymax='(ymax)'/>
where
- (xmin),(xmax),(ymin), and (ymax) are the x and y extents of the rectangle (or R and Z extents if axisymmetric) that encloses the oval. If xmax<xmin or ymax<ymin, they will be automatically switched to define the oval. The units are mm (or determined by a units attribute in XML files).
If the defined oval overlaps areas that already has assigned elements, or has been defined as a hole, those areas will be ignored.
PolyPt Command
In scripted files, a series of PolyPt commands is used to define a polygonal region to be assigned element materials, or to be defined as a hole:
PolyPt (x1),(y1) PolyPt (x2),(y2) ... PolyPt (xn),(yn) PolyPt
In XML files, a polygon is defined with a <Polygon> block:
<Polygon> <pt x='(x1)' y='(y1)'/> <pt x='(x2)' y='(x2)'/> ... <pt x='(xn)' y='(yn)'/> </Polygon>
where
- (xi),(yi) (for i = 1 to n) are the x and y coordinates of the each point in the polygon (or R and Z if axisymmetric) with the last point (xn),(yn)) being connected to the first ((x1),(y1)). If the PolyPt arguments are omitted, the polygon is closed. The units are mm (or determined by a units attribute in XML files).
A blank PolyPt command in scripted files is only needed if you need to define more than one polygon in the same region. The blank command will finish the current one and the next one will start with the next PolyPt command. Intervening Rect and Oval commands or the end of a block will also stop the current polygon; in these cases the blank PolyPt is not needed.