BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / sampling / sampledSurface / writers / makeSurfaceWriterMethods.H
blob2f640fc2e0f9815be62b12b6eac195d0385f2c7b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 InClass
25     Foam::makeSurfaceWriterMethods
27 Description
28     Convenience macros for instantiating writer methods for surfaceWriter
29     classes.
31 \*---------------------------------------------------------------------------*/
33 #ifndef makeSurfaceWriterMethods_H
34 #define makeSurfaceWriterMethods_H
36 #include "surfaceWriter.H"
37 #include "addToRunTimeSelectionTable.H"
39 namespace Foam
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 #define makeSurfaceWriterType(ThisClass)                                      \
45     defineTypeNameAndDebug(ThisClass, 0);                                     \
46     addToRunTimeSelectionTable(surfaceWriter, ThisClass, word)
49 #define defineSurfaceWriterWriteField(ThisClass, FieldType)                   \
50     void ThisClass::write                                                     \
51     (                                                                         \
52         const fileName& outputDir,                                            \
53         const fileName& surfaceName,                                          \
54         const pointField& points,                                             \
55         const faceList& faces,                                                \
56         const word& fieldName,                                                \
57         const Field<FieldType>& values,                                       \
58         const bool isNodeValues,                                              \
59         const bool verbose                                                    \
60     ) const                                                                   \
61     {                                                                         \
62         writeTemplate                                                         \
63         (                                                                     \
64             outputDir,                                                        \
65             surfaceName,                                                      \
66             points,                                                           \
67             faces,                                                            \
68             fieldName,                                                        \
69             values,                                                           \
70             isNodeValues,                                                     \
71             verbose                                                           \
72         );                                                                    \
73     }
76 #define defineSurfaceWriterWriteFields(ThisClass)                             \
77     defineSurfaceWriterWriteField(ThisClass, scalar);                         \
78     defineSurfaceWriterWriteField(ThisClass, vector);                         \
79     defineSurfaceWriterWriteField(ThisClass, sphericalTensor);                \
80     defineSurfaceWriterWriteField(ThisClass, symmTensor);                     \
81     defineSurfaceWriterWriteField(ThisClass, tensor)
84 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86 } // End namespace Foam
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 #endif
92 // ************************************************************************* //