Random alloys

Vampire is capable of simulating simple magnetically amorphous alloys by randomly allocating atoms in the crystal with different materials. This can be used to approximate the effects of amorphous rare-earth transition-metal alloys such as GdFe or crystalline alloys such as Permalloy. This tutorial explains how to create a random alloy of two different magnetic materials.

Step 1

In the input file define the desired crystal structure used as a basis for the random alloy. The choice of crystal structure is important in determining the effective exchange between the materials due to the coordination number, and effects such as the spatial variation of the relative concentrations of the different materials. In general it is recommended to use a face-centred-cubic crystal structure unless the actual crystal structure of the alloy is known. An fcc crystal can be generated using:

create:crystal-structure = fcc

Step 2

In the material file, define material properties for two different magnetic materials making up each of the components in the alloy. For example the parameters for GdFe are defined by [1]

materials:num-materials = 2
material[1]:material-name= Fe
material[1]:exchange-matrix[1] = 2.835e-21
material[1]:exchange-matrix[2] = -1.09e-21
material[1]:atomic-spin-moment = 1.92 !muB
material[1]:damping-constant = 0.1
material[1]:uniaxial-anisotropy-constant = 8.07246e-24
material[2]:material-name = Gd
material[2]:exchange-matrix[1] = -1.09e-21
material[2]:exchange-matrix[2] = 1.26e-21
material[2]:atomic-spin-moment = 7.63 !muB
material[2]:damping-constant = 0.1
material[2]:uniaxial-anisotropy-constant = 8.07246e-24


Remember that when defining the exchange interactions between materials the values of the exchange constant must be the same ij as ji, otherwise vampire will return an error.

Step 3

The random alloy code requires that one or more materials serve as host materials, from which atoms are selected to be randomly changed. The reason is to maintain compatibility with structural definitions such as nanoparticles and thin films, allowing multilayers of magnetic random alloys for example. The host material is defined using


which determines which materials are allowed to contain atoms with different material parameters. Materials without this keyword will not have any atoms substituted. In our example material 1 (Fe) is acting as the host material and material 2 (Gd) is going to randomly replace a certain number of Fe atoms. The host material can be used in multilayer structures, defined lithographically or used in nanoparticles just like any other material.

Step 4

The donor material contributes atoms to the host material, and so in this example it should be defined as zero height, since it does not contribute any atoms directly. This is done in the material file using

material[2]:minimum-height = 0.0
material[2]:maximum-height = 0.0

Step 5

We now specify the fraction of atoms to be replaced from the host material in the material file using

material[<A>]:alloy-fraction[<B>] = <fraction>

where <A> and <B> are the material numbers for two different materials and <fraction> is the decimal fraction of atoms (0-1) to be replaced in material A by atoms of material B. For our example of GdFe we have

material[1]:alloy-fraction[2] = 0.25

which substitues 25% of Fe atoms (material 1) with Gd (material 2).

Step 6

It is always a good idea to visually verify the generated structure by generating output viewable using rasmol or jmol. The fraction of atoms generated for each material are given in the log file for the simulation.

Step 7

Vampire can collect statistics for different materials separately, allowing you to investigate the behavior of each material in the alloy separately. More details are given in the tutorial on statistics in vampire.


[1] T. A. Ostler et al Phys. Rev. B 84, 024407 (2011)