1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 Wall distance calculation. Like wallDist but also transports extra
30 data (template argument).
32 Used for e.g reflection vector calculation or vanDriest damping.
34 Templated on two parameters:
35 - TransferType: type of overall data transported
36 (e.g. wallPointData\<vector\>)
41 \*---------------------------------------------------------------------------*/
43 #ifndef wallDistData_H
44 #define wallDistData_H
46 #include "cellDistFuncs.H"
47 #include "volFields.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 /*---------------------------------------------------------------------------*\
55 Class wallDistData Declaration
56 \*---------------------------------------------------------------------------*/
58 template<class TransferType>
61 public volScalarField,
67 typedef typename TransferType::dataType Type;
70 // Private Member Data
72 //- Reference to field whose data to use (on walls) and update
73 // (every cell and non-wall face)
74 GeometricField<Type, fvPatchField, volMesh>& field_;
76 //- Do accurate distance calculation for near-wall cells.
79 //- Number of unset cells and faces.
83 // Private Member Functions
85 //- Disallow default bitwise copy construct
86 wallDistData(const wallDistData&);
88 //- Disallow default bitwise assignment
89 void operator=(const wallDistData&);
96 //- Construct from mesh and flag whether or not to correct wall.
97 // Calculate for all cells. correctWalls : correct wall (face&point)
98 // cells for correct distance, searching neighbours.
102 GeometricField<Type, fvPatchField, volMesh>&,
103 bool correctWalls = true
109 virtual ~wallDistData();
114 const volScalarField& y() const
125 const GeometricField<Type, fvPatchField, volMesh>& data() const
130 //- Correct for mesh geom/topo changes
131 virtual void correct();
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 } // End namespace Foam
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 # include "wallDistData.C"
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 // ************************************************************************* //