**Syntax:**

app_style potts/strain Q

- potts/strain = application style name
- Q = number of spin states

**Examples:**

app_style potts/strain 100

**Description:**

This is an on-lattice application which evolve a Q-state Potts model with a per-site strain, where each lattice site has a spin value from 1 to Q. Sites flip their spin as the model evolves. The strain energy can influence the grain growth.

The Hamiltonian representing the energy of site I is the same as for the Potts model:

Hi = Sum_j delta_ij

where Sum_j is a sum over all the neighbor sites of site I and delta_ij is 0 if the spin of sites I and J are the same and 1 if they are different. The energy of the entire system is the sum of Hi over all sites.

The per-site strain influences spin flips through altering the effective temperature as discussed below.

This applications perform Glauber dynamics, meaning the spin is flipped on a single site. See app_style diffusion for an Ising model which performs Kawasaki dynamics, meaning the spins on two neighboring sites are swapped.

As explained on this page, this application is evolved by a kinetic Monte Carlo (KMC) algorithm. You must thus define a KMC solver to be used with the application via the solve_style command.

For solution by a KMC algorithm, a site event is a spin flip and its probability is 1/(1+strain) when dE <= 0 and exp(-dE/kT*) when dE > 0 and the temperature T is finite, where dE = Efinal - Einitial using the Hamiltonian defined above for the energy of the site, T is the temperature of the system defined by the temperature command (which includes the Boltzmann constant k implicitly), and T* = T (1 + strain). Thus the effect of the strain, defined for each site, is to rescale the temperature.

The KMC algorithm does not allow spin flips known as "wild" flips, even at finite temperature. These are flips to values that are not equal to any neighbor site value.

Strain values are stored for each site as a "double" value. This means they can be assigned to each site using the "d1" keyword with the set command, or read in via the read_sites command.

The application does not change the strain assigned to each site as the simulation progresses. But if SPPARKS is built and used as a library, as discussed in this section of the manual, the driver program can alter the per-site settings. The "couple" directory of the LAMMPS molecular dynamics package includes a sample coupled LAMMPS/SPPARKS application which uses LAMMPS to compute strain values at each site of a snapshot of grain structure produced by this application running in SPPARKS. The strains are passed back to SPPARKS periodically by the driver application so that more Monte Carlo dynamics can be performed.

The following additional command is defined by this application:

temperature | set Monte Carlo temperature |

**Restrictions:** none

**Related commands:**

**Default:** none