1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Libxcビルドの備忘録

Last updated at Posted at 2021-05-27

Libxcの概要

Libxc - a library of exchange-correlation functionals for density-functional theory
密度汎関数理論(DFT)に現れる、交換相関汎関数(eXchange-Correlation functional)は、スピン密度、カレント密度の汎関数で、多くの種類がある。それらを個々のDFTコードにhomemadeで書くことも出来るが、あまり合理的ではない。様々な汎関数について、スピン密度、カレント密度を入力することで、対応する交換相関ポテンシャル、交換相関エネルギー密度を返してくれるライブラリが、このLibxc。
Abinit, Elk, SALMON, Ocotopus, WIEN2k等、多くの第一原理計算からリンクできるようになっている。

Libxcのビルド

公式のInstallationにある通り、基本的には

./configure --prefix=PATH/TO/LIBXC
make
make check
make install

libxcを読み込むアプリがインテルコンパイラでビルドされている関係で、libxcもインテルコンパイラでビルドしてい置かないと、不具合が出る可能性がある。インテルコンパイラにするためには、configureを

./configure --prefix=PATH/TO/LIBXC FC=ifort CC=icc

に変える。

でビルドできる。

トラブルシューティング

gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) on CentOS Linux release 7.6.1810 (Core) でのビルド失敗

./configureまでは通ったが、makeでこけた。
エラーメッセージを見ると、-std=c99等をオプションに付けろというようなメッセージが現れていた。試しにconfigureで出来たMakefileのCFLAGS=の個所にこのオプションを付けてみたが、うまくmake出来なかった。

結果的に、gccのバージョンを上げたところ問題なくビルドできた。具体的にはgcc-6.3.1では、./configureから、make, make check, make installまで問題なく進んだ。

Note@chibataka からいただいたコメント(コメント欄を参照)に従って設定しても、解決するかも。

Libxc 5.1.4の intel compiler-2019.3.199 でのビルド失敗

以下のメッセージがでてmakefileがコケる。
未解決。

xc-threshold.c(808): error: expected an expression
    for (int i = 0; i < (int) (sizeof(xc_values_type) / sizeof(double)); i++)
         ^

xc-threshold.c(808): error: identifier "i" is undefined
    for (int i = 0; i < (int) (sizeof(xc_values_type) / sizeof(double)); i++)
                    ^

一応Libxc 4.3.4ではインテルコンパイラでも問題なくビルドできた。

1
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?