fieldMapperM.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #define DEFINE_FIELD_MAPPER_MAP_OPERATOR(Type, Modifier) \
27  \
28  virtual void operator() \
29  ( \
30  Field<Type>& f, \
31  const Field<Type>& mapF \
32  ) const Modifier; \
33  \
34  virtual tmp<Field<Type>> operator() \
35  ( \
36  const Field<Type>& mapF \
37  ) const Modifier;
38 
39 
40 #define DEFINE_FIELD_MAPPER_MAP_OR_ASSIGN_OPERATOR(Type, Modifier) \
41  \
42  virtual void operator() \
43  ( \
44  Field<Type>& f, \
45  const Field<Type>& mapF, \
46  const Type& unmappedVal \
47  ) const Modifier; \
48  \
49  virtual tmp<Field<Type>> operator() \
50  ( \
51  const Field<Type>& mapF, \
52  const Type& unmappedVal \
53  ) const Modifier; \
54  \
55  virtual void operator() \
56  ( \
57  Field<Type>& f, \
58  const Field<Type>& mapF, \
59  const FieldFunctor<Type>& unmappedFunc \
60  ) const Modifier; \
61  \
62  virtual tmp<Field<Type>> operator() \
63  ( \
64  const Field<Type>& mapF, \
65  const FieldFunctor<Type>& unmappedFunc \
66  ) const Modifier;
67 
68 
69 #define IMPLEMENT_FIELD_MAPPER_MAP_OPERATOR(Type, mapperType) \
70  \
71  void Foam::mapperType::operator() \
72  ( \
73  Field<Type>& f, \
74  const Field<Type>& mapF \
75  ) const \
76  { \
77  map(f, mapF); \
78  } \
79  \
80  Foam::tmp<Foam::Field<Foam::Type>> Foam::mapperType::operator() \
81  ( \
82  const Field<Type>& mapF \
83  ) const \
84  { \
85  return map(mapF); \
86  }
87 
88 
89 #define IMPLEMENT_FIELD_MAPPER_MAP_OR_ASSIGN_OPERATOR(Type, mapperType) \
90  \
91  void Foam::mapperType::operator() \
92  ( \
93  Field<Type>& f, \
94  const Field<Type>& mapF, \
95  const Type& unmappedVal \
96  ) const \
97  { \
98  mapOrAssign(f, mapF, unmappedVal); \
99  } \
100  \
101  Foam::tmp<Foam::Field<Foam::Type>> Foam::mapperType::operator() \
102  ( \
103  const Field<Type>& mapF, \
104  const Type& unmappedVal \
105  ) const \
106  { \
107  return mapOrAssign(mapF, unmappedVal); \
108  } \
109  \
110  void Foam::mapperType::operator() \
111  ( \
112  Field<Type>& f, \
113  const Field<Type>& mapF, \
114  const FieldFunctor<Type>& unmappedFunc \
115  ) const \
116  { \
117  mapOrAssign(f, mapF, unmappedFunc); \
118  } \
119  \
120  Foam::tmp<Foam::Field<Foam::Type>> Foam::mapperType::operator() \
121  ( \
122  const Field<Type>& mapF, \
123  const FieldFunctor<Type>& unmappedFunc \
124  ) const \
125  { \
126  return mapOrAssign(mapF, unmappedFunc); \
127  }
128 
129 
130 // ************************************************************************* //