どぼるざーくとゆく、高分子シミュレーション

lammpsやOCTAなどの高分子シミュレーターについて四苦八苦しながら学んでいくブログです。Twitterアカウント@lammps_octa

【lammps】lammpsはイイぞ

はじめに

 今回の記事では、私が扱っている高分子シミュレーターの一つ『lammps』について紹介していきたいと思います。

(自分が扱っている範囲内で大まかに紹介するので、詳細については公式マニュアルを読んでください。)

 

lammpsとは何ぞや??

 lammpsは『Large-scale Atomic/Molecular Massively Parallel Simulator』の略称で、大まかな意味を説明するなら『巨大な系で並列計算もできる原子・分子シミュレーター』という感じです。

アメリカのサンディア国立研究所で開発されており、金属から高分子まで取り扱うことが出来る万能シミュレーターとなっています。

 

lammpsのメリット・デメリット

ここからはlammpsを実際に使ってみた個人的な感想などを書き連ねていきます。

 

メリット

 ・大抵の材料をシミュレーションすることができる(自由度高め)

先行研究でポテンシャルなどのパラメータが決定されていれば、金属材料からカーボンナノチューブにいたるまで何でも解析することができます!

(※垣〇帝督みたいに未元物質を解析することもできます。中二心をくすぐられません??)

これはlammpsは解析に必要なポテンシャル関数を多く保有しているためです。例えば高分子のシミュレーターにはGNOMACSなどもあるのですが、そのソフトにあるポテンシャル関数もlammpsは保有しています。

 

・並列化性能が良い

これは結構重要です。計算機科学を学んだことがある人には常識かもしれませんが、

1コア計算をする時とn列並列計算する時のプログラムは一般的に異なります。

なぜなら並列処理をするときには、計算を各コアにどのように割り振るか、仮想空間をどのように分割するのかなどを指定する必要があるからです。lammpsで解析をする際には、コマンドを変更するだけで1コア・n列並列を指定できます。

 

・海外でも有名

そもそもアメリカで開発されたソフトなので海外でもかなり使われています。そのため毎年パッケージの更新が行われていたり、LAMMPS Workshop and Symposiumというイベントが開催されていたりします。

また使っている人が多いので、エラー内容についてググると同じような事例が出てきて心強いです。ホンマか??(※後述)

 

 

 デメリット

・デバックがしにくい

これがかなりつらい。。。メリットで「自由度が高い」と記したが、それは「デバックの種類が多様化する」の裏返しである。

エラー内容についてググれば先例が出るには出る。が、しかし、そもそも解析する材料が違う、解析の規模が違う、PCの環境が違う、などなどクソほど役に立たないのである。(私の英語力が無いだけかもしれないが)

さすがにエラーメッセージは出るのだが、詳細なエラーの場所がC++の位置でしか記載されていないのでC++を完全に理解しないと理解ができないのである。

(C++がやりたくてlammpsをやっているんじゃない、シミュレーションが先、プログラミングが後)

 

・英語

説明書が英語である。日本語で書かれていても理解できない部分があるはずなのに英語だと読むモチベすらなくなってしまうのである。。。(デバック中ならなおさら)

 

 

まとめ

いかがだったでしょうか?

メリットとデメリットを同じくらいに扱おうと思ったのですが、デメリットの方が力強いですね。。。(いままでの怨念が蓄積してるからだろうか)

ただ最初の方に記したように、lammpsは並列化計算や自由度が高いことが大きなメリットなので、今後はlammpsについての技術的な記事について書いてきたいと思います!