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 u
A
Au = 0. The quadratic form being minimized is
then really A
A, 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.