量子化學程序ORCA的安裝方法
量子化學程序ORCA的安裝方法
文/Sobereva@北京科音
First release 2018-Dec-21 Last update: 2022-Oct-3
0 前言
ORCA是一款對學術用戶免費但不開源的量子化學程序,發展迅猛,流行程度越來越高,用戶越來越多。雖然ORCA的安裝很簡單,都不需要編譯源代碼,但還是有不少量子化學初學者經常問怎么安裝,這里就統一說一下。當隨著ORCA程序更新,導致最新版安裝方法與本文存在較大差異時,本文也將同步更新。ORCA雖然有也有Mac版,但由于極其小眾,安裝方法這里就不提了。
ORCA官網是https://orcaforum.kofo.mpg.de,和ORCA論壇是在一起的。進去之后注冊個新用戶,登陸后就可以進入論壇,頁面上方有Download按鈕,進去就可以下載可執行程序和手冊了。如果你注冊ORCA論壇時驗證碼刷不出來,或者根本連ORCA官網都打不開的話,說明需以特殊姿勢上網。ORCA程序的動態庫版本尺寸較小,而靜態庫版本體積頗大(和版本關系也很大),對后者,在安裝前應保證硬盤有很充裕空間。
為了測試安裝后ORCA是否能正常運行,這里提供個簡單的測試文件,將以下內容復制到比如test.inp里即可作為輸入文件。此任務要求4核并行:
! BLYP def2-SVP noautostart miniprint pal4
* xyz 0 1
C 0.00000000 0.00000000 -0.56221066
H 0.00000000 -0.92444767 -1.10110537
H -0.00000000 0.92444767 -1.10110537
O 0.00000000 0.00000000 0.69618930
*
順帶一提,有些人用ORCA只是想算很常見類型的問題,但不會寫關鍵詞。最最簡單的做法就是用Multiwfn產生ORCA的輸入文件,超級容易,里面的關鍵詞都是絕對最恰當的,見《詳談Multiwfn產生ORCA量子化學程序的輸入文件的功能》(http://www.shanxitv.org/490)。此文是一個用Multiwfn創建輸入文件結合ORCA做計算的實例:《Simulating UV-Vis and ECD spectra using ORCA and Multiwfn》(http://www.shanxitv.org/485);此視頻是一個利用Multiwfn這個功能的綜合實例:《基于ORCA量子化學程序對分子做優化、振動分析、觀看紅外光譜、觀看軌道的簡單演示》(https://www.bilibili.com/video/av59599938)。
1 Windows版的安裝
ORCA的Windows版只有64bit的,如果你還在堅持使用老掉牙的32bit Windows,就別指望用Windows版了,要么裝64bit Windows系統,要么在現有的32bit Windows下用VMware虛擬機裝個64bit Linux跑ORCA Linux版。
Windows版ORCA用的是分卷壓縮。一定要確保所有part都下載完整(可以對比下載下來的文件和網頁上的文件尺寸判斷),然后放到一起進行解壓。
ORCA是基于MPI方式進行并行運算的程序,目前的版本在Windows下是依賴于Microsoft MPI (MSMPI)庫運行的,因此還要給系統安裝MSMPI。不同的ORCA版本要求的MSMPI庫的版本也不同,比如ORCA程序包的文件名帶著msmpi10,就說明需要MSMPI 10.0才能運行。Google一下MSMPI 10.0就可以立刻找到MSMPI的下載地址,下載并安裝之即可。
下面測試ORCA能否正常并行運行。將本文開頭給的測試文件拷到某處,然后進入操作系統的命令行模式,輸入比如D:\ORCA\orca H2CO.inp > H2CO.out來執行H2CO.inp并將輸出信息輸出到H2CO.out。注意輸入文件要求并行計算時,必須像這樣輸入ORCA的絕對路徑才行。如果計算中途的輸出信息看起來很正常,最后也顯示****ORCA TERMINATED NORMALLY****,就說明沒問題。如果并行不正常的話,可能會看到輸出信息是混亂交錯的,這是由于各個進程沒有真正協同工作所致。
附:在Windows下使用ORCA的最便捷方法
利用cmder可以令ORCA在Windows下的使用明顯更方便,cmder是一個第三方的文本終端。首先去https://cmder.net下載Full版的cmder,然后解壓到你平時安裝應用程序的目錄。之后進入操作系統的命令行窗口,在cmder的目錄下,輸入Cmder.exe /REGISTER ALL。從此在任意目錄下點右鍵選cmder Here即可進入cmder命令行窗口,并且當前路徑就是此文件夾。啟動cmder窗口后,在cmder的標題位置點右鍵選Settings,在General頁面里選擇{bash::bash as Admin},然后把cmder關了。從此之后,新開的cmder終端里的命令寫法就和Linux的Bash環境下一樣了,連awk、vi等常用工具都有。用文本編輯器打開cmder安裝目錄下的config\user_profile.sh,添加一行比如alias oo='D:/study/orca503/orca',這里oo是你啟動ORCA想用的自定義命令,后面是ORCA可執行文件路徑。這樣,進入cmder后就可以使用比如oo Roselia.inp |tee RAS.out來調用ORCA運行.inp文件,輸出的信息不僅顯示在屏幕上還同時輸出到RAS.out里,比起在Windows的cmd或者powershell里運行ORCA方便省事得多。
2 Linux版的安裝
下面的內容涉及到一些最基本的Linux常識性知識,如果你對Linux是零基礎,看下面內容之前建議看看《Gaussian的安裝方法及運行時的相關問題》(http://www.shanxitv.org/439)的1.1節。
2.1 安裝OpenMPI
ORCA在Linux下是通過OpenMPI這種MPI庫實現并行的,并行方式運行ORCA之前需要先編譯OpenMPI庫。ORCA文件包的文件名當中直接體現了要求的OpenMPI庫版本,比如文件名里有openmpi411就代表需要OpenMPI 4.1.1。所有版本的OpenMPI源代碼都包可以在https://www.open-mpi.org上下載,比如4.1.1的下載地址為https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.1.tar.bz2。
先檢查機子有沒有裝gcc和gfortran編譯器,沒有的話必須先裝上。比如對于CentOS或Rocky Linux,分別運行yum install gcc、yum install gfortran就能安裝。特別要注意,如果只裝了gcc而沒裝gfortran,雖然OpenMPI能正常編譯完成,但是此時會由于沒有Fortran的接口而導致之后ORCA沒法正常并行運行。
用諸如tar -xf openmpi-4.1.1.tar.bz2命令解壓OpenMPI壓縮包,進入此目錄,輸入以下命令,OpenMPI就會被安裝到/sob/openmpi411目錄下
./configure --prefix=/sob/openmpi411 --disable-builtin-atomics
make all install -j
注:這里用-j是為了通過并行編譯降低編譯過程耗時。但如果編譯中途出現詭異報錯,去掉-j再試。
如果你的操作系統的shell是Bash(如CentOS、Rocky Linux就是),就編輯用戶目錄下的.bashrc文件,比如運行vi ~/.bashrc命令,將諸如以下兩行加入到文件末尾
export PATH=$PATH:/sob/openmpi411/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sob/openmpi411/lib
然后重新登錄機子或者重新打開命令行,以上設置就生效了,可以輸入比如mpiexec -V,如果正常顯示出了OpenMPI的版本,說明已經裝好了。之前解壓出來的openmpi-4.1.1目錄現在也可以刪掉了。
2.2 安裝ORCA
ORCA的Linux版分為靜態庫(static)版本和動態庫(shared)版本。懂一些編程知識的人都知道差別是什么。ORCA包含一大批可執行文件,有很多子程序在多個可執行文件里被使用。如果開發者在編譯ORCA時,這些被共用的子程序都被編譯進每一個利用了它們的可執行文件里,就叫靜態庫版本,這種版本體積比較大。如果把將共用的子程序做成一個動態庫文件,被各個可執行文件在實際運行的時候調用,就叫動態庫或者共享庫版本,這種版本體積比靜態庫版本要小。這兩種版本在實際計算速度上沒有可察覺的差別,因此建議使用動態庫版本,下載耗時少而且省硬盤。動態庫版本在文件包的名字里會有shared字樣。
建議大家下載帶著shared和.tar.xz字樣的ORCA包,比如orca_5_0_3_linux_x86-64_shared_openmpi411.tar.xz。然后用
tar -xf orca_5_0_3_linux_x86-64_shared_openmpi411.tar.xz
命令即可解壓之。
假設ORCA解壓后的目錄是/sob/orca503/,就在.bashrc文件里加入
export PATH=$PATH:/sob/orca503
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sob/orca503
重新進入終端令以上語句生效后即可運行ORCA,并行運行時必須寫明ORCA的絕對路徑,如:
/sob/orca503/orca test.inp > test.out
如果懶得每次都寫絕對路徑,可以在.bashrc里加上下面這句
alias orca='/sob/orca503/orca'
這代表令orca命令等價于/sob/orca503/orca。
2.3 其它
如果你在編譯OpenMPI的時候提示找不到編譯器,說明你機子里沒裝gcc,安裝方法一Google就有。對于比如CentOS、Fedora系統,可以用yum install gcc來安裝。
有些系統如CentOS自帶了名為orca的帶有圖形界面的屏幕閱讀器程序,直接輸入orca命令啟動的是那個程序,和本文的orca毫無聯系。應當用rpm -e orca命令將自帶的那個orca卸載掉。
如果你是在root用戶下使用ORCA,由于OpenMPI的一個惡心的要求,必須每次執行的命令都帶著-allow-run-as-root選項才行,這很煩人。可以在.bashrc里加入以下兩行來避免,這在《root用戶在用openmpi并行計算時避免加--allow-run-as-root的方法》(http://www.shanxitv.org/409)里也說過:
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
如果你的機子里之前裝有其它MPI庫或OpenMPI的其它版本,且在終端里輸入which mpiexec命令的時候指向的是那些庫的目錄,則ORCA有極大可能會無法正常并行,需要你恰當處理以避免其優先級蓋過你自己新裝的OpenMPI。具體怎么處理,關鍵取決于你當前機子里之前具體是怎么裝的MPI庫。如果你之前是把其它MPI庫裝到了你自定義的目錄下而非默認的/usr/local/bin下面,你就把那個MPI庫的目錄名隨便改一下,或者把那個MPI庫在.bashrc里的配置語句注釋掉(前面加#號)然后重新登錄終端。如果其它MPI被你安裝到了默認路徑(如/usr/local下),可以把前文的$PATH:/sob/openmpi411/bin改為/sob/openmpi411/bin:$PATH、把$LD_LIBRARY_PATH:/sob/openmpi411/lib改為/sob/openmpi411/lib:$LD_LIBRARY_PATH,然后重新登錄終端,之所以這樣做會奏效是因為此時openmpi411的路徑會先于其它路徑出現在這倆環境變量里,會被優先利用。
如果想用強大的波函數分析程序Multiwfn(http://www.shanxitv.org/multiwfn)對ORCA的計算結果進行波函數分析和觀看軌道圖形,運行orca_2mkl xxx -molden,就把ORCA計算時產生的xxx.gbw轉化成了xxx.molden.input,此文件可以直接作為Multiwfn的輸入文件。orca_2mkl是ORCA目錄下自帶的意義上類似于Gaussian的formchk的工具。如果把Multiwfn目錄里的settings.ini里的orca_2mklpath參數設為當前機子里orca_2mkl可執行文件的實際路徑,則Multiwfn還可以直接載入gbw文件,更方便了。
Multiwfn還可以基于ORCA的輸出文件繪制光譜圖,見《使用Multiwfn繪制紅外、拉曼、UV-Vis、ECD、VCD和ROA光譜圖》(http://www.shanxitv.org/224)。但注意,如果在Windows下運行ORCA,不要用PowerShell,要么用cmd要么用cmder。因為PowerShell里通過重定向產生的ORCA輸出文件默認是Unicode編碼的,Multiwfn沒法讀取里面的信息。《OfakeG:使GaussView能夠可視化ORCA輸出文件的工具》(http://www.shanxitv.org/498)介紹的OfakeG程序也同樣不認Unicode編碼。用cmder的方法前面已經說了,在Win 10里如果想方便快速地進入cmd,只需運行一個注冊表配置文件即可,見http://bbs.keinsci.com/thread-22940-1-1.html。