For convenience, MOPAC calculations of crystalline solids use unit cells that are six-sided volumes with three sets of two parallel surfaces. When the geometry of a system is optimized, the dimensions of these unit cells change so that the forces (pressures) acting on the faces is in equilibrium with the forces inside the unit cell arising from the chemical structure of the solid. By default, the applied external pressure, P(ext.), is zero; this can be changed by keyword P=n.m or P=n.mGpa.
In modeling calculations, solids are defined by three translation vectors, Tv. The individual components are usually referred to as Tv1, Tv2, and Tv3. These vectors can be orthogonal as in the orthorhombic solids, or have contained angles that differ from 90°. For convenience all Tv vectors are defined as originating at coordinates (0,0,0); this allows their termini to be defined by the Cartesian coordinates for the individual Tv. At equilibrium the forces, g = gx, gy, and gz, acting on each vector terminus would be zero. If the system is not at equilibrium, then the force-vector for each translation vector would be non-zero.
By convention, translation vectors are expressed in Ångstroms and gradients (force-vectors) are expressed in kcal/mol/Ångstrom.
Calculation of the pressure acting on the various surfaces in the direction of the third translation vector is done using the coordinates of the three Tv and the force-vectors of each translation vector, g, only.
The scalar, f1, of the component of the gradient vector, g1, in the direction of the translation vector, Tv1, is given by:
f1 = (g1(x)·Tv1(x) + g1(y)·Tv1(y) + g1(z)·Tv1(z)).
Using the volume of the unit cell, V = |Tv1·(Tv2⊗Tv3)| or:
V = |Tv3(x)*(Tv1(y)·Tv2(z) - Tv1(z)·Tv2(y)) + Tv3(y)*(Tv1(z)·Tv2(x) - Tv1(x)·Tv2(z)) + Tv3(z)*(Tv1(x)·Tv2(y) - Tv1(y)·Tv2(x))|,
and conversion factors to go from kcals and moles to ergs and unit cells, the pressure, P, in Pascals, can be calculated using:
P = -4184·1030/(6.022·1023)·f·V-1
If an external pressure, P(ext.), is used, this should be added on at this point: P = P + P(ext.)