地域密着型エリア広告配信リクルートの地域密着型広告ドコイク?アドネットワーク Ads by ドコイク?[無料でホームページを作成] [通報・削除依頼]
[無料でホームページを作成] [通報・削除依頼]

CASINO

  ここでは量子Monte Carlo法での計算が可能なコードと計算方法を解説する。
  量子モンテカルロ法は、最高精度の計算手法であるが計算コストが掛かる。しかし、使えるようになっておくと良いだろう。多くの場合、PWscfの結果を元にして量子モンテカルロ法(CASINO)が利用されるようだ。
------------------------------------------------------------------------------
■ CASINO
CASINO: http://vallico.net/casinoqmc
Q&A: http://vallico.net/casinoqmc/faqs/
Forum: http://www.vallico.net/casino-forum/index.php
Manual: http://www.tcm.phy.cam.ac.uk/~mdt26/casino_manual_dir/casino_manual.pdf 
PDF: http://vallico.net/casinoqmc/esdg-talk-archive/ 
------------------------------------------------------------------------------
■ Installation

□ CASINO(CASINO_v2.12.1_standard.tar.tar)
1) tar zxvf CASINO*
2) cd CASINO
3) gedit .bashrc
  CASINO/arch/data の中に対応する名称が.inc付きで書かれている。
  ・Intel fortran
    export CASINO_ARCH='linuxpc-ifort-parallel'
  ・gfortran
    export CASINO_ARCH='linuxpc-gcc-parallel'
4) bash
5) make
test
6) make debug
7) make debug EXECUTABLE=casino_orig
8) cd examples/TEST
9) autotest --library -- --binary=casino_orig --nproc=4
※ CASINO/examples/TEST/README の手順にしたがってgit checkout も良いかもしれない。

□ CASINO(CASINO_v2.12.1_standard.tar.tar)
( ./install case )
1) tar zxvf CASINO*
2) cd CASINO
3) ./install
4) bash
5) make
------------------------------------------------------------------------------
■ Pseudopotentials
[1] http://vallico.net/casinoqmc/pplib/
[2] http://www.nnin.org/research-support/computation/nnin-computation-nanotechnology-resources/virtual-vaults
------------------------------------------------------------------------------
■ Calculation methods
unpacking: gunzip *.gz

◇ PWscf
(CASINO -> examples -> crystal -> twistav -> PWSCF -> si_betatin)
・PWscf -> pwfin.data and bwfn.data ( and bwfn.data.bin)
・pwfin.data and bwfn.data ( and bwfn.data.bin) -> CASINO
1. UPF (version 2) format
 http://www.quantum-espresso.org/pseudopotentials/  -> NORMCONS
 Note: "It should be noted that ultrasoft and PAW pseudopotentials cannot be used with the casino code."
2. in.pwscf
 in.pwscf
 -----
 &control
    calculation = 'scf'
    restart_mode = 'from_scratch'
    pseudo_dir = '.'
    outdir = '.'
    wf_collect = .true.
    verbosity = 'high'
 /
 &system
    ibrav = 0
    nat = 2
    ntyp = 1
    ecutwfc = 50.0
    input_dft = 'pbe'
    occupations = 'smearing'
    degauss = 0.002
    nosym = true
    noinv = true
 /
 &electrons
    mixing_mode = 'plain'
    mixing_beta = 0.7
    conv_thr =  1.0d-8
    diagonalization = 'david'
 /
 &ions
 /
 -----
 + crystal data (ATOMIC_SPECIES, ATOMIC_POSITIONS crystal, CELL_PARAMETERS and K_POINTS crystal) (cif2cell -> QE-Abinit)
3. pw2casino.dat
 -----
&inputpp
blip_convert=.true.
blip_multiplicity=1.d0
blip_binary=.true.
blip_single_prec=.false.
n_points_for_test=0
/
 -----
4. $HOME/CASINO/bin_qmc/runpwscf --qmc --ehome=$HOME/espresso-5.1 --nproc=4
 ※ default: CASINO adress: $HOME/CASINO, PWSCF adress: $HOME/espresso <- in this case, $HOME/CASINO/bin_qmc/runpwscf --qmc --nproc=4
 ※ in.pwscf -> out.pwscf, si.bwfn.data.b1 and si.paw
5. mv *.bwfn.data.b1 bwfn.data.b1
6. $HOME/espresso-5.1/upftools/upf2casino.x  < pseudo.UPF > xx.pp.data
 (for example Si.pbe-mt_gipaw.UPF, Si.pbe-rrkj.UPF and Si.pz-vbc.UPF, except Si.pbe-hgh.UPF, Si.pw-mt_fhi.UPF, Si.pz-hgh.UPF, Si.tpss-mt.UPF and Si.blyp-hgh.UPF )
7. input
 -----
# SYSTEM
%block npcell
2 2 2
%endblock npcell

# EXPECTATION VALUES
density           : T              #*! Accumulate density (Boolean)

# EVAL BLOCK
%block plot_expval
1                                  #*! dimensionality of plot ndim 1/2/3, OR EQUIVALENTLY, line/plane/volume;
50                                 #*! No. of points along each of the ndim directions;
0.0000000   0.0000000   0.0000000  #*! xyz coords of point A;
4.5054639   4.5054639   2.4631506  #*! xyz coords of point B;
4.5054639  -4.5054639   2.4631506  #*! xyz coords of point C (if reqd.);
4.5054639   4.5054639  -2.4631506  #*! xyz coords of point D (if reqd.).
%endblock plot_expval
 -----
8. $HOME/CASINO/bin_qmc/runqmc --nproc=4
9. $HOME/CASINO/bin_qmc/plot_expval
□ gnuplot
  plot lineplot.dat
※ relationship ( K_POINTS crystal 8 and %block npcell 2 2 2 %endblock npcell )
※ 8 = 2 * 2 * 2


--------------------
◇ Abinit
( Abinit -> pwfn.data -> CASINO )
1. $HOME/CASINO/bin_qmc/abinit_to_casino_pp
  GGA
 ・ Fritz-Haber-Institute (FHI) pseudopotentials for selected elements (Troullier-Martins scheme)
 ・ OPIUM generated pseudopotentials for many elements -> XX psp in abinit (fhi) format
  LDA
 ・ Troullier-Martins pseudopotentials for most of the elements in the periodic table, generated by A. Khein and D.C. Allan
 ※ Supported Pesudopotentials
 ※ pspcod = 1: Troullier-Martins pseudopotentials, generated by DC Allan and A Khein, see ~abinit/doc/psp_infos/psp1_info.txt
 ※ pspcod = 6: pseudopotentials from the fhi98pp code, see ~abinit/doc/psp_infos/psp6_info.txt
 ※ Ref. http://forum.abinit.org/viewtopic.php?f=8&t=672
2. case.files
 -----
case.in
case.out
casei
caseo
casetmp
case.abinit.pp
 -----
3. case.in
・ngkpt 4 4 4 case
 -----
ngkpt 4 4 4
istwfk 64*1
kptopt 2
prtwf 2
ecut 100
nsppol 2
toldfe 1.0d-6
 -----
4. /usr/local/bin/abinit < case.files
  Now, not support multi-core for prtwf 2.
5. input
 -----
# SYSTEM
%block npcell
4 4 4
%endblock npcell
atom_basis_type   : plane-wave     #*! Basis set type (Text)
complex_wf        : F              #*! Wave function real or complex (Boolean)

# EXPECTATION VALUES
density           : T              #*! Accumulate density (Boolean)

# EVAL BLOCK
%block plot_expval
3                                  #*! dimensionality of plot ndim 1/2/3, OR EQUIVALENTLY, line/plane/volume;
50 50 50                       #*! No. of points along each of the ndim directions;
0.0000000   0.0000000   0.0000000  #*! xyz coords of point A;
4.5054639   4.5054639   2.4631506  #*! xyz coords of point B;
4.5054639  -4.5054639   2.4631506  #*! xyz coords of point C (if reqd.);
4.5054639   4.5054639  -2.4631506  #*! xyz coords of point D (if reqd.).
%endblock plot_expval
 -----
6. $HOME/CASINO/bin_qmc/runqmc --nproc=4
7. $HOME/CASINO/bin_qmc/plot_expval
□ gnuplot
  plot 3Dplot.dat
※ relationship ( ngkpt 4 4 4, istwfk 64*1 and %block npcell 4 4 4 %endblock npcell )
※ 4 * 4 * 4 = 64


--------------------
◇ MD (unsucces)
For example, Si case
1. UPF (version 2) format
 http://www.quantum-espresso.org/pseudopotentials/  -> NORMCONS
 Note: "It should be noted that ultrasoft and PAW pseudopotentials cannot be used with the casino code."
2. in.pwscf
 in.pwscf
 -----
 &control
    calculation = 'md'
    restart_mode = 'from_scratch'
    pseudo_dir = '.'
    outdir = '.'
    wf_collect = .true.
    verbosity = 'high'
 /
 &system
    ibrav = 0
    nat = 2
    ntyp = 1
    ecutwfc = 50.0
    input_dft = 'pbe'
    occupations = 'smearing'
    degauss = 0.002
    nosym = true
    noinv = true
 /
 &electrons
    mixing_mode = 'plain'
    mixing_beta = 0.7
    conv_thr =  1.0d-8
    diagonalization = 'david'
 /
 &ions
 /
 -----
 + crystal data (ATOMIC_SPECIES, ATOMIC_POSITIONS crystal, CELL_PARAMETERS and K_POINTS crystal) (cif2cell -> QE-Abinit)
3. pw2casino.dat
 -----
&inputpp
blip_convert=.true.
blip_multiplicity=1.d0
blip_binary=.true.
blip_single_prec=.false.
n_points_for_test=0
/
 -----
4. input
 input
 -----
# RUN
runtype           : vmc_dmc        #*! Type of calculation (Text)

# DMC
dmc_md            : F              #*! DMC molecular dynamics (Boolean)
dmcmd_equil_nstep : 1              #*! Number of equil steps in DMC-MD (Integer)
dmcmd_stats_nstep : 3              #*! Number of stats steps in DMC-MD (Integer)
dmc_reweight_conf : T              #*! Reweight on reading configs (Boolean)
dmc_spacewarping  : T              #*! Activate space warping (Boolean)
lwdmc             : T              #*! Enable weighted DMC (Boolean)
lwdmc_fixpop      : T              #*! Fix population in lwdmc (Boolean)

# OPTIMIZATION
opt_method        : emin         #*! Opt method (varmin/varmin_linjas/emin)
opt_cycles        : 5              #*! Number of optimization cycles (Integer)
 -----
5. cp $HOME/CASINO/bin_qmc/runqmcmd ./
  cp $HOME/CASINO/bin_qmc/runqmc ./
  cp $HOME/CASINO/bin_qmc/runpwscf ./
6. $HOME/CASINO/bin_qmc/runqmcmd
※ need : CASINO adress: $HOME/CASINO, PWSCF adress: $HOME/espresso
※ ERROR: Input file, line xx: keyword yyyy duplicated. と表示される場合は xx行の yyyyが二重に定義されいるので除けという意味になる。
※ ERROR: Argument to --xwfnstop must be an integer.

--------------------
◇ Various expectation values
$HOME/CASINO/utils/plot_expval
$HOME/CASINO/bin_qmc/plot_expval


--------------------
◇ 2D plot
$HOME/CASINO/utils/plot_2D
$HOME/CASINO/bin_qmc/plot_2D


--------------------
◇ SCF density
$HOME/CASINO/utils/plot_mpc
$HOME/CASINO/bin_qmc/plot_mpc
xmgr/grace data
gnuplot: lineplot.dat, 2Dplot.dat or 3Dplot.dat


--------------------
◇ backflow
$HOME/CASINO/utils/plot_backflow
$HOME/CASINO/bin_qmc/plot_backflow


--------------------
◇ pseudopotential converters
$HOME/CASINO/utils/pseudo_converters


--------------------
mpirun -np 4 $HOME/CASINO/bin_qmc/linuxpc-gcc-parallel/opt/casino
------------------------------------------------------------------------------
■ input file (full)
$HOME/CASINO/examples/generic/input_file_full/input
------------------------------------------------------------------------------
■ 並列化<gfortran>
下記を実行前に、左の欄にandLinuxにあるsudo apt-get install を全て入れておく。
CASINO(CASINO_v2.6_standard.tar.tar)
1) tar zxvf CASINO*
2) cd CASINO
3) .bashrc にて下記を加える。QMC_ARCH ではREADME_ARCHから選択する。
  CASINO/arch/make.inc の中にも対応する名称が.inc付きで書かれている。
  export QMC_ARCH="linuxpc-gcc-parallel"
  export PATH=$PATH:$HOME/CASINO/bin_qmc
4) bash
5) make

■ 並列化 <ifort>
下記を実行前に、左の欄にandLinuxにあるsudo apt-get install を全て入れておく。
CASINO(CASINO_v2.6_standard.tar.tar)
1) tar zxvf CASINO*
2) cd CASINO
3) .bashrc にて下記を加える。QMC_ARCH ではREADME_ARCHから選択する。
  CASINO/arch/make.inc の中にも対応する名称が.inc付きで書かれている。
  export QMC_ARCH="linuxpc-ifort-parallel"
  export PATH=$PATH:$HOME/CASINO/bin_qmc
4) bash
5) make

■ single core
CASINO(CASINO_v2.6_standard.tar.tar)
1) tar xvf CASINO*
2) cd CASINO
3) .bashrc にて下記を加える。QMC_ARCH ではREADME_ARCHから選択する。
  CASINO/arch/make.inc の中にも対応する名称が.inc付きで書かれている。
  export QMC_ARCH="linuxpc-ifort"
  export PATH=$PATH:$HOME/CASINO/bin_qmc
4) bash
5) make
------------------------------------------------------------------------------
■ 理論的背景[1-3]
 量子モンテカルロ法は信頼性が高いが計算コストが掛かる。しかしながら、オーダーはNの2〜3乗なので、大規模系では他の計算方法(例えば分子軌道法)よりも有利になる場合がある。

◇ 数値的変分法
・ 変分モンテカルロ法(VMC法)
 波動関数に調整可能なパラメーターを仕込んで、エネルギーを下げるように調整する
・ 拡散モンテカルロ法(DMC法)
 適当な初期推定の波動関数を用いて、t=0 から 時間を発展させると(時間発展法則)、厳密解に近づくことを利用する
 時間依存シュレーディンガー方程式における波動関数を exp で展開する。exp[-i * Ex * t ]にて、最もゆっくり振動する部分だけを残して、必要のない部分を先に減衰させるようにする。

◇ DMC法の実装
・ ランジュバン方程式
x(t + δt) = x(t) + D・Fj (x)・δt + χgauss[0, 2Dδt] 
3N次元ウォーカーに対するランジュバン方程式: X(t + Δt) = X(t) + D・Fj (X)・Δt + χ3Ngauss[0,2DΔt] 
ここでxとX、χ(=カイ)はベクトルである。
-----
粒子位置の時間発展{xj(r)} ←→ 多次元ウォーカーの時間発展{Rj(r)}
↓                 ↑
粒子分布の時間発展ρ(r,t) ←→ 波動関数(3N次元空間分布)の時間発展 ψ(R,t)
-----
・ フォッカー・プランク方程式
∂ρ(r,t)/∂t = ΣD・∇j ・[∇j  - Fj (x) ] ・ρ(r,t)
ここで、rとxはベクトル。Σではjの添字について計算がなされる。

◇ CASINO(量子モンテカルロ法)は近似解をより厳密解に近づける射影演算子
 数値的厳密解への射影を繰り返す。

References
[1] http://www.jaist.ac.jp/is/labs/maezono-lab/wiki/?%E7%AC%AC%E4%B8%80%E5%8E%9F%E7%90%86%E9%87%8F%E5%AD%90%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD%E6%B3%95
[2] R. Maezono, johokiko, 2013.
[3] wikipedia
------------------------------------------------------------------------------
■ other QMC code
CHAMP: http://pages.physics.cornell.edu/~cyrus/champ.html
QMCPACK: http://code.google.com/p/qmcpack/
QWalk: http://code.google.com/p/qwalk/

■ Computational Electronic Strucutre: http://www.tcm.phy.cam.ac.uk/~mdt26/esdg.html
------------------------------------------------------------------------------
http://omlc.ogi.edu/software/mc/
------------------------------------------------------------------------------
アクセス数
ページビュー数