sshfsでunmountできない場合

sshfsで接続が切れた時にunmountできなくなることがある。

そういうときはプロセスを一度切ってからunmountすればよい

pgrep -lf sshfs
kill -9 <id-of-sshfs>
diskutil unmount <mountpoint>  # for mac

pgrepの-lはlong output、-fはプロセス名以外からともマッチングさせる

Macでsshfsを使ってローカルからリモートのファイルを触る - Qiita

cannot umount or mount an sshfs volume after ssh connection cut · Issue #45 · osxfuse/osxfuse · GitHub

追記

sshfsでタイムアウトを抑制するには-o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3をフラグで与えればよい

linux - SSHFS mount that survives disconnect - Server Fault

Bond order parameter

結晶やガラスの局所的な環境を測る秩序変数のひとつにBond order parameterがある。

journals.aps.org

原子 iの配位数を N_{b}として、隣接する原子 j (j=1, \cdots ,N_{b})との距離ベクトルを \mathbf{r}_{ij}とする。

このとき次の量を考える。

 \overline{Q}_{lm} = \frac{1}{N_{b}} \sum_{j=1}^{N_{b}} Y_{lm}(\hat{ \mathbf{r} }_{ij} )

ここで Y_{lm}は球面調和関数。

この量自体はSO(3)の作用に関して不変でないが、次のように組み合わせると不変になる。

 Q_{l} := \sqrt{ \frac{ 4\pi }{ 2l + 1} \sum_{ m=-l }^{ l } | \overline{Q}_{lm} |^{2} }

この Q_{l}はBond(-orientational) order parameter(BOP)と呼ばれていて、例えばpymatgen.analysis.local_envに実装されている。

しかし、BOPを組み合わせて得られる次の不変量(論文ではthird-order invariant と呼ばれていた)の手頃な実装はなさそうだった。

$$ W_{l} = \sum_{ m_{1} + m_{2} + m_{3} } \begin{pmatrix} l & l & l \\ m_{1} & m_{2} & m_{3} \end{pmatrix} \overline{Q}_{ lm_{1} } \overline{Q}_{ lm_{2} } \overline{Q}_{ lm_{3} } $$  \hat{ W_{l} } = \frac{ W_{l} }{ \left( \sum_{ m=-l }{ l } | \overline{Q}_{lm} |^{2} } \right)^{3/2} }

ということで以下のとおり実装した。

折角書いたのでpymatgenにプルリクを投げようと思ったが、該当する秩序変数を求めるクラスが魔境と化していて何もわからないので止めておいた。

gist.github.com

SageMathを入れた

公式ドキュメントに従ってconda-forgeからSageMathをインストールしようとするとクラッシュしてsageを起動できなかったのでバイナリをダウンロードすることにした。

/usr/local/binにPATHを通してから

sudo ln -s /path/to/SageMath/sage /usr/local/bin/sage

みたいにしておくとどこからでもsageを起動できる。

GAP packages の追加

GAPのパッケージを追加するためには、.bash_profileに

export SAGE_ROOT="/path/to/SageMath/"

みたいにsageのいる場所を書いておいてから

sage -i gap_packages

とすれば大体うまくいく。

compileが必要な場合はもう少し面倒。 Caratを入れる場合を示す:

cd $SAGE_ROOT/local/share/gap/pkg
wget https://www.gap-system.org/pub/gap/gap4/tar.gz/packages/carat-2.2.3.tar.gz
tar -xzvf carat-2.2.3.tar.gz
cd carat
./configure ../..
make

InstallingGapPackages - Sage Wiki

Jupyter Notebook

jupyter notebookでsageを使うには

sage -n jupyter

と起動すれば良い。

マルチコアでtar解凍/圧縮

いつまでたってもコマンドを覚えられないので自分用にまとめておく。

tar.gz圧縮解凍(シングルコア)

圧縮

tar -zcvf archive.tar.gz archive

解凍

tar -zxvf archive.tar.gz

tar.gz圧縮解凍(マルチコア)

圧縮(8core並列の場合)

tar cv archive | pigz -9 -p 8 > archive.tar.gz

圧縮(コア数を指定しない)

tar cvf archive.tar.gz --use-compress-prog=pigz archive

解凍

tar xvf archive.tar.gz --use-compress-prog=pigz archive

pigz

無ければaptで入れる

sudo apt install pigz

参照リンク

qiita.com

stackoverflow.com

www.mk-mode.com