engineering-context-init について
engineering-context-init は、工学計算向けの Python 環境を初期化するスキルです。計算環境を統一したい技術者向けに、物理定数、Pint の単位レジストリ、利用可能な科学計算ライブラリ、描画設定、数値精度をまとめて設定します。
主な機能
- 01一般的な物理定数の読み込み
- 02Pint 単位レジストリの設定
- 03利用可能な科学計算ライブラリの読み込み
- 04デフォルトの描画スタイル設定
- 05NumPy の表示精度の統一
活用シーン
- 01工学計算の標準パラメーターを読み込む
- 02単位変換を含む計算を行う
- 03科学データをすばやくプロット
- 04セッション間で数値出力を統一
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ soljourner/ claude-engineering-skills --skill engineering-context-initインストール後、Claude Code で/engineering-context-initを入力して読み込まれたか確認します。
同梱ファイルconstants.mdinit-script.py
詳細
エンジニアリング環境初期化ヘルパー
目的
次の要素を含む一貫した環境を用意し、エンジニアリングセッションを標準化します。
- 標準的な物理定数
- 次元解析用の単位レジストリ
- 一般的な科学計算ライブラリ
- デフォルトのプロット設定
- 数値計算の精度設定
このヘルパーを使うと、エンジニアリングセッションを始めるたびに同じ環境を繰り返し設定する必要がなくなり、一貫性を保ちながら時間を節約できます。
設定内容
標準定数
- g:標準重力加速度(9.80665 m/s²)
- R:普遍気体定数(8.314462618 J/(mol·K))
- R_air:空気の比気体定数(287.05 J/(kg·K))
- gamma_air:空気の比熱比(1.4)
- P_atm:標準大気圧(101325 Pa)
- T_std:標準温度(288.15 K / 15°C)
- rho_air_std:標準空気密度(1.225 kg/m³)
- mu_air_std:標準状態における空気の粘性係数(1.789e-5 Pa·s)
- nu_air_std:標準状態における空気の動粘性係数(1.460e-5 m²/s)
- c_light:光速(299792458 m/s)
- sigma_sb:ステファン=ボルツマン定数(5.670374419e-8 W/(m²·K⁴))
単位レジストリ(Pint)
- 次元解析用に設定されたpint UnitRegistry
- 単位換算をサポート
- 単位を考慮した計算
一般的なインポート
- NumPy:配列操作と数学関数
- SciPy:科学計算(最適化、積分、補間、特殊関数)
- Matplotlib:プロットと可視化
- Pandas:データ操作(利用可能な場合は任意)
デフォルトのプロットスタイル
- 図のサイズ:10x6インチ
- グリッドを有効化
- LaTeX風のフォント描画(利用可能な場合)
- プロフェッショナルな配色
精度設定
- NumPyの表示精度:小数点以下6桁
- 小さい値の表示を抑制
- セッション間で一貫した書式
使用方法
クイックスタート
セッションの開始時に初期化スクリプトを実行するだけです。
exec(open('init-script.py').read())
または、init-script.py の内容をPythonセッションに直接コピーして貼り付けます。
例1:単位を使った基本計算
# After running init-script.py
from pint import UnitRegistry
ureg = UnitRegistry()
# Define a pressure with units
pressure = 500 * ureg.kPa
print(f"Pressure: {pressure}")
print(f"Pressure in psi: {pressure.to('psi')}")
# Calculate ideal gas properties
T = 300 * ureg.kelvin
V = 2 * ureg.m**3
n = (pressure * V / (R * T)).to('mol')
print(f"Moles of gas: {n:.2f}")
例2:大気計算
# After running init-script.py
# Calculate density at altitude using standard constants
altitude = 5000 # meters
T = T_std - 0.0065 * altitude # Temperature lapse rate
P = P_atm * (T / T_std) ** (g / (0.0065 * R_air))
rho = P / (R_air * T)
print(f"At {altitude}m altitude:")
print(f"Temperature: {T:.2f} K ({T-273.15:.2f} °C)")
print(f"Pressure: {P:.2f} Pa ({P/1000:.2f} kPa)")
print(f"Density: {rho:.4f} kg/m³")
例3:流れの計算
# After running init-script.py
# Reynolds number calculation
velocity = 50 # m/s
length = 2 # m characteristic length
Re = velocity * length / nu_air_std
print(f"Reynolds number: {Re:.2e}")
if Re > 5e5:
print("Flow is turbulent")
else:
print("Flow is laminar")
例4:手軽なプロット
# After running init-script.py
import numpy as np
import matplotlib.pyplot as plt
# The plotting style is already configured
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.figure()
plt.plot(x, y, linewidth=2)
plt.xlabel('x [rad]')
plt.ylabel('sin(x)')
plt.title('Example Plot with Pre-configured Style')
plt.show()
例5:単位換算
# After running init-script.py
# Power calculation with unit conversions
force = 1000 * ureg.N
velocity = 30 * ureg.m / ureg.s
power = (force * velocity).to('kW')
print(f"Power: {power}")
print(f"Power in hp: {power.to('hp'):.2f}")
print(f"Power in BTU/hr: {power.to('BTU/hr'):.2f}")
含まれるファイル
- SKILL.md:このドキュメントファイル
- init-script.py:実行できる完全な初期化スクリプト
- constants.md:すべての定数と値の一覧
注意事項
- スクリプトはライブラリが利用可能か確認し、利用可能なものだけをインポートします
- matplotlibが利用できない場合、プロット設定はスキップされます
- pandasが利用できない場合、インポートは行われません(任意)
- 特に記載がない限り、すべての定数はSI単位を使用します
- 単位を考慮した計算のため、pint UnitRegistryは
uregとして作成されます
カスタマイズ
init-script.pyを編集して、次の内容を変更できます。
- 分野固有の定数を追加する
- デフォルトのプロットスタイルを変更する
- 精度設定を調整する
- ライブラリのインポートを追加する
- pintにカスタム単位定義を設定する
ベストプラクティス
- 新しいエンジニアリングセッションを始めるたびに初期化を実行します
- よく使う定数を反映するようにスクリプトを最新の状態に保ちます
- 追加したカスタム定数を文書化します
- 物理量を扱う計算にはすべて単位レジストリを使用します
- すぐに利用できるよう、スクリプトをプロジェクトディレクトリに保存します
コメント
Markdown 対応