Citation: If you use ViBra in your research, please cite:
R. F. Ligório et al., "ViBra: A Program for Anharmonic Vibrational Spectroscopy with Efficient Selected and Symmetry-Adapted VCI," CBPF, 2026.
[Add citation placeholder here]Theory and Manual: 📖 Read (English) | 📖 Ler (Português)
- Harmonic oscillator, VSCF, VCI, Selected VCI, and Symmetry-Adapted VCI calculations
- Support for cubic and quartic force fields obtained from ORCA VPT2 calculations
- Infrared intensities using first- and second-order dipole derivatives
- OpenMP parallelization
- LAPACK/BLAS diagonalization routines
- Symmetry treatment for the Abelian point groups
- Output files compatible with the ViBra graphical spectrum viewer
ViBra/
│
├── source/
│ ├── main.f90
│ ├── read_input.f90
│ ├── read_orca.f90
│ ├── get_combination.f90
│ ├── integrals.f90
│ ├── one_mode_operation.f90
│ ├── vci.f90
│ ├── jacobi.f90
│ ├── symmetry.f90
│
├── examples/
│ ├── examples.zip
│
├── GUI_and_precompiled_Windows/
│ ├── Final_dist.zip
│
├── assets/
│ └── logo.png
│
├── README.md
└── LICENSE
The graphical user interface and the precompiled Fortran executable are provided in a separate folder:
GUI_and_precompiled_Windows/
These files are intended to work only on Windows.
The precompiled executable was built for Windows, and the GUI was developed for use on Windows systems. Users working on Linux or macOS should compile the Fortran source code themselves and run the program from the command line.
All files should be placed in the same directory. Running the GUI (vscf_vci_gui.exe) will automatically copy the Fortran executable (vscf_vci.exe) and all dependencies into the user-selected input file directory, and erase them after execution.
To generate the required .vpt2 file for ViBra, you need to run two sequential ORCA calculations. Below are examples using ORCA 6.1.
1. Geometry Optimization
! Opt VeryTightSCF ExtremeSCF wB97X-D4 aug-cc-pvtz
%scf
MaxIter 300
end
%geom
MaxIter 300
Calc_Hess true
Recalc_Hess 10
TolE 1e-12
TolRMSG 1e-8
TolMaxG 1e-8
TolRMSD 1e-8
TolMaxD 1e-8
end
* xyz 0 1
[your geometry here]
*
2. VPT2 Calculation
! VeryTightSCF ExtremeSCF wB97X-D4 aug-cc-pvtz VPT2
%vpt2
VPT2 true
PrintLevel 2
end
* xyz 0 1
[your optimized geometry here]
*
This will produce a basename.vpt2 file containing harmonic frequencies, normal modes, cubic and quartic force constants, and first- and second-order dipole derivatives — all required by ViBra.
Note: These calculations were performed and tested using ORCA 6.1. For more details, see:
Neese, F. et al. ORCA – An Ab Initio, DFT and Semiempirical SCF-MO Package, Version 6.1. Max-Planck-Institut für Kohlenforschung, Mülheim an der Ruhr, 2025. Available at: https://www.faccts.de/orca
To compile ViBra from source, the following software is required:
- A Fortran compiler with Fortran 90/95 support
- OpenMP support
- LAPACK
- BLAS
The code was developed and tested using Intel Fortran (ifx). Other compilers may work, but the compilation flags and linked libraries may need to be adjusted.
Recommended compiler:
Intel Fortran Compiler (ifx)
Recommended numerical libraries:
Intel Math Kernel Library (MKL)
An example compilation command using Intel Fortran is:
ifx /O3 /Qopenmp /threads /Qmkl:parallel /Qm64 /heap-arrays /fpscomp:logicals *.f90 /exe:ViBra.exe
This command enables optimization, OpenMP parallelization, threaded MKL routines, 64-bit compilation, and heap allocation for temporary arrays.
Depending on your installation, you may need to compile the source files in a specific order. A typical order is:
integrals.f90
get_combination.f90
jacobi.f90
symmetry.f90
one_mode_operation.f90
read_input.f90
read_orca.f90
vci.f90
main.f90
If additional modules are included in the source directory, compile them before the files that use them.
A possible compilation command using Intel Fortran on Linux is:
ifx -O3 -qopenmp -qmkl=parallel -heap-arrays *.f90 -o ViBra
If using gfortran, LAPACK, BLAS, and OpenMP must be linked manually. For example:
gfortran -O3 -fopenmp *.f90 -llapack -lblas -o ViBra
The exact command may vary depending on the installed libraries and operating system.
ViBra reads the input file:
input_vscf.txt
The input file uses keyword-based entries. A typical example is:
NMODES 12
NEXPAN 10
FILECT molecule.vpt2
CTEMOD orca_vpt2
NQUANT 4
NSTATE 20
CVGSCF 6
THREAD 8
PGROUP D2h
PROJCT 0.01
MAXSCI 0
| Keyword | Type | Description |
|---|---|---|
NMODES |
Integer | Number of vibrational modes. |
NEXPAN |
Integer | Number of harmonic oscillator basis functions used for each mode. |
FILECT |
String | Path to the ORCA .vpt2 output file. |
CTEMOD |
String | Input format. Use orca_vpt2. |
NQUANT |
Integer | Maximum total number of vibrational quanta included in the VCI space. Values less than or equal to zero disable VCI. |
NSTATE |
Integer | Number of eigenstates to calculate. Values less than or equal to zero calculate all states. |
CVGSCF |
Integer | VSCF convergence exponent. For example, 6 corresponds to a threshold of 10^-6 cm^-1. |
THREAD |
Integer | Number of OpenMP threads. |
PGROUP |
String | Molecular point group. Supported groups are C1, Cs, Ci, C2, C2h, C2v, D2, and D2h. |
PROJCT |
Real | Projection cutoff used during symmetry analysis. |
MAXSCI |
Integer | Number of configurations retained in Selected VCI. Use 0 for full VCI. |
After compiling the code, place the executable in the same directory as input_vscf.txt, or provide the correct path to the input file and ORCA output file.
On Windows:
ViBra.exe
On Linux or macOS:
./ViBra
The program reads input_vscf.txt and starts the calculation.
ViBra requires an ORCA .vpt2 output file containing the anharmonic vibrational information, including:
- Harmonic frequencies
- Normal modes
- Cubic force constants
- Quartic force constants
- First-order dipole derivatives
- Second-order dipole derivatives, when available
The ORCA calculation must be configured to generate the required VPT2 output.
ViBra produces the following main output files:
This file contains the complete calculation log, including:
- VSCF convergence information
- VSCF modal coefficients
- VCI configuration list
- Vibrational energies
- VCI eigenvectors
- Leading configuration interaction coefficients
- Vibrational state assignments
This file contains vibrational transition frequencies and normalized infrared intensities for:
- Harmonic oscillator calculations
- VSCF calculations
- VCI, S-VCI, and SA-VCI calculations
This file contains:
- Equilibrium molecular geometry
- Cartesian normal-mode displacement vectors
This file can be used by the graphical viewer to visualize vibrational normal modes.
Set:
NQUANT 0
This disables the VCI calculation and performs the harmonic and VSCF-related steps.
Set:
MAXSCI 0
and choose a positive value for NQUANT.
Example:
NQUANT 4
MAXSCI 0
Set MAXSCI to a positive value.
Example:
NQUANT 6
MAXSCI 100
A larger MAXSCI value retains more configurations and generally improves agreement with full VCI, at the cost of additional computational time.
Set the molecular point group using PGROUP.
Example:
PGROUP D2h
Symmetry-adapted VCI reduces computational cost by block-diagonalizing the VCI Hamiltonian according to irreducible representations.
The selected point group must be correct for the molecular geometry and normal modes. It is recommended to compare a low-quanta SA-VCI calculation with a full VCI calculation before using larger VCI spaces.
The size of the VCI space increases rapidly with the number of vibrational modes and the maximum number of quanta.
For large systems, consider using:
- A smaller
NQUANT - A limited number of states through
NSTATE - Selected VCI using
MAXSCI - Symmetry-adapted VCI using
PGROUP - Multiple OpenMP threads using
THREAD
Full VCI calculations may require substantial memory because the Hamiltonian matrix is stored as a dense symmetric matrix.
The Windows GUI is available in the separate folder:
GUI_and_precompiled_Windows/
The GUI can be used to:
- Select an ORCA
.vpt2file - Generate
input_vscf.txt - Run the precompiled Fortran executable
- Monitor calculation output in real time
- Stop running calculations
- Save calculation logs
The GUI and precompiled executable are intended for Windows only.
The Windows folder also includes a graphical spectrum viewer that can read:
vscf.out
intensities.txt
normal_mode.txt
The viewer can be used to:
- Plot harmonic, VSCF, and VCI spectra
- Apply Gaussian broadening
- Change spectral linewidth
- Apply temperature-dependent intensity corrections
- Load experimental JCAMP-DX spectra
- Perform baseline correction
- Inspect vibrational assignments
- Animate normal modes in three dimensions
- Export spectra as text files or PNG images
Check the FILECT entry in input_vscf.txt. Use the complete path if the file is not located in the working directory.
Reduce NQUANT, reduce NSTATE, use Selected VCI through MAXSCI, or use symmetry adaptation through PGROUP.
Verify that the selected point group matches the molecular structure. Run a small full VCI calculation and compare the energies with the SA-VCI results.
The precompiled executable is Windows-only. Compile the Fortran source code on the target operating system.
If you use ViBra in scientific work, please cite the associated publication and documentation.
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
Copyright (c) 2026 Raphael F. Ligório and co-authors, CBPF (Centro Brasileiro de Pesquisas Físicas)
You are free to use, share, and modify ViBra for non-commercial purposes, provided you give appropriate credit. Commercial use is not permitted without explicit permission.
Full license text: http://creativecommons.org/licenses/by-nc/4.0/
For questions, bug reports, or contributions, please contact the project maintainers.
