前言

          最近想通过COMSOL实现一些比较高级的操作,就对内置数学函数和内置运算符相关章节的帮助文档进行了阅读。在COMSOL中使用各类算子及运算符能够在建模时起到很大的帮助,本文将对帮助文档中的相应章节进行翻译(粗略介绍),对于具体的用法,还需自行查阅相关的章节,特别是各类内置运算符,可以将本文收藏需要的时候再看。

一、内置数学函数

名称描述语法
abs绝对值abs(x)
acos反余弦(弧度单位)acos(x)
acosh反双曲余弦acosh(x)
acot反余切(弧度单位)acot(x)
acoth反双曲余切acoth(x)
acsc反余割(弧度单位)acsc(x)
acsch反双曲余割acsch(x)
arg相位角(弧度单位)arg(z)
asec反正切(弧度单位)asec(x)
asech反双曲正切asech(x)
asin反正弦(弧度单位)asin(x)
asinh反双曲正弦asinh(x)
atan反正切(弧度单位)atan(x)
atan2四象限反正切(弧度单位)atan2(y,x)
atanh反双曲正切atanh(x)
besselj第一类贝塞尔函数besselj (n,z)
bessely第二类贝塞尔函数bessely (n,z)
bessei第一类修正贝塞尔函数bessei(n,z)
besselk第二类修正贝塞尔函数besselk(n,z)
binomial二项式系数binomial(n,k)
ceil最接近的整数ceil (x)
conj共轭复数conj (x)
cos余弦cos(z)
cosh双曲余弦cosh(x)
cot余切cot(x)
coth双曲余切coth(x)
csc余割csc(z)
csch双曲余割csch(x)
erf错误函数erf (x)
erfinv逆错误函数erfinv(x)
exp指数函数exp(x)
factorial非负整数的阶乘factorial(n)
floor最近前整数floor (x)
gamma伽马函数gamma(x)
gcd最大公约数gcd(a,b)
imag虚部imag(x)
lcm最小公倍数lcm(a,b)
legendreLegendre多项式legendre(l,x)
legendre(l,m,x)
log自然对数log(x)
log10以10为底的对数log10(x)
log2以2为底的对数log2(x)
max两个参数的最大值max(x,y)
min两个参数的最小值min(x,y)
mod取模运算符min(x,y)
poweps幂函数poweps(x,n)
psi函数和它的导数psi(k,x)
random随机函数,均匀分布random(x,y,…)
randomnormal随机函数,高斯分布randomnormal(x,y,…)
range创建一个数字范围range(start,step,end)
real实部real(x)
round舍入到最接近的整数或指定精度p(十进制位数)的最接近的数字round(x)
round(x,p)
sec正割sec(z)
sech双曲正割sech(x)
sign符号函数sign(x)
sin正弦sin(z)
sinh双曲正弦sinh(x)
sphericaly球谐函数sphericaly(l,m,theta,phi)
sphericalyr实球谐函数sphericalyr(l,m,theta,phi)
sqrt平方根sqrt(x)
sqrteps对于需要在零附近求值的表达式的导数使用平方根sqrteps(x)
tan正切tan(z)
tanh双曲正切tanh(x)
zernikeZernike多项式函数zernike(n,m,r,phi)

二、内置运算符

         有特殊的内置运算符可用于建模和评估结果;这些操作符类似于函数,但行为不同。许多物理接口使用这些运算符来实现方程和特殊功能。

名称描述
adj(expr)使用伴随灵敏度评估表达式
at随时访问解决方案
atlocal计算表达式在给定的局部坐标在每个网格元素
attimemax
attimemin
在另一个表达式达到最大值或最小值时计算一个表达式
atxd
atonly
noxd
在额外维度中求值表达式
ballint(r,expr)
ballavg(r,expr)
circint(r,expr)
circavg(r,expr)
diskin(r,expr)
diskavg(r,expr)
sphint(r,expr)
sphavg(r,expr)
以半径r计算表达式在指定形状上的积分或平均值
bdf(expr,i)对表达式应用i阶后向微分公式
bndenv(expr)求表达式expr在粒子或射线在边界处的坐标。
centroid(expr)在点所属的网格单元的质心中计算表达式expr
circumcenter(expr)求表达式expr在该点所属的网格单元的圆周上的值
d(f,x)微分算子,f关于x的微分
depends(expr)
depends(expr,var)
如果表达式expr分别依赖于解或var,则为True
dest(expr)在目标端计算集成耦合表达式的部分
down(expr)对表达式求值,定义在相邻的下端
dtang(f,x)在边界上定义的表达式f对空间维度x的切向微分
elemint(gporder,expr)使用指定的高斯点模式在每个网格元素上积分表达式
elemavg(gporder,expr)使用指定的高斯点模式计算表达式的元素平均值
elemgpmin(gporder,expr)求表达式的元素最小值高斯点与指定的模式
elemgpmax(gporder,expr)求表达式的元素最大值高斯点与指定的模式
emetric(exprx,expry)
emetric(exprx,expry,exprz)
全局向量长度的平方(exprx, expry, exprz)在网格元素自己的度量中计算
env(expr)求表达式expr在一个域内粒子或射线的坐标处的值
error(‘string’)生成带有错误消息字符串的错误
frame.dt(expr)计算对指定坐标系的时间导数
fsens§,fsensimag§相对于控制变量p的功能灵敏度。对控制变量p虚部的函数灵敏度
gpeval(gporder,expr)
gpeval(gporder,expr,exorder)
以指定的高斯点模式评估表达式,并将结果外推到输入评估点
if(cond,expr1,expr2)根据条件的值计算第二个或第三个参数的条件表达式
integrate(expr,var,lower,upper)求一般表达式对一个积分变量在实数区间内的上下限的积分
isdefined(variable)在定义变量时返回1,在未定义变量时返回0
isinf(expr)如果表达式的值为无穷大,则为True
islinear(expr)如果表达式是解的线性函数,则为真
isnan(expr)如果表达式的计算结果为NaN (not- number),则为True
jacdepends(expr)
jacdepends(expr,var)
如果表达式expr对解的导数分别依赖于解或var,则为真
laginterp(order,expr)将表达式映射到指定顺序的拉格朗日字段,然后在每个网格元素中对该字段求值
lindev计算在线性化点处线性化的表达式(当线性化点存储在解中时)
linper标记要在线性摄动解算器中使用的负荷项
linpoint访问线性化点(当线性化点存储在溶液中时)
linsol访问标准解决方案(例如在linpoint或lintotal内部)
lintotal获取线性化点和线性摄动的和
lintotalavg评估所有阶段的总碱(expr)平均值
lintotalpeak评估所有阶段的最大lintotal(expr)
lintotalrms评估所有阶段的均方根值(expr)
linzero用零解计算表达式
mean(expr)在相邻边界上计算的表达式的平均值
nif(cond1,expr1,…,condn,exprn,exprn+1)嵌套if操作符。在第一个cond之后对expr求值以返回true
noenv(expr)求值表达式expr,该表达式仅定义在粒子或射线上,而不是粒子或射线所在的域或边界上nojac(expr)
pd(f,x)微分算子,f关于x的微分,因变量不用链式法则
ppr保持多项式的导数恢复
pprint各域群内保持多项式的导数恢复
prev(expr,i)在前第i个时间步对表达式求值
reacf(u)
reacf(u,dim)
准确评估反作用力和通量
realdot(a,b)把复数a和b当作实数2向量并返回它们的点积
residual(expr)求上次计算的残差
scope.atenti(ent,expr)在编号为ent的i维实体上计算网格无关表达式expr
scope.ati(coordinateexprs,expr)
scope.ati(coordinateexprs,expr,‘evaltype’)
用坐标表达式坐标表达式给出的坐标在点上的i维实体上求值表达式expr。例如,comp1。用于组件中名为comp1的3D实体
sens(expr,i)使用第二个参数给出的形参的前向灵敏度计算表达式
setconst(const,value)在withsol和withparam中定义临时常量
setind(par,index)
setval(par,value)
在withsol和withparam中指定参数索引或参数值
shapeorder(variable)用于离散变量的元素顺序
side(entity,expr)计算相邻实体中定义的表达式
stddev(operator,arg1,arg2,…)计算积分、投影或求和运算符的标准偏差
subst(expr,expr1_orig,expr1_subst,…)用其他变量或表达式替换表达式中的变量
substval(expr,val1_orig,val1_subst,…)用变量的当前值计算表达式
sum(expr,index,lower,upper)从下到上计算所有指标的和
test(expr)测试函数运算符
timeint
timeavg
积分或计算时间相关表达式在一个时间间隔内的平均值
timemax
timemin
随时间计算表达式的最大值或最小值
treatasconst(expr)将expr视为独立于解
try_catch(tryExpr,catchExpr)尝试计算tryExpr;但如果这在任何一点上失败,则计算catchExpr
uflux(u)
dflux(u)
分别在边界的上下两侧的域中计算与因变量u相关的通量
up(expr)计算表达式在相邻上行中定义的表达式
var(expr,fieldname1,fieldname2, …)变异算子
with在结果评估期间访问特定的解决方案
withparam(tag,expr)访问由solver标记定义的解决方案的解决方案参数
withsol(tag,expr)访问由求解器标签定义的解决方案

总结

          对于比较简单的各种运算符及物理常数上面没有介绍,感兴趣可以自行查阅帮助文档,同时翻译和排版存在一定的问题,欢迎留言讨论。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐