COMSOL Multiphysics 使用过程中经常会需要使用一些软件内置的函数、变量、常数等,我们在此对常用的做出整理,方便朋友们使用。
![b2999f370bbff12b6d06a7138fccffdb.png](https://img-blog.csdnimg.cn/img_convert/b2999f370bbff12b6d06a7138fccffdb.png)
![b2999f370bbff12b6d06a7138fccffdb.png](https://img-blog.csdnimg.cn/img_convert/b2999f370bbff12b6d06a7138fccffdb.png)
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 |
调用某个 |