モチベーション
合成の為に秤量をするのだが,その計算を行うソフトウェアがWindowsにしか対応しておらず不便でならない.
WEBで実装することでOSに依らず使えるようにしようという算段だ.
制作物
https://gist-4d0c6.web.app/hyoryo.html
ソースコード
https://gist.github.com/slnq/65ec66de4d338ec9e1ae35a1fbd7d314
ほとんどをChatGPTに書いてもらった.
とはいえ関数ごとに書いてもらったので,同じ処理を別の関数に分けている部分などは設計も碌にせずに書き始めた私のせいだ.
機能
target | : | 合成したい試料の化学式 |
---|---|---|
reagents | : | 合成に用いる試薬の化学式 |
targets mass | : | 合成したい試料の重さ [g] |
x | : | xを定義する |
y | : | yを定義する |
decimals | : | 表示する小数点以下の桁数 |
target
合成したい試料の化学式を書く.
複数の化学式を書きたい場合はLaOBiSSe, LaOBiS1.4Se0.6
のように,カンマ区切りで書く.
置換したい要素が1つある場合はLaOBiS2-xSex
のように,変数xを用いて書く.
置換したい要素が2つある場合はLaO1-xFxBiS2-ySey
のように,変数x, yを用いて書く.
reagents
合成に使いたい試薬の化学式を書く.
まず2つ以上になるだろうからBi. S, La2S3, La2O3, LaF3, Bi2Se3
のようにカンマ区切りで書く.
x
targetで変数xを使う場合のxの定義を書く.
x_min, x_max, x_step
x1, x2, x3, ...
1つ目のようにfor文のような書き方と2つ目のように列記する書き方のどちらも出来る.
例として0から1まで0.2ずつ変化させたい場合は
0, 1, 0.2
0, 0.2, 0.4, 0.6, 0.8, 1.0
と書く.
y
targetで変数を2つ使う場合は,yの定義をxのときと同様に書く.
decimals
小数点以下を何桁表示するか選べる.
空白だったり0を入力した場合はJavaScriptのnumber型の仕様で17桁が表示され邪魔になるだろうから,使う秤に合わせた数値を入力するといい.
URLパラメーター
以上のフォームの入力によってURLを動的に変更し,そのURLでフォームに自動入力できるようにした.
また,URLを開いた時に自動的にフォームを送信し,結果を表示できるようにした.
すべてをChatGPTが書いてくれた.
表示
変数なしの場合
行ヘッダーにtargetが,列ヘッダーにregentsが表示され,表の中が計算した重さになる.
変数なしの表を表示する例
1変数xのみの使用の場合
行ヘッダーにxを代入したtargetが,列ヘッダーにregentsが表示され,表の中が計算した重さになる.
1変数の表を表示する例
2変数x, yの使用の場合
行ヘッダーにxが,列ヘッダーにyが表示される.その表の中にx, yを代入したtargetをヘッダーにもち,regentsを列ヘッダーにもつ表が表示される.
2変数の表を表示する例
所感
だいたいをChatGPTに書いてもらったので達成感などは無い.
それが故に値があっているのか心配で,元からあるソフトの結果と見比べながら使っている.
AIは出力を保証してくれない.