SPPARKS Website - SPPARKS Documentation - SPPARKS Commands

barrier command


barrier dstyle Q
barrier dstyle delta Q
barrier dstyle I J Q 


barrier hop 0.25
barrier schwoebel 1 0.3
barrier hop -1 0.35
barrier hop 3 4 0.2
barrier schwoebel * * 0.1
barrier hop 2*5 3* 0.1 


This command sets the energy barrier for a diffusive hop of an atom from an occupied site to a nearby vacant site. See the app_style diffusion command for how the barrier is used in conjunction with the energy change of the system due to the hop to calculate a probability for the hop to occur.

Barriers can be assigned to two kinds of diffusive hops. The first is a hop to a nearest-neighbor vacancy, which is specified by setting dstyle to hop. The second is a Schwoebel hop to a 2nd nearest-neighbor vacancy, which is specified by setting dstyle to schwoebel. The latter is only allowed if the app_style diffusion command also used schwoebel for its dstyle setting.

Barriers are assigned based on two coordination numbers, for the initial site of the hopping atom and its final site. In both cases the coordination count does not include the hopping atom itself. Thus typically (Nmax+1)*(Nmax+1) values should be specified by using this command one or more times, which can be thought of as an (I,J) matrix entries where both I and J vary from 0 to Nmax inclusive, when Nmax is the number of neighbor sites for each lattice site. There is one such matrix for nearest-neighbor diffusive hops and one for Schwoebel hops. Also note that it is permissible to have Qij != Qji to set forward/reverse rates, particularly if the model does not use energies, but only barriers.

If only one argument Q is specified, then all matrix values are set to Q. If the Q value = 0.0, this effectively turns off barriers in the model.

If two arguments delta and Q are specified, then all matrix elements where delta = J-I are set to Q.

If three arguments I and J and Q are specified, then the (I,J) element is set to Q. In this case, the I.J indices can each be specified in one of two ways. An explicit numeric value can be used, as in the 4th example above. Or a wild-card asterisk can be used to set the energy value for multiple coordination numbers. This takes the form "*" or "*n" or "n*" or "m*n". If Nmax = the number of neighbor sites, then an asterisk with no numeric values means all coordination numbers from 0 to Nmax. A leading asterisk means all coordination numbers from 0 to n (inclusive). A trailing asterisk means all coordination numbers from n to Nmax (inclusive). A middle asterisk means all coordination numbers from m to n (inclusive).

The Q value should be in the energy units defined by the application's Hamiltonian and should be consistent with the units used in any temperature command.


This command can only be used as part of the app_style diffusion application.

Related commands:

deposition, ecoord


Energy barriers for all hop events are set to 0, which is effectively no barriers.