-
Notifications
You must be signed in to change notification settings - Fork 0
/
eris.cfg
120 lines (110 loc) · 5.33 KB
/
eris.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Eris config file
# Nb: read with libconfig library http://www.hyperrealm.com/libconfig/libconfig_manual.html
LOGFILE="Eris.log"
DEBUG: false # Used to print dE for MC moves to stderr in MC_move functions, best swithced to false, prints a lot
### Temperature loop and limits
#
# Simulation Temperature - beta=1/T T=temperature of the lattice, in units of k_B
# Core loop looks like: for (T=TMAX;T>=TMIN;T-=TSTEP) // read in from eris.cfg
TMAX: 1000
TMIN: 0
TSTEP: 50 # Number needs to be positive to decrease temperature from TMAX to TMIN
### Monte Carlo steps and equilibration settings
#
# Defining number of Monte Carlo steps (i.e. length of simulation, and how often data is logged)
# Number of equlibration steps, before data collection
MCEqmSteps: 20 # Integer
# Number of MegaSteps, i.e. this number of separate log files
MCMegaSteps: 2 # Integer
# Multiplier for each MC Mega Step (i.e. this number of MC sweeps per set of datafiles)
# This value is scaled by the lattice size in eris-config.c to 'MCMinorSteps', used in inner MC steps loop in eris-main.c
MCMoves: 1.0e2 # Must be floating point!
EquilibrationChecks: false # If performing equilibration checks run before production run simulations
# Equilibration check calculates Sn potentials as a function of MC step (analyse data with EquilibrationChecks.ipynb)
### Options for CZTS lattice system
#
# Size of lattice
X = 12 # should be a multiple of 2 and >2*ElectrostaticCutOff (set below)
Y = 12 # should be a multiple of 2 and >2*ElectrostaticCutOff (set below)
Z = 12 # should be a multiple of 4 and >2*ElectrostaticCutOff (set below)
# Lattice initialisation
OrderedInitialLattice: true # or random
ReinitialiseLattice: true # reinitialise lattice between temperature steps
### Disorder options
#
InPlaneOnly : false # Disallows substitutions between Cu-Zn and Cu-Sn planes, i.e. no change in Z-direction coordinate
freezeSn: true # Disallows subsitutions with Sn ions
### Output options
#
CalculatePotential: false # Outputs on-site potentials of all species to a single file
SaveXYZ: false
SaveGULP: false # This file is also used with post-processing scripts to obtain an order parameter and to identify antisite locations
SavePOSCAR: true
CalculateRadialOrderParameter: false
## Extra outputs for band tailing extension
BandTailingPotentials: true # Outputs lists of Cu and Sn potentials for each T and potentials in 2D Cu-Zn and Cu-Sn slices
PotentialCubeFile: true # Outputs 3D on-site potentials of whole system in cube file format
## Terminal display options
# The following are computationally expensive when true and best to set to false when running through a queuing system
DisplayDumbTerminal: true
DumbTerminalLayers: 4 # Number of layers in Z axis to display in dumb terminal
### Electrostatics settings
#
# Cutoff for electrostatic lattice E sum when calculating dE for MC moves
ElectrostaticCutOff: 5 # in lattice units !!Should not be larger than half smallest lattice dimension!! (defined above)
SPHERICAL: false # Option to expand dE sums in spheres, if false expand in cubes instead
EVJEN: true # Option to apply Evjen weights when expanding in cubes. Search for EVJEN in eris-kernel.c for details
# Use below to generate dE for the same MC move with increasing r cutoff in lattice sum (and analyse with ElectrostaticsCheck.ipynb)
ElectrostaticsCheck: false
#
# Using Coulomb's Law, electrostatic interation parameter is I = e^2/4*pi*epsilon_0*epsilon_r*r
# Using separation of Cu and Zn r=3.8 and calculated bulk epsilon_r=9.9 gives I=0.378
# If using DFT parameterisation:
## Parameterisation test: use scaled value from comparing formation energy of nearest neighbour Cu-Zn antisite defect calculated using hybrid-DFT to that in gulp
## DFT_value = 1.50*gulp_value, so electrostatic=1.50*0.378
electrostatic: -0.378 //eV;
#
# Electrostatics: bare formal charges and interaction matrices
# Copper I
# Zinc II
# Tin (Sn) IV
FormalCharges=( +1.0, +2.0, +4.0) # This corresponds to Cu, Zn, Sn but note this list does not include gap sites so does not map directly to lattice array (must shift by 1, 0 of lattice array is gap site)
EffectiveCharges=( -1.0, 0.0, +2.0) # Same shifting in necessary as above. This list corresponds to formal charges screened by -2 of the S anions
#
# Various options for interaction energy matrices
#
# Stick interactions - globular
#E_int=( -5.0, +0.0, +0.0,
# +0.0, -5.0, +0.0,
# +0.0, +0.0, -5.0 )
# Shielded by Sulphur (-2) formal charges, electrostatic interaction
# so -1 0 +1
# times
#
# These by considering formal charge states of Cu(+1), Zn(+2), Sn(+4) combined with cation S(-2)
# --> effective charge states of Cu(-1), Zn(0), Sn(+2)
# and then the resulting electrostatic cohesion between the Zn-S sublattices left
# Cu Zn Sn
E_int=( +1.0, 0.0, -2.0,
0.0, 0.0, 0.0,
-2.0, 0.0, +4.0 )
#
# Bare charges --> leads to overall charging of material..
#E_int=( +1.0, +2.0, +4.0,
# +2.0, +4.0, +8.0,
# +4.0, +8.0, +16.0 )
#
# Artificial electrostatics - for separation
#E_int=( +0.0, +0.0, +0.0,
# +0.0, +1.0, -1.0,
# +0.0, -1.0, +1.0) // i.e. a + and - charge
#
# Applied Electric field - redundant in Eris? - needs checking
Efield:
{
#x= 0.02 # Calculated value for 10M V/m (1V over 100nm) applied to 2.29 Debye dipole
#x = 10.0 # test for homogenous alignment of dipoles
x=0.0
y=0.0
z=0.0
}