常用comsol的操作符和数学函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算符 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,fieldnam e1,
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,expr 2) 条件表达式
例如: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在弱贡献中无效;
具体表达式:
reacf(u)=nx*ux+ny*uy+nz*uz, 边界的法向... 直接用reacf()函数精度更
高些。
adj(expr) 用伴随灵敏度计算表达式
fsens(expr) 用函数灵敏度计算表达式
sens(expr,i) 用第二个参数向前灵敏度计算表达式
∂u/∂q=sens(u,q)
realdot(a,b) 两个复数的点积
realdot(a,b), real(a*conj(b))
shapeorder(varia
ble)
差分一个变量使用的单元级数
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(coordin ate
exprs,expr) 计算表达式在i维下的表达式coordinate exprs值
root.mod1.at1(0,y,dom)在2D的一条边的点(0,y)上计算dom
数学函数