Quick Start

Welcome to the vibrant documentation webpage!

Installation

The CMake build framework is used in order to compile the vibrant code. To install it type the following in the root directory of the repository and make sure that you have a working GNU Fortran compiler (e.g. gfortran):

mkdir build && cd build
cmake ..
make -j 5

See the Installation section for fine-grained installation instructions.

After installation, the compiled binary should be available in the build directory as build/vibrant and can be invoked e.g. from the root directory by the command

build/vibrant input.txt

For more details on the input.txt format, see the Usage section and the Keyword Glossary. Information about the required data and file formats can be found on the File Formats (in Usage).

Example Static IR Spectrum of o-Nitrophenol

For the calculation of the IR spectrum, we need to define the input.txt file. For o-Nitrophenol (o-NP), it can look as follows.

&global
   spectra IR
   temperature 300
   fwhm 5
&end global
&system
   filename o-NP.xyz
&end system
&static
   diag_hessian y
   &hessian
      force_file o-NP-force.data3
   &end hessian
displacement 0.001
&end static
&dipoles
   type_dipole berry
   dip_file dipole_o-NP_free_static.xyz
&end dipoles

In addition, we need the data to feed to vibrant. For calculating the static IR spectrum we need the coordinates of o-NP, the forces for computing the Hessian, and the dipole data for calculating the intensities. Check IR spectrum documentation for more theoretical background.

o-NP

o-Nitrophenol structure used for IR spectrum calculation

Data files for o-NP can be downloaded here:

After running vibrant, multiple output files are produced. The spectral information is written to result_static_ir.txt and can be plotted with a simple Python script, for example:

import numpy as np
import matplotlib.pyplot as plt

filename = "result_static_ir.txt"
data = np.loadtxt(filename, skiprows=1)
x, y = data[:, 0], data[:, 1]
# === Plot ===
plt.figure(figsize=(6, 4))
plt.plot(x, y, color="red", linewidth=1)
plt.xlabel("Wavenumber (cm$^{-1}$)")
plt.title("")
ax = plt.gca()
ax.yaxis.set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)

plt.tight_layout()
plt.show()
IR spectrum o-NP

More examples for calculating vibrational spectra can be found in the Examples section.