先頭へ
先頭へ

技術情報

材料シミュレーションに取り組むにあたり、弊社が役立つだろうと考える種々雑多な情報です。

PHASE/0使いこなしのヒント

改良擬ポテンシャル

PHASE/0は擬ポテンシャル法を採用しており、計算の際には各元素の擬ポテンシャルが必要です。PHASE/0で用いる擬ポテンシャルは第一原理計算で作成されるのですが、作成時のパラメータの与え方によっては実験との一致がさほど良くない擬ポテンシャルができることがあります。実験値との一致が良い(それもなるべく小さなカットオフエネルギーで)擬ポテンシャルを作るためには永年の経験に基づく試行錯誤が不可欠です。

当社では、様々な計算を通して擬ポテンシャルの確認を行っており、いくつかの擬ポテンシャルについては改良版を作成しています。その一例として、スズの擬ポテンシャルをご紹介します。

公開擬ポテンシャル

公開擬ポテンシャル

スズ単結晶(ダイヤモンド構造)の凝集エネルギーと格子に作用するストレス(応力)の格子定数依存性を示します。波動関数のカットオフエネルギーを25 Rydbergとしました。最安定な格子定数は、エネルギーが最小になるところ、もしくは、ストレスがゼロになるところであり、理想的には両者は一致します。ところが現実には両者の計算手順が異なるため、同一値にはなりません。そして特に公開されている擬ポテンシャル(Sn_ggapbe_paw_us_02.pp)を使った計算では差が顕著です(右図上)。エネルギー(青線)は格子定数6.6Å付近で最小値を取りますが、ストレスがゼロになる(赤実線が点線と交わる)のはおおよそ6.2Åです。カットオフエネルギーを大きくするとこの差が小さくなる(ストレスゼロになる格子定数がエネルギー最小に近づく)ことが分かっていますが、計算負荷の上昇を伴うので、あまり大きな値は使いたくありません。

改良擬ポテンシャル

改良擬ポテンシャル

当社が作成した改良擬ポテンシャルを使うと、この問題を改善することができました。同じく波動関数のカットオフエネルギーを25 Rydbergにして計算したところ、二つの方法で求めた安定な格子定数はどちらも約6.6Åであり、実用上一致しているとみなせる程度の差で求めることができました。(右図下)。

なお、当社製品にはスズ以外にも改良擬ポテンシャルが付属しています。

テキストエディタPHASE/0入力ファイル編集モード

テキストエディタで入力ファイルを編集して困ることの一つが、キーワードの打ち間違いです。特にPHASE/0は間違ったキーワードに対してエラーを出すことはなく、無視して計算を続けようとします。GUIを利用すれば打ち間違いからは解放されますが、一部応用機能にはGUIが対応できておらず、それら機能を利用する際にはテキストエディタでの入力ファイル編集が不可避です。

そこでテキストエディタでの入力ファイル編集の負担を軽減すべく、主にLinuxで用いられる二大エディタVimとEmacsについて編集支援モードを作成しました。キーワードを色付け表示することにより間違いが見つけやすくなります。

Vim用

gvim

PHASE/0入力ファイルの一行目を

!phase0_input
としてください。PHASE/0にとっては単なるコメントですが、VimはこのファイルがPHASE/0の入力であると認識します。利用方法は付属文書を参照してください。

ダウンロード:phase0-vim_001.zip

Emacs用

emacs ターミナル emacs X window

PHASE/0入力ファイルの一行目を

!-*- PHASE0 -*-
としてください。この行はPHASE/0からはコメントとみなされる一方で、EmacsにPHASE/0入力ファイルであることを伝えます。またアウトラインモードが備わっており、入力ファイルが長くなった場合に、注目箇所のみを表示することができます。

こちらで公開しています。

計算機使いこなしのコツ

利用中のシェルを調べる

Linuxでは「シェル(shell)」と呼ばれるプログラムを通してコマンドを与え、様々な処理を行います。代表的なシェルとして、bash, tcsh, zshなどがあります。利用中のシェルは、以下のコマンドで知ることができます。

$ echo $0

この時、シェル名の前に「-」が表示されれば、それがログインシェルです。例えば-bashと表示されれば、bashがログインシェルです。

ドットファイルの読み込み

Linuxではログイン時に、ホームディレクトリの名前が「.」で始まるファイル(ドットファイルと呼ばれます)を読み込んで各種設定を行います。いつも使う項目が自動的に設定されると便利なのはもちろんのこと、並列計算(MPI)ではプログラムが自動的の他の計算機に接続してプログラムを起動します。自動的に接続したときにもプログラム起動のための適切な設定がなされている必要がありますので、ドットファイルでの設定が必須です。ドットファイルの具体的ファイル名は、ログインシェルにより異なります。

(詳細を省略しました。さらに詳しく知りたい方はmanを参照するなど調べてください。)

公開鍵認証について

計算機にログインする際には、古くからユーザー名とパスワードを利用した認証(パスワード認証)が使われてきましたが、現在ではその安全性が十分でないと考えられることが多く、特にインターネットを介した接続には、安全性の高い公開鍵認証を利用することが一般的になっています。

公開鍵認証では公開鍵と秘密鍵のペアを自分で作成します。秘密鍵は絶対に他人に教えてはいけません。ログイン元となる(手元にある)計算機に安全に保管してください。ログイン先の計算機管理者にも教えません。この点が「ログイン先の管理者から通知されるユーザー名とパスワードを使ってログインする」というパスワード認証の最初の手順と根本的に異なります。一方、公開鍵はその名の通り外部に晒しても問題にはなりません。ログイン先の計算機に配置する必要がありますので、管理者にお願いするなどしましょう。電子メールで送付しても安全性は損なわれません。

ここでは、PuTTY(Windows用)とOpenSSH (主にLinux用)をそれぞれ使って、公開鍵/秘密鍵を作成します。PuTTYとOpenSSHを併用する場合には、両者の鍵の「ファイルフォーマット」が異なることに注意が必要です。ほとんどの場合、ログイン先ではLinux(OpenSSH)が動いているでしょうから、それに必要なフォーマット変換についても併せて説明します。

PuTTYで鍵作成

PuTTY Key Generator Generating Generated

OpenSSHで鍵生成

以下のようにssh-keygenコマンドを実行します。【Enter】ではEnterキーを、【パスフレーズ】ではパスフレーズを入力します。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/asms/.ssh/id_rsa): 【Enter】
Created directory '/home/asms/.ssh'.
Enter passphrase (empty for no passphrase): 【パスフレーズ】
Enter same passphrase again: 【パスフレーズ】
Your identification has been saved in /home/asms/.ssh/id_rsa.
Your public key has been saved in /home/asms/.ssh/id_rsa.pub.
The key fingerprint is:
(以下略)
$
ホームディレクトリ下の.sshディレクトリに秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されます。さらに、秘密鍵をPuTTYで利用する場合には、以下の手順で変換します。

sshポートフォワード

関連する話題としてsshポートフォワード機能を紹介します。遠隔地の計算サーバーを利用することを想定して、下図のネットワーク構成を考えます。ログインサーバーへの接続はインターネットを介するので公開鍵認証を使い、ログインサーバーからリモート計算機へは、安全な組織内ネットワークのみを利用するので、パスワード認証で接続します。

リモート計算サーバーを利用する場合 ローカル
計算機
ログイン
サーバー
リモート
計算機
パスワード認証 パスワード認証× 公開鍵認証+ポートフォワード

リモート計算機と通信するアプリケーションソフトウェアの中には、安全なネットワーク内での利用を前提としているために公開鍵認証をサポートしておらず、パスワード認証のみ利用可能なものがあります。その場合でも、sshポートフォワードを利用して公開鍵認証で安全な通信経路を確保すると、ローカル計算機で動作するアプリケーションソフトウェアがその経路を利用して、リモート計算機に接続できることがあります。

ポートフォワード設定

ポートフォワードは、ローカル計算機からログインサーバーへの接続にオプションを追加して設定します。OpenSSHでは例えば以下のコマンドを実行します。

$ ssh loginserver -L 10022:remotehost:22 -N -f

PuTTYでは右図のように設定します。いずれの場合も、ローカル計算機の10022番ポートが、リモート計算機の22番ポート(sshの既定値)につながります。すなわち、アプリケーションプログラムがローカル計算機の10022番ポートにssh接続すると、(ログインサーバーを自動的に経由して)リモート計算機にssh接続することになり、あたかもリモート計算機にパスワード認証でログインしているかのように振る舞います。

なお、セキュリティポリシーは所属組織により区々であり、技術的に可能なこと全ての実行が許可されているとは限りません。どのような利用方法が許可されているのかご確認のうえ、セキュリティに配慮してご利用ください。


書籍紹介

材料シミュレーションを正しく行うためには固体物理学の知識が必要です。この分野には沢山の著名な教科書がありますが、ここでは二つだけ挙げます。

第一原理バンド計算ソフトウェアの利用者を読者として想定した書籍は少ないのですが、次の書籍はお勧めできます。バンド計算の考え方・使い方が丁寧に説明されています。PHASE/0を対象として書かれたものではないので全ての説明が当てはまるわけではありませんが、基本的事柄はPHASE/0にも通用します。

シミュレーションソフトウェアは、Windows上でもご利用いただけますが、大規模並列計算の際にはLinux上でご利用ください。Linuxに関する書籍も数多く出版されていますが、入門書を一つだけ紹介します。


リンク