FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

pointPatchFieldFunctions.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 \*---------------------------------------------------------------------------*/
00025 
00026 namespace Foam
00027 {
00028 
00029 /* * * * * * * * * * * * * * * * Global functions  * * * * * * * * * * * * * */
00030 
00031 template<class Type>
00032 inline void component
00033 (
00034     pointPatchField<typename Field<Type>::cmptType>& sf,
00035     const pointPatchField<Type>& f,
00036     const direction d
00037 )
00038 {}
00039 
00040 
00041 template<class Type>
00042 inline void T
00043 (
00044     pointPatchField<Type>& f1,
00045     const pointPatchField<Type>& f2
00046 )
00047 {}
00048 
00049 
00050 template<class Type, int r>
00051 inline void pow
00052 (
00053     Field<typename powProduct<Type, r>::type>& f,
00054     const pointPatchField<Type>& vf
00055 )
00056 {}
00057 
00058 
00059 template<class Type>
00060 inline void sqr
00061 (
00062     Field<typename outerProduct<Type, Type>::type>& f,
00063     const pointPatchField<Type>& vf
00064 )
00065 {}
00066 
00067 
00068 template<class Type>
00069 inline void magSqr
00070 (
00071     pointPatchField<scalar>& sf,
00072     const pointPatchField<Type>& f
00073 )
00074 {}
00075 
00076 
00077 template<class Type>
00078 inline void mag
00079 (
00080     pointPatchField<scalar>& sf,
00081     const pointPatchField<Type>& f
00082 )
00083 {}
00084 
00085 
00086 template<class Type>
00087 inline void cmptAv
00088 (
00089     pointPatchField<typename Field<Type>::cmptType>& cf,
00090     const pointPatchField<Type>& f
00091 )
00092 {}
00093 
00094 
00095 template<class Type>
00096 inline void cmptMag
00097 (
00098     pointPatchField<Type>& cf,
00099     const pointPatchField<Type>& f
00100 )
00101 {}
00102 
00103 
00104 #define BINARY_FUNCTION(func)                                                 \
00105                                                                               \
00106 template<class Type>                                                          \
00107 inline void func                                                              \
00108 (                                                                             \
00109     pointPatchField<Type>& f,                                                 \
00110     const pointPatchField<Type>& f1,                                          \
00111     const pointPatchField<Type>& f2                                           \
00112 )                                                                             \
00113 {}                                                                            \
00114                                                                               \
00115 template<class Type>                                                          \
00116 inline void func                                                              \
00117 (                                                                             \
00118     pointPatchField<Type>& f,                                                 \
00119     const pointPatchField<Type>& f1,                                          \
00120     const Type& s                                                             \
00121 )                                                                             \
00122 {}
00123 
00124 BINARY_FUNCTION(max)
00125 BINARY_FUNCTION(min)
00126 BINARY_FUNCTION(cmptMultiply)
00127 BINARY_FUNCTION(cmptDivide)
00128 
00129 
00130 /* * * * * * * * * * * * * * * * Global operators  * * * * * * * * * * * * * */
00131 
00132 #define UNARY_OPERATOR(op, opFunc)                                            \
00133                                                                               \
00134 template<class Type>                                                          \
00135 inline void opFunc                                                            \
00136 (                                                                             \
00137     pointPatchField<Type>& f,                                                 \
00138     const pointPatchField<Type>& f1                                           \
00139 )                                                                             \
00140 {}
00141 
00142 UNARY_OPERATOR(-, negate)
00143 
00144 #define BINARY_OPERATOR(Type1, Type2, op, opFunc)                             \
00145                                                                               \
00146 template<class Type>                                                          \
00147 inline void opFunc                                                            \
00148 (                                                                             \
00149     pointPatchField<Type>& f,                                                 \
00150     const pointPatchField<Type1>& f1,                                         \
00151     const pointPatchField<Type2>& f2                                          \
00152 )                                                                             \
00153 {}
00154 
00155 BINARY_OPERATOR(scalar, Type, *, multiply)
00156 BINARY_OPERATOR(Type, scalar, *, multiply)
00157 BINARY_OPERATOR(Type, scalar, /, divide)
00158 
00159 #define BINARY_TYPE_OPERATOR_SF(TYPE, op, opFunc)                             \
00160                                                                               \
00161 template<class Type>                                                          \
00162 inline void opFunc                                                            \
00163 (                                                                             \
00164     pointPatchField<Type>& f,                                                 \
00165     const TYPE& s,                                                            \
00166     const pointPatchField<Type>& f1                                           \
00167 )                                                                             \
00168 {}
00169 
00170 
00171 #define BINARY_TYPE_OPERATOR_FS(TYPE, op, opFunc)                             \
00172                                                                               \
00173 template<class Type>                                                          \
00174 inline void opFunc                                                            \
00175 (                                                                             \
00176     pointPatchField<Type>& f,                                                 \
00177     const pointPatchField<Type>& f1,                                          \
00178     const TYPE& s                                                             \
00179 )                                                                             \
00180 {}
00181 
00182 
00183 BINARY_TYPE_OPERATOR_SF(scalar, *, multiply)
00184 BINARY_TYPE_OPERATOR_FS(scalar, *, multiply)
00185 BINARY_TYPE_OPERATOR_FS(scalar, /, divide)
00186 
00187 
00188 #define PRODUCT_OPERATOR(product, op, opFunc)                                 \
00189                                                                               \
00190 template                                                                      \
00191 <                                                                             \
00192     class Type1,                                                              \
00193     class Type2                                                               \
00194 >                                                                             \
00195 inline void opFunc                                                            \
00196 (                                                                             \
00197     pointPatchField                                                           \
00198     <typename product<Type1, Type2>::type>& f,                                \
00199     const pointPatchField<Type1>& f1,                                         \
00200     const pointPatchField<Type2>& f2                                          \
00201 )                                                                             \
00202 {}                                                                            \
00203                                                                               \
00204 template                                                                      \
00205 <                                                                             \
00206     class Type,                                                               \
00207     class Form,                                                               \
00208     class Cmpt,                                                               \
00209     int nCmpt                                                                 \
00210 >                                                                             \
00211 inline void opFunc                                                            \
00212 (                                                                             \
00213     pointPatchField                                                           \
00214     <typename product<Type, Form>::type>& f,                                  \
00215     const pointPatchField<Type>& f1,                                          \
00216     const VectorSpace<Form,Cmpt,nCmpt>& vs                                    \
00217 )                                                                             \
00218 {}                                                                            \
00219                                                                               \
00220 template                                                                      \
00221 <                                                                             \
00222     class Form,                                                               \
00223     class Cmpt,                                                               \
00224     int nCmpt,                                                                \
00225     class Type                                                                \
00226 >                                                                             \
00227 inline void opFunc                                                            \
00228 (                                                                             \
00229     pointPatchField                                                           \
00230     <typename product<Form, Type>::type>& f,                                  \
00231     const VectorSpace<Form,Cmpt,nCmpt>& vs,                                   \
00232     const pointPatchField<Type>& f1                                           \
00233 )                                                                             \
00234 {}
00235 
00236 PRODUCT_OPERATOR(typeOfSum, +, add)
00237 PRODUCT_OPERATOR(typeOfSum, -, subtract)
00238 
00239 PRODUCT_OPERATOR(outerProduct, *, outer)
00240 PRODUCT_OPERATOR(crossProduct, ^, cross)
00241 PRODUCT_OPERATOR(innerProduct, &, dot)
00242 PRODUCT_OPERATOR(scalarProduct, &&, dotdot)
00243 
00244 #undef PRODUCT_OPERATOR
00245 
00246 
00247 inline void hdual
00248 (
00249     pointPatchField<vector>&,
00250     const pointPatchField<tensor>&
00251 )
00252 {}
00253 
00254 inline void hdual
00255 (
00256     pointPatchField<tensor>&,
00257     const pointPatchField<vector>&
00258 )
00259 {}
00260 
00261 inline void diag
00262 (
00263     pointPatchField<vector>&,
00264     const pointPatchField<tensor>&
00265 )
00266 {}
00267 
00268 inline void tr
00269 (
00270     pointPatchField<scalar>&,
00271     const pointPatchField<tensor>&
00272 )
00273 {}
00274 
00275 inline void dev
00276 (
00277     pointPatchField<tensor>&,
00278     const pointPatchField<tensor>&
00279 )
00280 {}
00281 
00282 inline void dev2
00283 (
00284     pointPatchField<tensor>&,
00285     const pointPatchField<tensor>&
00286 )
00287 {}
00288 
00289 inline void det
00290 (
00291     pointPatchField<scalar>&,
00292     const pointPatchField<tensor>&
00293 )
00294 {}
00295 
00296 inline void inv
00297 (
00298     pointPatchField<tensor>&,
00299     const pointPatchField<tensor>&
00300 )
00301 {}
00302 
00303 inline void symm
00304 (
00305     pointPatchField<tensor>&,
00306     const pointPatchField<tensor>&
00307 )
00308 {}
00309 
00310 inline void twoSymm
00311 (
00312     pointPatchField<tensor>&,
00313     const pointPatchField<tensor>&
00314 )
00315 {}
00316 
00317 inline void skew
00318 (
00319     pointPatchField<tensor>&,
00320     const pointPatchField<tensor>&
00321 )
00322 {}
00323 
00324 inline void eigenValues
00325 (
00326     pointPatchField<vector>&,
00327     const pointPatchField<tensor>&
00328 )
00329 {}
00330 
00331 inline void eigenVectors
00332 (
00333     pointPatchField<tensor>&,
00334     const pointPatchField<tensor>&
00335 )
00336 {}
00337 
00338 
00339 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00340 
00341 } // End namespace Foam
00342 
00343 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00344 
00345 #include <OpenFOAM/undefFieldFunctionsM.H>
00346 
00347 // ************************************************************************* //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines