COMSOL Multiphysics 使用过程中经常会需要使用一些软件内置的函数、变量、常数等,我们在此对常用的做出整理,方便朋友们使用。
内置函数算符
d(f,x) | f对x方向的微分 1. 使用d算符来计算一个变量对另一个变量的导数,如:d(T,x)指变量T对x求导,而d(u^2,u)=2*u等; 2. 如果模型中含有任何独立变量,建模中使用d算符会使模型变为非线性; 3. 在解的后处理上使用d算符,可以使用一些预置的变量,如:uxx,d(ux,x),d(d(u,x),x)都是等效的; 4. pd算符与d算符类似,但对独立变量不使用链式法则; 5. d(E,TIME)求解表达式E的时间导数; 6. dtang算符可以计算表达式在边界上的切向微分(d算符无法计算),在求解域上使用dtang等价于d,dtang只求解对坐标变量的微分,但需要注意的是并不是所有的量都有切向微分。
| pd(f,x) | f对x方向的微分 pd和d的区别: d(u+x,x)=ux+1,d(u,t)=ut,u和x,t等有关 pd(u+x,x)=1,pd(u,t)=0,u是独立的和x,t无关 | dtang(f,x) | 边界上f对x的切向微分 在边界上d(u,x)不能定义,但是可以使用dtang(u,x),dtang付出基本的微分法则,如乘积法则和链式法则,但是需要指出的是,dtang(x,x)不一定等于1。 | test(expr) | 试函数 用于方程弱形式的算符,test(F(u,∇u))等价于: | var(expr,fieldname1, fieldname2, ...) | 变异算子 用于弱形式,它和test算符功能相同,但是仅用于某些特定的场中; 如var(F(u,∇u, v,∇v),a),变量u是a场的变量,而v不是。 试函数之只作用于变量u。 | nojac(expr) | 对Jacobian矩阵没有贡献 将表达式排除在Jacobian计算外,这对那些对Jacobian贡献不大,但是计算消耗很大的变量是否有效; k-e 湍流模型就是利用 nojac算符来提高计算性能的例子。 | up(expr) | 上邻近估算表达式 up,down,mean算符只能用在边界上,对于一个表达式或变量在边界处两边不连续,COMSOL通常显示边界的平均值,使用up,down可计算某个方向上的值。 | down(expr) | 下邻近估算表达式 | mean(expr) | 邻近边界上的平均值 | depends(expr) | 查看某个表达式是否依赖于求解结果 | isdefined(variable) | 变量是否定义 | dest(expr) | 在目标端计算积分耦合表达式 dest算符强制将source points上的表达式用在destination points上。 例如:u/((dest(x)-x)^2+(dest(y)-y)^2) | if(cond,expr1,expr2) | 条件表达式 例如:if(x==0,1,sin(x)/x) | isinf(expr) | 表达式的值是否是无穷大 | islinear(expr) | 解是否是线性函数 | isnan(expr) | 表达式是否是非数 | with | 调用某个解 例如with(3,u^2)指调用解3的u^2用于本次求解; with只能用于解的后处理,不能用于建模; | at | 调用解的某个时间 例如:at(12.5,u) | timeint | 表达式的时间积分 timeint(t1,t2,expr,tol,minlen),t1,t2需要是实数,expr是表达式,tol是容差,默认大小为1e-8,minlen设置积分的最短路径,它需要是正数,默认长度为1e-6。 timeint只能用于解的后处理,不能用于建模; | timeavg | 表达式的时间积分平均值 timeavg(t1,t2,expr,tol,minlen) | linpoint | 调用线性化点 | lindev | 计算在线性化点的表达式 当解存储了一个线性化点,那么表达式在线性化点上先线性化,然后用当前的解来计算; 特别的:当f线性依赖于解,那么lindev(f)=f,如果不依赖则lindev(f)=0; 如果解没有线性化点,那么会报错; | lintotal | 调用线性化点的和和线性扰动 | lintotalavg | 在各相中计算平均lintotal | lintotalrms | 在各相中计算lintotal的RMS lintotalrms(f)=sqrt(lintotalavg(abs(f)^2)) | lintotalpeak | 在各相中计算lintotal的最大值 | linsol | 调用标准解,如linpoint或lintotal | linzero | 计算表达式的根 | linper | 标记一个荷载项用于线性扰动求解器 | ppr | 精确的派生修复 用polynomial-preserving recovery计算表达式中所有用lagrange形函数差分的变量,如 e=ux+vy ppr(e^2)=(ppr(ux)+ppr(vy))^2 | pprint | 在各求解域群中精确派生修复 用这些操作符来计算梯度计算中的离散误差 ux-pprint(ux) | reacf | 反应力和反应流的精确积分 用于表面积分,如在结构力学中,u,v与x,y位移有关,用reacf(u),reaf(v)计算x,y方向上的反应力; reacf在弱贡献中无效; | adj(expr) | 用伴随灵敏度计算表达式 | fsens(expr) | 用函数灵敏度计算表达式 | sens(expr,i) | 用第二个参数向前灵敏度计算表达式 ∂u/∂q=sens(u,q) | realdot(a,b) | 两个复数的点积 realdot(a,b), real(a*conj(b)) | shapeorder(variable) | 差分一个变量使用的单元级数 | prev(expr,i) | 在i步前计算表达式 向后Euler法: (u-prev(u,1))/timestep | bdf(expr,i) | 应用级数为i的向后差分公式 bdf(u,1) = (u-prev(u,1))/timestep | subst(expr, expr1_orig, , expr1_subst,...) | 用其他变量或表达式替换一个表达式 subst(hmnf.nutildeinit,p,pin_stat) | circint(r,expr), circavg(r,expr), diskint(r,expr), diskavg(r,expr), sphint(r,expr), sphavg(r,expr), ballint(r,expr), ballavg(r,expr) | 计算在一个特殊的形状,曲率为r时的表达式积分或平均值 | scope.ati(coordinate exprs,expr) | 计算表达式在i维下的表达式coordinate exprs值 root.mod1.at1(0,y,dom)在2D的一条边的点(0,y)上计算dom |
|
|
range函数的用法 range(a,(b-a)/(n-1),b) 从a到b均匀生成n个数 10^range(-3,3) 产生:10-3,10-2, …, 103 1^range(1,10) 产生 10个1
数学函数
函数名 | 描述 | 引用方法 | abs | 绝对值 | abs(x) | acos | 反余弦 | acos(x) | acosh | 反双曲余弦 (in radians) | acosh(x) | acot | 反余切 (in radians) | acot(x) | acoth | 反双曲余切 (in radians) | acoth(x) | acsc | 反余割 (in radians) | acsc(x) | acsch | 反双曲余割 (in radians) | acsch(x) | arg | 相位角(in radians) | arg(x) | asec | 反正割 (in radians) | asec(x) | asech | 反双曲正割 (in radians) | asech(x) | asin | 反正弦 (in radians) | asin(x) | asinh | 反双曲正弦(in radians) | asinh(x) | atan | 反正切 (in radians) | atan(x) | atan2 | 四象限反正切 (in radians) | atan2(y,x) | atanh | 反双曲正切 (in radians) | atanh(x) | besselj | 一类Bessel函数 | besselj(a,x) | bessely | 二类Bessel函数 | bessely(a,x) | besseli | 一类改性Bessel函数 | besseli(a,x) | besselk | 二类改性Bessel函数 | besselk(a,x) | ceil | 上约数 | ceil(x) | conj | 复共轭 | conj(x) | cot | 余切 | cot(x) | coth | 双曲余切 | coth(x) | csc | 余割 | csc(x) | csch | 双曲余割 | csch(x) | eps | 相对精度 | eps | erf | 误差函数 | erf(x) | exp | 指数函数 | exp(x) | floor | 下约数 | floor(x) | gamma | Gamma函数 | gamma(x) | i,j | 虚数单位 | i | imag | 虚部 | imag(u) | inf | 无穷 | inf | log | 自然对数 ln | log(x) | log10 | 对数,底数为10 | log10(x) | log2 | 对数,底数为2 | log2(x) | max | 最大值 | max(a,b) | min | 最小值 | min(a,b) | mod | 取模 | mod(a,b) | NaN, | 非数 | nan | pi | Pi | pi | psi | Psi函数和它的衍生物 | psi(x,k) | range | 建立一个数列 | range(a,step,b) | real | 实部 | real(u) | round | 四舍五入 | round(x) | sec | 正割 | sec(x) | sech | 双曲正割 | sech(x) | sign | 符号函数 | sign(u) | sin | 正弦 | sin(x) | sinh | 双曲正弦 | sinh(x) | sqrt | 根号 | sqrt(x) | tan | 正切 | tan(x) | tanh | 双曲正切 | tanh(x) |
预置的变量
时间 | t | 频率 | freq | 特征值 | lambda | 相位角 | phase | 笛卡尔坐标系空间坐标 | x, y, z | 柱坐标空间坐标 | r, phi, z | 边/面法向 | n, nx, ny, nz, nr,nphi | 边切向 | tx, ty, tz, tr,tphi | 面切向 | t1x, t1y, t1z, t2x, t2y, t2z | 机器精度 | eps | 虚数单位 | i, j | 圆周率 | pi | 网格信息相关变量 | h, dom, meshtype, meshelement, dvol, qual, reldetjac, reldetjacmin |
预置的常数
描述 | 名称 | 值 | 重力加速度 | g_const | 9.80665[m/s^2] | 阿伏伽德罗常数 | N_A_const | 6.02214129e23[1/mol] | 玻尔兹曼常数 | k_B_const | 1.3806488e-23[J/K] | 真空特征阻抗 | Z0_const | 376.73031346177066[ohm] | 电子质量 | me_comst | 9.10938291e-31[kg] | 元电荷 | e_const | 1.602176565e-19[C] | 法拉第常数 | F_const | 96485.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.8977721e-3[m*K] |
其他的平滑函数
flsmhs | y=flsmhs(x,scale) 在阶跃的两端都存在连续过冲的平滑Heaviside函数。 在-scale < x < scale处,flsmhs和flsmsign为7阶多项式,因此它的2阶导数仍然连续;它满足理想Heaviside函数,因此存在一定量的过冲。 | flsmsign | y = flsmsign(x,scale) 近似于符号函数y=sign(x)在-scale < x < scale处平滑过渡 | flc1hs | 不含过冲的一阶连续导数的平滑Heaviside函数,导数fldc1hs | flc2hs | 不含过冲的二阶连续导数的平滑Heaviside函数,导数fldc2hs |
|