Offline compilation of OpenMolcas+QCMaquis

OpenMolcas is an open source free version of Molcas, a fee paying software. It was open source on GitLab two years ago; QCMaquis opened source on GitHub a few months ago. The combination of the two can be used to calculate DMRG, DMRG-NEVPT2 and DMRG-PDFT. Read the official account in detail. Installation of OpenMolcas and QCMaquis >, the article also talks about how to install online. Please read the official manual for detailed use of QCMaquis

However, the format is actually the source code, which is not conducive to direct reading. It is best to bib and Tex file is downloaded and compiled into PDF format with LaTeX. A more advanced LaTeX compiler should be used, such as TeX Live. Considering that it is difficult to compile, the author compiled a copy and put it on the online disk, which is valid for 7 days

link: extraction code: 6gqf

This article only introduces the offline installation method. Since both OpenMolcas and QCMaquis are constantly updated, and QCMaquis has recently opened source on GitHub, OpenMolcas is likely to support QCMaquis directly in the main branch in the future. Therefore, this article may or may not be applicable to future versions. Please draw inferences from one instance. It can be installed by individual user or root account. The installation steps in this article take individual users as an example. If readers have installed some libraries described below (and the version meets the requirements), they can skip the corresponding steps directly. In the following, make-j16 means 16 core parallel compilation. If the reader finds an error in practice, the - J parameter should be removed first to try whether the error is still reported under serial compilation.


Basic requirements for compiler / system environment:

(1) GNU compiler > = 5 X version, the author installed 5.4.0 on the machine (readers can run gcc -v to check the version number). If the compiler version on the reader's machine is too low, you can refer to the tutorial< Installing high version GCC under Linux>.

Note: if GCC is installed in a non default location (such as / opt/gcc-5.4.0), please do not install it in ~ /. Of your account Export the library path of / usr/lib64 in bashrc, because it is obvious that / usr/lib64 is an old version of the library. Deliberately exporting the old version of the library is easy to cause subsequent compilation problems. The QCMaquis manual says that Intel compiler is not supported at present, so we won't try it.

(2) Cmake version > = 3.7. The author installed 3.19.0 on the machine (you can run cmake --version to check the version number). If the version on the reader's machine is too low, please go to the official website

Download and install a newer version of cmake.

(3)Python 3.x version. Anaconda Python version 3.7.6 is installed on the author's machine (you can run python -V to view the version number). Anaconda Python can be found on its official website



1. Install HDF5 Library


Download the compressed package of HDF5 source code, such as hdf5-1.12.0 tar. Bz2, (send to linux and then) unzip, rename and enter the folder

tar -jxvf hdf5-1.12.0.tar.bz2mv hdf5-1.12.0 hdf5cd hdf5

Execute the following three commands to compile

./configure --prefix=/home/$USER/software/hdf5-1.12.0 --enable-fortran \--enable-cxx CC=gcc CXX=g++ FC=gfortranmake -j16make install

Note that \ is a continuation character.

The installation path after prefix can be modified according to your preferences and actual situation.

After completion, at ~ / Write environment variables in bashrc

export HDF5_ROOT=/home/$USER/software/hdf5-1.12.0export PATH=$HDF5_ROOT/bin:$PATHexport CPATH=$HDF5_ROOT/include:$CPATHexport LD_LIBRARY_PATH=$HDF5_ROOT/lib:$LD_LIBRARY_PATH

Execute source ~ / Bashrc or exit and login again.

After completion, all the required library files are in the hdf5-1.12.0 folder, but the original HDF5 folder is useless and can be deleted. This is also the purpose of changing the directory name at the beginning.


2. Install GSL Library

If the download on the official website is too slow, you can find a suitable image point to download, such as

The author chose version 2.6. Perform similar steps

tar -zxvf gsl-2.6.tar.gzmv gsl-2.6 gslcd gsl./configure --prefix=/home/$USER/software/gsl-2.6 FC=gfortran CC=gcc CXX=g++make -j16make install

After completion, at ~ / Write environment variables in bashrc

export GSL_ROOT_DIR=/home/$USER/software/gsl-2.6export PATH=$GSL_ROOT_DIR/bin:$PATHexport CPATH=$GSL_ROOT_DIR/include:$CPATHexport LD_LIBRARY_PATH=$GSL_ROOT_DIR/lib:$LD_LIBRARY_PATH

Execute source ~ / Bashrc or exit and login again.

After completion, all the required library files are in the gsl-2.6 folder, but the original GSL folder is useless and can be deleted.


3. Install Boost library

The official account was issued before. Boost.MPI compilation >Tutorial, which is version 1.55. However, QCMaquis requires boost > = 1.56. The author installed version 1.57 this time, which can be found in

Download. It is not recommended to use a higher version of boost, because it may lead to boost related errors in subsequent QCMaquis compilation. While 1.55 and 1.57 can coexist without conflict. Perform similar steps

tar -jxvf boost_1_57_0.tar.bz2mv boost_1_57_0 boostcd boost./ --prefix=/home/$USER/software/boost_1_57_0 --with-libraries=all --with-toolset=gcc./b2 -j16 --layout=tagged link=static,shared install

We don't need MPI related libraries here, so we don't need to modify project config Jam file. Here we also use GCC to compile Boost. It is not recommended to try Intel compiler. After completion, at ~ / Write environment variables in bashrc


Execute source ~ / Bashrc or exit and login again. After completion, all the required library files are in boost_1_57_0 folder, but the original boost folder is useless and can be deleted.


4. Install OpenMolcas that supports QCMaquis


Download the branch compressed package, such as openmolcas - qcmaquis - release tar. bz2. Do not use the main branch of OpenMolcas master at present. decompression

tar -jxvf OpenMolcas-qcmaquis-release.tar.bz2mv OpenMolcas-qcmaquis-release OpenMolcas_qcd OpenMolcas_qmkdir bin

The renaming here is just that the author thinks the folder name is too long and changes it to a short one. Openmolcas will not be deleted in the future_ Q folder. Create a bin folder to store pymolcas scripts after compilation. First at ~ / Write the following environment variables at the end of bashrc

export MOLCAS_WORKDIR=/scratch/$USERexport MOLCAS_MEM=16GBexport MOLCAS_PRINT=3export MOLCAS_NPROCS=1export PATH=/home/$USER/software/OpenMolcas_q/bin:$PATHexport MOLCAS=/home/$USER/software/OpenMolcas_qexport OMP_NUM_THREADS=16

Note that there are many MOLCAS environment variables. Please refer to the official PDF manual for detailed meanings

The setting here is only the author's personal preference and may not be suitable for the actual situation of the reader's machine. It is recommended that you bashrc is written at the end because pymolcas can be automatically put into our new bin directory after a while. Execute source ~ / bashrc or exit and login again.


Before compiling, we need to simply change one line of code and open Src / rasscf / cictl F files, searching wfn_dmrg_checkpoint,dmrg, move the if (doDMRG) then at the bottom of this line up two lines, that is, to #ifdef_ DMRG_ Otherwise, the output file often reports HDF5-DIAG: Error detected in HDF5. It does not affect the calculation results, but it looks messy. The official said that OpenMolcas will make this change in the future. At that time, we don't have to change it ourselves. At present, we can only change it manually. Then configure the compilation parameters in OpenMolcas_ Execute in Q folder

mkdir build && cd buildCC=gcc CXX=g++ FC=gfortran cmake -DLINALG=MKL -DOPENMP=ON \-DDMRG=ON -DNEVPT2=ON \-DCMAKE_INSTALL_PREFIX=/home/$USER/software/OpenMolcas_q ..

Note that the last two points should not be less, indicating the superior directory. reach

Download qcmaquis and nevpt2 compressed packages respectively. Then read the following steps carefully and copy and paste them line by line if necessary

cd External/qcmaquis/tmp/rm -f qcmaquis-gitclone.cmake qcmaquis-gitupdate.cmaketouch qcmaquis-gitclone.cmake qcmaquis-gitupdate.cmakecd ../src/rm -rf qcmaquis Will download the good qcmaquis Send compressed package here tar -zxf qcmaquis-release-3.0.1.tar.gzmv qcmaquis-release-3.0.1 qcmaquisrm -rf qcmaquis-release-3.0.1.tar.gz
cd ../../nevpt2_ext/tmprm -f nevpt2_ext-gitclone.cmake nevpt2_ext-gitupdate.cmaketouch nevpt2_ext-gitclone.cmake nevpt2_ext-gitupdate.cmakecd ../src/rm -rf nevpt2_ext Will download the good nevpt2 Send compressed package here tar -zxf nevpt2-release-3.0.tar.gzmv nevpt2-release-3.0 nevpt2_extrm -rf nevpt2-release-3.0.tar.gz
cd ../../..make -j16make install

16 core compilation takes only about 2 minutes. Execute LS/ Bin / you can see a lot exe executable and pymolcas (this is our script using OpenMolcas)


5. Test whether OpenMolcas works normally

Let's go to a new folder and execute pymolcas --version to check the version number

mkdir ~/molcas_examplescd ~/molcas_examplespymolcas --version

Information similar to the following should be displayed

python driver version = py2.14(after the original perl EMIL interpreter of Valera Veryazov)

Randomly test several standard examples of OpenMolcas

pymolcas verify standard:000pymolcas verify standard:075pymolcas verify standard:097

The built-in standard example is located in OpenMolcas_q/test/standard /, more.

If you want to test all, remove: 000.


Test all the self-contained calculation examples of QCMaquis (under OpenMolcas_q/test/qcmaquis /)

pymolcas verify qcmaquis

It takes 10-20 minutes. On the author's machine, most of the examples passed, and the example 009 failed. After reading the error report, it has no impact. If almost all of them fail, it indicates that the installation is wrong or the library does not meet the requirements. If readers want to learn to do CASSCF, DMRG and NEVPT2 calculations by themselves, they can imitate these self-contained examples and learn them in combination with the official manual, which is very rich in content.


Incidentally, the MOKIT program developed by the author can call these software to automatically do multi reference calculation, without learning to use OpenMolcas and QCMaquis, and without learning complex CASSCF calculation. MOKIT is free and open source, which can be found in

Download, please read the detailed introduction< Program MOKIT for automatic multi reference state calculation >. In the next issue, the author will show examples of MOKIT calling these software to do DMRG and other calculations.

This article is from WeChat official account quantum chemistry (quantumchemistry).
In case of infringement, please contact Delete.
Article participation“ OSC source creation plan ”, you who are reading are welcome to join us and share with us.

Tags: Python Linux github cmake Latex gcc GSL

Posted by msandersen on Mon, 18 Apr 2022 03:56:20 +0930