プリミティブセル&空間群の探し方

  ここではプリミティブセルや空間群の探し方の情報を記載する。
------------------------------------------------------------------------------
□ プリミティブセルを探す

◆ cif2cell
  VESTAで構造を入力して cif で出力し、cif2cell を用いて結晶構造に関するデータを用いて examples にあるファイルを書き換える。
1. cif2cell -p elk case.cif
2. GEOMETRY.OUT を得ることができる。
※ -p の後の elk を abinit などに変えれば、それに対応した出力がされる。

◆ XcrySDen を用いたプリミティブセルの探し方
Display -> Primitive Cell Mode
または、F3 (Primitive Cell Mode), F4(Conventional Cell Mode) を押してみてもよい。

◆ spacegroup.in を用いたプリミティブセルの探し方 ( Elk に付属している)
1. spacegroup.in というファイルを作成する
  docにある spacegroupのpdfを参考にして結晶構造のデータを入力する
  2x2x2 supercell を作成して欲しい場合には ncell に該当する行の1 1 1 を 2 2 2 にする。
2. $HOME/elk-2.3.22/src/spacegrop/spacegroup
3. プリミティブセルでのGEOMETRY.OUTで得ることができる
----------
□ 空間群を探す

◆ 空間群を探してくれるサイト
FINDSYM: http://stokes.byu.edu/iso/findsym.php (2014年7月 2x2x2スーパーセルでは駄目だった)
ISOTROPY Software Suite: http://stokes.byu.edu/iso/isotropy.php

◆ VESTA を用いて空間群を探す方法
1. bilbao crystallographic sever (http://www.cryst.ehu.es/) > [MAXSUB] for low symmetry  or [MINSUP] for high symmetry > choose it -> other IT number > ...
2.  VESTA: Remove symmetry > Structure parameters dupliate atoms
  Remove P1 strucutre (trc) > Unit cell > New IT number > Apply > Structure parameters dupliate atoms
3. Edit > Edit Data > Unit cell > Space Group
----
VESTA > case.cif > Edit > Edit Data > Unit cell > Space group: 230 + Apply > 229 + Apply > ...
> stop when you can get nochange structure > OK > File > Export Data.. > cif
として、空間群の数値が高いところから低いところへと数値を下げていって、構造が同じとなる空間群を手作業で探す。
※ PやFCC, BCC, HCPということが分かっていれば、左欄のAbinit(input files)を参考にして空間群を更に絞り込むと良い。
※ 結晶構造にn回回転対称やミラー対称があると分かれば空間群の番号とともに記載されている記号から更に絞り込める。
※ see, International Tables Vol.A
------------------------------------------------------------------------------
□ spg.lib (http://spglib.sourceforge.net/)

---- http://spglib.sourceforge.net/ の簡単な日本語訳(2016/1/6) ----
Spglib
SpglibはC言語で書かれた結晶の対称性を探し、操作するためのライブラリーです。
python言語でのSpglibは「Spgllib for python」で見つけられます。
安定版はSpglib-1.7.4.x です。
最新版はSpglib-1.9.0です。APIのアップデートと変更、変数の定義は前バージョンに対して起こりえます。それらは℃ドキュメントに記載されています。
変更履歴は ChangeLog にまとめられています。

News
pythonモジュールのpyspglibはバージョン1.9.0でspglibに名称変更しています。
1.8.x以前のバージョンで、python wrapper(pyspglib)はspglibの特別な拡張と考えており、独自に管理されています。しかし、1.9.x以降では通常の拡張としてspglibの一部となるようにし始めました。このpython wrapperはc-spglibの以後の各更新での作業で管理されることになるでしょう。パッケージの名称はspyglibからspglibに変更されます。この変更以後、python spglib モジュールのインポート手法は変更され、それはSpglib  for python に記述されます。

Features (特徴)
・対称操作の探索
・空間群の同定
・ワイコフ位置の割当(アサインメント)
・結晶構造の精緻化(リファイン)
・プリミティブセル(基本単位格子)の探索
・規約なk点の探索
・線形テトラヘドロン法(ドキュメントは準備されている)

Algorithms (アルゴリズム)
・空間群の探索アルゴリズム:R. W. Grosse-Kunstleve, Acta Cryst., A55, 383-395 (1999)
・結晶の精緻化アルゴリズム:R. W. Grosse-Kunstleve and P. D. Adams, Acta Cryst., A58, 60-65 (2002)

Install (インストール)
1. spglib のダウンロード
2. 解凍(Unzip), コンパイル条件の設定(configure), コンパイル(make)
  tar zxfv spglib-1.7.4.tar.gz
  cd spglib-1.7.4
  ./configure
  make
3. ここであなたがOpenMPを使いたいならライブラリーをコピーする。もしあなたが "make install"をしないなら、そのライブラリーはsrc/.libsにある。

OpenMP(並列計算)
対称操作の探索でのボトルネックをOpenMPスレーディングを使用して軽減させる。gcc (4.2よりも新しいバージョン)の場合、configureスクリプトを走らせる前に次の環境変数を設定する。
  export LIBS='-lgomp'
  export CFLAGS='-fopenmp'
原子の数が小さいとき、スレーディングのオーバーヘッドは相対的に大きくなる。それゆえ、原子数が1000以上のときに、スレーディングが有効に働く。

Usage(利用)
1. include spglib.h
  C言語に上記のように書き込むとこのspglibが利用可能になる。
2. libsymspg.a か libsymspg.so をC言語のコンパイル時にリンクさせるようにする。
3. example/README に編集例が記載されている。

Example(例)
exampleディレクトリに少数の例があります。

Python extension(Python拡張)
Pythonモジュールはptyhonディレクトリに用意してあります。Spglib for python の詳細を見てください。

Ruby extension(Ruby拡張)
rubyディレクトリでのrubyスクリプト symPoscar.rbはVASP POSCARフォーマットのファイルを読み込み、空間群を探します。オプションの-1はわずかに歪んだ構造をオプション-sで定義した許容範囲で精緻化します。オプション -o は入力構造の対称操作を与えます。
  ruby symPoscar.rb POSCAR -s 0.1 -o 1
幾つかのさらなるオプションは --help オプションで見られます。
  ruby symPoscar.rb --help
rubyモジュールのコンパイル手法は ruby/READMEで示されています。

Fortran interface (Fotranインターフェース)
Fortran インタフェース spglib_f08.f90 はexample ディレクトリで見つかります。このFortranインタフェースはDimitar Pashovから寄贈されました。spglib_f.c は廃止され、利用は勧められていません。

API&変数(API&variables)
・spglibで使われる定義と規則
  ・基本ベクトル(a, b, c)または(a1, a2, a3)
  ・原子位置 x
  ・対称操作 (W, w)
  ・変換行列 P と原点シフト p
  ・標準的な単位胞の規則
・API
・重要な変数
・Spglib for python
------------------------------------------------------------------------------
QRコード
携帯用QRコード
アクセス数
ページビュー数
[無料でホームページを作成] [通報・削除依頼]