文件名:ops.h
上次在VectorSpaceOps类中定义的一些函数用到了操作函数类,所以这里专门讨论OpenFOAM中的操作函数类的定义源文件ops.h,他也是primitive中的一部分。
从文件名中可以看出来,该文件定义的是一些操作符方面的东西。正是这样该文件通过宏定义(#define)的方式定义了多个函数对象类!
下面是通过宏定义的所有函数对象的列表:振动联盟.m{8lXyv
他们可以分成两类:一类是带=号的操作符函数类,另一类是不带=号的操作符函数类,不知道这样说是不是合适,凑合吧!
1、=操作符函数类振动联盟 F*{!N.G`G6|5f F6W
eqOp<class T>(T& x,T& y) {x=y}; 振动联盟t*d-? Z*F3@5uT
eqOp2<class T1,class T2>(T1& x,T2& y) {x=y};振动联盟M,@q{"D {O(?+~,@ y
plusEqOp<class T>(T& x,T& y) {x+=y};
q-Ev3P ?+l/\!Q,w3pGuest plusEqOp2<class T1,class T2>(T1& x,T2& y) {x+=y};振动联盟#E4i2E3UE#tv
minusEqOp<class T>(T& x,T& y) {x-=y};
fM@~9i?rL8y5^ZGuest minusEqOp2<class T1,class T2>(T1& x,T2& y) {x-=y};
9bb2gX"Z/Mp6rr:o6LGuest multiplyEqOp<class T>(T& x,T& y) {x*=y}; 振动联盟0zN)ffV8]&Z
multiplyEqOp2<class T1,class T2>(T1& x,T2& y) {x*=y};
Y,dGH6LL+R O4o8^?Guest divideEqOp<class T>(T& x,T& y) {x/=y};
:E"`y!ZmM0rt(YGuest divideEqOp2<class T1,class T2>(T1& x,T2& y) {x/=y};振动联盟&qF)ay?i'd"crdr
eqMagOp<class T>(T& x,T& y) {x=mag(y)}; 振动联盟Y0{3v0_*j,gA
eqMagOp2<class T1,class T2>(T1& x,T2& y) {x=mag(y)};
/r3@ r0Je$OkGuest plusEqMagSqrOp<class T>(T& x,T& y) {x=magSqr(y)};
!` n:~ W;h7f;AGuest plusEqMagSqrOp2<class T1,class T2>(T1& x,T2& y) {x=magSqr(y)};
k4OQ:v.x1]Guest maxEqOp<class T>(T& x,T& y) {x=max(x,y)};
$]W%a}|IMGuest maxEqOp2<class T1,class T2>(T1& x,T2& y) {x=max(x,y)}; 振动联盟c"I-EEnC7]
minEqOp<class T>(T& x,T& y) {x=min(x,y)}; 振动联盟M3g-} HSC9@.\
minEqOp2<class T1,class T2>(T1& x,T2& y) {x=min(x,y)};振动联盟'^S[2eH8b;W
andEqOp<class T>(T& x,T& y) {x=(x&&y)}; 振动联盟l`A!] Y
andEqOp2<class T1,class T2>(T1& x,T2& y) {x=(x&&y)}; 振动联盟}#p{M9CDB/L
orEqOp<class T>(T& x,T& y) {x=(x||y)}; 振动联盟 ha \@@ S
orEqOp2<class T1,class T2>(T1& x,T2& y) {x=(x||y)};
G![#bw i$GjGuest eqMinusOp<class T>(T& x,T& y) {x=-y)}; 振动联盟-VB B0eb6LdT3N/I9J
eqMinusOp2<class T1,class T2>(T1& x,T2& y) {x=-y};
2、非=操作符函数类振动联盟h5Uy8}5|:s \;T
sumOp<class T>(T& x,T& y) {x+y}; 振动联盟O x$f"`4GenP0^\[_
sumOp2<class T1,class T2>(T1& x,T2& y) {x+y};振动联盟'St"z{l2l2J
plusOp<class T>(T& x,T& y) {x+y};
i!i/SC(T_Guest plusOp2<class T1,class T2>(T1& x,T2& y) {x+y};振动联盟{0vv~1e(MR PrD Kz
minusOp<class T>(T& x,T& y) {x-y};
od t8s!WV;Z7sGuest minusOp2<class T1,class T2>(T1& x,T2& y) {x-y};
4{w wx3A^P-AGuest multiplyOp<class T>(T& x,T& y) {x*y}; 振动联盟5aJ&k6i3mMZ
multiplyOp2<class T1,class T2>(T1& x,T2& y){x*y};振动联盟,k"P3s!M!K7_A
divideOp<class T>(T& x,T& y) {x/y}; 振动联盟'ck vN/u!N
divideOp2<class T1,class T2>(T1& x,T2& y) {x/y};振动联盟{1Tk"w,?O)h
maxOp<class T>(T& x,T& y) {max(x,y)};
l8m? L8V3~ Q%?7d _&lGuest maxOp2<class T1,class T2>(T1& x,T2& y) {max(x,y)};
~ZEA&m:^ ?v soGuest minOp<class T>(T& x,T& y) {min(x,y)};
]0K&ypNGGuest minOp2<class T1,class T2>(T1& x,T2& y) {min(x,y)};振动联盟+_z%K!d ^ [hI%p
scaleOp<class T>(T& x,T& y) {scale(x,y)}; 振动联盟%qqP i#a([ `N!H
sumOp2<class T1,class T2>(T1& x,T2& y) {scale(x,y)};振动联盟m Jj Se5l"MT
andOp<class T>(T& x,T& y) {x&&y};
q lee}sGuest andOp2<class T1,class T2>(T1& x,T2& y) {x&&y};
#zQ9I{b'RqGuest orOp<class T>(T& x,T& y) {x||y}; 振动联盟7]8D6[7[ ~(F\
orOp2<class T1,class T2>(T1& x,T2& y) {x||y};
从上面的代码中可以看到,这两类函数对象可以处理所有的数学基本运算!有同类型间的也有不同类型间的!振动联盟"P^ I.J:?6IWL
振动联盟n7a[?k9D P
振动联盟g$\ZR2q4\9V
欢迎发表高见!振动联盟-SY~4Xd `w&hO(v
振动联盟P"OVJ8RX
评论