Submit Search
Upload
CMSI計算科学技術特論C (2015) feram と強誘電体②
•
0 likes
•
1,317 views
Computational Materials Science Initiative
Follow
Computational Materials Science Initiative
Read less
Read more
Education
Report
Share
Report
Share
1 of 47
Download now
Download to read offline
Recommended
CMSI計算科学技術特論C (2015) feram と強誘電体①
CMSI計算科学技術特論C (2015) feram と強誘電体①
Computational Materials Science Initiative
Sekiya b
Sekiya b
harmonylab
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
Computational Materials Science Initiative
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
Computational Materials Science Initiative
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
Computational Materials Science Initiative
卒論
卒論
Yuki Chiyohara
M1 gp
M1 gp
亮介 小林
Recommended
CMSI計算科学技術特論C (2015) feram と強誘電体①
CMSI計算科学技術特論C (2015) feram と強誘電体①
Computational Materials Science Initiative
Sekiya b
Sekiya b
harmonylab
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
CMSI計算科学技術特論B(13) 大規模量子化学計算(2)
Computational Materials Science Initiative
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
CMSI計算科学技術特論A(15) 量子化学計算の大規模化2
Computational Materials Science Initiative
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
Computational Materials Science Initiative
卒論
卒論
Yuki Chiyohara
M1 gp
M1 gp
亮介 小林
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
Tomoki Hayashi
Open dronemapハンズオン
Open dronemapハンズオン
Mizutani Takayuki
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
RCCSRENKEI
プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価
Takashi Kishida
TRYmovie京都スタジオのご案内
TRYmovie京都スタジオのご案内
yamato-c
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
RCCSRENKEI
200625material naruse
200625material naruse
RCCSRENKEI
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
200514material minami
200514material minami
RCCSRENKEI
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
Tomoki Hayashi
円形アレイを用いた水平面3次元音場の収録と再現
円形アレイを用いた水平面3次元音場の収録と再現
Takuma_OKAMOTO
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
Atsuki Shinbori
200730material fujita
200730material fujita
RCCSRENKEI
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
Takuma_OKAMOTO
200521material takahashi
200521material takahashi
RCCSRENKEI
高精度擬ポテンシャル法の開発と表面系への応用
高精度擬ポテンシャル法の開発と表面系への応用
dc1394
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
Computational Materials Science Initiative
More Related Content
What's hot
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
Tomoki Hayashi
Open dronemapハンズオン
Open dronemapハンズオン
Mizutani Takayuki
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
RCCSRENKEI
プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価
Takashi Kishida
TRYmovie京都スタジオのご案内
TRYmovie京都スタジオのご案内
yamato-c
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
Iugo Net
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
RCCSRENKEI
200625material naruse
200625material naruse
RCCSRENKEI
2章推薦を行う(後編)
2章推薦を行う(後編)
Tanaka Hidenori
200514material minami
200514material minami
RCCSRENKEI
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
Tomoki Hayashi
円形アレイを用いた水平面3次元音場の収録と再現
円形アレイを用いた水平面3次元音場の収録と再現
Takuma_OKAMOTO
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
Atsuki Shinbori
200730material fujita
200730material fujita
RCCSRENKEI
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
Takuma_OKAMOTO
200521material takahashi
200521material takahashi
RCCSRENKEI
What's hot
(20)
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
イベント区間検出統合型 BLSTM-HMMハイブリッドモデルによる 多重音響イベント検出
Open dronemapハンズオン
Open dronemapハンズオン
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価
TRYmovie京都スタジオのご案内
TRYmovie京都スタジオのご案内
2章推薦を行う(後編)
2章推薦を行う(後編)
2章推薦を行う(後編)
2章推薦を行う(後編)
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
20120810 eiscat yogawa_v2
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
200625material naruse
200625material naruse
2章推薦を行う(後編)
2章推薦を行う(後編)
200514material minami
200514material minami
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
イベント継続長を明示的に制御したBLSTM-HSMMハイブリッドモデルによる多重音響イベント検出
円形アレイを用いた水平面3次元音場の収録と再現
円形アレイを用いた水平面3次元音場の収録と再現
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
200730material fujita
200730material fujita
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
[招待講演] スピーカアレイを用いた空間フーリエ変換に基づく局所再生
200521material takahashi
200521material takahashi
Viewers also liked
高精度擬ポテンシャル法の開発と表面系への応用
高精度擬ポテンシャル法の開発と表面系への応用
dc1394
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
Computational Materials Science Initiative
密度汎関数法, Density Fuctional Theory (DFT)の基礎第5回
密度汎関数法, Density Fuctional Theory (DFT)の基礎第5回
SATOH daisuke, Ph.D.
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
dc1394
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
Computational Materials Science Initiative
2015-07-28 @ 材料構造の解析に役立つ計算科学研究会
2015-07-28 @ 材料構造の解析に役立つ計算科学研究会
Computational Materials Science Initiative
CMSI計算科学技術特論C (2015) OpenMX とDFT①
CMSI計算科学技術特論C (2015) OpenMX とDFT①
Computational Materials Science Initiative
量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMO
Kazufumi Ohkawa
技術者が知るべき Gröbner 基底
技術者が知るべき Gröbner 基底
Hiromi Ishii
Viewers also liked
(9)
高精度擬ポテンシャル法の開発と表面系への応用
高精度擬ポテンシャル法の開発と表面系への応用
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
CMSI計算科学技術特論C (2015) xTAPP をはじめとしたDFT コードと
密度汎関数法, Density Fuctional Theory (DFT)の基礎第5回
密度汎関数法, Density Fuctional Theory (DFT)の基礎第5回
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
2015-09-02 @ 大型実験施設とスーパーコンピュータとの連携利用シンポジウム
2015-07-28 @ 材料構造の解析に役立つ計算科学研究会
2015-07-28 @ 材料構造の解析に役立つ計算科学研究会
CMSI計算科学技術特論C (2015) OpenMX とDFT①
CMSI計算科学技術特論C (2015) OpenMX とDFT①
量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMO
技術者が知るべき Gröbner 基底
技術者が知るべき Gröbner 基底
Similar to CMSI計算科学技術特論C (2015) feram と強誘電体②
feram-0.24.00 is released!
feram-0.24.00 is released!
Takeshi Nishimatsu
Fftw誰得ガイド
Fftw誰得ガイド
chunjp
More modern gpu
More modern gpu
Preferred Networks
光発振器ネットワークで組合せ最適化問題を解くコヒーレントイジングマシン
光発振器ネットワークで組合せ最適化問題を解くコヒーレントイジングマシン
Utsunomiya Shoko
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Seiya Tokui
Prosym2012
Prosym2012
MITSUNARI Shigeo
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
Iugo Net
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
Computational Materials Science Initiative
20180728 halide-study
20180728 halide-study
Fixstars Corporation
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
智啓 出川
Iugonet 20120810-nipr-sato
Iugonet 20120810-nipr-sato
Iugo Net
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
Daiyu Hatakeyama
X tapp lecture_20140226
X tapp lecture_20140226
xTAPP
yamagata m
yamagata m
harmonylab
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Toru Tamaki
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
El text.tokuron a(2019).ishimura190725
El text.tokuron a(2019).ishimura190725
RCCSRENKEI
研究内容 カタログマイニング
研究内容 カタログマイニング
Shogo Tabata
Similar to CMSI計算科学技術特論C (2015) feram と強誘電体②
(20)
feram-0.24.00 is released!
feram-0.24.00 is released!
Fftw誰得ガイド
Fftw誰得ガイド
More modern gpu
More modern gpu
光発振器ネットワークで組合せ最適化問題を解くコヒーレントイジングマシン
光発振器ネットワークで組合せ最適化問題を解くコヒーレントイジングマシン
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Prosym2012
Prosym2012
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
20180728 halide-study
20180728 halide-study
Rを用いたGIS
Rを用いたGIS
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
Iugonet 20120810-nipr-sato
Iugonet 20120810-nipr-sato
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
X tapp lecture_20140226
X tapp lecture_20140226
yamagata m
yamagata m
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
El text.tokuron a(2019).ishimura190725
El text.tokuron a(2019).ishimura190725
研究内容 カタログマイニング
研究内容 カタログマイニング
More from Computational Materials Science Initiative
MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
MateriApps LIVE!の設定
MateriApps LIVE!の設定
Computational Materials Science Initiative
MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
MateriApps LIVE!の設定
MateriApps LIVE!の設定
Computational Materials Science Initiative
ALPSチュートリアル
ALPSチュートリアル
Computational Materials Science Initiative
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
Computational Materials Science Initiative
MateriApps LIVE!の設定
MateriApps LIVE!の設定
Computational Materials Science Initiative
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
Computational Materials Science Initiative
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
Computational Materials Science Initiative
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
Computational Materials Science Initiative
More from Computational Materials Science Initiative
(20)
MateriApps LIVE! の設定
MateriApps LIVE! の設定
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
MateriApps LIVE!の設定
MateriApps LIVE!の設定
MateriApps LIVE! の設定
MateriApps LIVE! の設定
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
MateriApps LIVE! の設定
MateriApps LIVE! の設定
MateriApps LIVE! の設定
MateriApps LIVE! の設定
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
MateriApps LIVE! の設定
MateriApps LIVE! の設定
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
MateriApps LIVE!の設定
MateriApps LIVE!の設定
ALPSチュートリアル
ALPSチュートリアル
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
MateriApps LIVE!の設定
MateriApps LIVE!の設定
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) feram と強誘電体②
1.
feramと 強誘電体② 東北大学金属材料研究所 西松毅 t-nissie@imr.tohoku.ac.jp IMR 【配信講義】 CMSI計算科学技術特論C
(2015) 第10回 2015年12月03日 1
2.
feramを1枚のスライドで紹介(再掲): 誘電体のマルチスケールシミュレーション http://loto.sourceforge.net/feram/ 第一原理計算による有効ハミルトニアンHeffの構築 [T. Hashimoto, T.
Nishimatsu et al.: Jpn. J. Appl. Phys. 43, 6785 (2004)] feramによる分子動力学計算 ペロフスカイト型化合物を 双極子相互作用のある擬スピン系としてHeffを 時間発展させ,その有限温度の性質をシミュレート 大規模(> 100 nm), 長時間 (> 100 ns) の計算が可能 ペロブスカイト型 酸化合物ABO3 -100 -80 -60 -40 -20 0 20 40 60 80 100 200 300 400 500 600 700 800 900 1000 -40 -32 -24 -16 -8 0 8 16 24 32 40 ∆Traw[K] ∆Tcorrected[K] T [K] 0→400 kV/cm 0→200 kV/cm 0→0 kV/cm 200→0 kV/cm 400→0 kV/cm 相転移や ドメイン構造, ヒステリシスループ, 電気/弾性熱量効果 などのシミュレーション PRL 99, 077601 (2007), PRB 78, 104104 (2008), PRB 82, 134106 (2010), JPSJ 84, 024716 (2015), … BaTiO3の相転移 電気/弾性熱量効果 ヒステリ シスループ 1つの擬スピンが ABO3の1ユニットセルに対応 2
3.
電気熱量効果 vs 弾性熱量効果 tensile
stress Cool! dipoles 固体冷却素子としての 応用が期待されている feramでシミュレートできないかと • 米国アイオワ州立大学 (DoE?) • ドイツ http://www.ferroiccooling.de から問い合わせ(4〜5年前) 3
4.
} 強誘電体BaTiO3やPbTiO3を第一原理計算で調べて 有効ハミルトニアン(25個のパラメータを持つ)を構築 ◦ ABINITを改造して利用
http://www.abinit.org/ – 平面波展開: Ecut=60 Hartree, on 8x8x8 k-points – Rappeのノルム保存擬ポテンシャル http://opium.sf.net/ – GGA (Wu and Cohen), LDAやGGA (PBE) ではダメ ◦ 絶対0度の物性しかわからない } その有効ハミルトニアンを分子動力学法を使って いろいろな条件下で時間発展して物性を予測 ◦ 独自開発したferamを利用 http://loto.sf.net/feram/ ◦ 大規模(32x32x512ユニット・セル、〜100nm)な系の 長時間(〜1000ns)のシミュレーションが可能 ◦ 温度、圧力、ひずみ、バルクか薄膜か、外部電場 4
5.
} 実際のペロブスカイト型ABO3: 15N+6
自由度 ◦ 単位胞中5個の原子 ◦ 各原子はx, y, zの3方向に動く ◦ スーパーセル中N個の単位胞 ◦ 歪みの6成分 } 粗視化したモデル: 6N+6 自由度 ◦ 単位胞に1つの双極子ベクトルZ*u(R) ◦ 単位胞に1つの「音響変位」ベクトルw(R) ◦ 計 6 自由度/単位胞 5
6.
すなわち、双極子を たくさんならべた スーパーセル(周期 的境界条件)で計算 BaTiO3用パラメータ [Takeshi Nishimatsu
et al.: PRB 82, 134106 (2010)] 6
7.
さらなる自由度 (DoF) の減量:
「音響変位」 ベクトルw(R) はu(R) に対して「最適化」 } イオンの描像: 5x3=15/unit cell ↓ 粗視化 } ベクトルの描像: u(R) と w(R): 2x3=6/unit cell ↓ ↓ w(R) を Velas,inho({w})+Vcoup,inho({u},{w}) ↓ を最小化するように「最適化」で決定 ↓ } u(R) のみMD、w(R)はMDしない: 1x3=3/unit cell 7
8.
} BaTiO3, 96×96×96ユニットセルのスーパーセル }
有限の外部電場Ez下でカノニカル・アンサンブル計算 (定温の熱浴と接触) } その後Ez=0として ミクロ・カノニカル・ アンサンブル計算 (系外とは断熱, 全エネルギは一定) } 外部電場Ez=0〜500 kV/cm } 実験値の比熱 Cvは使わない→比熱を過小評価 →|ΔT|を過大評価→補正 直接的な電気熱量効果の 分子動力学シミュレーションの計算条件 8
9.
【直接的】電気熱量効果の計算結果その1 スーパーセルのサイズが 小さいと,ΔTのゆらぎが 大きくなってしまう. BaTiO3 x 2/5 correction x 1/5 correction 9
10.
-50 -40 -30 -20 -10 0 10 20 0 100 200
300 400 500 600 700 800 900 -10 -8 -6 -4 -2 0 2 4∆T[K] ∆Tcorrected[K] T [K] BaTiO3 300→0 kV/cm [001] [110] [111] 【直接的】電気熱量効果の計算結果その2 Anisotropic effect of E 10
11.
【直接的】電気熱量効果の計算結果その3 BaTiO3 -12 -10 -8 -6 -4 -2 0 300 400 500
600 700 800 900 -60 -50 -40 -30 -20 -10 0 ∆Tcorrected[K] ∆T[K] T [K] 5→0 kV/cm 50→0 kV/cm 100→0 kV/cm 200→0 kV/cm 300→0 kV/cm 400→0 kV/cm 500→0 kV/cm Effective temperature rang is narrower for smaller E field. 11
12.
Direct MD simulations
of electrocaloric effects PbTiO3 -100 -80 -60 -40 -20 0 20 40 60 80 100 200 300 400 500 600 700 800 900 1000 -40 -32 -24 -16 -8 0 8 16 24 32 40 ∆Traw[K] ∆Tcorrected[K] T [K] 0→400 kV/cm 0→200 kV/cm 0→0 kV/cm 200→0 kV/cm 200→0 kV/cm 12
13.
} PbTiO3 64×64×64ユニットセルのスーパーセル }
一軸応力下でT一定のカノニカルアンサンブルでMD } その後、外部応力を切って、エネルギー一定のミクロ カノニカルアンサンブルでMD、温度変化を見積る } 外部応力: 0.0〜-2.0 GPa } 粗視化 → 比熱 Cv の過小評価 → 温度変化ΔT の 過大評価 → 補正 弾性熱量効果の直接的MDシミュレーション の計算条件 MD step stress magnitude thermalize: T=const. 50,000 MD steps equilibrate: E=const. 40,000 MD steps average 10,000 MD steps 13
14.
−110 −100 −90 −80 −70 −60 −50 −40 −30 −20 −10 0 10 300 400 500
600 700 800 900 1000 −44 −40 −36 −32 −28 −24 −20 −16 −12 −8 −4 0 4 ∆Traw[K] ∆Tcorrected[K] T [K] (a) 0.0 GPa −0.2 GPa −0.4 GPa −0.6 GPa −0.8 GPa −1.0 GPa −1.2 GPa −1.4 GPa −1.6 GPa −1.8 GPa −2.0 GPa (long) −0.8 GPa 弾性熱量効果による冷却 PbTiO3 14
15.
0 20 40 60 80 100 300 400 500
600 700 800 900 1000 Pz[µCcm−2 ] (b) T1 max|∆T| T2 −1.6 GPa release 0 20 40 60 80 100 300 400 500 600 700 800 900 1000 Pz[µCcm−2 ] (c) −0.8 GPa release (long) release 0 20 40 60 80 100 300 400 500 600 700 800 900 1000 Pz[µCcm−2 ] (d) −0.4 GPa release 0 20 40 60 80 100 300 400 500 600 700 800 900 1000 Pz[µCcm−2 ] T [K] (e) 0.0 GPa release 引っぱり 応力を スイッチオフ するときの PbTiO3の 状態の遷移 15
16.
−10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 300 400 500
600 700 800 900 1000 −4 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 ∆Traw[K] ∆Tcorrected[K] T [K] 0.0 GPa −0.2 GPa −0.4 GPa −0.8 GPa −1.2 GPa −1.6 GPa PbTiO3: 弾性熱量 効果による 加熱 MD step stress magnitude thermalize: T=const. 50,000 MD steps equilibrate: E=const. 40,000 MD steps average 10,000 MD steps 外部応力 のスイッチ オン 16
17.
T>TCで常誘電状態から引っぱり応力を 突然かけると180°ドメイン構造ができる z ycross section and
slice 17
18.
} ペロブスカイト型強誘電体ABO3のための 第一原理有効ハミルトニアンに基づく高速 な分子動力学計算コードferam } 電気熱量効果と弾性熱量効果とを
velocity scaling → leapfrog で直接MDシミュレーション tensile stress Cool! dipoles 18
19.
} 2つ目の入力ファイル elasto770K.2lf.feram には
continue = .true. と書いてあり、1つ前 の入力ファイルの終状態からMDが継続する。 } feramの実行方法と入出力ファイルの特徴 ◦ 独自入力ファイル ◦ feram 392K.feram 393K.feram 394K.feram ◦ ログは 392K.log 393K.log 394K.log へ ◦ その他の出力ファイルも「basename+拡張子」 ◦ 特に注意を要するエラーや警告は標準エラー出力へ ◦ 標準出力は使わない。標準出力をバッファをしないシステム で遅くなるので。 弾性熱量効果のMDの実行方法 19 $ feram elasto770K.1vs.feram elasto770K.2lf.feram
20.
} 実行時引数で指定(poptを使うと簡単に割とうまくいく) ./xtalgrowth -c
1 --diameter=0.03 } ファイルで順番に指定(論外: 機能を追加すると破綻) 393 # Temperature in Kelvin 'md' # Method } ファイルで名前と値を指定(feramは独自パーサで) Kelvin = 393 method = 'md' } FortranのNamelistの利用 } XMLの利用 } DSL(Domain Specific Language)の利用 } →次ページからそれぞれの利点欠点を解説 入力ファイルをどうする? 20
21.
} 実行時引数の順番に意味を持たせるのは論外 ./rongai 1
0.03 } 超便利なコマンド・ライン・オプション・パース・ライブラリ popt http://rpm5.org/files/popt/ を使うと簡単に 割とうまくいく。2次元結晶成長デモxtalgrowthで採用。 入力ファイルをどうする? 実行時引数で指定 $ ./xtalgrowth --help # 自動生成されるHELP Usage: xtalgrowth [OPTION...] -d, --diameter=0.nnn Diameter of a ball, d/width -h, --height=1.nnn Height of the system, h/width -c, --criterion=n Criterion, 1=<n=<3 -v, --velocity=0.000n Falling velocity par step -g, --guest='String' Name of the guest -H, --help Print Usage $ ./xtalgrowth -c 1 --diameter=0.03 # コマンドラインオプションが簡単に実装できる 21
22.
} 利点 ◦ 可読性が高い ◦ 分数 1/3
や 単位(例: Bohr or Angstrom)を 指定できる(ABINITが採用) ◦ コメントを #(ハッシュ)から書くことにしておけば 1行目にシバン 「#!./feram」を書くことで 「入力ファイル」を実行属性をもつスクリプトにできる } 欠点 ◦ 独自パーサを書くのが面倒 ◦ パラメータを振るためのループの実装とか 凝りだすとキリがない 入力ファイルをどうする? 独自ファイル+独自パーサ 22
23.
} 利点 ◦ 機械可読性が高い ◦
要素と属性を使い分けることができる ◦ 入れ子構造にできる ◦ Fortran用のFoXライブラリというのもある } 欠点 ◦ 人間可読性が低い ◦ スペルミスを検出しにくい (カウンタを導入して参照されなかったタグを見つける?) ◦ 何を要素にして何を属性にするか迷う 入力ファイルをどうする? XMLの利用 23
24.
} 利点 ◦ どんなFortranコンパイラにも実装されている } 欠点 ◦ 古い ◦ 可読性が低い ◦ エラーメッセージが不親切 入力ファイルをどうする? FortranのNamelistの利用 24
25.
} DSLの定義は曖昧かもしれないが、例えば ◦ Ruby版のmake(1)であるrakeを使えば、入力ファイル間の依 存関係を記述できるかも、並列処理もできるかも
(pwrake) ◦ PythonのAtomistic Simulation Environment (ASE) なら 多彩な機能がすぐ使える } 利点 ◦ スクリプト言語のループ機能をそのまま使ってパラメータを振る ◦ 「入力ファイル」に実行属性を与えられる } 欠点 ◦ CやFortranとのインターフェイスを書くのが面倒 入力ファイルをどうする? DSL (Domain Specific Language) の利用 25 “Programming is a process of designing your own DSL” --Dave Thomas
26.
} 欠点: ①独自パーサ、②マニュアル(英 語・日本語)、に加えて③GUI
までバー ジョンアップ(パラメーターの増加や変 更)に対応させるのは大変 } この3つを自動生成できるような仕組み が必要か? ◦ GUI以外はpoptが参考になるかもしれない GUI (Graphical User Interface) は 使えるか? 26
27.
} 入力が 393K.feram
なら 393K.log が出力ファイル } verbose値(饒舌値)による出力量の制御が可能 } ファイル名と行番号が書き出されるので、デバッグ時 などに、どこで何をやっているかが一目瞭然。Emacs エディタ上で実行すれば、クリックや next-error で ソースコードの該当部分に飛んで行ける。__FILE__, __LINE__を利用。 出力ログファイルのくふう Emacsエディタで393K.feramを実行してログファイル 393K.logの冒頭部分をハイライト表示している様子 make && OMP_NUM_THREADS=2 ./feram 393K.feram && cat 393K.log make: Nothing to be done for 'all'. feram_common.F:45: BEGIN: feram by Takeshi NISHIMATSU 0.25.01unstable feram_common.F:47: HOSTNAME: portlandite.imr.tohoku.ac.jp feram_common.F:51: DATE_AND_TIME: 2015-10-31T21:34:12.732+0900 feram_common.F:54: N_THREADS: 2 feram_common.F:59: FFTW_WISDOM: Successfully imported FFTW wisdom in current directory. param_module.F:124: BEGIN: read_Param(). param_module.F:126: INPUT_FILENAME: 393K.feram verbose = 2 #--- Method, Temperature, and mass --------------- method = 'md' kelvin = 393 mass_amu = 38.24 Q_Nose = 0.05 : : 27
28.
} feram 393K.feram
と実行されたとき、スナップ ショットが 393K.0000040000.coord に記録される } それをEPSに可視化するツールをパッケージに同梱 ◦ feram_cross_section_q.sh (断面図。分極を矢印で。) ◦ feram_slicer.rb (スライス。分極を□か■で。), etc... } アニメーションはそれをImageMagick(1)の convert(1)でGIFに変換して、gifsicle(1)でパラパラ マンガに(ファイルサイズが大きくなるのが欠点) } gifアニメーションの作成はshellでくふう↓ feramの可視化機能 28 $ for y in `seq 0 1 31` do feram_cross_section_q.sh 393K.0000060000.coord 4.0 $y y 0.73; mv 393K.0000060000-q-y.eps 393K.0000060000-q-y-`printf "%0.2d" $y`.eps; done $ for e in 393K.0000060000-q-y-*.eps do convert -flatten -density 400 $e -resize 25% `basename $e .eps`.gif; done $ gifsicle --colors=256 --delay=40 --loop 393K.0000060000-q-y-??.gif > 393K.0000060000-q-y-animation.gif $ gifview 393K.0000060000-q-y-animation.gif
29.
} このように ./configure
&& make && make install でコンパイル/インストールができるソースパッケージ の構築を自動化してくれるのがAutotoolsです } feramはautoconfとautomakeとを使っています } 今回の後半はこのAutotoolsを紹介します feramのコンパイルの手順 29 $ tar xf feram-X.YY.ZZ.tar.xz $ mkdir feram-X.YY.ZZ/build-with-gfortran $ cd $_ $ ../configure --help $ ../configure $ make -j4 $ make check # テストの実行 $ sudo make install
30.
} テストとパッケージングの自動 化をしてくれるフリーソフトウェア } autoconf+automake ◦
m4で書かれているが知識は不要 ◦ コメント行はdnlで始める } 基本的に3つのファイルを用意 ◦ configure.ac ◦ Makefile.am ◦ src/Makefile.am } autoreconfだけ☆簡単☆ } さらに詳しい日本語の解説: http://loto.sourceforge.net/ feram/Autotools-memo.ja.html Autotoolsとは 30 図 Autotools(autoconf と automake)による作業の 流れ。実際はautoreconfが自動でやってくれる。 https://commons.wikimedia.org/wiki/ File:Autoconf-automake-process.svg より CC-BY-SA-3.0 で頒布されているもの。 自分で書く 自分で書く autoreconf
31.
} Autotoolsは開発者用のツール。パッケージの ユーザは そのマシンにAutotoolsをインストールす る必要はないし、Autotoolsについて知っている必 要もない }
ソースファイルは伝統的にsrc/以下に置く } AutotoolsはFortranのプロジェクトにも使える ◦ AC_LANG(Fortran), AC_PROG_FC(gfortran ifort) ◦ 関係する変数はFC, FCFLAGS, FCLIBS, CPPFLAGS ◦ Fortranでもcpp(Cプリプロセッサ)を使うと便利 ◦ AC_FC_FREEFORM()で自由形式のオプションがわかる ◦ C言語のプロジェクトの場合はファイル間の依存関係を自 動的に調べてくれるが、 Fortranの場合はMakefile.am に依存関係を書いておくことがまだ必要 Autotoolsについての注意 31
32.
} 新たにconfigure.ac, Makefile.am, src/Makefile.amを書き変えたら☆からやり直す。 Autotoolsを使ってみる $
svn checkout https://svn.code.sf.net/p/loto/code/feram/trunk ft $ cd ft/ $ autoreconf -v $ automake --add-missing # 初回にautoreconfで実行を要求されたら $ autoreconf -v # ☆ $ ./configure --help # ヘルプメッセージも自動で作ってくれる $ ./configure $ make # ソースの編集など開発を進め、最後にmake $ make check # 自動テスト $ make clean # コンパイルでできるファイルを消去 $ make distclean # Makefileなどをきれいさっぱり消す $ ./configure $ make dist # 配布用パッケージを作成(ulmul, netpbm, libjpegも必要) $ make distcheck # 配布用パッケージを厳格にテストしてから作成 # (オプションは DISTCHECK_CONFIGURE_FLAGS で指定できる) 32
33.
} implicit none
を使いましょう } module を common の代わりに使うのは やめましょう。そもそもいいかげん大域変数 (的なもの)を使うのはやめましょう } 自由形式 (free form) で書きましょう } 構造体 (type) を使いましょう } 配列の範囲が自由です a(1:N), a(0:N-1), a(-N+1:N), a(3,0:N-1,0:N-1) とか } 配列やベクトルの演算が楽→matmul()とか } module, interface を使えばsubroutone の引数の不整合によるバグが避けられる Fortranのススメ (1) 33
34.
} オブジェクト指向プログラミングしましょう } 複素数がはじめから使える }
数学関数が豊富 } 拡張子を .F にしておけばCプリプロセッサが 使える } make(1)とAutotoolsにはFCとかFCFLAGS とかFortran用の機能があります } LAPACKとかFFTWとかライブラリが豊富 } ポインタも使えるが積極的に使う理由はとく にない。基本、参照渡しだから。 Fortranのススメ (2) 34
35.
} 動的にallocateした配列はsubroutineの 最後で解放される } 解放されたくないものは構造体の中に置く }
read/write/他 でテキスト処理も } OpenMPで並列化できる } command_argument_count() と get_command_argument() とで コマンドライン引数も扱える } 浮動小数点数の精度はどう指定する? 1.2d0と書くのはヤダ→コンパイルオプションを使う? Fortranのススメ (3) 35
36.
} GCC 6のgfortranからMATMUL()内部関数 をインライン展開する最適化が利用可能に -finline-matmul-limit=n }
-fexternal-blas というのもある } 積極的にMATMUL() を使って美しいコードを 書きましょう GNU Fortran (gfortran) の MATMUL()内部関数の最新動向 36
37.
} 技巧に走って使いすぎないこと!デバッグが困難に } 定数を1つのファイルにまとめる ◦
物理定数 ◦ ファイルのユニット番号 ◦ 別解としては Fortran の module を使う手もある } Autotools (autoconf+automake) との連携 } __FILE__, __LINE__の利用 } 規格外のサブルーチン名の差異を吸収(次頁に例) } コンパイラの差異を吸収 } ライブラリの差異を吸収 } Cプリプロセッサで処理される *.F と 処理されない *.f とを使い分ける FortranでもCプリプロセッサを使う 37
38.
} Fortranでホスト名の文字列を入手するための 内部サブルーチンはまだ規格化されていない ◦ GNU Fortran
(gfortran): hostnm(str) ◦ Intel Fortran (ifort): hostnm(str) ◦ IBM XLF Fortran (xlf): hostnm_(str) } autoconf と Cプリプロセッサ でこの違いを吸収: configure.ac で xlfが選択されたとき AC_DEFINE([hostnm], [hostnm_], [説明文]) } feram_common.F:47: HOSTNAME: app26 とログファイルに記録されるようにした 例: 新バージョンでログファイルに実行した ホスト名が記録されるようにした 38
39.
} とりあえずREADMEさえ読めばferamは使える ◦ README.en (英語版) ◦ README.ja
(日本語版) ◦ INSTALL(コンパイル方法) ◦ parameter/parameter.txt(パラメータの決 定方法) } 数式の書ける独自のマークアップ言語ULMUL } HTMLに変換してそのままWebページ ◦ make distで自動変換されてパッケージにも同梱 ◦ 手間暇の削減 ◦ ドキュメントの散逸の防止 ドキュメントとWebページの共通化 39
40.
} ドキュメントはHTMLに変換しやすいマークアップ 言語で書くのが吉 } ULMUL ◦ 西松独自:
ulmul2html5, ulmul2mathjax ◦ 数式が書けて、MathMLかMathJaxに変換できる ◦ GFMに比べて余計な空白行が入らない。 } GFM (GitHub Flavored Markdown) ◦ GitHub標準。GitHubではREADME.mdがHTMLに 変換されて表示される。 ◦ 美しい表が書ける。 ◦ gfm2html.rbとかで手元でもHTMLに変換できる マークアップ言語のススメ 40
41.
} src/Makefile.am に
TESTS=foo.sh bar baz とテスト用のスクリプトを用意する } 単体テストや結合テストなどを用意し、テストに失敗した ら非ゼロを返すようにしておく } make check で src/ の中でそれらが実行される ◦ テストはカラフルなレポートとともに進む PASS: rgb_check FAIL: wave_check ◦ テストのログがfoo.sh.logとbar.logとbaz.logとに ◦ テストの結果がfoo.sh.trsとbar.trsとbaz.trsとに ◦ テスト全体のまとめがtest-suite.logに保存される } 一部のテストだけを選択的に行いたい場合は $ make check TESTS=‘foo.sh bar’ と TESTS 変数で指定する make check でテストの自動化 41
42.
} Autotools (autoconf+automake)
の強力な パッケージング機能 } make distcheckでビルドディレクトリでチェックが 進み、問題がなければ自動的にパッケージが完成 } オプションは configure.ac の中に指定 AM_INIT_AUTOMAKE([1.14.1 no-dist-gzip dist-xz tar-pax]) ◦ automakeのバージョン1.14.1以上を使用 ◦ パッケージをtar.gzでなくtar.xzで作る 配布用パッケージの make $ make distcheck : make check-TESTS : ======================================================= feram-0.25.02unstable archives ready for distribution: feram-0.25.02unstable.tar.xz ======================================================= $ 42
43.
改良版のAutotoolsを目指していくつかの パッケージングツール/ビルドツールが 開発されている。 CMakeとSConsでは Fortranのプロジェクトもサポートされている。 ◦ CMake http://www.cmake.org/ – ALPSが採用 ◦ SCons
http://www.scons.org/ ◦ Ninja https://github.com/martine/ninja – スピードに重点を置いて開発されているらしい Autotoolsの代わり 43
44.
} GPLv3のフリーソフトウェアとしてSourceForge.net から手軽にダウンロードできるようにしている } feramを使ってよい論文を書いて出版する ◦
論文の出版直後にダウンロード数は急増 } ドキュメントの充実 ◦ チュートリアル } メーリングリストの質問には質問者のプロファイリング をしてから答える(Debianのムトウ神の教え) } 利用者講習会 ◦ なかなか本当のユーザになってもらうのは難しい ◦ follow up supportが必要? } Search Engine Optimization (SEO) アプリケーション普及のために 44
45.
} Nightly buildができるようにする ◦
自動 svn checkout ◦ 自動 configure && make && make check ◦ 自動ベンチマーク ◦ 以上の結果のメールによるレポート } ToDoリストを(SourceForge.netの)チケット システムで管理 } Debianの公式パッケージにする } 物理: リラクサーのシミュレーション →来春の仙台の物理学会で発表予定 これからやりたいこと 45
46.
} データ構造をはじめにしっかり設計する (後から変えるのは大変) } ファイル名、サブルーチン名、変数名を はじめにしっかり設計する(後から変え るのは大変) }
ぐずぐず言ってないでプログラムを書き 始める。書き換え始める。公開する。(問 題が出てきたら後から変えればよい) 「こうしておけばよかった」と思う事 46
47.
} ペロブスカイト型強誘電体ABO3のための第一原理 有効ハミルトニアンに基づく高速な分子動力学計算 コードferamを開発。フリーソフトウェアとして公開。 } 電気熱量効果と弾性熱量効果のシミュレーションが 可能
feram elasto770K.1vs.feram elasto770K.2lf.feram } 入出力ファイルのくふう: 393K.feram→393K.log } ビルドツールAutotoolsでパッケージングの自動化 →リリースの作業がとても楽! } Fortranを使う上での注意点 } ドキュメンテーションのくふう まとめ 47
Download now