Plane fit and bond curvature

Download source codes

fit.tar.gz (including plane fit, bond curvature and local parabolic curvature calculations.)

Sample result for an fcc-structured cube.

Tangent plane and roughness

How rough is a surface? For a plane surce, we can find the optimized tangent plane with minimized mean squared distance to the surface and call the mean squared distance roughness (or flatness). Life is not so easy with surfaces of finite size clusters, which, besides roughness, have global geometry deviated from a plane. One simple approach is to measure, instead of global roughness, discrete differential roughness, for which, each time, plane fitting and roughness measurement is only done to a given surface particle and its nearest neighbors (according to a given cutoff distance).

Cone algorithm should first be performed to discriminate surface particles. For each surface particle, according to the given cutoff distance, its nearest neighbor particles are carried out. The discrete differential roughness is then defined as:

D = sqrt( Sigmai (di2) / N) ,

where N is the number of particles, di is the distance from the ith particle to the tangent plane:

di = n*(ri - r0),

here n is the normal vector of the tangent plane, ri is the coordinate of the ith particle, r0 is the coordinate of the reference point on which the tangent plaen is fixed. The reference point can be either the given particle or the center of mass of this local structure (we prefer the center of mass accroding to the result of the fcc cube). According to the above equations, to find tangent plane is equivalent to find the normal vector of the tangent plane n.

Undetermined lagrange multiplier lamda is used to find the normal vector:

d/dn [ Sigmai (di2) - lamda (n2 - 1) ] = 0,

where d/dn is the variational differentiation by n. This is a symmetric eigenvalue problem which can be easily solved by Jacobi transformations (please refer to Numerical Recipes in C, 2nd Ed., Page 463, W. H. Press et al). The smallest eigenvalue is the expected discrete differential roughness (after devided by N and taken square root), and the corresponding eigenvector is the normal vector of the tangent plane.

The direction of the normal vectors is ambiguous. In our case of gold clusters, we turn the vectors to point away from the center for illustration and turn them to point toward the center for local parabolic curvature calculation.

Bond curvature

Let the positions of the two atoms be (x1, y1, z1) and (x2, y2, z2), the distance between them is:

L = sqrt( (x2-x1)2 + (y2-y1)2 + (z2-z1)2 ).

Let the normal vectors be (nx1, ny1, nz1) and (nx2, ny2, nz2), theta be the angle between them,

cos(theta) = nx1*nx2 + ny1*ny2 + nz1*nz2.

The radius of curvature can be calculated as:

r = L / ( 2*sin(theta/2) ).


cos(theta) = 1 - 2*sin2(theta/2),

the curvature is then

c = 1/r = sqrt( 2 * ( 1 - nx1*nx2 - ny1*ny2 - nz1*nz2 ) / ( (x2-x1)2 + (y2-y1)2 + (z2-z1)2 ) ) .

The first two sections of that page are the distributions of roughness (flatness) and bond curvatures for the icosahedral gold cluster with 2624 atoms (supercooled at T=1000K). Method 2 is our preferred fitting method.

Back to Yanting Wang's Homepage