comsol如何设置距离梯度_常用的COMSOL操作符和数学函数

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值