QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: ugglebot on November 27, 2009, 16:22

Title: Different mesh cut-off for analysis?
Post by: ugglebot on November 27, 2009, 16:22
As far as I understand, ATK uses the mesh cut-off used in the calculation to determine the grid for electron density and other 3D quantities that we can compute in the post-scf analysis step.

However, sometimes I think it would be nice if one could specify a different mesh cut-off for e.g. Bloch functions. For instance, if I use a very small mesh cut-off for nanotubes, but I would like better resolution for the grids. Conversely, sometimes you need a very large mesh cut-off to converge the SCF loop, but then the grids take up too unnecessarily much memory.

So, the question is, how about we could specify a separate mesh cut-off for the 3D grids?
Title: Re: Different mesh cut-off for analysis?
Post by: Anders Blom on November 27, 2009, 23:57
This is actually possible already in ATK 2008.10, but it's not obvious :)

Once you have loaded the SCF object from a checkpoint file (or you just have it from the actual SCF run), you can overwrite its internal mesh cut-off specification to fool it into thinking it should a different one for the analysis.

Here's how you set a new 50 Ry cut-off on the object "scf":

Code
import PyATK
ac = scf._SelfConsistentCalculation__attribute_container
ac2 = ac.getAttributeContainer('SetupAttributes')
ac2.setAttribute(PyATK.ValueAttributeDouble('MeshCutoff',50))

We can use this in a complete script (attached) to play around with a simple water molecule. I made 3 different "resolutions", 50, 100 and 350 Ry, you can see the result in the attached pictures.