2024年8月18日日曜日

core MP135

core MP135 を購入。
Python コードを動かすまでの手順です。

balena-eacharを管理者モードで起動
microSDにイメージを焼く

USBケーブル接続後、シリアル通信
ID: root
Pass: root
$ passwd root

ユーザー追加
$ adduser "user name"
sudo group に追加
$ gpasswd -a "user name" sudo

root パーティション拡張
$ cd /usr/local/m5stack
$ bash resize_mmc.sh 

LANに接続後、SSH接続
IP確認
$ ifconfig

・自動起動させるプログラムをWinSCPでコピー。
・python3 で稼働確認。
・vimでrc.local を変更し、自動起動設定。


double-layer two-phase formulation その3

double-layer two-phase SPHの実装が概ね完了しました。

実装を通し、理論と実際を理解できました。
現状、2点の問題があるようです。

1つ目は seepage force (drag force) の計算式。

これまでの文献にも、DualSPHysicsでも同じ式が使われています。が、透水係数の大きな場合にしか実用的ではないようです。1e-4㎝/sオーダーだと、γ/kが大きくなりすぎて、少しの速度差が大きな拘束力を生みます。土塊がすべろうとしても、地下水がその動きに追随するまで拘束されるような挙動も見受けられました。

2つ目は密度変化。

土の間隙内の水が地表に浸出した場合、水相の密度は大きく変化しますが、この表現が困難。いえ、pressureの式で参照している基準密度を変更すれば容易に反映できるのですが、粒子が重なり合い、挙動がやや不安定でした。初期配置も面倒で、実用的ではないですね。水収支はともかく、土の動きだけを正しく反映したい、ということであれば計算の軽い single-layer two-phase formulation でよいと思います。

土相側でも層毎に密度を変えている場合、その境界で密度が訛るのは現状では仕方がないと考えています。が、この密度変化の問題は将来的に何とか解決されそうな気がします。たとえば、土層別にフラグを付けて、個別に計算するとか。それが実現象を正しく反映するようになれば、より実務に浸透していくのでしょう。

今年前半より取り組んできた SPH コードの修正と実装は、これで一旦終了です。
結果的には単相での計算はOK、2相は「定性的評価」まで、土木分野の実務で求められる諸問題には適用が難しい場合が多いと判断されます。が、もう少しだと思います。

将来に期待しましょう。

2024年8月13日火曜日

double-layer two-phase formulation その2

振り返ると、double-layer での実装に取り掛かってから1か月以上かかっています。

以下を参考に始めたのですが、試行錯誤の結果、最終的にはPersianSPHの文献と同じような形に落ち着きました。
A coupled fluid-solid SPH approach to modelling flow through deformable porous media - ScienceDirect


2次元、3次元共に土、水の相互作用までは動くのですが、地下水が地上に出た場合の密度変化をうまく表現できません。相互作用の検証も終わっていませんので、まだ時間がかかりそうです。

SPHでの2層2相表現は定性的にとどまると伺ったことがあります。それほど新しいものでもないので、国内でも実装されている方はいらっしゃいます。その先生がおっしゃるのですから、そうなのかもしれません。

まだ1か月。もう少し追いかけてみましょう。

2024年8月6日火曜日

システム修復

片道4時間、日帰りで、観測システムを修復してきました。

Linuxに不慣れだった後輩君が設定していたため細部の設定に漏れがあったこと、私の管理ミスでこれを見逃していたこと、夏場の高温でハードの一部に不具合が発生していたこと、最終的には停電がトリガーとなったこと等、いくつかの要因が重なり問題となりました。で、現場まで赴くことに。

原因を突き止めてしまえばその場で対応できる、比較的簡単なソフト側の対策で済んだのですが、熱だけはハード対策が必要そうでした。が、これは高価な製品を購入しないと対応できません。うーん。


システム修復後、ついでに DNS を設定。GUIからなぜか反映されていなかったので、コマンドで変更。

$ sudo vi /etc/systemd/resolved.conf

[Resolve]
DNS=8.8.8.8

$ sudo systemctl restart systemd-resolved.service


apt update は成功しますが、upgrade で失敗します。古いリストが残ったままなのでしょう。リストを全消ししてから再度 update & upgrade。upgrade には時間がかかりました。

$ sudo rm -r /var/lib/apt/lists/*


ひとまず周辺環境を含め目についた問題は全てつぶしておきました。今回は停電により、隠れていた問題も同時に顕在化しました。最初に見逃さないようにしないと、このように不要な対応が発生します。気を付けましょう。