本文へスキップ

梅野研究室は原子シミュレーションや第一原理解析によりナノ材料の力学物性とマルチフィジックスの研究を行っています.

東京大学生産技術研究所

革新的シミュレーション研究センター 梅野研究室


Developed codes and technical note for installation

MDSPASS
(Molecular Dynamics Simulation Package for Analysis of Solid Systems)

Fortran90で書かれたMD計算パッケージ.
主な機能:
  • わかりやすい入力データファイル(解析条件ファイル・初期構造ファイル).
  • 多様なポテンシャル関数(LJ, Morse, EAM, MEAM, Tersoff, Brenner, Shell Model).
  • 温度一定(速度スケーリング/能勢法),応力一定等のアンサンブルに対応.
  • 構造緩和アルゴリズムを複数用意.
  • XCrysDen, Atomeye等のアウトプットファイル形式に対応.
  • VASP形式の構造ファイルを出力可能.

MDSPASS2 最新情報はこちら

GLUT/GLUI/C++で書かれたリアルタイム3D描画機能を備えたMDパッケージ.(公開準備中)
主な機能:
  • GLUTによる構造の3D描画.MD計算中にリアルタイムに表示可能.
  • GLUIによるグラフィカルユーザーインターフェース.
  • 対応ポテンシャル関数:Morse, EAM, Tersoff, Brenner, Dipole (for oxides), ADP (angular dependent potential)
  • Quasicontinuum(QC)法が使用可能.メッシュ切りはGUIで簡単に行える.
  • 初期構造生成のGUIを装備.特にカーボンナノチューブモデル(単層,多層)の容易な作成.
  • GPGPUによる高速計算(開発中).
MDSPASS2のスクリーンショット(クリックで拡大)

TBMD

Tight-Binding(強束縛近似)法によるMDパッケージ.

*以下は内部向け情報です*

Windows 7, Microsoft Visual C++ 2008 Expressでのglut, glui, lapack, libpngのインストール

  • glut のインストール
    1. Windows 用の glut である,glut-3.7.6-bin.zip を入手、展開
    2. glut32.dll を C:\WINDOWS\system に入れる
    3. glut.h を C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\GL に入れる (GLディレクトリを作成する必要がある)
    4. glut32.lib を C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib に入れる
  • glui のインストール
    1. glui-2.36.zip を入手、展開
    2. 展開したディレクトリ中の msvc\glui.dsw を読み込む(C++ 9.0 形式に自動的に変換される)
    3. バッチビルド ですべてにチェックを入れて,ビルドする
    4. サンプルプログラムの動作を確認.(例えば,左ウインドウでexample1.cppをダブルクリックしたのち,ビルド=>example1のリビルドを実行すれば\binディレクトリにexample1.exeが作成される)
    5. glui.hをC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\GLに入れる.
    6. glui32.libをC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib に入れる.

足りないランタイムdllをインストール

vcredist_x86.exe

Lapackのインストール

1.http://www.netlib.org/clapack/ よりCLAPACK3-Windows.zipをダウンロード.
2.clapack.dswをダブルクリックするとC++9.0形式に変換される.
3.バッチビルドでblas, clapack, libF77, libI77のReleaseをチェックし,ビルドする.
4.できたライブラリblas.lib, clapack.lib, libF77.lib, libI77.libをC:\Windows\systemにコピー.
5.Visual C++でプロジェクト(自分のコードの)を開き,プロジェクト=>プロパティ=>構成プロパティ=>リンカ=>全般で追加のライブラリディレクトリに"C:\Windows\system"を追加,リンカ=>入力の追加の依存ファイルに上記のlibファイルを記入.C/C++=>コード生成のランタイムライブラリは"/MD".
6.これで自分のコードがビルドできるはず.

libpngのインストール

Visual C++ Express 2008での方法

1. http://libpng.sourceforge.net/index.htmlからソースをゲット(lpng1510.zip)
2. http://zlib.net/からzlibのソースをゲット(zlib127.zip)
3. まずlpng1510.zipを展開.(lpng1510というディレクトリができる)
4. zlib127.zipを展開する.zlib127というディレクトリができるが,これをzlibにリネームし,lpng1510が置かれているディレクトリにコピーする.(あるフォルダにlpng1510ディレクトリとzlibディレクトリが置かれている状態にする)
5. Visual C++ Express 2008を起動し,ファイル→開く→プロジェクト/ソリューションから,lpng1510/projects/visualc71/libpng.slnを開く.
6. ツールバーで「DLL Release」を選択して,「ビルド」より「libpngのビルド」を実行.
7. libpng1510/にあるpng.hとpnglibconf.hとpngconf.hをC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\includeにコピー.
8. libpng1510/projects/visualc71/Win32_DLL_Release内にできるライブラリ(libpng15.lib)をC:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\libにコピー.さらにその下のZLib/zlib1.libも同じ場所にコピーする.
9. libpng1510/projects/visualc71/Win32_DLL_Release内にできるlibpng15.dllと,さらにその下のZLib/zlib1.dllを C:\WINDOWS\systemにコピー.
※なぜかプログラムソース内で#pragma comment(lib, "libpng15.lib")という1行を書いておき,ライブラリを直接指定する必要があった.glut, glui等では必要なかったんだけど.

Windows 10, Microsoft Visual Studio Community 2017でのglut, glui, lapack, libpngのインストール (2019も同様)

  • Microsoft Visual Studio Community 2017 (+Windows 8.1 SDK)のインストール (MVSC2019の場合も同様)
    1. Visual Studioのサイトから、Visual Studio 無償ダウンロード(ページの下の方にあります。見つからない場合は"Visual Studio" "無償" などで検索)をクリックするとインストーラ(exeファイル)がダウンロードされる。ダウンロードが完了したらインストーラを実行する。
    2. しばらくすると、インストールするコンポーネントを選択する画面が現れる。「ワークロード」タグが開かれているはずなので、「C++によるデスクトップ開発」にチェックを入れる。 (*2019ではこの後、画面右下の「インストール」ボタンを押せばインストールが進み、再起動が要求された後、そのまま完了する。以下の3〜5の作業は不要。)
    3. 再起動しろと言われたらおとなしく従う。
    4. 画面左下のウインドウズボタンより、Visual Studio Installerを起動。「インストール済み」の下にVisual Studio Community 2017 (もしくは2019)と表示されるが、その下の「変更」ボタンをクリック。「個別のコンポーネント」タグを選択し、下の方にスクロールして「Windows 8.1 SDK」にチェックを入れる(この操作は2019では不要)。画面右下の「変更」ボタンをクリック。
    5. インストールが終了したらVisual Studio Installerは終了しておく。
  • glut のインストール
    1. Windows 用の glut である,glut-3.7.6-bin.zip を入手、展開。
    2. glut.h を C:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\um\gl にコピー。(xxxの部分は環境によります)
    3. glut32.lib を C:\Program Files (x86)\Windows Kits\10\Lib\10.x.xxxxx.x\um\x86 にコピー。
    4. glut32.dll を C:\Windows\SysWOW64 にコピー。
  • glui のインストール
    1. glui-2.36.zip を入手、展開 。
    2. 展開したディレクトリ中の src\msvc フォルダに移動し、glui.dsw をダブルクリックして Visual Studio 2017 で開く。(プロジェクトとソリューションの変更をレビューという画面が現れ、ファイルをアップグレードするよなどと言われるが、言われる通りにする。セキュリティ警告も出るが、気にしない(すべてOKでよい))
    3. 右の方に現れるソリューションエクスプローラーで、GLUIが選択されているのを確認。
    4. 上の方の窓で「Debug」と表示されているところがあるが、その横の小さな矢印をクリックし、Releaseを選択しておく。
    5. 上の「ビルド」タグを選択、「GLUIのビルド」を行う 。すると「includeファイルを開けません」などとエラーが出るかもしれない。パスをきちんと通す必要がある模様。そこで、上の方の「プロジェクト」==>「プロパティ」を開き、構成プロパティの「VC++ディレクトリ」を選択。右側の「インクルードディレクトリ」を選択し編集。空欄のところに、"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"と、"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\um"を追加する。
    6. 再度「GLUIのビルド」を行う。今度はパスが通ってコンパイルが進む・・ようだが、「テンプレートの明示的なインスタンス化は名前空間スコープでのみ発生します」などというエラーが大量に現れる。
    7. どうやらglui.hの中身に問題がある模様。ソリューションエクスプローラーでGLUIをロールアウトするとglui.hが現れるので、これを編集する。glui.hをダブルクリックして「ファイル名が変更されたかあるいは削除された」とエラーが出る場合、その下にあるプロパティの「相対パス」が誤っている可能性がある(..\glui.hなどとなっているとダメ)。..\include\GL\glui.hに書き直し、再度glui.hをダブルクリック。
    8. glui.hの中身が表示されたら、1716行目あたりに#ifdef _MSC_VER で始まる定義文を探す。1718,1719行目のtemplate classで始まる2行を両方ともコメントアウトする(templateの前に//を記入)。Ctrl-Sで保存。
    9. 再び「GLUIのビルド」を行う。正常終了すると、src\msvc\libフォルダにglui32.libが生成される。これをC:\Program Files (x86)\Windows Kits\10\Lib\10.x.xxxxx.x\um\x86 にコピーする。
    10. exampleプログラムを走らせたい場合には、ソリューションエクスプローラーより例えばexample1を選択。パス設定をやり直す必要があるので、「プロジェクト」==>「プロパティ」を開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"と、"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\um"を追加する。さらに、「ライブラリディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Lib\ucrt\x86"と、"C:\Program Files(x86)\Windows Kits\10\Lib\um\x86"を追加。「ビルド」==>「example1のビルド」をクリックし、正常終了するとsrc\msvc\binフォルダにexample1.exeが生成される。
    11. glui.hをC:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\um\gl にコピー。

Lapackのインストール (Windows Visual Studio 2017) *2019も同様

1.http://www.netlib.org/clapack/ よりCLAPACK3-Windows.zipをダウンロード.
2.clapack.dswをダブルクリックしてMicrosoft Visual Studioで開く.
3.ソリューションエクスプローラーでblasを選択後、ツールバーのDebugをReleaseに変更。
4.プロジェクト==>プロパティを開き、「構成プロパティ」の「全般」の「Windows SDK バージョン」を8.1から10.x.xxxxx.xに変更。(*2019では不要)
5.ソリューションエクスプローラーでclapackを選択後、プロジェクト==>プロパティを開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"を追加。
6.ソリューションエクスプローラーでlibF77を選択後、5.の操作を行いパスを追加。
7.ソリューションエクスプローラーでlibI77を選択後、5.の操作を行いパスを追加。
8.ソリューションエクスプローラーでclapackを選択後、ビルド==>clapackのビルド。
9.ソリューションエクスプローラーでlibF77を選択後、ビルド==>libF77のビルド。(*2019では更新不要といわれてすぐ終了する)
10.ソリューションエクスプローラーでlibI77を選択後、ビルド==>libI77のビルド。
11.CLAPACK\Releaseのclapack.lib, CLAPACK\BLAS\Releaseのblas.lib, CLAPACK\F2CLIBS\ReleaseのlibF77.lib, libI77.lib をC:\Windows\systemにコピー。

libpngのインストール (Windows Visual Studio 2017) *2019も同様

1. http://libpng.sourceforge.net/index.htmlからソースをゲット(lpng1636.zip)
2. http://zlib.net/からzlibのソースをゲット(zlib1211.zip)
3. まずlpng1636.zipを展開.(lpng1636というフォルダができる)
4. zlib1211.zipを展開する.zlib1211というフォルダができるが,これをzlibにリネームし,lpng1636が置かれているフォルダにコピーする.(あるフォルダにlpng1636ディレクトリとzlibディレクトリが置かれている状態にする)
5. lpng1636\projects\visualc71フォルダに移動し、libpng.slnを開く(ダブルクリック).
6. ツールバーで「DLL Release」を選択。ソリューションエクスプローラーでlibpngを選択し、プロジェクト==>プロパティを開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"を追加、「ライブラリディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Lib\10.x.xxxxx.x\ucrt\x86"を追加。
7.ソリューションエクスプローラーでzlibを選択し、 6.と同様のパスを追加。
8. ソリューションエクスプローラーでlibpngを選択、「ビルド」より「libpngのビルド」を実行。
7. libpng1636フォルダにあるpng.hとpnglibconf.hとpngconf.hをC:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\umにコピー。
8. libpng1636\projects\visualc71\Win32_DLL_Release内にできるライブラリ(libpng.lib)をC:\Windows\systemにコピー。さらにその下のZLib/zlib.libも同じ場所にコピーする。
9. libpng1636\projects\visualc71\Win32_DLL_Release内にできるlibpng16.dllと、さらにその下のZLib\zlib1.dllを C:\WINDOWS\SysWOW64にコピー。

※プログラムソース内でのライブラリ指定は#pragma comment(lib, "libpng.lib")となる。