表达式:
参数
一个参数表达式可以包含:数字、参数、常量、函数,一元、二元操作符。参数可以有单位。
变量
个变量表达式可以包含:数字、参数、常量、变量、函数的变量表达式,一元、二元操作符。变量可以有单位。
函数
一个函数定义可以包含:输入参数、数字参数,=常数、函数的参数表达式包括输入参数,一元和二元操作符。
注:保留函数的名称可以被用于变量和参数名,反之同样。
内置的数学常数
| 描述 | 名称 | 值 |
| 双精度浮点数、机器精度 | eps | 2-52(~2.2204*10-16) |
| 虚数单位 | i,j | i,sqrt(-1) |
| 无穷大,∞ | inf,inf | 一个大于能被计算机处理的值 |
| 非数字值 | NaN,nan | 未定义或不能表示出来的值例:0/0;inf/inf |
| π | pi |
| 描述 | 名称 | 值 |
| 重力加速度 | g_const | 9.80665[m/s^-2] |
| 阿伏伽德罗常数 | N_A_const | 6.02214129[1/mol] |
| 波耳兹曼常数 | k_B_const | 1.38088e-23[j/k] |
| 真空特性阻抗 | Z0_const | 376.73031346177066[ohm] |
| 电子质量 | me_const | 9.10938291e-31[kg] |
| 元电荷 | e_const | 1.602176565e-19 |
| 法拉第常数 | F_const | 958.3365[C/mol] |
| 精细结构常数 | alpha_const | 7.2973525698e-3 |
| 万有引力常数 | G_const | 6.67384e-11[m^3/(kg*s^2)] |
| 标准状态下理想气体体积 | V_m_const | 2.2413968e-2[m^3/mol] |
| 中子质量 | mn_const | 1.674927351e-27[kg] |
| 真空磁导率 | mu0_const | 4*pi*1e-7[H/m] |
| 真空介电常数 | epsilon0_const | 8.854187817000001e-12[F/m] |
| 普朗克常数 | h_const | 6.62606957e-34[j*s] |
| 普朗克常数/2π | hbar_const | 1.05457172533629e-34[j*s] |
| 质子质量 | mp_const | 1.672621777e-27[kg] |
| 真空中的光速 | c_const | 299792458[m/s] |
| 斯忒潘—波耳兹曼常数 | sigma_const | 5.670373e-8[W/(m^2*k^4)] |
| 通用气体常数 | R_const | 8.3144621[j/(mol*k)] |
| 维恩位移定律常数 | b_const | 2.77721e-3[m*k] |
变量:主要有两种类型变量:内部保留变量和用户自定义变量,变量可以是标量也可以是字段,可以有单位。有一组有趣的变量,即空间坐标变量和因变量,这些基于空间维度和所选物理场的变量有默认的名称,comsol会创建一张变量表来表示这些变量。
内置变量
| 名称 | 描述 | 类型 |
| t | 时间 | 标量 |
| freq | 频率 | 标量 |
| lanbda | 特征值 | 标量 |
| phase | 相位角 | 标量 |
| h | 网格元素大小 | 字段 |
| meshtype | 网格数指数 | 字段 |
| meshelement | 网格元素数量 | 字段 |
| dvol | 体积比例因子变量 | 字段 |
| qual | 一个网格质量介于0(质量差)和1(完美质量) | 字段 |
| 默认名称 | 描述 | 类别 |
| X ,y ,z | 笛卡尔空间坐标 | 字段 |
| r, phi ,z | 柱状空间坐标 | 字段 |
| U ,T ,etc | 因变量 | 字段 |
Tyx、Tyy、Tt、Txt、Tyt、Txxt、Txyt、Tyxt、Tyyt、Ttt、Txtt、Tytt、Txxtt、Txytt、Tyxtt、Tyytt.其中Tx是T对x的导数,Ttt是T对t的二阶导数,如果空间坐标系有其他的名字,同理置换相应变量。
内置数字函数
| 名称 | 描述 | 使用表达式 |
| abs | 绝对值 | abs(x) |
| acos | 反余弦(弧度) | acos(x) |
| acosh | 反双曲余弦 | acosh(x) |
| acot | 反余切(弧度) | acot(x) |
| acoth | 反双曲余切 | acoth(x) |
| acsc | 反余割(弧度) | acsc(x) |
| acsch | 反双曲余割 | acsch(x) |
| arg | 相位角(弧度) | arg(x) |
| asec | 反正割(弧度) | asec(x) |
| asech | 反双曲正割 | asech(x) |
| asin | 反正弦(弧度) | asin(x) |
| asinh | 反双曲正弦 | asinh(x) |
| atan | 反正切(弧度) | atan(x) |
| atan2 | 四象限反正切(弧度) | atan2(y,x) |
| atanh | 反双曲正切 | atanh(x) |
| besselj | 第一类贝塞尔函数 | besselj(a,x) |
| bessely | 第二类贝塞尔函数 | bessely(a,x) |
| besseli | 修正第一类贝塞尔函数 | besseli(a,x) |
| besselk | 修正第二类贝塞尔函数 | besselk(a,x) |
| ceil | 返回大于或等于指定表达式的最小整数 | ceil(x) |
| conj | 共轭复数 | conj(x) |
| cos | 余弦 | cos |
| cosh | 双曲余弦 | cosh(x) |
| cot | 余切 | cot(x) |
| coth | 双曲余切 | coth(x) |
| csc | 余割 | csc(x) |
| csch | 双曲余割 | csch(x) |
| erf | 误差函数 | erf(x) |
| exp | 指数 | exp(x) |
| floor | 整数函数 | floor(x) |
| gamma | 伽马函数 | gamma(x) |
| imag | 虚部 | imag(u) |
| log | 自然对数 | log(x) |
| log10 | 以10为底对数 | log10(x) |
| log2 | 以2为底对数 | log2(x) |
| max | 两个参数中的最大值 | max(a,b) |
| min | 两个参数中的最小值 | min(a,b) |
| mod | 模数运算子 | mod(a,b) |
| psi | Psi函数及其衍生品 | psi(x,k) |
| range | 创建等差数列 | range(a,step,b) |
| real | 实数部分 | real(x) |
| round | 其最接近的整数 | round(x) |
| sec | 正割 | sec(x) |
| sech | 双曲正割 | sech(x) |
| sign | 正负号函数 | sign(x) |
| sin | 正弦 | sin(x) |
| sinh | 双曲(线)正弦 | sinh(x) |
| sqrt | 平方根 | sqrt(x) |
| tan | 正切 | tan(x) |
| tanh | 双曲正切 | tanh(x) |
acosh,acoth,acsch,asech,asinh,atanh,besselj,bessely,besseli,besselk,
erf,gamma,和psi。
内置操作函数:
这些内置的函数不同于内置的数学函数,详细见用户指南。
| NAME | NAME | NAME | NAME |
| adj | down | linsol | acope.ati |
| at | dtang | lintotal | sens |
| ballavg | error | lintotalavg | shapeorder |
| ballint | fsens | lintotalpeak | side |
| bdf | if | lintotalrms | sphavg |
| centroid | integrate | linzero | sphint |
| circavg | isdefined | mean | subst |
| circint | isinf | nojac | test |
| circumcenter | islinear | pd | timeavg |
| d | isnan | ppr | timeint |
| depends | jacdepends | pprint | try_catch |
| dest | lindev | prev | up |
| diskavg | linper | reacf | war |
| diskint | linpoint | realdot | with |
| 模板名称 | 参数和定义 | 使用表达式 |
| Anslytic | sin(x)*cos(y),可以有任意个参数 | an1(x,y) |
| Elevation | 用来输入地理点的高程 | elev1(x,y) |
| Gaussin Pulse | 高斯脉冲函数 | gp1(x) |
| Image | 用于导入图片上某点的RGB值,默认情况下函数的输出使用映射(R+G+B)/3 | im1(x,y) |
| Interpolation | 插值函数,电子表格、网格或函数,函数有一到三个参数 | int1(x,y,z) |
| Piecewise | 分段函数 | pw1(x) |
| Ramp | 斜坡函数 | rm1(x) |
| Random | 随机函数生产器,可以用来模拟白噪声 | rn1(x,y) |
| Rectangle | 矩形函数,生成0和1之间的数 | rect1(x) |
| Step | 阶跃函数是一个锋利的过渡,函数有一个参数 | step1(x) |
| Triangle | 三角函数 | tri1(x) |
| Waveform | 波形函数 | wv1(x) |
| External(Global Definitions only) | 外部函数接口,可以使用外部函数 | myextfunc(a,b) |
| MATLAB(Global Definitions only) | MATLAB函数接口 | mymatlabfunc(a,b) |
| 优先级 | 符号 | 描述 |
| 1 | () {} . | 分组、列表、范围 |
| 2 | ^ | 次方 |
| 3 | ! - + | 一元逻辑:不是,减去,加上 |
| 4 | [] | 中括号 |
| 5 | */ | 乘除 |
| 6 | + - | 加减 |
| 7 | <<= >>= | 小于,小于等于,大于,大于等于 |
| 8 | == != | 比较;等于,不等于 |
| 9 | && | 逻辑与 |
| 10 | ‖ | 逻辑或 |
| 11 | , | 元素分离器在列表 |