正文

OpenFOAM——源文件ops.h2006-11-13 12:00:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bioexplore/20270.html

分享到:

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

阅读(4181) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册