JGeek Log

虫記事
[カミキリ星撮表]
科学記事 SF About 物置 Amazon.co.jp
ディアスポラ数理研 /白熱光メモ 読み中
 

2018-03-07

[] atomsk を使用した dislocation core の visualization

最近の論文で dislocation core structure を計算したのは、だいたい atomskというツールを使って Nye tensorを計算し、芯がどのへんにあるか絵を書いています。Scripta Materialia 75, pp.42-45 (2014) とか。とりあえず自分も以前やったのでメモ

ここからダウンロード。WINDOWS実行ファイルが手っ取り早い。

http://atomsk.univ-lille1.fr/

用意するファイルは、lammpsのファイルでもVASPのCONTCARでもいいけど、転位の構造のファイルと、同じ原子数、同じ原子の並びで完全結晶のファイル。これをatomskの実行ファイルと同じ場所において、 terminal を開いてその場所にcdし、

atomsk --nye perfect.poscar dislocation.poscar nye.cfg

とすると各原子の Nye tensorを計算しnye.cfgに出力する。*.cfgはatomeyeのフォーマット。

値自体は原子に対し定義されてるけど、その間の空間にも可視化ソフトで補間して背景の色として重ねるのが流行っているようだ。

2017-06-02

[]ダイマー法のざっくりした説明

A dimer method for finding saddle points on high dimensional potential surfaces using only first derivatives, G Henkelman and H Jónsson, J.Chem.Phys. 111, 7010 (1999).

院生の方に原論文を解説してもらいざっくり理解したのでその説明。

「峠点 saddle point」を見つける計算手法です。たとえば小仏峠。右は影信山、左は城山、手前が東京、向こうが神奈川です。昔は甲州街道がここを通ってました。いまはトンネルで、渋滞名所ですが。

20170602192759

山を越えるのにいちばん楽なルートはどこか。標高だけ考えれば、歩いていて一番標高が高くなる場所が、なるべく低いほうが楽です。一番高い場所が一番低くなる地点。最大の最小を求める問題です。単純な最小(盆地の底)を見つけるのなら玉を転がして落とせばいいだけですが、峠を見つけるには工夫がいります。

この最大の最小という考えは他にゲーム理論において重要な概念となります。ある手を打ったとき、相手がそれに対応して一番有利(=こっちに不利)な対抗策を打つことを考え、その場合の損害を一番小さくする、つまり損害の最大値を最小にするような自分の手を選べばいい、というのがゲーム理論の基本的な考えです。例えば米ソがプレイヤーで、核攻撃するか、しないかというゲーム。しない場合の最悪のシナリオは相手に一方的に攻撃されて自分だけ滅亡すること。一方攻撃する場合は世界が核の炎につつまれ全滅するのが最悪。どっちがマシかというと、負けより引き分け、と考える馬鹿なら核のボタンを押すことになります。実際ゲーム理論の創始者であるノイマンは今すぐにでも攻撃しろと騒いでたそうですが。以上余談。

峠というのはある方向にそって動くと一番高くなる点だけど、それ以外の方向では最低になる点。なのである方向だけ特殊なことをして、それ以外は坂で玉を転がすようなことをすればいい。

ダイマー法では、まず棒切れを転がす。中心が動かないようにして回転だけするようにする。そうすると、谷筋の登山道であれば棒は登山道の方向を向く。そっちに向かって登っていけばいい。棒の方向以外には動かしてもいい。たとえば登山道から横にずれてちょっと斜面をのぼっちゃった場合は、ずりずり滑って登山道にもどる。そうやって棒を回転させてその向きにすこし歩き、また同じことを繰り返す。すると谷筋の道からはずれないまま、もうこれ以上登れない、という所にやってくる。数学的にそれは峠点。

ちなみにダイマーというのはディオに「かかったなアホが!」と言って粉砕される波紋使い

2017-04-21

[][] 2+2次元

Dichronauts

Dichronauts

3+1次元に限界を感じ、5+1次元とか4+0次元でSFを書きはじめたイーガンさんですが、今度は2+2次元です。

前にも書きましたが timelikeな方向が二つあるからといって、時間が流れるのは一方向です。残りの一つは計量が負の変な空間方向となります。

作品中では南北方向がそれに対応するため、主人公たちは南北を向けないとか、生まれた時から顔が西向きか東向きかのどっちか、とか、かなり変な世界です。こんな世界で物質が存在できるのか。ちょっと初歩的な計算実験をしてみました。LJポテンシャルを使い、100個の粒子が互いに距離1程度の位置にいようとする系を考えます。

我々の世界では二次元だと以下の様に三角格子になります。

f:id:ita:20170421213425p:image

ここで距離の定義を変えてsqrt(|X^2-Y^2|)として同じ計算をしたのが以下:青と緑の線はX^2-Y^2の符号の違い。こうした集団がアボガドロ数まで拡張できるかは不明。

斜め方向に他の粒子が来てはいけないので、Nクィーン問題のようになります。http://www.info.kanagawa-u.ac.jp/~hatori/study/yousi2003-3.htm

f:id:ita:20170421213423p:image

これら粒子の相互の距離を不変に保ちつつ回転させるには、ローレンツ変換で変形させる必要があります。南北にカニ歩きしてる時に躓いて転ぶと身長が何倍にもなりリます。


そういえば以下の本に解説を書きました。あと6月に出る「白熱光」文庫本と電子版にも解説が載る予定。

2016-12-28

[] プログラミング・コンテスト

http://azspcs.com/contest/polygonalareas

なかなか奥が深い問題です。N*Nのグリッド上にN個の点を置いて順に結び多角形を作ります。以下の三つの条件を満たすこと:

  • X,Y座標ともに重複がない
  • どの辺も交差しない
  • どの辺も平行でない

この条件の元で面積がなるべく小さいものと大きいものを見つけた人の勝ち。

整数の足し算、掛け算だけで辺の平行、交差の判定や面積の計算を行うとか、O(N)の計算時間にするとか、なかなか高度な技術を要求されます。

そんなん楽勝やん、という人は是非挑戦を。登録しなくても Best scoreは見られるので計算結果がどの程度いい線いってるかは分かります。

最大サイズでも全てキャッシュに乗るサイズなんで純粋に計算の速さが効いてきます。

2016-09-18

[] ポケモンGO Best Gym Aggressor

アグレッサーとは戦闘機の訓練で仮想敵の役割をする部隊のこと。映画トップガンのヴァイパーとジェスターですね。空自では飛行教導群。

ポケモンGOでジムにポケモンを置くには敵のジムの名声を0にするか味方のジムの名声レベルを上げるかになる。

味方のジムを攻める場合、一度の戦闘で上がる名声は、こちらのCPが相手のCPより高い場合は250/CP比、低い場合は500/CP比となる。防衛側よりわずかに低いCPのポケモンで攻めて約500点を稼ぐのが効率のいい方法。

戦闘における勝ち負けは、両者の(攻撃力)*(防御力)*(HP)*(技のDPS)の大小でだいたい決まる。一方でCP値は(攻撃力)*(防御力)*sqrt(HP)で計算される。つまりCP値の計算に入っていない、技のDPSが高くてHPも高いポケモンが「CP値のわりに強い」ということになる。

いろいろな対戦について計算してみたけど、「はたく(DPS 16.2)」を持ったラッキー(次点でプクリン)が万能、ということになった。

20160920184455

注意すべきは個体値は無関係ということ。個体値の低いポケモンでもレベルを上げてCPを調節すればいい。理想的には、いろいろなCPに対応するために例えばCPが2000,1600,1200,900,600などのアグレッサー群を揃えておくことになる。なかなかそうはいかないけど。

実践して確認したいところだけど、今まで入手した2匹のラッキーのうち一匹は個体値が低くて博士に送ってしまった。残った方は「はたく」を持っていない。一匹持ってるプクリンも「はたく」じゃない。

ラッキーを入手したらダブってもアメにしないこと!

理想的にはこんな感じか。

  • 敵のジムを攻める:いぶき持ちのカイリュウ
  • ジム防衛:はがね持ちカイリュウ
  • 味方ジム攻め:はたく持ちラッキー・プクリン軍団
 
Contact: Mitsuhiro Itakura/板倉充洋
ita.mitsu spam @ gmail, sausage, spam, egg, and com
最近のコメント

#. DATE NAME

1. 05/20 ita
2. 05/20 しげしげ
3. 05/16 ita
4. 05/16 yamahachi
5. 04/29 ita
6. 04/29 umajin
7. 04/06 ita
8. 04/06 しげしげ
9. 12/30 ita
最近のTB

#. DATE  NAME

CALENDAR
<< 2018/06 >>
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30