Tools for camphor
Project description
camptools
camphor用ツール
インストール
pip install camptools
コマンド一覧
ジョブを投入し、ジョブIDを記録する
$ nmysbatch <job file> -m <message> -d <directory>
jobを投入し、job情報を記録する(job_status.sh, joblist.shなどに使用)
directoryを指定した場合、指定ディレクトリに移動後にqsubを実行
$ mysbatch <job file> -m <message> -d <directory>
jobを投入し、job情報を記録する(job_status.sh, joblist.shなどに使用)
directoryを指定した場合、指定ディレクトリに移動後にqsubを実行
投入されるjobファイルは、パラメータファイルplasma.inpに応じてノード数を決定し置換したもの
python環境にf90nmlが必要
<job file>の形式は以下のようにすること
1. #SBATCH --rsc p=32:t=1:c=1
実行中のジョブ状態を確認する
$ job_status
jobの状態と標準出力の一部を出力
$ joblist
jobの状態を出力
これまでに投入したジョブ一覧を表示する
$ jobhistory -n <num outputs> --correct_date
過去のjobのリストを表示
<job id>, <directory>, <message>, <date>
--correct_date:
*.o*ファイルから日付を読み取りjobに日付情報を付加する
(この日付情報は保存されるため毎回呼ばなくても良い)
EMSESの継続ジョブを投入する
$ extentsim <from-dir> <to-dir> --run
EMSESの継続シミュレーションを行う
from-dirに存在するmpiemses3D, job.sh, SNAPSHOT1, generate_xdmf.pyをto-dirにコピーする
runフラグを指定するとmyqsubによるジョブの投入まで行う
ディレクトリセットを作成する
$ mymkdir --key <key> <directory>
keyで指定した構成のディレクトリを作成する
ディレクトリ構成の設定は~/copylist.jsonに記載する
copylist.json
{
"main": [
"/home/**/*****/large0/Github/MPIEMSES3D/bin/mpiemses3D",
"/home/**/*****/large0/job.sh",
"/home/**/*****/large0/plot_example.ipynb"
],
"emses": [
"/home/**/*****/large0/Github/MPIEMSES3D/bin/mpiemses3D",
],
}
簡易的なジョブファイルを作成する
$ cmdjob [-h] {register,create} ...
$ cmdjob register -ug <usergroup> -s <system> --local
作成するjobの設定を登録する
localフラグを指定するとそのディレクトリ以下での設定が変更される
$ cmdjob create <command> -o <output>
commandを実行するジョブファイルを作成する
出力ファイル名はoutputで指定(デフォルト: tmpjob.sh)
よく使うディレクトリのパスを記録する
$ checkpoint {register, clear, list}
$ checkpoint register -m <message>
カレントディレクトリをチェックポイントとして保存する
$ checkpoint clear -a -i <index>
チェックポイントを削除する
-aフラグを指定するとすべてのチェックポイントを削除する
-iフラグを指定すると指定した番号をチェックポイントを削除する
$ checkpoint list
チェックポイントのリストを表示する
システム内で同期をとる
$ filesync {lock, wait, notify}
$ filesync lock <key>
<key>名のロックを確保する (~/.camptools内にロック情報を書き込む)
$ filesync wait <key>
<key>名のロックが確保されていたら待機する
$ filesync notify <key>
<key>名のロックを解放する (~/.camptoolsからロック情報を削除する)
preinp
preinp は、Fortran の NAMELIST 入力ファイル用プレプロセッサを Python で実装した軽量ツールです。
マクロを用いた定義・演算により、手作業では煩雑になりがちなパラメータ生成を自動化できます。
オプション一覧
| オプション | 説明 | デフォルト |
|---|---|---|
-d, --directory |
入力ファイル所在ディレクトリ | ./ |
-i, --preinp_file |
前処理対象ファイル名 | plasma.preinp |
-o, --output |
出力ファイル名 | plasma.inp |
-v, --verbose |
詳細ログを表示 | オフ |
実行例
# 入力ディレクトリ './input' の 'plasma.preinp' を処理
preinp -d input -i plasma.preinp -o plasma.inp
# 詳細ログ付き
preinp -v
マクロ記法
!!>で始まる行をマクロ処理の対象とし、末尾に\を付けると行継続できます。- 一時変数の定義:
var symbol = valueで計算中に利用する変数を登録。 - 定数定義:
symbol = valueまたはsymbol(index) = val1, val2で、最終的に出力される NAMELIST 値を指定。 - 算術演算・条件式:
+,-,*,/,min(a,b),x if cond else yなど。 - 単位変換: (オプション)
unit.<name>.trans(value)/unit.<name>.reverse(value)を利用可能。
Example
plasma.preinp:
!!key dx=[0.001],to_c=[10000.0]
&simulation
!!> var nx = 128
!!> var ny = 64
!!> total_cells = nx * ny
!!> velocity = unit.v.trans(10000)
/
生成される plasma.inp:
&simulation
total_cells = 8192
velocity = 0.33356409519815206
/
単位変換についての補足
物理単位系 → EMSES単位系変換 (unit.<name>.trans(value))EMSES単位系 → 物理単位系変換 (unit.<name>.reverse(value))
<name> 一覧
B = Magnetic flux density [T]
C = Capacitance [F]
E = Electric field [V/m]
F = Force [N]
G = Conductance [S]
J = Current density [A/m^2]
L = Inductance [H]
N = Flux [/m^2s]
P = Power [W]
T = Temperature [K]
W = Energy [J]
a = Acceleration [m/s^2]
c = Light Speed [m/s]
e = Napiers constant []
e0 = FS-Permttivity [F/m]
eps = Permittivity [F/m]
f = Frequency [Hz]
i = Current [A]
kB = Boltzmann constant [J/K]
length = Sim-to-Real length ratio [m]
m = Mass [kg]
m0 = FS-Permeablity [N/A^2]
mu = Permiability [H/m]
n = Number density [/m^3]
phi = Potential [V]
pi = Circular constant []
q = Charge [C]
q_m = Charge-to-mass ratio [C/kg]
qe = Elementary charge [C]
qe_me = Electron charge-to-mass ratio [C/kg]
rho = Charge density [C/m^3]
t = Time [s]
v = Velocity [m/s]
w = Energy density [J/m^3]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
camptools-0.11.0.tar.gz
(31.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file camptools-0.11.0.tar.gz.
File metadata
- Download URL: camptools-0.11.0.tar.gz
- Upload date:
- Size: 31.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efd418288d4789598f65ad6165afb0da15377e4dac2396c7dd987550cc13e964
|
|
| MD5 |
21690a409d0301718c5d83f4c202a482
|
|
| BLAKE2b-256 |
d1902cffc07651193e2858a463aa696975cd0881d94edf9b13a70ccd3670c4ce
|
File details
Details for the file camptools-0.11.0-py3-none-any.whl.
File metadata
- Download URL: camptools-0.11.0-py3-none-any.whl
- Upload date:
- Size: 39.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55577cac1e4e0d95acdf84f51e4fadc4eceba069bbbaf4ff848f0ebd2b823710
|
|
| MD5 |
066920217992ab3bcf91611d748960c6
|
|
| BLAKE2b-256 |
c1e9c2a1647b01611c7b4a4806bd3802b3c48d9ede303e6d180abdb19432f751
|