Next: Program Operation Up: Program Theory Previous: Finite Element

2.2.2. Finite Difference

The energy equations for the finite difference programs are a little different. For a real conduction problem, with conductivity (which could be variable in space, but not time), the dissipated energy is:

where Ei is the electric field at a certain point in space, and the integral is over all space. However, to derive the steady state conductivity problem, one starts rather from the charge conservation equation,

where is the current density and ρ is the charge density. For steady state problems, one ends up with simply ∇ · = 0 or ∇ · (σ ) = 0. Using the definition of E in terms of the gradient of the voltage results in the Laplace equation, σ∇2V = 0, in regions of uniform values of the conductivity. The appropriate boundary conditions between regions of different conductivity are applied in the program in subroutine BOND, which gives the correct value for the conductance of bonds that pass from one region to another. The program then essentially assumes that the microstructure is made up of a finite number of uniform conductivity regions.

Upon translating into finite difference language, one ends up with the equation Au = 0, where u is the array of voltages, and A is a matrix made up of the conductivities and the voxel geometry. To use the conjugate gradient method requires that an energy in quadratic form be minimized, so this equation is squared, resulting in uAAu = 0. The quadratic form being minimized is then really AA, or the square of a matrix similar to the stiffness matrix in the finite element problems. This is why the finite difference programs do not usually converge as rapidly as do the finite element programs, since the square of the stiffness matrix is used instead of the matrix itself.

User Manual for Finite Element and Finite Difference Programs: A Parallel Version of NISTIR−6269<
Next: Program Operation Up: Program Theory Previous: Finite Element