app_style diffusion/multiphase diffusion/multiphase pin 1 # after creating sites diffusion/multiphase phase 2 diffusion/multiphase phase 3 diffusion/multiphase weight 0.5 pair 2 3
This is an on-lattice application which is a multiphase extension to the single phase diffusion app. This app can run with an arbitrary number of phases, but is is limited to the energy style linear option of the diffusion app.
In general, diffusion can lead to phase separation when bond energies (energy of a pair of neighboring sites) between like phases are lower than bond energies between different phases. The rate of phase separation and the degree to which it occurs can be controlled by setting the relative bond energies between different phases.
As illustrated in the example above the diffusion/multiphase is used with this application. It defines the phases, which one (if any) is pinned so that no diffusion occurs, and the relative weights between all pairs of phases.
To run this application, an initial phase distribution on the lattice should be specified. Each lattice site has an integer spin value which stores its phase label. If only relative volume fractions of the phases is desired, the set command can be used to set spin values randomly. If there is a structure to the initial phase distribution, this can be written to a SPPARKS input file and read via the read_sites command. Or the set stitch command can be used to read this information from a Stitch file formatted by the Stitch library included with SPPARKS.
The examples/diffusion_multiphase directory has several scripts which illusrate use of this app:
The following additional command is defined by this application.
|diffusion_multiphase||define phases and weights|
diffusion/multiphase, app_style diffusion