Plotting atomic basins

Attractor Basin Plots (BASINPLOT)

BASINPLOT [CUBE [lvl.i] | TRIANG [lvl.i] |
  SPHERE [ntheta.i nphi.i]]
  [OFF|OBJ|PLY|BASIN|DBASIN [npts.i]}]
  [CP cp.i] [PREC delta.r] [VERBOSE] [MAP id.s|"expr"]

The BASINPLOT keyword plots the attraction (Bader) basin of the CP cp.i from the complete list. If CP is not given, all the non-equivalent attractors are used. BASINPLOT works by tracing rays starting at the CP in question and then doing bisection until the limit of the basin is found. At each point in the bisection procedure, a gradient path is traced. If the gradient path ends in the CP we are plotting then the point is considered to be inside the basin. Otherwise, the point is outside.

There are several keywords that control the number and position of the bisection rays for BASINPLOT. With CUBE, a cube is selected as the starting polyhedron, and recursively subdivided lvl.i times. The final (convex) polyhedron is placed on the attractor and the zero-flux surface limit for the rays corresponding to the polyhedron vertices is determined. TRIANG follows the same process but starting from an octahedron. SPHERE sets the rays by doing a triangulation of the unit sphere with nphi.r and ntheta.i angles. The total number of points is given by the formula .

The output keyword selects the output format for the basin plot: OFF (geomview), OBJ (Wavefront obj), PLY (Standford ply), BASIN (tessel), and DBASIN. The DBASIN file format also contains information about scalar fields measured along the basin rays.

The naming scheme for the output files is \<root\>-cp.ext where root is the root of the run (the name of the input file up to the first dot unless changed by the ROOT keyword), cp is the complete CP list identifier of the attractor and ext is the extension selected with one of the format keywords above.

The precision of the bisection is set using the PREC keyword, and equal to delta.r. VERBOSE gives more information in the output about the bisection process, useful if you are impatient.

If a 3D model format is used (OFF, OBJ, PLY), the MAP keyword can be used to create a color map of a given field (given by the field number or identifier id.s) or a field-containing expression (“expr”) onto the surface. The color scale limits are the minimum and the maximum value of the field or expression on all the points of the surface. The mapping function is the same as in gnuplot: (, , , with ranging from 0 to 1).

The default is the TRIANG method, lvl.i = 3, ntheta.i = nphi.i = 5, OBJ output, and one basin plot for all the non-equivalent attractors found in AUTO.

Primary Bundle Plots (BUNDLEPLOT)

BUNDLEPLOT x.r y.r z.r
  [CUBE [lvl.i] | TRIANG [lvl.i] | SPHERE [ntheta.i nphi.i]]
  [OFF|OBJ|PLY|BASIN|DBASIN [npts.i]}]
  [ROOT root.s] [PREC delta.r] [VERBOSE] [MAP id.s|"expr"]

The BUNDLEPLOT keyword plots a primary bundle starting from a point in its interior, given by x.r, y.r, and z.r in crystallographic coordinates (crystal) or molecular Cartesian coordinates (molecule, default units: angstrom). The syntax of the BUNDLEPLOT keyword is essentially the same as BASINPLOT.

The same bisection algorithm described in BASINPLOT is used in BUNDLEPLOT. The precision can be set with the PREC keyword to delta.r (default: 1d-5 bohr). The set of rays to be traced are obtained by a recursive subdivision (lvl.i cycles) of a cube (CUBE), an octahedron (TRIANG) or using a uniform distribution of ntheta.i times nphi.i points on the unit sphere (SPHERE). The output file has root root.s (ROOT keyword), and its format may be OFF, OBJ, PLY, BASIN or DBASIN with npts.i points sampled along each ray.

If a 3D model format is used (OFF, OBJ, PLY), the MAP keyword can be used to create a color map of a given field (given by the field number or identifier id.s) or a field-containing expression (“expr”) onto the surface. The color scale limits are the minimum and the maximum value of the field or expression on all the points of the surface. The mapping function is the same as in gnuplot: (, , , with ranging from 0 to 1).

Default values: TRIANG, lvl.i = 3, ntheta.i = nphi.i = 5, OBJ output, root.s = <root>-bundle.

Updated: