How to optimize internal parameters (Example : Rutile TiO2 )

View previous topic View next topic Go down

How to optimize internal parameters (Example : Rutile TiO2 )

Post by Algerien1970 on Fri 29 May - 15:50

From the userguide :

This example shows you how to ``optimize internal parameters'' and do a k-point parallel calculation.
Create a new session and its corresponding directory. Generate the structure with the following data (we use a smaller O sphere because Ti-d states are harder to converge then O-p):

Spacegroup (136)
a8.682 bohr
b8.682 bohr
c5.592 bohr
AtomTi, enter position (0,0,0) and RMT = 2.0
AtomO, enter position (0.3,0.3,0) and RMT = 1.6

StructGenshould automatically add the equivalent positions.
Initialize the calculation using RKmax=6.5 in tio2.in1_st and use 100 k-points and a ``shift`` in kgen.

If you have more cpus available (a parallel machine or simply a couple of PCs with a common NFS filesystem, for details see 5.5), you can use ``Execution  Run scf'', activate the ``parallel'' button'' and ``start scf'' in w2web. This will create and open a .machines file and you should insert lines with the proper names of your PCs (possibly use 9 (or 3) processors since we have 9 k-points, ). Save this file and click on ``Execution  Run scf'', activate ``-fc 1.0'' for force-convergence and ``start scf'' to submit the scf-cycle.

Alternatively at the command-line you can use the UNIX command
cp $WIENROOT/SRC_templates/.machines .

and edit this file. You would start the scf-cycle (in background) simply by typing
run_lapw -p -fc 1.0 &

During the scf-cycle monitor tio2.dayfile and check convergence (:ENE, :DIS, :FGL002), either using ``Utils/Analysis'' in w2web, or ``grep :ENE tio2.scf''. You should see some convergence of :FGL002 and then a big jump in the final cycle, when the valence-force corrections are added. Only the last force (including this correction) is valid.

Since this force is quite large, you can now optimize the position of the O-atom:
Start the structure minimization in w2web using ``Execution  mini.positions''. This will generate TiO2.inM, and you can try option PORT with tolf=1.0 (instead of 2.0), otherwise stay with the default parameters. Repeat ``Execution  mini.positions'' and start the minimization.

Alternatively you can use
min_lapw -p

which is identical to:
min_lapw -j ``run_lapw -I -fc 1 -p''

This will create TiO2.inM automatically, call the program min, which generates a new struct file using the calculated forces, and continues with the next scf cycle. It will continue until the forces are below 1 mRy/bohr (TiO2.inM) and the final results are not ``saved'' automatically but can be found in the ``current'' calculation.

You should watch the minimization (:ENE, :FGL002, :POS002) using the file TiO2.scf_mini, which contains the final iteration of each geometry step (see also Sec.5.3.2). If the forces in this file oscillate from plus to minus and seem to diverge, or if they change very little, you can edit TiO2.inM (change the method, reduce or increase the stepsize), and remove TiO2.tmpM (contains the ``history'' of the minimization and is used to calculate the velocities of the moving atoms). (This should not be neceaasry for the rutile example, but may occur in more complex minimizations. See comments in Sec. 5.3.2).

The final structural parameter of the O-atom should be close to x=0.304, which compares well with the experimental x=0.305.
Forum Manager
Forum Manager

Messages : 485
Date d'inscription : 2015-05-14

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

Permissions in this forum:
You cannot reply to topics in this forum