isoSurfaceBaseMethods.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2020-2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26InClass
27 Foam::isoSurfaceBaseMethods
28
29Description
30 Convenience macros for instantiating iso-surface interpolate methods.
31
32\*---------------------------------------------------------------------------*/
33
34#ifndef Foam_isoSurfaceBaseMethods_H
35#define Foam_isoSurfaceBaseMethods_H
36
37// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38
39// Instantiate templated method for standard types
40// See note in isoSurfaceBase explaining why these are volume fields
41
42#undef defineIsoSurfaceInterpolateMethod
43#define defineIsoSurfaceInterpolateMethod(ThisClass, Type) \
44 Foam::tmp<Foam::Field<Type>> ThisClass::interpolate \
45 ( \
46 const VolumeField<Type>& cellValues, \
47 const Field<Type>& pointValues \
48 ) const \
49 { \
50 return interpolateTemplate(cellValues, pointValues); \
51 }
52
53
54#define defineIsoSurfaceInterpolateMethods(ThisClass) \
55 defineIsoSurfaceInterpolateMethod(ThisClass, Foam::scalar); \
56 defineIsoSurfaceInterpolateMethod(ThisClass, Foam::vector); \
57 defineIsoSurfaceInterpolateMethod(ThisClass, Foam::sphericalTensor); \
58 defineIsoSurfaceInterpolateMethod(ThisClass, Foam::symmTensor); \
59 defineIsoSurfaceInterpolateMethod(ThisClass, Foam::tensor)
60
61
62// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
63
64#endif
65
66// ************************************************************************* //