ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>ASE</strong> <strong>Manual</strong>, <strong>Release</strong> 3.6.1.2828<br />
7.20 Infrared intensities<br />
InfraRed is an extension of Vibrations, in addition to the vibrational modes, also the infrared intensities of<br />
the modes are calculated for an Atoms object.<br />
class ase.infrared.InfraRed(atoms, indices=None, name=’ir’, delta=0.01, nfree=2, directions=None)<br />
Class for calculating vibrational modes and infrared intensities using finite difference.<br />
The vibrational modes are calculated from a finite difference approximation of the Dynamical matrix and<br />
the IR intensities from a finite difference approximation of the gradient of the dipole moment. The method<br />
is described in:<br />
D. Porezag, M. R. Pederson: “Infrared intensities and Raman-scattering activities within densityfunctional<br />
theory”, Phys. Rev. B 54, 7830 (1996)<br />
The calculator object (calc) linked to the Atoms object (atoms) must have the attribute:<br />
>>> calc.get_dipole_moment(atoms)<br />
In addition to the methods included in the Vibrations class the InfraRed class introduces<br />
two new methods; get_spectrum() and write_spectra(). The summary(), get_energies(),<br />
get_frequencies(), get_spectrum() and write_spectra() methods all take an optional method keyword. Use<br />
method=’Frederiksen’ to use the method described in:<br />
T. Frederiksen, M. Paulsson, M. Brandbyge, A. P. Jauho: “Inelastic transport theory from firstprinciples:<br />
methodology and applications for nanoscale devices”, Phys. Rev. B 75, 205413<br />
(2007)<br />
atoms: Atoms object The atoms to work on.<br />
indices: list of int List of indices of atoms to vibrate. Default behavior is to vibrate all atoms.<br />
name: str Name to use for files.<br />
delta: float Magnitude of displacements.<br />
nfree: int Number of displacements per degree of freedom, 2 or 4 are supported. Default is 2 which will<br />
displace each atom +delta and -delta in each cartesian direction.<br />
directions: list of int Cartesian coordinates to calculate the gradient of the dipole moment in. For example<br />
directions = 2 only dipole moment in the z-direction will be considered, whereas for directions = [0,<br />
1] only the dipole moment in the xy-plane will be considered. Default behavior is to use the dipole<br />
moment in all directions.<br />
Example:<br />
>>> from ase.io import read<br />
>>> from ase.calculators.vasp import Vasp<br />
>>> from ase.infrared import InfraRed<br />
>>> water = read(’water.traj’) # read pre-relaxed structure of water molecule<br />
>>> calc = Vasp(prec=’Accurate’,<br />
... ediff=1E-8,<br />
... isym=0,<br />
... idipol=4, # calculate the total dipole moment<br />
... dipol=water.get_center_of_mass(scaled=True),<br />
... ldipol=True)<br />
>>> water.set_calculator(calc)<br />
>>> ir = InfraRed(water)<br />
>>> ir.run()<br />
>>> ir.summary()<br />
-------------------------------------<br />
Mode Frequency Intensity<br />
# meV cm^-1 (D/Å)^2 amu^-1<br />
-------------------------------------<br />
150 Chapter 7. Documentation for modules in <strong>ASE</strong>