draw_unit_cells プログラム仕様
単位格子および超格子を描画するためのスクリプト。
- 概要:
結晶学における単位格子(unit cell)や、その繰り返しからなる超格子(supercell)を3Dで可視化します。
- 詳細説明:
格子定数と角度を入力として、3D空間における単位格子を構築し、指定された数だけ繰り返して描画します。 基本ベクトルを計算し、平行六面体を積み重ねることで超格子の形状を表現します。
関連リンク: draw_unit_cells_usage
- crystal.draw_unit_cells.draw_cell(ax, va, vb, vc, origin, linewidth=0.5)
- 概要:
指定された基本格子ベクトルと原点に基づいて単一の単位格子を描画します。
- 引数:
- param ax:
3DプロットのAxesオブジェクト。
- type ax:
matplotlib.axes.Axes
- param va:
第1基本格子ベクトル。
- type va:
numpy.ndarray
- param vb:
第2基本格子ベクトル。
- type vb:
numpy.ndarray
- param vc:
第3基本格子ベクトル。
- type vc:
numpy.ndarray
- param origin:
描画開始点。
- type origin:
numpy.ndarray
- param linewidth:
線の太さ。
- type linewidth:
float
- 戻り値:
- returns:
None
- rtype:
None
- crystal.draw_unit_cells.draw_supercell_plot(a, b, c, alpha, beta, gamma, nx=3, ny=3, nz=3, elev=5.9, azim=-67.55, draw_lattice_vectors=False, font_size=24)
- 概要:
指定された格子定数と角度に基づき、超格子を描画し、画像として保存して表示します。
- 引数:
- param a:
格子定数aの長さ。
- type a:
float
- param b:
格子定数bの長さ。
- type b:
float
- param c:
格子定数cの長さ。
- type c:
float
- param alpha:
角度α(度)。
- type alpha:
float
- param beta:
角度β(度)。
- type beta:
float
- param gamma:
角度γ(度)。
- type gamma:
float
- param nx:
X方向の単位格子の繰り返し数。
- type nx:
int
- param ny:
Y方向の単位格子の繰り返し数。
- type ny:
int
- param nz:
Z方向の単位格子の繰り返し数。
- type nz:
int
- param elev:
3Dプロットの視点仰角。
- type elev:
float
- param azim:
3Dプロットの視点方位角。
- type azim:
float
- param draw_lattice_vectors:
基本格子ベクトルを描画するかどうかのフラグ。
- type draw_lattice_vectors:
bool
- param font_size:
軸ラベルのフォントサイズ。
- type font_size:
int
- 戻り値:
- returns:
None
- rtype:
None
- crystal.draw_unit_cells.lattice_vectors(a, b, c, alpha, beta, gamma)
- 概要:
結晶の格子定数と角度から基本格子ベクトルを計算します。
- 詳細説明:
直交座標系における3つの基本格子ベクトル va, vb, vc を導出します。 va はX軸に沿い、vb はXY平面にあり、vc は3次元空間に配置されるように定義されます。
- 引数:
- param a:
格子定数aの長さ。
- type a:
float
- param b:
格子定数bの長さ。
- type b:
float
- param c:
格子定数cの長さ。
- type c:
float
- param alpha:
角度α(度)。vb と vc のなす角。
- type alpha:
float
- param beta:
角度β(度)。va と vc のなす角。
- type beta:
float
- param gamma:
角度γ(度)。va と vb のなす角。
- type gamma:
float
- 戻り値:
- returns:
3つの基本格子ベクトル va, vb, vc。
- rtype:
tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]
- crystal.draw_unit_cells.main()
- 概要:
メインの実行フロー。特定のパラメータで超格子を描画します。
- 戻り値:
- returns:
None
- rtype:
None
- crystal.draw_unit_cells.set_equal_aspect(ax, points)
- 概要:
Matplotlib 3Dプロットのアスペクト比を全ての軸で等しく設定します。
- 引数:
- param ax:
3DプロットのAxesオブジェクト。
- type ax:
matplotlib.axes.Axes
- param points:
表示範囲を決定するための点群。
- type points:
numpy.ndarray
- 戻り値:
- returns:
None
- rtype:
None