Hi,
In your DynamicalMatrix block you have not turned off the automatic detection of repetitions:
# -------------------------------------------------------------
# Dynamical Matrix
# -------------------------------------------------------------
dynamical_matrix = DynamicalMatrix(
configuration=bulk_configuration,
repetitions=Automatic,
atomic_displacement=0.01*Angstrom,
acoustic_sum_rule=False,
symmetrize=False,
finite_difference_method=Central,
processes_per_displacement=1,
constraints=[0, 1, 2, 3],
)
nlsave('Copper.nc', dynamical_matrix)
The automatic detection of repetitions should not be used for 0D (molecules), 1D (wires) and 2D (slabs) systems. It works reliably only for 3D (bulk) systems.
In your case, the automatic repetition determines that the size of the system to get the correct phonons for the Cu surface is [7x7x3]. Notice how you have 3 repetitions along the Z axis, which of course does not make sense for a 2D slab. You can see it in the log file:
+------------------------------------------------------------------------------+
| Automatically detected repetitions = [7 7 3] |
+------------------------------------------------------------------------------+
Your system has 10 atoms, so you end up doing a very large calculation with a supercell of 7x7x3x10=1470 atoms.
In order to run a smaller supercell, you have to set manually the number of repetitions. For example, you can define a [3x3x1] supercell (90 atoms) using:
# -------------------------------------------------------------
# Dynamical Matrix
# -------------------------------------------------------------
dynamical_matrix = DynamicalMatrix(
configuration=bulk_configuration,
repetitions=[3,3,1],
atomic_displacement=0.01*Angstrom,
acoustic_sum_rule=False,
symmetrize=False,
finite_difference_method=Central,
processes_per_displacement=1,
constraints=[0, 1, 2, 3],
)
nlsave('Copper.nc', dynamical_matrix)
Check more details on how to do phonons calculations with ATK on:
http://docs.quantumwise.com/tutorials/phonon_bs/phonon_bs.html?highlight=phononsRegards,
Daniele.