md_packets_FuncAnimation プログラム仕様
1D coupled oscillator wave-packet collision / scattering with argparse options and optional GIF save.
- Site mass:
m_site[i]
- Bond spring constants:
k2_bond[i] : spring between site i and i+1 k4_bond[i] : nonlinear spring between site i and i+1
- Potential:
- V = sum_i [ 1/2 k2_bond[i] (u[i+1]-u[i])^2
1/4 k4_bond[i] (u[i+1]-u[i])^4 ]
- Force:
Let du[i] = u[i+1] - u[i] Let g[i] = k2_bond[i] du[i] + k4_bond[i] du[i]^3
- Then for an interior site j:
F[j] = g[j] - g[j-1]
- tiny_simulations.md_packets_FuncAnimation.build_argparser()[ソース]
概要: コマンドライン引数を解析するためのArgumentParserオブジェクトを構築します。
- 詳細説明:
1次元結合振動子波束散乱シミュレーションの様々なパラメータを定義します。 これには、基本的なシミュレーション設定、波束パラメータ、散乱体パラメータ、 および出力/表示に関するオプションが含まれます。
- 戻り値:
- returns:
argparse.ArgumentParser: 構築されたArgumentParserオブジェクト。
- tiny_simulations.md_packets_FuncAnimation.fmt_param(x)[ソース]
概要: パラメータ値をファイル名に適した短い文字列に変換します。
- 詳細説明:
浮動小数点数などの値を、.`を`p`に、-`を`m`に置換することで、 ファイル名に安全な形式に変換します。
- 引数:
- param x:
Any: 変換するパラメータ値。
- 戻り値:
- returns:
str: ファイル名に適した短い文字列。
- tiny_simulations.md_packets_FuncAnimation.main(argv=None)[ソース]
概要: 1次元結合振動子波束散乱シミュレーションのメインエントリポイントです。
- 詳細説明:
この関数は、コマンドライン引数を解析し、シミュレーションを初期化、実行し、 結果を可視化します。具体的には、以下の処理を行います。 1. 引数の解析とパラメータの初期設定。 2. サイト質量と結合ばね定数配列の準備。 3. `scatterer_mode`に基づいた散乱体の設定。 4. 初期波束(変位と速度)の生成。 5. シミュレーション中の状態(FFTスナップショット、エネルギー履歴)の記録。 6. Matplotlib FuncAnimationによるシミュレーションのリアルタイム可視化。 7. オプションでシミュレーション結果のアニメーションGIF保存。 8. FFTおよびエネルギーの時間履歴のプロットによる詳細分析。 9. シミュレーション終了時のエネルギー保存のレポート。
- 引数:
- param argv:
list, optional: コマンドライン引数のリスト。 デフォルトはNoneで、`sys.argv`を使用します。
- 戻り値:
- returns:
None