2024年3月26日发(作者:生俊茂)
算符
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无关
边界上f对x的切向微分
在边界上d(u,x)不能定义,但是可以使用dtang(u,x),dtang付出基本的
微分法则,如乘积法则和链式法则,但是需要指出的是,dtang(x,x)不一
定等于1。
试函数
用于方程弱形式的算符,test(F(u,∇u))等价于:
dtang(f,x)
test(expr)
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,down,mean算符只能用在边界上,对于一个表达式或变量在边界
处两边不连续,COMSOL通常显示边界的平均值,使用up,down可计
up(expr)
算某个方向上的值。
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)
isinf(expr)
islinear(expr)
isnan(expr)
with
条件表达式
例如:if(x==0,1,sin(x)/x)
表达式的值是否是无穷大
解是否是线性函数
表达式是否是非数
调用某个解
例如with(3,u^2)指调用解3的u^2用于本次求解;
with只能用于解的后处理,不能用于建模;
调用解的某个时间
例如:at(12.5,u)
at
timeint
表达式的时间积分
timeint(t1,t2,expr,tol,minlen),t1,t2需要是实数,expr是表达式,tol是容
差,默认大小为1e-8,minlen设置积分的最短路径,它需要是正数,默
认长度为1e-6。
timeint只能用于解的后处理,不能用于建模;
表达式的时间积分平均值
timeavg(t1,t2,expr,tol,minlen)
调用线性化点
计算在线性化点的表达式
当解存储了一个线性化点,那么表达式在线性化点上先线性化,然后用
当前的解来计算;
特别的:当f线性依赖于解,那么lindev(f)=f,如果不依赖则lindev(f)=0;
如果解没有线性化点,那么会报错;
调用线性化点的和和线性扰动
在各相中计算平均lintotal
在各相中计算lintotal的RMS
lintotalrms(f)=sqrt(lintotalavg(abs(f)^2))
在各相中计算lintotal的最大值
调用标准解,如linpoint或lintotal
计算表达式的根
标记一个荷载项用于线性扰动求解器
timeavg
linpoint
lindev
lintotal
lintotalavg
lintotalrms
lintotalpeak
linsol
linzero
linper
2024年3月26日发(作者:生俊茂)
算符
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无关
边界上f对x的切向微分
在边界上d(u,x)不能定义,但是可以使用dtang(u,x),dtang付出基本的
微分法则,如乘积法则和链式法则,但是需要指出的是,dtang(x,x)不一
定等于1。
试函数
用于方程弱形式的算符,test(F(u,∇u))等价于:
dtang(f,x)
test(expr)
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,down,mean算符只能用在边界上,对于一个表达式或变量在边界
处两边不连续,COMSOL通常显示边界的平均值,使用up,down可计
up(expr)
算某个方向上的值。
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)
isinf(expr)
islinear(expr)
isnan(expr)
with
条件表达式
例如:if(x==0,1,sin(x)/x)
表达式的值是否是无穷大
解是否是线性函数
表达式是否是非数
调用某个解
例如with(3,u^2)指调用解3的u^2用于本次求解;
with只能用于解的后处理,不能用于建模;
调用解的某个时间
例如:at(12.5,u)
at
timeint
表达式的时间积分
timeint(t1,t2,expr,tol,minlen),t1,t2需要是实数,expr是表达式,tol是容
差,默认大小为1e-8,minlen设置积分的最短路径,它需要是正数,默
认长度为1e-6。
timeint只能用于解的后处理,不能用于建模;
表达式的时间积分平均值
timeavg(t1,t2,expr,tol,minlen)
调用线性化点
计算在线性化点的表达式
当解存储了一个线性化点,那么表达式在线性化点上先线性化,然后用
当前的解来计算;
特别的:当f线性依赖于解,那么lindev(f)=f,如果不依赖则lindev(f)=0;
如果解没有线性化点,那么会报错;
调用线性化点的和和线性扰动
在各相中计算平均lintotal
在各相中计算lintotal的RMS
lintotalrms(f)=sqrt(lintotalavg(abs(f)^2))
在各相中计算lintotal的最大值
调用标准解,如linpoint或lintotal
计算表达式的根
标记一个荷载项用于线性扰动求解器
timeavg
linpoint
lindev
lintotal
lintotalavg
lintotalrms
lintotalpeak
linsol
linzero
linper