emout.utils package
Submodules
emout.utils.emsesinp module
- class emout.utils.emsesinp.InpFile(filename=None, convkey=None)[source]
Bases:
object
パラメータファイルを管理する.
- nmlf90nml.Namelist
Namelistオブジェクト
- remove(key, index=None)[source]
パラメータを削除する.
- Parameters:
key (str) – グループ名(&groupname)またはパラメータ名(parameter)
index (int, optional) – 特定のインデックスのみ削除する場合指定する, by default None
- save(filename, convkey=None)[source]
パラメータをファイルに保存する.
- Parameters:
filename (str or Path) – 保存するファイル名
convkey (UnitConversionKey, optional) – 単位変換キー, by default None
- class emout.utils.emsesinp.UnitConversionKey(dx, to_c)[source]
Bases:
object
単位変換キー.
- dx
グリッド幅[m]
- Type:
float
- to_c
EMSES単位系での光速の値
- Type:
float
- property keytext
単位変換キーの文字列を返す.
- Returns:
単位変換キーの文字列
- Return type:
str
- classmethod load(filename)[source]
ファイルから単位変換キーをロードする.
ファイルの一行目に以下のような文字列が書かれている場合dx, to_cを読み取る. !!key dx=[1.0],to_c=[10000.0]
- Parameters:
filename (str or Path) – 単位変換キーを含むファイル.
- Returns:
単位変換キー
- Return type:
UnitConversionKey or None
emout.utils.group module
- class emout.utils.group.Group(objs, attrs=None)[source]
Bases:
object
複数のオブジェクトをまとめて処理するクラス.
- objs
オブジェクトのリスト
- Type:
list[Any]
Notes
以下の関数以外の組み込み関数は管理するオブジェクトに対して実行する. - repr : return ‘Group([objs]) - str : return ‘Group([objs])’ - format : return ‘Group([objs])’ - len : return len(objs) - iter : return iter(objs) - in : return other in objs
Examples
以下のように複数のオブジェクトをまとめて処理することができる.
>>> group = Group([[1, 2], [3, 4]]) >>> print(group) Group([[1, 2], [3, 4]]) >>> print(group[0]) Group([1, 3]) >>> group.append(5) >>> print(group) Group([[1, 2, 5], [3, 4, 5]])
- filter(predicate)[source]
オブジェクトのうち関数が真を返すもののみで新しいグループを生成する.
- Parameters:
predicate (Callable[Any, bool]) – フィルタ関数
- Returns:
新しいグループ
- Return type:
Examples
>>> group = Group([1, 2, 3]) >>> group.filter(lambda n: n <= 2) Group([1, 2])
emout.utils.poisson module
- class emout.utils.poisson.DirichletPoissonBoundary(axis: int, boundary_values: Tuple[float] = (0.0, 0.0))[source]
Bases:
PoissonBoundary
- property fft_backward: Callable[[ndarray], ndarray]
- property fft_forward: Callable[[ndarray], ndarray]
- class emout.utils.poisson.FFT3d(forwards: List[Callable[[ndarray], ndarray]], backwards: List[Callable[[ndarray], ndarray]])[source]
Bases:
object
- class emout.utils.poisson.NeumannPoissonBoundary(axis: int, boundary_values: Tuple[float] = (0.0, 0.0))[source]
Bases:
PoissonBoundary
- property fft_backward: Callable[[ndarray], ndarray]
- property fft_forward: Callable[[ndarray], ndarray]
- class emout.utils.poisson.PeriodicPoissonBoundary(axis: int, boundary_values: Tuple[float] = (0.0, 0.0))[source]
Bases:
PoissonBoundary
- property fft_backward: Callable[[ndarray], ndarray]
- property fft_forward: Callable[[ndarray], ndarray]
- class emout.utils.poisson.PoissonBoundary(axis: int, boundary_values: Tuple[float] = (0.0, 0.0))[source]
Bases:
object
- property axis: int
- property boundary_values: Tuple[float]
- abstract property fft_backward: Callable[[ndarray], ndarray]
- abstract property fft_forward: Callable[[ndarray], ndarray]
- emout.utils.poisson.poisson(rho: ndarray, dx: float, boundary_types: List[str] = ['periodic', 'periodic', 'periodic'], boundary_values: Tuple[Tuple[float]] = [(0.0, 0.0), (0.0, 0.0), (0.0, 0.0)], btypes: str | None = None, epsilon_0=8.8541878128e-12)[source]
Solve Poisson’s equation with FFT.
- Parameters:
rho (np.ndarray) – 3-dimentional array of the charge density [C/m^3]. The shape is (nz+1, ny+1, nx+1).
boundary_types (List[str] of {'periodic', 'dirichlet', 'neumann'},) – the boundary condition types, by default [‘periodic’, ‘periodic’, ‘periodic’]
boundary_values (List[Tuple[float]]) – the boundary values [(x-lower, x-upper), (y-lower, y-upper), (z-lower, z-upper)], by default [(0., 0.), (0., 0.), (0., 0.)]
btypes (str) – string consisting of prefixes of boundary conditions, by default None. If this is set, it takes precedence over boundary_types.
dx (float, optional) – the grid width [m], by default 1.0
epsilon_0 (_type_, optional) – the electric constant (vacuum permittivity) [F/m], by default cn.epsilon_0
- Returns:
3-dimentional of the potential [V].
- Return type:
np.ndarray
emout.utils.units module
- class emout.utils.units.UnitTranslator(from_unit, to_unit, name=None, unit=None)[source]
Bases:
object
単位変換器.
- from_unit
変換前の値
- Type:
float
- to_unit
変換後の値
- Type:
float
- ratio
変換係数 (変換後 = 変換係数 * 変換前)
- Type:
float
- name
単位の名前(例: “Mass”, “Frequency”)
- Type:
str or None
- unit
単位(例: “kg”, “Hz”)
- Type:
str or None
- reverse(value)[source]
単位逆変換を行う.
- Parameters:
value (float) – 変換後の値
- Returns:
変換前の値
- Return type:
float
- class emout.utils.units.Units(dx: float, to_c: float)[source]
Bases:
object
EMSES用の単位変換器を管理する.
SI単位系からEMSES単位系への変換を行う.
- B
Unit translator for Magnetic flux density [T]
- C
Unit translator for Capacitance [F]
- E
Unit translator for Electric field [V/m]
- EC
Unit translator for Electric conductivity [S/m]
- F
Unit translator for Force [N]
- G
Unit translator for Conductance [S]
- H
Unit translator for Magnetic field [A/m]
- J
Unit translator for Current density [A/m^2]
- L
Unit translator for Inductance [H]
- N
Unit translator for Flux [/m^2s]
- P
Unit translator for Power [W]
- R
Unit translator for Resistance [Ω]
- T
Unit translator for Temperature [K]
- W
Unit translator for Energy [J]
- a
Unit translator for Acceleration [m/s^2]
- c
Unit translator for Light Speed [m/s]
- dx
Grid length [m]
- e
Unit translator for Napiers constant []
- e0
Unit translator for FS-Permttivity [F/m]
- eps
Unit translator for Permittivity [F/m]
- f
Unit translator for Frequency [Hz]
- i
Unit translator for Current [A]
- kB
Unit translator for Boltzmann constant [J/K]
- length
Unit translator for Sim-to-Real length ratio [m]
- m
Unit translator for Mass [kg]
- m0
Unit translator for FS-Permeablity [N/A^2]
- me
Unit translator for Electron mass [kg]
- mi
Unit translator for Proton mass [kg]
- mu
Unit translator for Permiability [H/m]
- n
Unit translator for Number density [/m^3]
- phi
Unit translator for Potential [V]
- pi
Unit translator for Circular constant []
- q
Unit translator for Charge [C]
- q_m
Unit translator for Charge-to-mass ratio [C/kg]
- qe
Unit translator for Elementary charge [C]
- qe_me
Unit translator for Electron charge-to-mass ratio [C/kg]
- rho
Unit translator for Charge density [C/m^3]
- t
Unit translator for Time [s]
- to_c
Light speed in EMSES
- translators()[source]
変換器のリストを返す.
- Returns:
変換器のリスト
- Return type:
list(UnitTranslator)
- v
Unit translator for Velocity [m/s]
- w
Unit translator for Energy density [J/m^3]
emout.utils.util module
- class emout.utils.util.DataFileInfo(filename)[source]
Bases:
object
データファイル情報を管理するクラス.
- property abspath
ファイルの絶対パスを返す.
- Returns:
ファイルの絶対パス
- Return type:
Path
- property directory
ディレクトリの絶対パスを返す.
- Returns:
ディレクトリの絶対パス
- Return type:
Path
- property filename
ファイル名を返す.
- Returns:
ファイル名
- Return type:
Path
- class emout.utils.util.QuantizedPillowWriter(fps=5, metadata=None, codec=None, bitrate=None)[source]
Bases:
PillowWriter
色数を256としたPillowWriterラッパークラス.
- grab_frame(**savefig_kwargs)[source]
Grab the image information from the figure and save as a movie frame.
All keyword arguments in savefig_kwargs are passed on to the ~.Figure.savefig call that saves the figure. However, several keyword arguments that are supported by ~.Figure.savefig may not be passed as they are controlled by the MovieWriter:
- dpi, bbox_inches: These may not be passed because each frame of the
animation much be exactly the same size in pixels.
format: This is controlled by the MovieWriter.