QuantumATK Forum
QuantumATK => General Questions and Answers => Topic started by: SimonGuan on March 18, 2011, 22:10
-
Hi,
I am using the latest version of ATK and found that the optimizeGeometry() method allows relaxation of a bulk material to extract its optimal lattice constant, according to the stress that is "felt" by the unit cell. A stress tolerance value is required (maximum_stress) for the method to determine when the relaxation stops. I am wondering if someone could give me suggestions on how to set this stress tolerance.
The default value given by the Script Generator is maximum_stress=0.05eV/Ang**3, which is approximately 8.01 GPa. This value seems orders of magnitude larger than the stress usually found in a metal. As an example, the yield strength of Ni is 14-35MPa, according to http://en.wikipedia.org/wiki/Yield_(engineering). When I tried to relax bulk Ni with a maximum_stress=1e-4eV/Ang**3 (16MPa), it took a long time and the lattice constant became 14.81Ang, while the experimental lattice constant is about 3.52Ang.
I used SGGA+U for exchange-correlation, but set all the Hubbard U terms to zero.
Thanks!
-
To get the accurate result, the tress tolerance needs to be set as a smaller value (e.g., less than 1 GPa).
For the unreasonable results reported by you, you may do the following test calculation to find out the reason:
1) use the setup for a high accuracy, e.g., DZP basis set, a proper cut off (150 ~ 300 Ry), do the total energy calculations of Ni at a serials of lattice constant to obtain the data of E_tot~a (lattice constant). From this data, the equilibrium lattice constant of Ni, i.e., the one with lowest energy, can be found. Compare it with the experimental value to see whether it is reasonable.
2) use the same setup in the step 1) and the optimizeGeometry() method with a high stress tolerance (e.g. 1 GPa) to optimize the lattice constant.
Normally, the results obtained in the steps 1) and 2) are close to each other.
-
Try LDA rather than GGA; sometimes it can be hard to get accurate gradients for GGA without a very large mesh cut-off, perhaps as high as 350 Ry. Geometries are not that sensitive to the exchange-correlation functional as energies are.
-
Thanks! I used a grid_mesh_cutoff value of 75 Hartree in SGGA+U, which is probably not enough. Actually I did try LSDA+U, which converged faster and better. I am just not sure if LSDA+U is good for a transition metal like Ni?
Try LDA rather than GGA; sometimes it can be hard to get accurate gradients for GGA without a very large mesh cut-off, perhaps as high as 350 Ry. Geometries are not that sensitive to the exchange-correlation functional as energies are.
-
There might be an issue with GGA and stress, we are looking into it. That's primarily why I recommended LDA for now ;)
You are probably right that it's best to use GGA for the electronic structure. However, for the geometry I think LDA will be reasonably ok, actually, anyway.
-
If you send the structure to the builder, and set it to use the lattice "UnitCell" it will optimize the cell,
and create a tiny deformation of the cell, and converge in quite few steps. Whatever this is correct physical or
not, I am unsure.
-
This issue has hopefully been solved in ATK 11.2.2, released yesterday.