OpenFOAM logo
Open Source CFD Toolkit

GeometricScalarField.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-2005 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 the
00013     Free Software Foundation; either version 2 of the License, or (at your
00014     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, write to the Free Software Foundation,
00023     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00024 
00025 Class
00026     GeometricScalarField
00027 
00028 Description
00029     Scalar specific part of the implementation of GeometricField.
00030 
00031 SourceFiles
00032     GeometricScalarField.C
00033 
00034 \*---------------------------------------------------------------------------*/
00035 
00036 #ifndef GeometricScalarField_H
00037 #define GeometricScalarField_H
00038 
00039 #include "GeometricField.H"
00040 #include "scalar.H"
00041 
00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00043 
00044 namespace Foam
00045 {
00046 
00047 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00048 
00049 template<template<class> class PatchField, class GeoMesh>
00050 void stabilise
00051 (
00052     GeometricField<scalar, PatchField, GeoMesh>&,
00053     const GeometricField<scalar, PatchField, GeoMesh>&,
00054     const dimensioned<scalar>&
00055 );
00056 
00057 template<template<class> class PatchField, class GeoMesh>
00058 tmp<GeometricField<scalar, PatchField, GeoMesh> > stabilise
00059 (
00060     const GeometricField<scalar, PatchField, GeoMesh>&,
00061     const dimensioned<scalar>&
00062 );
00063 
00064 template<template<class> class PatchField, class GeoMesh>
00065 tmp<GeometricField<scalar, PatchField, GeoMesh> > stabilise
00066 (
00067     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00068     const dimensioned<scalar>&
00069 );
00070 
00071 
00072 template<template<class> class PatchField, class GeoMesh>
00073 void divide
00074 (
00075     GeometricField<scalar, PatchField, GeoMesh>&,
00076     const dimensioned<scalar>&,
00077     const GeometricField<scalar, PatchField, GeoMesh>&
00078 );
00079 
00080 template<template<class> class PatchField, class GeoMesh>
00081 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00082 (
00083     const dimensioned<scalar>&,
00084     const GeometricField<scalar, PatchField, GeoMesh>&
00085 );
00086 
00087 template<template<class> class PatchField, class GeoMesh>
00088 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00089 (
00090     const dimensioned<scalar>&,
00091     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00092 );
00093 
00094 template<template<class> class PatchField, class GeoMesh>
00095 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00096 (
00097     const scalar&,
00098     const GeometricField<scalar, PatchField, GeoMesh>&
00099 );
00100 
00101 template<template<class> class PatchField, class GeoMesh>
00102 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00103 (
00104     const scalar&,
00105     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00106 );
00107 
00108 
00109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00110 
00111 template<template<class> class PatchField, class GeoMesh>
00112 void pow
00113 (
00114     GeometricField<scalar, PatchField, GeoMesh>&,
00115     const GeometricField<scalar, PatchField, GeoMesh>&,
00116     const GeometricField<scalar, PatchField, GeoMesh>&
00117 );
00118 
00119 template<template<class> class PatchField, class GeoMesh>
00120 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00121 (
00122     const GeometricField<scalar, PatchField, GeoMesh>&,
00123     const GeometricField<scalar, PatchField, GeoMesh>&
00124 );
00125 
00126 template<template<class> class PatchField, class GeoMesh>
00127 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00128 (
00129     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00130     const GeometricField<scalar, PatchField, GeoMesh>&
00131 );
00132 
00133 template<template<class> class PatchField, class GeoMesh>
00134 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00135 (
00136     const GeometricField<scalar, PatchField, GeoMesh>&,
00137     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00138 );
00139 
00140 template<template<class> class PatchField, class GeoMesh>
00141 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00142 (
00143     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00144     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00145 );
00146 
00147 
00148 template<template<class> class PatchField, class GeoMesh>
00149 void pow
00150 (
00151     GeometricField<scalar, PatchField, GeoMesh>&,
00152     const GeometricField<scalar, PatchField, GeoMesh>&,
00153     const dimensioned<scalar>&
00154 );
00155 
00156 template<template<class> class PatchField, class GeoMesh>
00157 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00158 (
00159     const GeometricField<scalar, PatchField, GeoMesh>&,
00160     const dimensioned<scalar>&
00161 );
00162 
00163 template<template<class> class PatchField, class GeoMesh>
00164 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00165 (
00166     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00167     const dimensioned<scalar>&
00168 );
00169 
00170 template<template<class> class PatchField, class GeoMesh>
00171 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00172 (
00173     const GeometricField<scalar, PatchField, GeoMesh>&,
00174     const scalar&
00175 );
00176 
00177 template<template<class> class PatchField, class GeoMesh>
00178 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00179 (
00180     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00181     const scalar&
00182 );
00183 
00184 
00185 template<template<class> class PatchField, class GeoMesh>
00186 void pow
00187 (
00188     GeometricField<scalar, PatchField, GeoMesh>&,
00189     const dimensioned<scalar>&,
00190     const GeometricField<scalar, PatchField, GeoMesh>&
00191 );
00192 
00193 template<template<class> class PatchField, class GeoMesh>
00194 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00195 (
00196     const dimensioned<scalar>&,
00197     const GeometricField<scalar, PatchField, GeoMesh>&
00198 );
00199 
00200 template<template<class> class PatchField, class GeoMesh>
00201 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00202 (
00203     const dimensioned<scalar>&,
00204     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00205 );
00206 
00207 template<template<class> class PatchField, class GeoMesh>
00208 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00209 (
00210     const scalar&,
00211     const GeometricField<scalar, PatchField, GeoMesh>&
00212 );
00213 
00214 template<template<class> class PatchField, class GeoMesh>
00215 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00216 (
00217     const scalar&,
00218     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00219 );
00220 
00221 
00222 #define transFunc(func)                                                        \
00223 template<template<class> class PatchField, class GeoMesh>                      \
00224 void func                                                                      \
00225 (                                                                              \
00226     GeometricField<scalar, PatchField, GeoMesh>& Res,                          \
00227     const GeometricField<scalar, PatchField, GeoMesh>& sf                      \
00228 );                                                                             \
00229                                                                                \
00230 template<template<class> class PatchField, class GeoMesh>                      \
00231 tmp<GeometricField<scalar, PatchField, GeoMesh> > func                         \
00232 (                                                                              \
00233     const GeometricField<scalar, PatchField, GeoMesh>&                         \
00234 );                                                                             \
00235                                                                                \
00236 template<template<class> class PatchField, class GeoMesh>                      \
00237 tmp<GeometricField<scalar, PatchField, GeoMesh> > func                         \
00238 (                                                                              \
00239     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&                   \
00240 );
00241 
00242 transFunc(pow3)
00243 transFunc(pow4)
00244 transFunc(sqrt)
00245 transFunc(sign)
00246 transFunc(pos)
00247 transFunc(neg)
00248 transFunc(exp)
00249 transFunc(log)
00250 transFunc(log10)
00251 transFunc(sin)
00252 transFunc(cos)
00253 transFunc(tan)
00254 transFunc(asin)
00255 transFunc(acos)
00256 transFunc(atan)
00257 transFunc(sinh)
00258 transFunc(cosh)
00259 transFunc(tanh)
00260 transFunc(asinh)
00261 transFunc(acosh)
00262 transFunc(atanh)
00263 transFunc(erf)
00264 transFunc(erfc)
00265 transFunc(lgamma)
00266 transFunc(j0)
00267 transFunc(j1)
00268 transFunc(y0)
00269 transFunc(y1)
00270 
00271 #undef transFunc
00272 
00273 
00274 #define transFunc(func)                                                        \
00275 template<template<class> class PatchField, class GeoMesh>                      \
00276 void func                                                                      \
00277 (                                                                              \
00278     GeometricField<scalar, PatchField, GeoMesh>& Res,                          \
00279     const int n,                                                               \
00280     const GeometricField<scalar, PatchField, GeoMesh>& sf                      \
00281 );                                                                             \
00282                                                                                \
00283 template<template<class> class PatchField, class GeoMesh>                      \
00284 tmp<GeometricField<scalar, PatchField, GeoMesh> > func                         \
00285 (                                                                              \
00286     const int n,                                                               \
00287     const GeometricField<scalar, PatchField, GeoMesh>&                         \
00288 );                                                                             \
00289                                                                                \
00290 template<template<class> class PatchField, class GeoMesh>                      \
00291 tmp<GeometricField<scalar, PatchField, GeoMesh> > func                         \
00292 (                                                                              \
00293     const int n,                                                               \
00294     const tmp<GeometricField<scalar, PatchField, GeoMesh> >&                   \
00295 );
00296 
00297 transFunc(jn)
00298 transFunc(yn)
00299 
00300 #undef transFunc
00301 
00302 
00303 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00304 
00305 } // End namespace Foam
00306 
00307 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00308 
00309 #ifdef NoRepository
00310 #   include "GeometricScalarField.C"
00311 #endif
00312 
00313 
00314 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00315 
00316 #endif
00317 
00318 // ************************************************************************* //
For further information go to www.openfoam.org