OpenFOAM logo
Open Source CFD Toolkit

scalarFieldField.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     scalarFieldField
00027 
00028 Description
00029     Specialisation of FieldField<T> for scalar.
00030 
00031 SourceFiles
00032     scalarFieldField.C
00033 
00034 \*---------------------------------------------------------------------------*/
00035 
00036 #ifndef scalarFieldField_H
00037 #define scalarFieldField_H
00038 
00039 #include "FieldField.H"
00040 #include "scalar.H"
00041 
00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00043 
00044 namespace Foam
00045 {
00046 
00047 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00048 
00049 void stabilise
00050 (
00051     FieldField<Field, scalar>& Res,
00052     const FieldField<Field, scalar>& sf,
00053     const scalar s
00054 );
00055 
00056 tmp<FieldField<Field, scalar> > stabilise
00057 (
00058     const FieldField<Field, scalar>&,
00059     const scalar s
00060 );
00061 
00062 tmp<FieldField<Field, scalar> > stabilise
00063 (
00064     const tmp<FieldField<Field, scalar> >&,
00065     const scalar s
00066 );
00067 
00068 
00069 template<template<class> class Field>
00070 void divide
00071 (
00072     FieldField<Field, scalar>&,
00073     const scalar,
00074     const FieldField<Field, scalar>&
00075 );
00076 
00077 
00078 template<template<class> class Field>
00079 tmp<FieldField<Field, scalar> > operator/
00080 (
00081     const scalar,
00082     const FieldField<Field, scalar>&
00083 );
00084 
00085 template<template<class> class Field>
00086 tmp<FieldField<Field, scalar> > operator/
00087 (
00088     const scalar,
00089     const tmp<FieldField<Field, scalar> >&
00090 );
00091 
00092 
00093 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00094 
00095 template<template<class> class Field>
00096 void pow
00097 (
00098     FieldField<Field, scalar>&,
00099     const FieldField<Field, scalar>&,
00100     const FieldField<Field, scalar>&
00101 );
00102 
00103 template<template<class> class Field>
00104 tmp<FieldField<Field, scalar> > pow
00105 (
00106     const FieldField<Field, scalar>&,
00107     const FieldField<Field, scalar>&
00108 );
00109 
00110 template<template<class> class Field>
00111 tmp<FieldField<Field, scalar> > pow
00112 (
00113     const tmp<FieldField<Field, scalar> >&,
00114     const FieldField<Field, scalar>&
00115 );
00116 
00117 template<template<class> class Field>
00118 tmp<FieldField<Field, scalar> > pow
00119 (
00120     const FieldField<Field, scalar>&,
00121     const tmp<FieldField<Field, scalar> >&
00122 );
00123 
00124 tmp<FieldField<Field, scalar> > pow
00125 (
00126     const tmp<FieldField<Field, scalar> >&,
00127     const tmp<FieldField<Field, scalar> >&
00128 );
00129 
00130 
00131 template<template<class> class Field>
00132 void pow
00133 (
00134     FieldField<Field, scalar>&,
00135     const FieldField<Field, scalar>&,
00136     const scalar&
00137 );
00138 
00139 template<template<class> class Field>
00140 tmp<FieldField<Field, scalar> > pow
00141 (
00142     const FieldField<Field, scalar>&,
00143     const scalar&
00144 );
00145 
00146 template<template<class> class Field>
00147 tmp<FieldField<Field, scalar> > pow
00148 (
00149     const tmp<FieldField<Field, scalar> >&,
00150     const scalar&
00151 );
00152 
00153 
00154 template<template<class> class Field>
00155 void pow
00156 (
00157     FieldField<Field, scalar>&,
00158     const scalar&,
00159     const FieldField<Field, scalar>&
00160 );
00161 
00162 template<template<class> class Field>
00163 tmp<FieldField<Field, scalar> > pow
00164 (
00165     const scalar&,
00166     const FieldField<Field, scalar>&
00167 );
00168 
00169 template<template<class> class Field>
00170 tmp<FieldField<Field, scalar> > pow
00171 (
00172     const scalar&,
00173     const tmp<FieldField<Field, scalar> >&
00174 );
00175 
00176 
00177 #define transFunc(func)                                                        \
00178 template<template<class> class Field>                                          \
00179 void func(FieldField<Field, scalar>& Res, const FieldField<Field, scalar>& sf);\
00180                                                                                \
00181 template<template<class> class Field>                                          \
00182 tmp<FieldField<Field, scalar> > func(const FieldField<Field, scalar>&);        \
00183                                                                                \
00184 template<template<class> class Field>                                          \
00185 tmp<FieldField<Field, scalar> > func(const tmp<FieldField<Field, scalar> >&);
00186 
00187 transFunc(pow3)
00188 transFunc(pow4)
00189 transFunc(sqrt)
00190 transFunc(sign)
00191 transFunc(pos)
00192 transFunc(neg)
00193 transFunc(exp)
00194 transFunc(log)
00195 transFunc(log10)
00196 transFunc(sin)
00197 transFunc(cos)
00198 transFunc(tan)
00199 transFunc(asin)
00200 transFunc(acos)
00201 transFunc(atan)
00202 transFunc(sinh)
00203 transFunc(cosh)
00204 transFunc(tanh)
00205 transFunc(asinh)
00206 transFunc(acosh)
00207 transFunc(atanh)
00208 transFunc(erf)
00209 transFunc(erfc)
00210 transFunc(lgamma)
00211 transFunc(j0)
00212 transFunc(j1)
00213 transFunc(y0)
00214 transFunc(y1)
00215 
00216 #undef transFunc
00217 
00218 
00219 #define transFunc(func)                                                        \
00220 template<template<class> class Field>                                          \
00221 void func                                                                      \
00222 (                                                                              \
00223     FieldField<Field, scalar>& Res,                                            \
00224     const int n,                                                               \
00225     const FieldField<Field, scalar>& sf);                                      \
00226                                                                                \
00227 template<template<class> class Field>                                          \
00228 tmp<FieldField<Field, scalar> > func                                           \
00229 (                                                                              \
00230     const int n,                                                               \
00231     const FieldField<Field, scalar>&                                           \
00232 );                                                                             \
00233                                                                                \
00234 template<template<class> class Field>                                          \
00235 tmp<FieldField<Field, scalar> > func                                           \
00236 (                                                                              \
00237     const int n,                                                               \
00238     const tmp<FieldField<Field, scalar> >&                                     \
00239 );
00240 
00241 transFunc(jn)
00242 transFunc(yn)
00243 
00244 #undef transFunc
00245 
00246 
00247 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00248 
00249 } // End namespace Foam
00250 
00251 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00252 
00253 #ifdef NoRepository
00254 #   include "scalarFieldField.C"
00255 #endif
00256 
00257 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00258 
00259 #endif
00260 
00261 // ************************************************************************* //
For further information go to www.openfoam.org