文件名: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

评论