Grids
Assume that we have an Atoms
object contained in a cubic unit
cell of sidelength L
:
L = 2.0
atoms = Atoms(cell=(L, L, L), pbc=True)
and we use a calculator with a grid spacing of h=0.25
Å or
gpts=(8, 8, 8)
. Since we have periodic boundary conditions, the
x-axis will look like this (the y and z-axes look the same):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0
-+---------------+---------------+---------------+-
-L 0 L 2*L
Wave functions are represented on 8x8x8 grids, where the grid points are numbered from 0 to 7.
If we use zero boundary conditions (pbc=False
), then the
x-axis will look like this:
0 1 2 3 4 5 6
+---------------+
0 L
Here the wave functions are exactly zero at x=0 Å and x=L, and only the non-zero values are stored in 7x7x7 grids (grid points numbered from 0 to 6).
Update this XXX how about padding?
An example:
>>> L = 2.0
>>> atoms = Atoms(...,
... cell=(L, L, L),
... pbc=False)
>>> calc = GPAW(..., gpts=(8, 8, 8))
>>> atoms.SetCalculator(calc)
>>> e = atoms.get_potential_energy()
>>> wf = calc.get_pseudo_wave_function(band=0)
>>> wf.shape
(7, 7, 7)
>>> calc.GetGridSpacings()
array([ 0.25, 0.25])