GKV-developers / gkvp

Gyrokinetic Vlasov simulation code GKV
12 stars 5 forks source link

tracer粒子(fcs=0)の扱い #9

Open smaeyama opened 3 years ago

smaeyama commented 3 years ago

gkvp_f0.61でfcs=0のTracer粒子を加えても、バルクプラズマに影響なく計算が完遂するように修正したのは良いのですが、fcs=0のせいで、tracer粒子の熱流束の値 hst/gkvp.qes.0.001 や流体量バイナリデータなどもすべて0しか入らず、tracer粒子に関する情報が出力されるのは、cnt/ファイルとfxv/ファイルのみになってしまいます。実質、せっかくtracer粒子を入れて解いても、解析が一切できないことに・・・。

ひとまず、十分小さな fcs=1.0d-20などと値を入れることで対処可能ですが、fcs=0とすることにこだわるなら、GKVの出力データの規格化を変更する必要があります。

smaeyama commented 3 years ago

ところで、fcsを徐々に小さくしていったとき、field-particle collision operator の扱いってどうなるのでしょう?

厳密にfcs=0では、単にtracer扱いしたいという意味で、バルクプラズマはバルクプラズマ間の衝突のみ、tracer(fcs=0)はバルクプラズマとのtest-particle collisionのみというのが妥当そうに感じます。

ところで、fcs<<1では、バルクプラズマはほぼバルクプラズマ間の衝突のみに漸近していくでしょうが(密度の低いtracer fcs<<1との衝突はほぼ効かない)、tracerがバルクから受けるfield-particle collision operator は、直感的に言って、バルク側がtracerとの衝突で受ける運動量変化が小さい n_balkv_balk >> delta(n_balkv_balk) からと言って、それと保存するように決定されるTracer側の運動量変化は有限で残りそう delta(n_balkv_balk) ~ delta(n_tracerv_tracer) ~ n_tracer*v_tracer? な気もします。

fcs=1.0d-20などとした有限fcs tracer計算の時に、上記は単に私の勘違いでtracer粒子に対するfield-particle collision operatorに修正不要か、それとも、field-particle collision operatorを人為的に0とするtracer粒子モデル特有の扱いが必要になるか、いかがでしょうか?

th-watanabe commented 3 years ago

ちゃんと式で確認していませんが、tracer側への寄与は、単位粒子当たりで考えればよいはずで、有限で残るのではないでしょうか。

実際のコードで、fcs=0やfcsをごく微小な値にした時に問題なく動作するかは別問題ですが。

smaeyama commented 3 years ago

渡邉先生からのプルリクエストへの返信をこちらに転載。

th-watanabe commented 13:45 Mar 18, 2021

出力データについては、fcs(is)を掛けないで、各成分の密度で規格化した量を出しておくのもよいかもしれませんね。考え方ですが、fcs(is)=0のトレーサーの時だけ、別扱いにするとか。

(gkvp_f0.61では、) tracer粒子に対する影響[fcs(ia)=0]の場合は、tracer粒子に対するfield-particle operatorはゼロとすることにしたgy_fld(ia,ib)=0。つまり、主プラズマ(電子や主イオン)については、主プラズマ間の衝突のみ。

ここは良いと思いますが、

(gkvp_f0.61では、) tracer粒子(fcs=0)については、tracerが主プラズマから受けるテスト衝突項のみとし、主プラズマから受けるfield-particle operatorは0とした。

の部分については、主プラズマによるトレーサーへの衝突効果はfield particle operatorとして入るようにできないのでしょうか。検討してみましょう。