|
ビルトイン定数 変数・関数
加速空洞
|
COMSOLビルトイン定数・変数・関数COMSOL の数式入力で使う予約名と関数
COMSOL では,数式入力で使えるビルトイン定数・変数・関数をまとめています.定数名や予約変数,基本的な関数の使い方を確認したいときの入口として使えるページです.
目次
ビルトイン定数・変数
数学・数値定数と物理定数
表 1 と表 2 に示す数学・数値定数や物理定数は,変数定義,境界条件,初期値,後処理の式の中で,そのまま定数名として使えます.数値を直接入力するよりも,式の意味が分かりやすく,桁の打ち間違いも防げます.例えば,円周率は 2*pi*r,真空中の光速度は freq/c_const,真空の誘電率は epsilon0_const*E^2/2 のように書けます.
数学・数値定数の pi, i, j, eps, inf/Inf, nan/NaN は予約名なので,パラメータ名や独自変数名として再定義しない方が安全です.物理定数は SI 単位つきで,COMSOL の単位系とそのまま組み合わせられます.なお,ネイピア数 e は独立した定数名ではなく exp(1) で与えます.exp(x) は e^x,log(x) は自然対数なので,減衰や成長の式は exp(-t/tau) のように書きます.e_const はネイピア数ではなく電気素量です.
数学・数値定数
| 定数名 | 値 | 内容 |
| pi | 3.141592653589793 | 円周率 |
| i, j | sqrt(-1) | 虚数単位 |
| eps | 2.220446049250313E-16 | 機械イプシロン |
| inf, Inf | ∞ | 無限大 |
| nan, NaN | NaN | 非数 |
物理定数
| 定数名 | 値 | 単位 | 内容 |
| c_const | 299792458 | m/s | 真空中の光速度 |
| e_const | 1.60217663E-19 | C | 電気素量 |
| epsilon0_const | 8.85418782E-12 | F/m | 真空の誘電率 |
| mu0_const | 1.25663706E-6 | H/m | 真空の透磁率 |
| Z0_const | 376.730313 | Ω | 自由空間のインピーダンス |
| me_const | 9.10938371E-31 | kg | 電子の質量 |
| mp_const | 1.67262193E-27 | kg | 陽子の質量 |
| mn_const | 1.6749275E-27 | kg | 中性子の質量 |
| k_B_const | 1.380649E-23 | J/K | ボルツマン定数 |
| h_const | 6.62607015E-34 | J·s | プランク定数 |
| hbar_const | 1.05457182E-34 | J·s/rad | 換算プランク定数 |
| sigma_const | 5.67037442E-8 | kg/(s3·K4) | シュテファン・ボルツマン定数 |
| b_const | 0.00289777196 | m·K | ウィーンの変位則定数 |
| a0_const | 5.29177211E-11 | m | ボーア半径 |
| alpha_const | 0.00729735256 | 1 | 微細構造定数 |
| N_A_const | 6.02214076E23 | 1/mol | アボガドロ定数 |
| V_m_const | 0.0224139695 | m3/mol | 理想ガス体積 (273.15 K, 1 気圧) |
| R_const | 8.31446262 | J/(mol·K) | 普遍気体定数 |
| F_const | 96485.3321 | C/mol | ファラデー定数 |
| G_const | 6.6743015E-11 | m3/(kg·s2) | 万有引力定数 |
| g_const | 9.80665 | m/s2 | 重力加速度 |
ビルトイン変数
表 3 に示すビルトイン変数は,COMSOL が解析の種類や評価位置に応じて自動的に与える変数です.時間,周波数,座標,法線ベクトル,メッシュ情報,ソルバ状態などを,式の中でそのまま参照できます.
ただし,すべての変数が常に使えるわけではなく,物理インターフェース固有の変数は設定した physics に依存します.例えば,温度は T,変位は u, v, w や solid.u,電位は V,圧力は p などです.詳しい一覧や,その場で利用可能な変数は,各入力欄の fx ボタンから確認できます.
COMSOLのビルトイン変数
| 変数名 | 内容 | 型 |
| t | 時間 | Scalar |
| freq | 周波数 | Scalar |
| lambda | 固有値 | Scalar |
| phase | 位相角 | Scalar |
| numberofdofs | 自由度の総数.有限要素の未知数の数 (連立方程式のサイズ). | Scalar |
| issolving | 解析中なら 1,それ以外は 0. | Scalar |
| istimestepping | 時間依存解析でタイムステップを進めている間は 1,それ以外は 0. | Scalar |
| x, y, z, r, X, Y, Z, R | 座標変数.x, y, z は直交座標,r は軸対称半径,X, Y, Z, R は写像や代替表現で使われる座標. | Field |
| s, s1, s2 | エッジや境界のパラメータ. | Field |
| n, nx, ny, nz, nr | 単位法線ベクトルとその成分. | Field |
| tx, ty, tz, tr | エッジの接線ベクトル. | Field |
| t1x, t1y, t1z, t2x, t2y, t2z | 境界の接線ベクトル. | Field |
| un, unx, uny, unz | 上向き法線ベクトル. | Field |
| dn, dnx, dny, dnz | 下向き法線ベクトル. | Field |
| h | 局所的なメッシュ要素サイズ. | Field |
| dom | 領域,境界,エッジ,ポイントの番号. | Field |
| meshtype | メッシュ要素の種類を表すインデックス. | Field |
| meshelement | メッシュ要素ごとの要素番号. | Field |
| meshelementall | メッシュ全体で一意な通し番号. | Field |
| meshvol | 要素の体積・面積・長さ (線形化したメッシュ要素基準). | Field |
| dvol | 積分で用いるヤコビアンのスケール因子. | Field |
| optSolInd | 複数の最適化解を保存した場合の解番号. | Scalar |
| qual | メッシュ品質の指標.0: poor quality,1: perfect quality. | Field |
| reldetjac | 曲線要素のヤコビアンに関する指標. | Field |
| reldetjacmin | 各要素における reldetjac の最小値. | Field |
| linearizedelem | 線形化された要素の内部で 1,それ以外で 0. | Field |
| niterCMP | 非線形反復の反復番号. | Scalar |
| gmg_level | 幾何マルチグリッドのレベル. | Scalar |
| timestep | 現在のタイムステップ. | Scalar |
| particleindex | 粒子のインデックス (正の整数). | Scalar |
| particlestatus | 粒子の状態を表すフラグ. | Scalar |
ビルトイン関数
COMSOL では,式を入力できる場所で,多くのビルトイン関数をそのまま使えます.基本的な数値計算だけでなく,複素数,ベクトル,特殊関数,条件分岐,微分や総和なども扱えます.例えば,指数関数は exp(x),自然対数は log(x),絶対値は abs(x),条件分岐は if(cond,a,b) のように書きます.単位つきの値や物理定数とも混在できるので,2*pi*freq,sigma_const*T^4,if(T>Tout,h*(T-Tout),0) などの式を直接記述できます.
多くの関数は,場の変数,パラメータ,数値に対してそのまま使えます.ただし,引数の単位整合は必要で,角度は通常 rad で扱います.詳しい構文,引数の順序,単位,使用例は,各入力欄の fx ボタンから Functions and Constants を開くと確認できます.
COMSOLのビルトイン関数
| 分類 | 主な関数 | 内容・例 |
| 四則演算・代数 | abs(x), sign(x), sqrt(x), exp(x), log(x), log10(x), x^y | 絶対値,符号,平方根,指数・対数,累乗など. |
| 三角関数・双曲線関数 | sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x) | おなじみの関数です.例: sin(2*pi*f*t) |
| 複素数関数 | real(z), imag(z), conj(z), arg(z), abs(z) | 実部,虚部,共役,偏角,絶対値を扱う.例: abs(V) |
| 特殊関数 | erf(x), erfc(x), gamma(x), gammainc(x,a), besselj(n,x), bessely(n,x), besseli(n,x), besselk(n,x), hankelh1(n,x), hankelh2(n,x) | 誤差関数,ガンマ関数,ベッセル関数,ハンケル関数など. |
| ベクトル・行列 | dot(a,b), cross(a,b), norm(a) | 内積,外積,ノルム.例: dot(u,grad(T)) |
| 論理・条件分岐 | if(cond,a,b), min(a,b), max(a,b) | 条件に応じて式を切り替える.例: if(T>Tout,h*(T-Tout),0) |
| 微分・総和 | d(expr,var), sum(expr,k,k0,k1) | 変数微分や整数添字の総和.例: d(u,t), d(T,x), sum(a[k]^2,k,1,N) |
| 座標・幾何補助 | atan2(y,x), sqrt(x^2+y^2+z^2) | 象限を考慮した角度や位置ベクトルの大きさを扱う. |
| 平滑化・窓関数 | step/ramp の平滑化関数 | 不連続を滑らかに近似したい場合に使う.詳細は fx ブラウザ参照. |
ページ作成情報
参考資料
更新履歴
| 2026年01月22日 |
ページの新規作成 |
| 2026年03月06日 |
タイトルと導入文を内容に合わせて修正 |
|