1.7. Structural relaxation
In this section, I demonstrate how to perform structural relaxation.
Let’s begin by copying the following input file and saving it to a text
file named si_relax.txt
.
info.calculationType = 'relaxation'
info.savepath = 'results/si_relax';
atom.element = [1 1]
atom.xyz = 10.25*[0.0 0.0 0.0;0.22 0.25 0.25]
domain.latvec = 10.25*[0.0 0.5 0.5;0.5 0.0 0.5;0.5 0.5 0.0]
domain.lowres = 0.4
element.species = 'si'
element.path = './Si_TM_LDA.mat'
kpoint.gridn = [3,3,3]
Then pass it to RESCU and execute the program as follows
rescu -i si_relax.txt;
Note that the second atom has been displaced by 0.3 Bohr in the
x-direction in the definition of atom.xyz
. RESCU searches the ionic
equilibrium position when info.calculationType
is set to
relaxation
. By default RESCU relaxes all atoms except the first one
in a periodic system. You can control which atom is moved with the
keyword sr.moveableAtomList
. For example,
sr.moveableAtomList = [19,20]
will relax the 19\(^\text{th}\)
and 20\(^\text{th}\) atoms. RESCU automatically creates the file
relaxationprocess.txt
, which allows you to monitor the current trial
ionic positions and residual forces. The final ionic positions are saved
in relaxedstructure.xyz
. With the default parameters, the
equilibrium position of atom #2 is found to be [2.56250 2.56251
2.56251].