Author Topic: Vibration of CO on Cu (001)  (Read 2088 times)

0 Members and 1 Guest are viewing this topic.

Offline Jin You Lu

  • Regular QuantumATK user
  • **
  • Posts: 21
  • Country: tw
  • Reputation: 1
    • View Profile
Vibration of CO on Cu (001)
« on: September 27, 2016, 14:37 »
Hi Sir
I try to analysiz some vibration modes of a CO molecule on metallic surface.
I already got its streching mode around 2162 cm-1. by simulating an diatomic configuration.
However, once i put CO near metallic surface consiting of 4 layers.
Then use Dynamical Matrix to simulate the CO on Cu (001),
the simulation will run and then struck in somewhere.
This should be a simple example for most users. But i failed to get the simulation resilts
I attached the file, please help to check it, thanks very much.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5416
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: Vibration of CO on Cu (001)
« Reply #1 on: September 27, 2016, 16:16 »
What is your definition of "stuck"? :)
It will be a time-consuming calculation for sure. However, you can make it easier.

The vacuum size in Z is too small. You can see from the log file that it automatically assigns 3 repetitions in this direction, and 7x7 in the AB plane. So in your setup (with 10 atoms), you will be making 6*6 calculations (all the +-xyz displacements of unconstrained atoms) of a 7*7*3*10 = 1470 atoms. 36 DFT calculations with over 1400 atoms, that takes a while!

By increasing the vacuum you will reduce this to a 490 atom system - still not so little.

But you can reduce the k-point sampling, because you have 4x4, and translated to the repeated supercell this is 28x28. I suggest sticking to 1x1 or max 2x2.

You can of course also make a lower repetition, as a (small, perhaps) approximation, and use 5x5x1. Then we're down to 36 calculations of a 250 atom system, which is quite manageable. However - unless you parallelize this, say each takes 20 minutes, you're still looking at 12-24 hours of calculations (I'd estimate your original setup takes 2-4 days).

But finally, running this in parallel over 8 MPI processes, you should be able to get down to 3-4 hours.

(Note that these times are basically guesses - easily a factor 2 off either up or down, they are just intended to give an idea of how you can influence the calculation time by tuning the model.)

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Re: Vibration of CO on Cu (001)
« Reply #2 on: September 27, 2016, 16:19 »
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=phonons

Regards,
Daniele.


Offline zh

  • QuantumATK Support
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 1141
  • Reputation: 24
    • View Profile
Re: Vibration of CO on Cu (001)
« Reply #3 on: September 28, 2016, 07:57 »
Hi Sir
I try to analysiz some vibration modes of a CO molecule on metallic surface.
I already got its streching mode around 2162 cm-1. by simulating an diatomic configuration.
However, once i put CO near metallic surface consiting of 4 layers.
Then use Dynamical Matrix to simulate the CO on Cu (001),
the simulation will run and then struck in somewhere.
This should be a simple example for most users. But i failed to get the simulation resilts
I attached the file, please help to check it, thanks very much.

To calculate the vibration modes of a molecule adsorbate on surface, you can fix the substrate without any repetitions and allow the atoms in molecule to be displaced for the DynamicalMatrix calculations.  The vibration frequencies of molecule adsorbate  obtained  in such way are usually acceptable. This is  the common way used in  literature. This will save lots of computing time.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5416
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: Vibration of CO on Cu (001)
« Reply #4 on: September 28, 2016, 10:15 »
That's a very good suggestion :)