BMPRegion Command
An advanced feature of both NairnMPM and NairnFEA is that you can digitize objects directly from images.
Introduction
An alternative method for creating meshes in NairnFEA or material points in NairnMPM to to create them from an image file. The image file can be one you draw in a CAD program or can be a photo of object. The later options lets you create realistic numerical models of complex objects in a single command. In 2D or axisymmetric calculations, the image fills in an FEA mesh or adds material points to the grid. in 3D MPM simulations, the image represents one slice of the object in the x-y plane at a fixed value of z. By combining a stack of slices, those images can create all material points for a complex 3D object.
BMPRegion Commands
In scripted files, an image is converted into material points using:
BMPRegion (bmpPath),(width),<(height)>,<(anglesPath)> Origin (xO),(yO),<(zO>,<(flip)> Intensity (matID),(grayMin),(grayMax),<(prop),(value)>,... . . . Intensity "angles",(gray1),(gray2),(angle1),(angle2) (optional rotation command) EndRegion
In XML files, the command block is
<BMP name="(bmpPath)" width="(width)" height="(height)" angles="(anglesPath)"> <Origin x="(xO)" y="yO" z="zO" flipped="(flip)"/> <Intensity mat="(matID)" imin="(gramMin)" imax="(grayMax)"> (property command options) </Intensity> . . . <Intensity imin="(gray1)" imax="(gray2)" minAngle="(angle1)" maxAngle="(angle2)"/> (optional rotation commands) </BMP>
where
- (bmpPath) is the full or relative path name to the BMP file. The file must be an uncompressed, gray-scale, BMP file with 8 or less bits per pixel. The most useful is an 8-bit file with 256 levels of gray.
- (width) and (height) specify the width and height for the image, but there are several ways to specify them.
- (anglesPath) is an optional full or relative path name to a mask BMP file whose intensities determine the material angle for rotation about eh z axis when setting anisotropic material points. The file must be an uncompressed, gray-scale, BMP file with 8 or less bits per pixel. The file must be exactly the same size (horizontal and vertical pixels) as the image file in (bmpPath).
Inside BMPRegion block, you include various commands to determine how the pixels are converted into material points. The possible subordinate commands are:
- Origin command - used to connected the image coordinates the the MPM grid coordinates.
- Intensity command - used to determine conversion of gray scale values in the images into material points or rotation angles
- (optional rotation commands) - these optional commands provide alternative methods for setting initial material orientation when modeling with anisotropic materials.
Image Width and Height
The (width) and (height) parameters specify the width and height of the image, but they can be specified using different styles. The options are:
- Give both as positive numbers - if both numbers are provided and are positive, they give width and height of the image in mm (or determined by a units attribute in XML files). They need not match the aspect ratio of actual image, but if they differ the image will be scaled.
- Use a negative number - if either (width) or (height) is negative, the absolute value is taken as the number of mm per pixel (or other units per pixel as determined by a units attribute in XML files). The total width or height is calculated from the number of pixels in the BMP image.
- Give only one dimension - if only (width) or only (height) are given, the entered parameter gives that dimension of the image in mm, if positive, or mm per pixel, if negative (or other units as determined by a units attribute in XML files). The other dimension is calculated from the aspect ratio of the BMP file. To specify only (height) in scripted files, the (width) parameter has to be more negative than -1e8. To specify only (width) in scripted files that are using the optional (anglesPath) parameter, the (height) parameter has to be more negative than -1e8.