Fandom

Scratchpad Wiki

PMT: I: WHAT is lm-7.0betaK?

322このwikiの
ページ数
新しいページをつくる
トーク0 シェアする

lm-7.0betaK is a re-organization of lm-7.0beta compiled by Mark van Schilfgaarde (only the full-potential part and the GW driver parts). We added some minor bug fixes, changes, but it essentially reproduces the same results by lm-7.0beta. To get the original lm-7.0beta package, ask to Prof. Mark van Schilfgaarde. Original document in lm-7.0beta is stored in MarksOrginalDoc/ directory.

MTO = Muffitin-Orbital APW = Augmented Plane wave (Only the difference of these basis sets is in their envelope functions).

What can we do with lm-7.0betaK? 編集

lm-7.0betaK executes full-potential LDA calculations (GGA is not implemented) by a linearized APW+MTO (PMT) method; see a paper in preprint server, It is submitted to PRB. The PMT method allows you to use the mixture of the APW and the MTO simultaneously. This is an efficient, robust, and accurate method. It is easy to use.

An advantage over lmv7beta編集

Set up a ctrl file (structure and computational conditions) becomes very simplified; it is not necessary to set up MTO parameters by hand. That is, you can use MTO parameters determined by atomic calculations as shown below, and you can check the convergence by enlarging the number of PAW.

What the program can calculate 編集

LDA+U, force calculations, cell distortion, relaxation, MD are so on, are in it.

Things to do編集

To perform calculations for dielectric function, spin susceptibility, GW, and QSGW, it is necessary to combine it with a GW program (fpgw033 or so) through the GW driver. However, the driver works only for MTO-only calculations yet (we are now trying the PMT with the GW code, but not yet). fpgw033 is supplied separately.

For users of older versions 編集

lm-7.0 (Ver.7) is essentially the same as lm-6.17(Ver.6). However, Ver.7 uses a new input system. Preliminary documentation for the new input system is given in MarksOriginalDoc/input.pdf. The old input system is found in MarksOriginalDoc/input-file-style.txt.

New features in lm-7 (and also lm-6.17) are

  • Bug fix for enu

In previous versions, enu, at which energy we solve the ratidal Schr?dinger eq, did not point at the center of gravity of the occupied state, though it had somehow worked. This new bug-fix allows stable convergences.

NOTE: To use this new bug fix, set OPTION_PFLOAT=1 in ctrl file (explained later) . We think this option should be used.

  • APW+MTO (the PMT method)

"Minimum MTO basis" plus "APW(cutoff by \approx 3 to 5)" Ry can give a reasonable and better result instead of old lmf.

  • ### Caution. ###

Note that your ctrl file for old version must be modified a little. To do it, you can use "lm67 {extension of ctrl file}" to see what is necessary to convert old ctrl file. "lmf --input" show what input are used now.


日本語のノート編集

  • core i7だと、

ATLAS とAMDのACMLを試してますがまえの結果と微妙にずれる(dos plotで)。チェックしてます。。。。

  • 計算の規模が大きくなったとき、

 slatsm/zhev.Fのoverlap matrixの対角化を省くことは可能。

 ただし、OVLEPS,OVNCUTは聞かなくなるし、overcompletenessに関する

 注意が必要。

  • METAL=3では、対角化を二度くりかえします。最初にまず固有値だけもとめて

 tetrahedronウエイトを決めて、そのあとStart second band pass以下で、  波動関数の二乗(電子密度)の積算をやっていきます。

  • メモリが動的にallocateできてなくて、F90とF77の混合状態になってる

 ので、もしALLOC: workspace overflow, needのメッセージが出たら、 lmv7.f:L62 #if MPI | MPIK parameter(wksize= 120 000 000) #else parameter(wksize= 80 000 000) #endif のどちらかのwksizeをおおきくするひつようがあります。これに4を掛けるとバイト数。

  • 水素原子を大きいセルにいれたとき、METAL=0で収束しないのが気持ち悪い。最初にNSPIN=2,MMOM=1 0 0 0になおしてからlmfa,lmfを実行すること)。なおさないといけない。
  • ストレス計算とGGA計算ができないと使えないとかときどき言われます。

 たぶん、ストレス計算、効率化、が必須なんでしょう。GGA計算に  そんなに意味があるとも思えないけど標準化してるということで  他との比較の際に必要になったりもする。まずはドキュメント化か。。。

=== 関係者に送ったメールの抜粋 === 現状でもかなり安定はしていますが、「これで誰でも使える」というように 確信できれば、メーリングリストに流すなど、もっと大っぴらに宣伝していきたいと思っています。むかしのlmtoコードとちがって、結晶構造の入力だけでもかなりのレベルの計算ができます。収束チェックはドキュメントにあるようにovercompletenessの制御の 点はありますがその確認も容易だし(聞いたところだとLAPWにしても結局これは同様の問題のようです)、平面波数などのすこしのパラメーターをうごかして確認するだけで収束チェックができます(PAWやAPWなどの他の平面波の方法と違い、augmentしたMTOも同時に用いるので  Cuでも5Ryの平面波カットオフで1mRy程度の精度で全エネルギーが収束する。3Ryカットオフでもそんなにわるくない)。 浅いコアにはlocal orbital(というよりちゃんと外部にも広がったMTO基底)を使います。 empty sphereは不要です。で、表面などの真空領域が大きい系でもsupercellで普通に扱えるでしょう。これは昨年度に開発したPAW+MTOのおかげです ( プレプリサーバーにありますがよくわからないということで不評。   マークさんが書き直したというか全然違うものもありますーーーこれをPRBにおくったところです)。ただ至らないところもまだまだいろいろあります。

*LDAレベルでの計算の強みは、とにかく、MTO+(augmentされた少ない数の平面波基底) で計算できることです(以下PMT法とよびます)。でたとえば、ぼくが思ってるのは、 遷移金属をSi中にいれたり有機物質のなかにいれたり、 MgOの表面に置いてみたりの状況で、PAWやLAPWと比べてかなり高速な計算ができるだろうと思っています。 また計算精度が十分高いので磁性の計算もできると思います(ただ磁性の計算するには それなりに勉強しとかないと計算自体をまちがったり、解釈をまちがったりします。 LDAとか計算精度とか一体問題の限界を把握しておかないといけないです)。

PMT法はまだGWと結合できてないです(LMTOの場合のみ)。 でも早急にそのあたりを進めていこうと思っています。 wikiをつくってしっかりサポートしていきたいとおもっています。

以前のバージョンと違って、インストールはMake.incのサンプルをコピーして 書き換えればいいようになっています。それをいくつかのMakefileから共有します。 BLAS,LAPACK,fftwが必要です。fftwのインストールは簡単です。 make checkでただしくインストールされてるかどうかのチェックも一発でできます。 gfortranでもうごきますし、SR11000でもうごきます(MAKEINCにサンプルのMake.incがあるのでそれを書き換える。CPPCHECK.shで必要なcppスイッチも自動でみつけれる)。

(たぶん)そんなによくできたmpi化ではないですがk-pararell,原子パラレルのMPIもはいってます。 あとTESTsamples/でスクリプトjob_lmf,job_bandを続けて実行すると、バンドのpsができたりするように 整備してあります(pdosのサンプルもある)。ただbandプロットのデータ構造が独自仕様 でgnuplotなどでよめないので、その辺も将来的に改善したいです。

とにかく電子状態計算の方法論分野ではやるべきことが山積なのに、 マンパワー不足でなかなか前に進んでいきません。そのための基軸になる ものを用意していきたいです。多体論的なことであれば、フォノンや磁性による 自己エネルギーや、それらの絡みが問題になってくるでしょうが きちんとしたプラットフォームを用意しとかないとそういう問題に アタックできない。そのためにコードの中身や手法もとにかくどんどん 明瞭にしていきたい。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

1。何ができるか? FPでのLMTO,LAPW,あるいはMTO+PAWができます。 LDA+Uできます。XCはGGAは入ってません。 VWN(XCFUN=1)で計算してください。

力の計算、原子位置の緩和などができます。 LaGaO3のサンプルだけいれました。 ストレスの計算は直接にはできません。 現状では、参照になる格子定数をあたえたあと、 どれだけ格子を歪ませるか(格子定数をのばしたり) のオプションを指定して全エネルギーを計算するしかないです。

誘電関数、磁気応答、GW計算、QSGW計算、(みやけくんの)ワニエ関数生成やUの計算 は別途、fpgwのパッケージが必要です。 で、これらの計算はまだAPW+MTOの方法(PMT法)とは結合できてないのです。 このあたり、早急になんとかやっていきたいところです。

また、方法論の詳細やコードの詳細を早急に書き下したいとおもっています。 コード自体(わけのわからない構造体とかがはいってるので)、 すっきりさせていきたいところです。 以前のものに比べだいぶとすっきりしてきてますが。

2。展開するとecal/lm-7.0betaKディレクトリができます。 そこにいろんなものがはいってます。 (いずれはecalパッケージとして、gwのパッケージやXtalEditのパッケージ と統合したものにしようとおもっています)。 まずはそこのGetStarted.htmlを読んでください。 とくにいままで使っていたひとには違いの部分を知っておいてもらいたいです。

で、とにかくSrTiO3だと、 STRUC ALAT=6.7(かな?) DALAT=0 PLAT=1 0 0 0 1 0 0 0 1 SITE ATOM=Sr POS=1/2 1/2 1/2 ATOM=Ti POS= 0 0 0 ATOM=O POS=1/2 0 0 ATOM=O POS= 0 1/2 0 ATOM=O POS= 0 0 1/2 というctrls.srtio3(ctrlsです)ファイルをかけば ctrlgen.py srtio3でctrlのテンプレートが できるのでそれをすこしeditするだけで計算できます。 MTOは局在性の高い軌道だけにもちいて、あとは平面波でカバーするように 設定してあります。ctrlgen.pyなどをみてもらえばわかります。 ctrlgen.pyは原子計算のコードなどを利用して、MT半径を 決めたり、MTOを指定したりするのですが, いろいろ試した範囲では、現在の設定で良好にうごきます。 まだまだテストの余地はありますが。

3。マニュアルはそのうちwikiとして整備しようとしています。 むしろ日本語化していこうとおもってもいます(まず局所的にはやらせるのが重要です)。 皆の分からないところをぼくとか(ほかのひとにも協力してほしいですが) が調べて書き足していってよりよいマニュアルにしていくという方向性です。 http://ja.scratchpad.wikia.com/wiki/PMT に木野さんの作ってくれたサンプルがあります。まだこれからですが。 また、バージョン管理をgitでおこなっていこうと思っていて、 さくらサーバーを利用しようとしています。


4。ライセンスなど。  発表時:もともとマークさんのlmf-7.0betaをすこし改変してlm-7.0betaKとしたので、  MarkOriginalDoc/にあるように結果発表においては、マークさんのlmfの文献を引用してください。  また、ぼくと木野さんによって手がくわえられたバージョン「lm-7.0betaK001」をつかったことも引用してく ださい。  PMT法に関しては現状では、preprint serverの論文も引用してください。とにかくそのあたりだけきちんと  まもってもらえれば、問題ないです。場合によっては謝辞もいれてください。それでないとプログラム開発者 が生き残れないです。  まあ、場合により柔軟にやってください(トークでいつもいつも必ずそれを説明しろとかいうことではないの で)。

 ライセンスは実際のところよくわかりません。いぜんはサーバーにおいてメールをくれたひとに  取っていってくださいとか言って配布してたこともありました。実際、MAEDAとかいう会社が過去のバージョ ン  を、とりいれたパッケージを売ってたりしたこともあります(いぜんのlmtoではあまりに使えないのですぐや めたみたいですが)。  マークさん自身、いろんなところからコードをとってきてそれを組み入れてつかってはります。  (PMTの部分やGWのドライバー部分などぼくがかいたものを取り入れてる部分もあります)、  マークさんは「正しくつかってもらえるひとには配布していい」というようなスタンスです。  この論理からすれば、このあたらしい自動化の設定法がきちんと機能してだれでもつかえるようにできれば、  だれにでも配布できるようになります。

将来的には(いまもだいたいはそうなんですが)、なんらかのかたちのオープンなもの にしていきたいと思っています。各個人が改造して他者に再配布する自由は保持したいということです。

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

Fandomでも見てみる

おまかせWiki