Next: Finite element theory Up: Main Previous: List of Tables


Introduction

 

The effective properties of composites have been studied analytically for a long time, back to the days of Maxwell, who first solved for the effect that a single spherical inclusion, with a different conductivity from the matrix, has on the overall or effective conductivity [1]. Random materials like concrete, powder compacts, etc. are also composites, random agglomerations of different property material at various length scales. Because of their randomness, their properties cannot be computed analytically, but instead require numerical computation. To compute the effective properties of such materials requires knowledge of the microstructure. The only practical way such information is obtained is either through microscopy, x-ray microtomography [2,3], or models [4]. Whatever the method, the microstructural information is almost always in 2-D or 3-D digital image form, collections of discrete square or cubic pixels in which each pixel can, in principle, be a different phase of the material. Hence the need to have computer programs that are specialized to work on digital images.

This manual describes the theory behind, and practical instructions for using, various finite element and finite difference programs specialized to operate on two and three dimensional digital images of materials. The digital images can be completely general, representing any material with any number of distinct phases. The finite element programs are set up assuming that each phase is characterized by an arbitrary symmetry conductivity tensor, elastic moduli tensor, and eigenstrain or thermal strain tensor. The finite difference electrical programs are set up for a conductivity tensor that is diagonal, but which can have different terms along the diagonal for the x, y, and z directions. The digitalimages do not have to have the same dimensions in each direction.

The three basic problems considered are the following: 1) the effective conductivity of a material composed of different conducting and non-conducting phases, either at zero frequency (D.C.) using either a finite element or a finite difference program, or at finite frequency (A.C.), using a finite difference program, 2) the effective elastic moduli of a material composed of phases with different elastic moduli tensors, and 3) the effective thermal strain/eigenstrain of a multi-phase material with different elastic moduli and eigenstrain in each phase. The material digital image is assumed to have periodic boundary conditions (see Section 6 for how to remove these conditions).

The digital images of the microstructures analyzed can be generated within the programs themselves, or can be obtained elsewhere and simply read into the property programs. In the programs described in this manual, the digital images are always read into the program. In the discussion in Section 2, about finite element theory, the language is for 3-D. There is a separate section later in this manual (Sec. 4.4), which explains the quite simple relations between 2-D and 3-D. The 2-D programs in this package were created directly from the 3-D programs, and so are nearly identical in structure to the 3-D versions.

There are 10 main programs described in this manual, and available for the user. They include D.C. finite element electrical programs in 2-D and 3-D (ELECFEM2D.F, ELECFEM3D.F ), finite element elastic programs in 2-D and 3-D (ELAS2D.F, ELAS3D.F), finite element elastic programs that incorporate thermal strains (eigenstrains) in 2-D and 3-D (THERMAL2D.F, THERMAL3D.F), and finite difference electrical programs for a.c. or d.c. problems in 2-D or 3-D (AC2D.F, AC3D.F, DC2D.F, DC3D.F). In what follows, any mathematical variable will be in italics (in the printed version of this manual--in this HTML document, mathematical variables are in bold). All program and subroutine names will be in capitals. Also, a variable with two subscripts, say wmn, may be written as w(m,n), which is the way it appears in the programs. As much as possible, variable and subroutine names are the same from program to program. The notation and structure of the conjugate gradient routine (in subroutine DEMBX) has been made to follow that used in Numerical Recipes, chapter 10 [5]. Also, in the following, the term "vector" is used interchangeably for 3-D and 2-D vectors, for arrays that have as many entries as there are variables in the problem, and for quantities that have both magnitude and direction. The meaning will be clear from the context. Enough details are given in this manual so that, hopefully, any user can rewrite and change the programs to adapt them to specific problems, and add new capabilities.

All programs should be run in double precision (8 bytes or 64 bits per real variable). Running the finite difference routines in single precision may give reasonable answers, but double precision is more trustworthy. Running the finite element routines in single precision will not work, except perhaps for very small systems, on the order of 1000 nodes. All the routines are written in simple FORTRAN 77, making use of only a small subset of the language. These routines should therefore be portable across different platforms. Those users who wish to proceed directly to how to run the programs, can skip to Sec. 4.5, where details of how to use the programs are discussed. Another similar package, which is for 2-D only but has a graphical interface, is the OOF system, which can be found at http://www.ctcms.nist.gov/ (click on "Software").

In addition to these 10 main programs, there are also three auxiliary programs, one for computing Gaussian quadrature weights and points, and two for computing phase percolation in an arbitrary 3-D or 2-D image.

The layout of the remainder of this manual is the following. Section 2 briefly derives and defines the theory behind the finite element programs, electric, elastic, and elastic with thermal or eigenstrains. Section 3 discusses the theory behind the finite difference programs, both A.C. and D.C. The early parts of Section 4 explains the workings of key subroutines of both the finite element and finite difference programs, followed by a discussion of how to use the programs and which variables need to be set by the user. Section 5 then presents the theoretical results of many exact solutions in electrical conductivity and elasticity, accompanied by tests or examples showing how well these programs can reproduce these results. These exact results are helpful in testing progams such as the ones presented in this manual, since they are for non-trivial microstructures and/or choices of individual phase paramters. Section 6 then presents the theory showing how these programs may be modified to solve many other problems of interest, along with some useful examples of program use. Section 7 explains how to make images and histograms from the local field results using any of the programs, and gives some examples, and Section 8 is the reference section. Section 9, the last section, gives computational details, access information for the programs, and includes listings of five of the 10 main programs, and two of the auxiliary programs.

I would like to thank Prof. A.R. Day, of Marquette University, for setting up the first version of the conjugate gradient routine for the finite element problems, Prof. P.M. Duxbury, of Michigan State University, for giving me a version of what eventually was developed into the basic 2-D finite difference electric program, Prof. M.F. Thorpe, for getting me started in algorithms applied to digital images, J.F. Douglas, for suggesting some of the example problems for exact composite results, D.P. Bentz, of the NIST Building Materials Division, who has been a collaborator for almost a decade on digital-image-based microstructure problems, and S.A. Langer, for critically reading this manual and suggesting many changes.



Next: Finite element theory Up: Main Previous: List of Tables