Modelling Microstructures With OOF2: Andrew C.E. Reid
Modelling Microstructures With OOF2: Andrew C.E. Reid
Modelling Microstructures With OOF2: Andrew C.E. Reid
x, xxxx 1
Rhonald C. Lua
Materials Science and Engineering Laboratory,
National Institute of Standards and Technology,
100 Bureau Drive, Stop 8555,
Gaithersburg, MD, 20899-8555, USA
E-mail: [email protected]
R. Edwin García
School of Materials Engineering,
Purdue University,
West Lafayette, IN, 47907-2044, USA
E-mail: [email protected]
Valerie R. Coffman
Materials Science and Engineering Laboratory,
National Institute of Standards and Technology,
100 Bureau Drive, Stop 8555,
Gaithersburg, MD, 20899-8555, USA
E-mail: [email protected]
Stephen A. Langer*
Information Technology Laboratory,
National Institute of Standards and Technology,
100 Bureau Drive, Stop 8910,
Gaithersburg, MD, 20899-8910, USA
Fax: 301 975 3553 E-mail: [email protected]
*Corresponding author
Reference to this paper should be made as follows: Reid, A.C.E., Lua, R.C.,
Edwin García, R., Coffman, V.R. and Langer, S.A. (xxxx) ‘Modelling
Microstructures with OOF2’, Int. J. Materials and Product Technology, Vol. x,
No. x, pp.xxx–xxx.
1 Introduction
There are two general approaches to modelling the properties of materials with complex
microstructures. One is to use mean-field approximations and compute the average
properties of a statistically representative microstructure. The second is to accurately
model a specific microstructure (or set of microstructures), using all available
geometrical data. While the mean field method provides useful bounds to calculate the
effective properties and response of materials, the second method is useful in situations in
which
Modelling Microstructures with OOF2 3
∇•Ψj = fj
and a small number of additional free, open-source libraries. What follows is a brief
description of using OOF2 to analyse a particular microstructure.
2 Using OOF2
OOF2 starts with a micrograph, such as the one shown in Figure 1. While this particular
micrograph happens to be of a silicon nitride ceramic, Si3N4, the topology of the
images that OOF2 can analyse is arbitrary, and is only limited by the resolution and
quality of the input. By using simple-point-and-click operations, OOF2 can assign any
desired (real or hypothetical) single-crystal material properties to each of the components
of the microstructure, and rapidly examine the effects of those properties on the local
microstructural fields or the macrosopic response.
Figure 1 A Si3N4 microstructure, courtesy of Paul et al. (1998). The dark regions are a crystalline
phase, and light regions are glassy amorphous interfacial regions
3 Microstructures
After creating a Microstructure, the next required task for the OOF2 user is to
assign Materials to each pixel in the Microstructure. Materials are defined
as sets of Properties. Most Properties are coefficients in physical constitutive
relations, such as elastic modulus, thermal conductivity, piezoelectric coupling tensor, or
mass density. Other Properties, such as Orientation, indirectly affect the
constitutive equations, while others, such as Colour, are purely decorative. Figure 2
shows a possible ‘material map’ of the Microstructure from Figure 1, in which each
pixel has been coloured by the Colour Property assigned to its Material.
(a) (b)
When assembling a Material from Properties, the Properties are chosen from
a hierarchical list. The Properties can be parameterised, copied, named, and saved
for future reference. New Properties can be added to the hierarchy. At the current
time, the hierarchy includes mechanical properties (linear elasticity, stress-free strain, and
force density), thermal properties (thermal conductivity and heat sources), electric
properties (dielectric permittivity and space charge density), couplings (thermal
expansion, piezoelectricity, and pyroelectricity), and the non-constitutive properties
orientation and colour. All of the moduli and coupling constants have both isotropic
and anisotropic variants, appropriate for any crystal symmetry. Although OOF2 only
solves two dimensional problems, crystal symmetries and orientations have their full
three-dimensional form.
The pixels to which the Materials are assigned correspond to microstructural
constituents (grains, grain boundaries, precipitate phases, etc.). These sets of pixels are
identified and grouped by the user using OOF2’s pixel selection tools. This operation in
general requires some judgement on the part of the user to physically interpret the image
6 A.C.E. Reid et al.
data, although there may be special cases where fully automatic pixel grouping is
possible.
The OOF2 pixel selection tools include both graphical (operated by mouse clicks on
an Image) and non-graphical operations, and tools to create and modify named groups
of pixels, as well as tools for modifying the underlying Images. The graphical pixel
selection tools include methods for selecting all pixels within a given colour range of a
clicked pixel, and various methods for choosing a contiguous set of pixels. Non-graphical
selection tools include methods for expanding or contracting the currently selected set, or
selecting all pixels within a given absolute colour range.
Selected pixels can be added to or subtracted from named pixel groups. Creating pixel
groups is not required, but is a convenient way to recover a previous set of selected
pixels. Furthermore, Materials can be assigned to a named pixel group, as well as to
whichever pixels are currently selected. Figure 2 was constructed in one of the simplest
possible ways. First, the Image was thresholded; i.e., each pixel was set to either black
or white, depending on whether its original grey level was below or above a certain
predetermined value. Then two pixel groups named ‘grains’ and ‘matrix’ were created.
The black pixels were selected and added to the ‘grains’ group, and the white pixels were
selected and added to the ‘matrix’ group. Two Materials, also called ‘grains’ and
‘matrix’ were created, and assigned to the pixels in the corresponding pixel groups.
Finally, Colour Properties were added to the two Materials.
5 Skeletons
After creating a Microstructure and assigning Materials to its pixels, the next
step in using OOF2 is to create a finite element mesh Skeleton. A Skeleton
is not quite a complete finite element mesh – it specifies the positions and shapes
of the elements, but contains no information about finite element interpolation functions,
which fields are defined, or which equations are being solved. Like Images and
Materials, Skeletons are components of an OOF2 Microstructure object.
One Microstructure can be home to many Skeletons. After a Skeleton has
been created, it can be adapted via node motion and element refinement so that
it provides a good geometrical representation of its associated microstructure.
A Skeleton is a good representation if each of its elements is homogeneous, meaning
that its area consists of only one type of Material in the Microstructure. In the
end, the Material assigned to each Skeleton element, whether or not the element is
homogeneous, will be the Material assigned to the majority of pixels within the
element (pixels at element edges can make fractional contributions to this calculation).
There are three ways to create a Skeleton from a Microstructure in OOF2.
The simplest creates a single quadrilateral element or two triangular elements from each
pixel. While this process is straightforward and requires no user intervention, in most
cases it almost certainly will create an unnecessary number of elements, which will slow
down further computations. Additionally, it will introduce internal jagged edges, which
are unphysical and do not represent the topology of the analysed image. For example, the
jagged edges of the grains in Figure 2(b) are just a result of the pixelisation of the original
image, and it makes no sense for a mesh to follow the stairstep boundaries pixel by pixel.
Modelling Microstructures with OOF2 7
A better way to create a Skeleton is to use OOF2’s ‘Auto’ feature, which requires
the user to specify the minimum and maximum sizes of the features of interest in the
Microstructure. OOF2 will then create an initial Skeleton just fine enough to
resolve the maximum sized features, and will locally refine and adapt the Skeleton so
that it can resolve the minimum sized features. Such a Skeleton is shown in Figure 3.
Note that most, but not all, of the elements have good shapes (containing no highly
obtuse or acute angles, and having aspect ratios near 1.0) and that most, but not all, of the
boundaries between Materials coincide with element edges.
Figure 3 (a) A Skeleton created from the Microstructure shown in Figure 2(a), using the Author: Please
Auto Skeleton feature. In this and the following figures, the jagged edges in the element check if Figure 3
boundaries are display artifacts; (b) of the Skeleton, corresponding to the region and 6 captions are
shown in Figure 2(b) and (c) with elements coloured according to their dominant ok.
Material
The third way to create a Skeleton is to do it by hand, first creating a regular array of
large elements, and then using various Skeleton modification tools to adapt the
Skeleton to the Microstructure. It is also possible to use the same tools to
improve a Skeleton that was initially created automatically. The tools include ways of
refining, or subdividing, inhomogeneous elements, various methods for moving nodes to
improve element homogeneity or shape, and methods for merging elements and removing
extremely badly shaped elements. It is possible to select a portion of the
Microstructure and to apply the tools only to elements in that area, or even to select
an individual Skeleton node and specify its desired position exactly. Figure 4 shows
the result of using some of these tools on a portion of the Skeleton shown in Figure 3.
The new Skeleton follows the Material boundaries better, but in places comes
perilously close to resolving the individual pixels.
When creating a Skeleton, it is important to remember that the original micrograph
is an approximation to the actual microstructure, the material map is an approximation to
the micrograph, and the Skeleton is an approximation to the material map.
Furthermore, the finite element solution that will be obtained is yet another
approximation. In this context, there is nothing to be gained by over refining a
Skeleton.
8 A.C.E. Reid et al.
Figure 4 A detail (a) of the Skeleton from Figure 3, with additional refinement
and (b) the same detail, with elements coloured according to their dominant Material
(a) (b)
(a) (b)
(c) (d)
OOF2 contains a number of methods for examining the results of a virtual experiment.
Figure 5 displays a few of the ways of visualising an equilibrated Mesh. OOF2
can plot the components and invariants of all Fields and Fluxes, as well as energy
densities and strains, using either original, actual deformed, or enhanced coordinates.
(Enhanced coordinates exaggerate displacements.) It can plot cross sections along
arbitrary straight lines drawn on the Microstructure, and can compute averages and
integrals over Microstructures, cross sections, subregions, and boundaries of a
Mesh. This allows it to be used to compute effective macroscopic moduli.
Modelling Microstructures with OOF2 11
OOF2 can be driven either by a GUI, or via scripts. Figure 6 illustrates some features
of the user interface.
Figure 6 (a) The main OOF2 control window. The window has many separate pages,
for performing the various required tasks. The page shown creates and modifies
Skeletons and (b) the OOF2 graphics window, which displays microstructures
and handles interactive mouse-based input. Different tasks are handled by different
toolboxes on the left hand side of the window. The toolbox shown is showing the
attributes of the Mesh element under the mouse in the display area
(a)
(b)
12 A.C.E. Reid et al.
Every action in the GUI that has a consequential outcome is recorded as a text command,
which can be saved in a log file. The file can be read back into the program to repeat a
calculation or part of one. Log files are actually Python scripts, so they can
be edited to include arbitrary Python variables, functions, and control statements.
For example, a script can be saved for doing a calculation on one image, and then
modified to run the calculation on a whole series of images, or with a range of material
parameters. Scripts can be loaded either with or without the GUI running, allowing
background batch computation.
9 OOF2 extensions
Many of the features of OOF2 are designed to be easily extendible by end users.
It’s possible to add new Fields, Fluxes, or Equations with a few lines of code.
New Material Properties, output functions, and finite element types can be added
with a bit more effort. The details, including sample code, are given in the on-line OOF2
manual. Extensions can either be compiled into the main OOF2 code base, or built as
separate modules that can be loaded at run-time if and when they are needed.
At the current time, OOF2 development is concentrated on adding time dependent and
non-linear properties, such as plasticity. OOF2 will soon be able to directly
importorientation imaging microscopy (OIM) data. Finally, OOF2 is being extended to
work on three dimensional micrographs. The long-term goal is to make OOF a general
purpose platform for the computation of physical properties of two and three dimensional
microstructures.
Acknowledgements
The authors would like to thank Seung-Ill Haan for his contributions to the OOF2 code.
Rhonald Lua is supported by the Penn State University MatCASE project, which is
funded by NSF ITR research grant DMR-0205232.
Disclaimer
References
Langer, S.A., Fuller Jr., E.R. and Carter, W.C. (2001) ‘OOF: an image-based finite-element
analysis of material microstructures’, Computing in Science and Engineering, Vol. 3, No. 3,
p.15.
Paul, F.B., Sun, E.Y., Plucknett, K.P., Alexander, K.B., Hsueh, C-H., Lin, H-T., Waters, S.B.,
Westmoreland, C.G., Kang, E-S., Hirao, K. and Brito, M.E. (1998) Journal of the American
Ceramic Society, Vol. 81, No. 11, pp.2821–2830. AUTHOR PLEASE SUPPLY ARTICLE
TITLE.
Zienkiewicz, O.C. and Taylor, R.L. (2000) The Finite Element Method, 5th ed., Vol. 1, Butterworth
Hienemann, Oxford, p.91.
Websites
Cygwin may be found at http://www.cygwin.com/
Python may be found at http://www.python.org/
The OOF website is located at http://www.ctcms.nist.gov/oof/