memc2

MultiComponent Easy Monte Carlo Code (emc2)
by Axel van de Walle

Command line parameters:

-er : enclosed radius. The Monte Carlo cell will the smallest possible
      supercell of unit cell of the initial configuration such that a
      sphere of that radius fits inside it.  This allows you to specify
      the system size in a structure-independent fashion.

-cf : Control file specifying the ranges of temperature and chemical potentials
      scanned (default: control.in). See file format below.

-eq : number of equilibration passes. (Equilibration is performed at
      the beginning of each step of the outer loop.)

-n  : number of Monte Carlo passes performed to evaluate thermodynamic
      quanties at each step of the inner loop.

-tp : instead of specifying -eq and -n, you can ask the code to equilibrate
      and run for a time such that the average energy is accurate
      within the target precision specifified by -tp=.

-aq : Alternative quantity that must meet the tolerance specified by -tp.
      0: energy (default), 1: long-range order, 2-: concentations, correlations

-gs : Gives the index of the ground state to use as an initial spin
      configuration (starting at 0). The ground states are listed in
      gs_str.out.
      If the index is -1, the disordered state with equiatomic composition is used.
      (If -gs=-1, the LTE and MF approximations are not calculated.
      If you want the LTE and MF ouputs, use one of the 'pure' end members as a starting point.)

-tstat : Critical value of the test for discontinuity. The code is
         able to catch phase transformations (most of the time) when
         going from an ordered phase to another or to the disordered
         state. This involves a statistical test which a
         user-specified confidence level. The default, 3, corresponds
         to a 0.4% chance of finding a transition where there is
         none. (Refer to a standard normal table.)  -tstat=0 turns off
         this option.  Suggestion: if a phase transition is
         undetected, first try to reduce temperature or chem. pot. steps
         or increase n or decrease tp before toying around with this parameter.
         Also: beware of hysteresis.

-sigdig : Number of significant digits printed. Default is 6.

-o:       Name of the output file (default: mc.out).

-k : Sets boltzman's constant (default k=1). This only affects how
     temperatures are converted in energies.  -k=8.617e-5 lets you enter
     temperatures in kelvins when energies are in eV.
     (You can also select this value by using the -keV option.)

 -mft : Mean field threshold. If the grand canonical potential obtained via
        the mean field approximation and the low temperature expansion are
        less than this threshold, Monte Carlo simulation are skipped
        and mean field values are used instead. (They replace the MC values
        in the output file.
        The column labelled use_mf is equal to 1 when this substitution is made.
        Note: When use_mf=1, the correlations in the output file are incorrectly
              set to their values in an ideal fully ordered structure.
              All other columns are reliable.

 -mftq: Quantity that must meet the tolerance specified by -mft.
        0: phi (default) , 1: energy , 2: long-range order, 3-: concentrations

Tricks:

   To read parameters from a file, use:
    memc2 `cat inputfile`
   where inputfile contains the commands line options.

   To selectively display a few of the output quantities, use:
    memc2 [options] | cut -f n1,n2,n3,...
   where n1,n2,n3,... are the column number desired (see below).

-> Input files:

control.in   : range of temperature and chemical potentials to scan.

 The first line of this file specifies the initial conditions and has the format:
   temperature chemical_potentials_1 ... chemical_potentials_n
 where the chemical potentials are for each specie.
 Each subsequent line of this file indicates one of the axes along which to scan and has the format:
   temperature chemical_potentials_1 ... chemical_potentials_n number_of_steps
 where number_of_steps is the the number of steps made between the initial conditions
 and the final conditions given on the line.
 Example: to scan the region in (T,mu1,mu2,mu3)-space defined by
          100 <= T < 200  and 0 <= mu1 < 1.0 and 0 <= mu2 < 0.5 and mu3 == 0.0
          with a 10x5x5 grid
 the control.in file should be
 100 0.0 0.0 0.0
 200 0.0 0.0 0.0 10
 100 0.0 0.5 0.0 5
 100 1.0 0.0 0.0 5
 Note: Temperatures are given in units of energy unless the -k or -eV options are set.
       By default, the finals conditions are excluded from the scan (in the example above
       the chemical potentials scanned in the last line are 0.0 0.2 0.4 0.6 0.8)
       This behavior can be changed with the -il option, to give: 0.0 0.25 0.5 0.75 1.0)
       Alternatively, the -hf option gives: 0.1 0.3 0.5 0.7 0.9 .

NOTE: The mmaps code generates a file called chempot.out which contains special values of the
chemical potential that stabilize various types of equilibria. These values are useful guidelines
to select relevant regions in mu-space to scan.

-> Other input files:

lat.in       : description of the lattice.
clusters.out : describes the clusters. 
eci.out      : provides the ECI. 
gs_str.out   : a list of ground states, in no particular order.

   These 4 files can be created by maps.
   See maps documentation (maps -h) for a description of the formats.

-> Optional input files:

teci.out     : if present, provides temperature-dependent eci (overrides eci.out)
               (Note that, even when the teci.out file is used, column 6 of the output file
                reflects only the configurational contribution to the heat capacity.)

The format this file is:
[maximum temperature: Tm]
[number of temperatures where eci are provided: nT]
[ECIs for temperature 0]
[ECIs for temperature Tm/(nT-1)]
[ECIs for temperature 2*Tm/(nT-1)]
...
[ECIs for temperature Tm]

Note that these numbers can be seperated by blanks or newlines, as desired.

conccons.in : Specifies linear constraints on the composition that spin flips must obey.
              (The code will generate multi-spin flips if necessary.)
              Here is an example of such file:
                     1.0*Al -1.0*Li +0.1*Co = 0.5
              Please use rational numbers only - infinite loop will result otherwise.
              Composition is determined by the user-supplied initial configuration
              (via the -g or -is options).
	      This input file replaces and generalizes the -cm option in emc2.

-> Format of the output file

The file mcheader.out gives the content of column of the output file.
The following abreviations are used:
 T:     temperature
 mu(A): chemical potentials of specie A
 x(A):  concentration of specie A
 E:     energy (per active site)
 Egc:   grand canonical energy (per active site) , i.e., E - sum_i mu(i)*x(i)
 lro:   long Range Order parameter of the initial ordered phase
        (=0 if initial phase is disordered)
 F:     Helmholtz free energy (per active site)
 phi:   grand canonical potential: F - sum_i mu(i)*x(i)
 use_mf: flag that is 1 if mf values have been used instead of mc values
 corr_n_d:  the average correlations associated with each cluster
            n is the number of points in the cluster
            d is the diameter of the cluster

Suffixes: 
  _lte: obtained with low temperature expansion
  _mf:  obtained with mean field approximation
  _mc:  obtained with Monte Carlo simulations

NOTE: to obtain 'canonical' rather than grand canonical quantities (adding mu*x),
      to all (free) energies use the -g2c option.

NOTE: an 'active site' is one that can host more than one possible atom type.
Energy and free energy are reported per 'active site' not per total sites.



[email protected] Wed, Dec 6, 2023 12:55:16 PM