Fluent の SRS (e.g. LES) で入口境界の Vortex Method に 1000 を超える渦を与えたい → scheme コマンドが必要
LES などの SRS (scale-resolved simulation) を行う際、入口境界に変動を与えるための Fluctuating Velocity method として Vortex Method を使う場合、公式は資料で「最低でも入口の face 数の 1/4 以上の個数の渦を生成するように指定しろ」と言っている。しかし実際やってみるとわかるが、1000 を超える数字を入れようとするとエラーになり、1000 が上限である。つまり入口の face 数*1が 4000 以上だと問題になる。実際には4000ではギリギリなのだから、3500とかそれくらいが限界ということだろう。え?60 x 60 = 3600 なんですけど?こんなもんが限界?ふざけんな。
…と、思った人が当然いたのだろう。公式カスタマポータルの "Vortex Method (VM): Increasing the Number of Vortices – Lifting the Upper Limit" という資料に対処方法が書いてある。転載して怒られると嫌なのでコピペはしないでおく。4行の scheme コードで「許容される最大値を増やす」ことが可能で、その後で普通に 1000 以上を選択すればいいようだ。
…しかし公式が「現代の計算では1000って足りないよね」と正しく認識してるんなら、とっとと上限を直せよ…。2019R1 はまだ試してないけど、直ってるだろうか?だめかな(懐疑的)
Fluent の TUI (journal) で Cell Zone Conditions の設定を変える (e.g. ELES) には → define/boundary-conditions/fluid にある
Fluent で、Cell Zone Conditions の設定を変えたいことがある。Mesh motion とか、embedded LES (ELES) とか。しかし TUI からこの設定を変える方法がなかなか見つからなかった。もうサポートに聞こうかな?と思ったところで見つけた。
define/boundary-conditions/fluid
ここから設定できる。
なお TUI manual には…
fluid
Set boundary conditions for a zone of this type.
としか書いてない。ふざけんな…気づくかこんなん…(いつものこと)。
Fluent で、確実に gzip 圧縮されたデータを吐き出す → root-name に .gz を付ければいい
だいぶ前から悩んでいたこれだが、同僚に教えてもらった。まさかこんな方法とは…自分だけならずっと気づかなかった。ありがたい。
GUI の場合
Workbench から起動した Fluent ではそもそも root-name の記入欄がないので、GUI からは設定不能。TUI を使うしかない。
Windows から直接起動した Fluent なら GUI で root-name の記入欄があるので、そこに好きな名前を .gz
つきで入力すれば良い、のだと思う(やったことない)。
TUI の場合
Workbench から起動した Fluent や、HPC での利用の場合、TUI になる。この場合、file/auto-save/root-name
の指定時に .gz
を付けてしまえばいい。journal file としては下記のような感じ:
;; Autosave root-name file/auto-save/root-name "my-file.gz"
一見これだと「my-file.gz-2-00001.dat みたいになって、gz は単に文字列と解釈されるのでは?」と思えるのだが、意外に賢くてちゃんと gzip 形式にしてくれる*1。
*1:逆にファイル名に .gz を使えないということになりそうだが、使いたい人はいないだろう…。
現在走ってるjobの終了を待って次のジョブを投入したい→tailを使う
普通に考えると wait かな、って思うんだけど、けっこう前に走らせたジョブがあって、という場合、
[pid] is not a child of this shell
とか怒られてうまくいかない。いろいろググったところ、なんと tail を使えというお言葉が…:
bash - WAIT for "any process" to finish - Stack Overflow
どうやら --pid= というオプションがあったらしい…。そこで、
#!/bin/bash PID=終わるのを待ってるジョブの番号 tail -f --pid=${PID} /dev/null time nohup ./a.out > log.txt &(みたいな、次のジョブのコマンド)
という超短いスクリプトを書いて、wait_run.sh みたいな名前で保存して、
$ ./wait_run.sh &
とやったら、行けた模様。もちろんジョブ番号やコマンドを引数にすればもっといい…というかたぶんワンライナーで書けるんだとは思う。ただ、単にセミコロンでつなぐとバックグラウンドに回ってくれないかなんかで、うまくいかなかった。bashのことが何もわかっていない…orz けど動いたので、いいか…
連番などのファイルを pbzip2 で圧縮して別のディレクトリに出力
前提
サンプルコード
$ for file in *.dat; do pbzip2 -m1000 -ck "${file}" > "/cygdrive/f/path_to_dir/${file}.bz2"; done &
オプションは、-c はたぶん必須。他はお好みで。
参考リンク
関連するブログ内エントリ
mintty (Cygwin) + tmux で、Ctrl-Tab, Ctrl-Shift-Tab で cycle windows する
Stack Overflow のエントリとか、いろいろ探したけど、結局 mintty 公式の wiki に書いてあった…:
- Add Ctrl+Tab for tmux section to Wiki · Issue #757 · mintty/mintty · GitHub
- https://github.com/mintty/mintty/wiki/Tips#using-ctrltab-to-switch-session-in-gnu-screen
要するに、
- mintty 上で右クリックして Options... > Keys で、Switch window を untick する(Ctrl-Tab, Ctrl-Shift-Tab がこれを使っているため。知らなかった…)。
- ~/.tmux.conf に、上のリンク先に書いてあるとおりのコードをコピペして保存する。
- tmux を起動する。Window をいくつか開くと、Ctrl-Tab, Ctrl-Shift-Tab で cycle できるようになっている。便利!
いちおうコードをコピペしておくと、
set -s user-keys[0] "\e[1;5I" set -s user-keys[1] "\e[1;6I" bind-key -n User0 next-window bind-key -n User1 previous-window
Measurement of time-varying kinematics of a dolphin in burst accelerating swimming
基本情報
- Title: Measurement of time-varying kinematics of a dolphin in burst accelerating swimming
- URL/DOI: https:// doi.org/10.1371/journal.pone.0210860
内容のまとめ
Introduciton
イルカの遊泳は、巡航の速度計測はけっこうあったが、瞬間的な加速の計測は少なく、とくに尾ビレによるストロークごとの詳細の計測はあまりなかった。
Methods
Smoothing
The time series of the obtained 3-D coordinates were smoothed using a weighted 91-point weighted moving average with Hamming window designed to impose a 15 Hz cut-off frequency to eliminate noise due to the manual tracking.
前に加賀屋さんと少し議論したけれど、ここでは「マニュアルトラッキング(特徴点を時系列にポチポチとマウスでクリックする)によるノイズの除去のためにまずスムージングをしている。それから、1階と2階の2次中心差分(中央差分)を使って速度と加速度をそれぞれ求めている。ただし、時系列点の水増しはしていないのと、中心差分に普通は i-1, i+1 を使うところ敢えて i-2, i+2 を使っている(さらにスムースにするため、とされている)。
3D geometry
Fig. 4 のあたりで、正直に「スキャンした形状はこんなグニャグニャだったので、こうやって整形しました」ということを説明している。実際にはCTしたものそのままなんてCFDできるわけはなく*1、必ず整形が入るのに、その過程を詳細に記述している論文は非常に少なく感じられる。個人的な印象に過ぎないと言われればそうかもしれないが…。
Results
Discussion
コメント
ざっと読んだ限りですが,kinematics部分はfig7で示された通りとても美しい話にまとまっている一方,dragとthrustの分解に関するkinetics部分はmethodとしては悪くないと思うものの先行研究との整合性の解釈の部分で辛いかなあ(でもまあ考察ですからねぇ)という小並感
— oanus (@oanus) 2019年2月2日
古来言われてるpower-mass比の問題って,特に速度測定のようなkinematics部分は確実に精度が上がっててこの研究の試行/寄与も大きいと思うんですが,結局drag-thrust分解の精度,特にdrag 成分の推定が改善してるのかどうなのかよくわからんかったです
— oanus (@oanus) 2019年2月2日
dragの測定方法は(物理)水槽でも数値水槽でもいいんですけど,なにをdragと称しているかという定義問題のような気がしてきて,これpower-mass比の問題をfig13のC_Dのばらつきで説明しちゃだめですかね?
— oanus (@oanus) 2019年2月2日
でもタイトルがkinematicsだから,いいのかなって (なげやり)
— oanus (@oanus) 2019年2月2日
*1:FEMならまだ良いのかもだが。