算符
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 |
|
|
數學函數
abs |
絕對值 |
abs(x) |
acos |
反餘弦 |
acos(x) |
acosh |
反雙曲餘弦 (in radians) |
acosh(x) |
acot |
反餘切 (in radians) |
acot(x) |
acoth |
反雙曲餘切 (in radians) |
acoth(x) |
acsc |
反餘割 (in radians) |
acsc(x) |
acsch |
反雙曲餘割 (in radians) |
acsch(x) |
arg |
相位角(in radians) |
arg(x) |
asec |
反正割 (in radians) |
asec(x) |
asech |
反雙曲正割 (in radians) |
asech(x) |
asin |
反正弦 (in radians) |
asin(x) |
asinh |
反雙曲正弦(in radians) |
asinh(x) |
atan |
反正切 (in radians) |
atan(x) |
atan2 |
四象限反正切 (in radians) |
atan2(y,x) |
atanh |
反雙曲正切 (in radians) |
atanh(x) |
besselj |
一類Bessel函數 |
besselj(a,x) |
bessely |
二類Bessel函數 |
bessely(a,x) |
besseli |
一類改性Bessel函數 |
besseli(a,x) |
besselk |
二類改性Bessel函數 |
besselk(a,x) |
ceil |
上約數 |
ceil(x) |
conj |
複共軛 |
conj(x) |
cot |
餘切 |
cot(x) |
coth |
雙曲餘切 |
coth(x) |
csc |
餘割 |
csc(x) |
csch |
雙曲餘割 |
csch(x) |
eps |
相對精度 |
eps |
erf |
誤差函數 |
erf(x) |
exp |
指數函數 |
exp(x) |
floor |
下約數 |
floor(x) |
gamma |
Gamma函數 |
gamma(x) |
i,j |
虛數單位 |
i |
imag |
虛部 |
imag(u) |
inf |
無窮 |
inf |
log |
自然對數 ln |
log(x) |
log10 |
對數,底數爲10 |
log10(x) |
log2 |
對數,底數爲2 |
log2(x) |
max |
最大值 |
max(a,b) |
min |
最小值 |
min(a,b) |
mod |
取模 |
mod(a,b) |
NaN, |
非數 |
nan |
pi |
Pi |
pi |
psi |
Psi函數和它的衍生物 |
psi(x,k) |
range |
建立一個數列 |
range(a,step,b) |
real |
實部 |
real(u) |
round |
四捨五入 |
round(x) |
sec |
正割 |
sec(x) |
sech |
雙曲正割 |
sech(x) |
sign |
符號函數 |
sign(u) |
sin |
正弦 |
sin(x) |
sinh |
雙曲正弦 |
sinh(x) |
sqrt |
根號 |
sqrt(x) |
tan |
正切 |
tan(x) |
tanh |
雙曲正切 |
tanh(x) |
|
|
|
預置的變量
Time |
t |
Frequency |
freq |
Eigenvalues |
lambda |
Position |
x, y, z, r, X, Y, Z, R |
Edge/surface parameters |
s, s1, s2 |
Edge/surface normals |
n, nx, ny, nz, nr |
Edge tangents |
tx, ty, tz, tr |
Surface tangents |
t1x, t1y, t1z, t2x, t2y, t2z |
Edge/surface upward normals |
un, unx, uny, unz,參考方向的左邊 |
Edge/surface downward normals |
dn, dnx, dny, dnz,參考方向的右邊 |
Numerical constants |
eps, i, j, pi |
Mesh information |
h, dom, meshtype, meshelement, dvol, qual, reldetjac, reldetjacmin |
range函數的用法
range( a,(b-a)/(n-1),b)
10^range(-3,3) 產生:10-3, 10-2, …, 103
1^range(1,10) 產生 10個1
其他的平滑函數
flsmhs |
y=flsmhs(x,scale) 在階躍的兩端都存在連續過沖的平滑Heaviside函數。 在-scale < x < scale處,flsmhs和flsmsign爲7階多項式,因此它的2階導數仍然連續;它滿足理想Heaviside函數,因此存在一定量的過沖。 |
flsmsign |
y = flsmsign(x,scale) 近似於符號函數y=sign(x)在-scale < x < scale處平滑過渡 |
flc1hs |
不含過沖的一階連續導數的平滑Heaviside函數,導數fldc1hs |
flc2hs |
不含過沖的二階連續導數的平滑Heaviside函數,導數fldc2hs |