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

tiny_simulations.md_packets_FuncAnimation.make_gif_filename(args)[ソース]

概要: GIF保存用のファイル名を生成します。

詳細説明:

スクリプト名、シミュレーションメソッド、初期モード、散乱体モード、 ばね定数k2、k4の値に基づいてファイル名を構築します。 生成されるファイル名は、シミュレーション設定を反映したものになります。

引数:
param args:

argparse.Namespace: コマンドライン引数を格納するオブジェクト。

戻り値:
returns:

str: 生成されたGIFファイル名。

tiny_simulations.md_packets_FuncAnimation.safe_stem(s)[ソース]

概要: スクリプトのステムをWindowsで安全な出力ファイル名にサニタイズします。

詳細説明:

ファイル名に使用できない文字(数字、英字、アンダースコア、ハイフン以外)を アンダースコアに置換し、前後のアンダースコアを削除します。 これにより、異なるOS環境でも安全なファイル名が生成されます。

引数:
param s:

str: サニタイズする文字列。

戻り値:
returns:

str: サニタイズされた文字列。