OpenLB 1.8.1
Loading...
Searching...
No Matches
aliases.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2020 Adrian Kummerlaender
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22*/
23
24#ifndef ALIASES_H
25#define ALIASES_H
26
27#include <type_traits>
28
29namespace olb {
30
31// *INDENT-OFF*
32
33template <typename T> class Communicator2D;
34template <typename T> class Communicator3D;
35
36template <typename T, unsigned D>
37using Communicator = std::conditional_t<
38 D == 2,
41>;
42
43template <typename T, typename DESCRIPTOR> class PostProcessor2D;
44template <typename T, typename DESCRIPTOR> class PostProcessor3D;
45
46template <typename T, typename DESCRIPTOR>
47using PostProcessor = std::conditional_t<
48 DESCRIPTOR::d == 2,
51>;
52
53template <typename T, typename DESCRIPTOR> class PostProcessorGenerator2D;
54template <typename T, typename DESCRIPTOR> class PostProcessorGenerator3D;
55
56template <typename T, typename DESCRIPTOR>
57using PostProcessorGenerator = std::conditional_t<
58 DESCRIPTOR::d == 2,
61>;
62
63
64template <typename T> class SuperGeometryStatistics2D;
65template <typename T> class SuperGeometryStatistics3D;
66
67template <typename T, unsigned DIM>
68using SuperGeometryStatistics = std::conditional_t<
69 DIM == 2,
72 >;
73
74template<typename T, typename OUT_T, typename W> class SuperVTMwriter2D;
75template<typename T, typename OUT_T, typename W> class SuperVTMwriter3D;
76
77template <typename T, unsigned DIM, typename OUT_T=float, typename W=T>
78using SuperVTMwriter = std::conditional_t<
79 DIM == 2,
82 >;
83
84template <typename T> class SuperGeometryF2D;
85template <typename T> class SuperGeometryF3D;
86
87template <typename T, unsigned D>
88using SuperGeometryF = std::conditional_t<
89 D == 2,
92 >;
93
94template <typename T, typename DESCRIPTOR> class SuperLatticeCuboid2D;
95template <typename T, typename DESCRIPTOR> class SuperLatticeCuboid3D;
96
97template <typename T, typename DESCRIPTOR>
98using SuperLatticeCuboid = std::conditional_t<
99 DESCRIPTOR::d == 2,
102 >;
103
104template <typename T, typename DESCRIPTOR> class SuperLatticeRank2D;
105template <typename T, typename DESCRIPTOR> class SuperLatticeRank3D;
106
107template <typename T, typename DESCRIPTOR>
108using SuperLatticeRank = std::conditional_t<
109 DESCRIPTOR::d == 2,
112 >;
113
114template <typename T, typename DESCRIPTOR> class SuperLatticeF2D;
115template <typename T, typename DESCRIPTOR> class SuperLatticeF3D;
116
117template <typename T, typename DESCRIPTOR>
118using SuperLatticeF = std::conditional_t<
119 DESCRIPTOR::d == 2,
122 >;
123
124template <typename T, typename W> class SuperIntegral2D;
125template <typename T, typename W> class SuperIntegral3D;
126template <unsigned DIM, typename T, typename W = T>
127using SuperIntegral = std::conditional_t<
128 DIM == 2,
131 >;
132
133template <typename T, typename DESCRIPTOR, typename FIELD> class SuperLatticeField2D;
134template <typename T, typename DESCRIPTOR, typename FIELD> class SuperLatticeField3D;
135
136template <typename T, typename DESCRIPTOR, typename FIELD>
137using SuperLatticeField = std::conditional_t<
138 DESCRIPTOR::d == 2,
141 >;
142
143template <typename T, typename DESCRIPTOR> class BlockLatticeF2D;
144template <typename T, typename DESCRIPTOR> class BlockLatticeF3D;
145
146template <typename T, typename DESCRIPTOR>
147using BlockLatticeF = std::conditional_t<
148 DESCRIPTOR::d == 2,
151 >;
152
153template <typename T, typename DESCRIPTOR> class LatticeCouplingGenerator2D;
154template <typename T, typename DESCRIPTOR> class LatticeCouplingGenerator3D;
155
156template <typename T, typename DESCRIPTOR>
157using LatticeCouplingGenerator = std::conditional_t<
158 DESCRIPTOR::d == 2,
161>;
162
163template <typename T> class BlockGeometryStatistics2D;
164template <typename T> class BlockGeometryStatistics3D;
165
166template <typename T, unsigned D>
167using BlockGeometryStatistics = std::conditional_t<
168 D == 2,
171>;
172
173template <typename T> class BlockF2D;
174template <typename T> class BlockF3D;
175
176template <typename T, unsigned D>
177using BlockF = std::conditional_t<
178 D == 2,
181>;
182
183template <typename T, typename U> class SuperF2D;
184template <typename T, typename U> class SuperF3D;
185
186template <unsigned D, typename T, typename U=T>
187using SuperF = std::conditional_t<
188 D == 2,
191>;
192
193template <typename T> class SuperIndicatorF2D;
194template <typename T> class SuperIndicatorF3D;
195
196template <typename T, unsigned D>
197using SuperIndicatorF = std::conditional_t<
198 D == 2,
201>;
202
203template <typename T> class BlockIndicatorF2D;
204template <typename T> class BlockIndicatorF3D;
205
206template <typename T, unsigned D>
207using BlockIndicatorF = std::conditional_t<
208 D == 2,
211>;
212
213template <typename T> class BlockIndicatorMaterial2D;
214template <typename T> class BlockIndicatorMaterial3D;
215
216template <typename T, unsigned D>
217using BlockIndicatorMaterial = std::conditional_t<
218 D == 2,
221>;
222
223template <typename T> class BlockIndicatorBoundaryNeighbor2D;
224template <typename T> class BlockIndicatorBoundaryNeighbor3D;
225
226template <typename T, unsigned D>
227using BlockIndicatorBoundaryNeighbor = std::conditional_t<
228 D == 2,
231>;
232
233template <typename T> class BlockIndicatorFfromIndicatorF2D;
234template <typename T> class BlockIndicatorFfromIndicatorF3D;
235
236template <typename T, unsigned D>
237using BlockIndicatorFfromIndicatorF = std::conditional_t<
238 D == 2,
241>;
242
243template <typename T> class IndicatorF2D;
244template <typename T> class IndicatorF3D;
245
246template <typename T, unsigned D>
247using IndicatorF = std::conditional_t<
248 D == 2,
251>;
252
253template <typename T> class IndicatorCuboid2D;
254template <typename T> class IndicatorCuboid3D;
255
256template <typename T, unsigned D>
257using IndicatorCuboid = std::conditional_t<
258 D == 2,
261>;
262
263template <typename T, typename S, bool PARTICLE> class SmoothIndicatorF2D;
264template <typename T, typename S, bool PARTICLE> class SmoothIndicatorF3D;
265
266template <typename T, typename S, unsigned D, bool PARTICLE=false>
267using SmoothIndicatorF = std::conditional_t<
268 D == 2,
271>;
272
273template <typename T> class SuperIndicatorFfromIndicatorF2D;
274template <typename T> class SuperIndicatorFfromIndicatorF3D;
275
276template <typename T, unsigned D>
277using SuperIndicatorFfromIndicatorF = std::conditional_t<
278 D == 2,
281>;
282
283template <typename T> class SuperIndicatorMaterial2D;
284template <typename T> class SuperIndicatorMaterial3D;
285
286template <typename T, unsigned D>
287using SuperIndicatorMaterial = std::conditional_t<
288 D == 2,
291>;
292
293template <typename T> class SuperIndicatorBoundaryNeighbor2D;
294template <typename T> class SuperIndicatorBoundaryNeighbor3D;
295
296template <typename T, unsigned D>
297using SuperIndicatorBoundaryNeighbor = std::conditional_t<
298 D == 2,
301>;
302
303template <typename T, typename DESCRIPTOR, typename FIELD> class SuperField2D;
304template <typename T, typename DESCRIPTOR, typename FIELD> class SuperField3D;
305
306template <typename T, typename DESCRIPTOR, typename FIELD>
307using SuperField = std::conditional_t<
308 DESCRIPTOR::d == 2,
311>;
312
313
314template <typename T, typename DESCRIPTOR> class SuperLatticePhysF2D;
315template <typename T, typename DESCRIPTOR> class SuperLatticePhysF3D;
316
317template <typename T, typename DESCRIPTOR>
318using SuperLatticePhysF = std::conditional_t<
319 DESCRIPTOR::d == 2,
322>;
323
324template <typename T, typename DESCRIPTOR> class BlockLatticePhysF2D;
325template <typename T, typename DESCRIPTOR> class BlockLatticePhysF3D;
326
327template <typename T, typename DESCRIPTOR>
328using BlockLatticePhysF = std::conditional_t<
329 DESCRIPTOR::d == 2,
332>;
333
334template <typename T, typename DESCRIPTOR> class SuperLatticeInterpPhysVelocity2D;
335template <typename T, typename DESCRIPTOR> class SuperLatticeInterpPhysVelocity3D;
336
337template <typename T, typename DESCRIPTOR>
338using SuperLatticeInterpPhysVelocity = std::conditional_t<
339 DESCRIPTOR::d == 2,
342>;
343
344
345template <typename T, typename DESCRIPTOR> class BlockLatticeInterpPhysVelocity2D;
346template <typename T, typename DESCRIPTOR> class BlockLatticeInterpPhysVelocity3D;
347
348template <typename T, typename DESCRIPTOR>
349using BlockLatticeInterpPhysVelocity = std::conditional_t<
350 DESCRIPTOR::d == 2,
353>;
354
355template <typename T, typename DESCRIPTOR> class SuperLatticeFpop2D;
356template <typename T, typename DESCRIPTOR> class SuperLatticeFpop3D;
357
358template <typename T, typename DESCRIPTOR>
359using SuperLatticeFpop = std::conditional_t<
360 DESCRIPTOR::d == 2,
363>;
364
365
366template <typename T> class BlockIndicatorFfromCallableF2D;
367template <typename T> class BlockIndicatorFfromCallableF3D;
368
369template <typename T, unsigned D>
370using BlockIndicatorFfromCallableF = std::conditional_t<
371 D == 2,
374>;
375
376
377template <typename T, typename BaseType> class BlockVTIreader2D;
378template <typename T, typename BaseType> class BlockVTIreader3D;
379
380template <typename T, typename BaseType, unsigned D >
381using BlockVTIreader = std::conditional_t<
382 D == 2,
385>;
386
387
388template <typename T, typename BaseType> class BlockDataF2D;
389template <typename T, typename BaseType> class BlockDataF3D;
390
391template <typename T, typename BaseType, unsigned D >
392using BlockDataF = std::conditional_t<
393 D == 2,
396>;
397
398
399template <typename T, typename W> class SpecialAnalyticalFfromBlockF2D;
400template <typename T, typename W> class SpecialAnalyticalFfromBlockF3D;
401
402template <typename T, typename W, unsigned D >
403using SpecialAnalyticalFfromBlockF = std::conditional_t<
404 D == 2,
407>;
408
409
410template <typename T, typename DESCRIPTOR, typename FIELD> struct SuperLatticePhysField2D;
411template <typename T, typename DESCRIPTOR, typename FIELD> struct SuperLatticePhysField3D;
412
413template <typename T, typename DESCRIPTOR, typename FIELD>
414using SuperLatticePhysField = std::conditional_t<
415 DESCRIPTOR::d == 2,
418>;
419
420// *INDENT-ON*
421
422}
423
424#endif
BlockDataF2D can store data of any BlockFunctor2D.
Definition aliases.h:388
BlockDataF3D can store data of any BlockFunctor3D.
Definition aliases.h:389
represents all functors that operate on a cuboid in general, mother class of BlockLatticeF,...
Definition aliases.h:173
represents all functors that operate on a cuboid in general, mother class of BlockLatticeF,...
Definition aliases.h:174
Block indicator identifying neighbors of boundary cells.
Definition aliases.h:223
Block indicator identifying neighbors of boundary cells.
Definition aliases.h:224
Base block indicator functor (discrete)
Definition aliases.h:203
Base block indicator functor.
Definition aliases.h:204
Block indicator helper for people that don't like writing boilerplate.
Definition aliases.h:366
Block indicator helper for people that don't like writing boilerplate.
Definition aliases.h:367
BlockIndicatorF2D from IndicatorF2D.
Definition aliases.h:233
BlockIndicatorF3D from IndicatorF3D.
Definition aliases.h:234
Block indicator functor from material numbers.
Definition aliases.h:213
Block indicator functor from material numbers.
Definition aliases.h:214
represents all functors that operate on a DESCRIPTOR in general, e.g. getVelocity(),...
Definition aliases.h:143
represents all functors that operate on a DESCRIPTOR in general, e.g. getVelocity(),...
Definition aliases.h:144
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Definition aliases.h:324
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Definition aliases.h:325
indicator function for a 2D-cuboid, parallel to the planes x=0, y=0; theta rotates cuboid around its ...
Definition aliases.h:253
indicator function for a 3d-cuboid, parallel to the planes x=0, y=0, z=0.
Definition aliases.h:254
IndicatorF2D is an application from .
Definition aliases.h:243
IndicatorF3D is an application from .
Definition aliases.h:244
Interface of 2D post-processing steps.
Definition aliases.h:43
Converts block functors to analytical functors (special version for 2D)
Definition aliases.h:399
Converts block functors to analytical functors (special)
Definition aliases.h:400
represents all functors that operate on a SuperStructure<T,2> in general
Definition aliases.h:183
represents all functors that operate on a SuperStructure<T,3> in general
Definition aliases.h:184
functor to get pointwise the material no. presenting the geometry on local lattice
Definition aliases.h:84
functor to get pointwise the material no. presenting the geometry on local lattice
Definition aliases.h:85
Indicator identifying neighbors of boundary cells.
Definition aliases.h:293
Indicator identifying neighbors of boundary cells.
Definition aliases.h:294
Base indicator functor (discrete)
Definition aliases.h:194
SuperIndicatorF2D from IndicatorF2D.
Definition aliases.h:273
SuperIndicatorF3D from IndicatorF3D.
Definition aliases.h:274
Indicator functor from material numbers.
Definition aliases.h:283
Indicator functor from material numbers.
Definition aliases.h:284
SuperIntegral2D integrates f on a indicated subset.
Definition aliases.h:124
SuperIntegral3D integrates f on a indicated subset.
Definition aliases.h:125
functor to get pointwise the cuboid no. + 1 on local lattice
Definition aliases.h:94
functor to get pointwise the cuboid no. + 1 on local lattice
Definition aliases.h:95
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
Definition aliases.h:114
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
Definition aliases.h:115
functor to get pointwise, lattice-dependent external field
Definition aliases.h:134
functor to get pointwise f population on local lattices
Definition aliases.h:355
functor to get pointwise f population on local lattices
Definition aliases.h:356
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Definition aliases.h:314
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Definition aliases.h:315
functor to get pointwise the rank no. + 1 on local lattice
Definition aliases.h:104
functor to get pointwise the rank no. + 1 on local lattice
Definition aliases.h:105
SuperVTMwriter2D writes any SuperF2D to vtk-based output files.
Definition aliases.h:74
SuperVTMwriter3D writes any SuperF3D to vtk-based output files.
Definition aliases.h:75
Top level namespace for all of OpenLB.
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeF2D< T, DESCRIPTOR >, SuperLatticeF3D< T, DESCRIPTOR > > SuperLatticeF
Definition aliases.h:118
std::conditional_t< D==2, IndicatorCuboid2D< T >, IndicatorCuboid3D< T > > IndicatorCuboid
Definition aliases.h:257
std::conditional_t< D==2, Communicator2D< T >, Communicator3D< T > > Communicator
Definition aliases.h:37
std::conditional_t< D==2, BlockIndicatorBoundaryNeighbor2D< T >, BlockIndicatorBoundaryNeighbor3D< T > > BlockIndicatorBoundaryNeighbor
Definition aliases.h:227
std::conditional_t< DIM==2, SuperGeometryStatistics2D< T >, SuperGeometryStatistics3D< T > > SuperGeometryStatistics
Definition aliases.h:68
std::conditional_t< DESCRIPTOR::d==2, BlockLatticeInterpPhysVelocity2D< T, DESCRIPTOR >, BlockLatticeInterpPhysVelocity3D< T, DESCRIPTOR > > BlockLatticeInterpPhysVelocity
Definition aliases.h:349
std::conditional_t< D==2, SuperIndicatorBoundaryNeighbor2D< T >, SuperIndicatorBoundaryNeighbor3D< T > > SuperIndicatorBoundaryNeighbor
Definition aliases.h:297
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeRank2D< T, DESCRIPTOR >, SuperLatticeRank3D< T, DESCRIPTOR > > SuperLatticeRank
Definition aliases.h:108
std::conditional_t< D==2, SuperIndicatorFfromIndicatorF2D< T >, SuperIndicatorFfromIndicatorF3D< T > > SuperIndicatorFfromIndicatorF
Definition aliases.h:277
std::conditional_t< DESCRIPTOR::d==2, BlockLatticePhysF2D< T, DESCRIPTOR >, BlockLatticePhysF3D< T, DESCRIPTOR > > BlockLatticePhysF
Definition aliases.h:328
std::conditional_t< D==2, BlockF2D< T >, BlockF3D< T > > BlockF
Definition aliases.h:177
std::conditional_t< DESCRIPTOR::d==2, LatticeCouplingGenerator2D< T, DESCRIPTOR >, LatticeCouplingGenerator3D< T, DESCRIPTOR > > LatticeCouplingGenerator
Definition aliases.h:157
std::conditional_t< DESCRIPTOR::d==2, BlockLatticeF2D< T, DESCRIPTOR >, BlockLatticeF3D< T, DESCRIPTOR > > BlockLatticeF
Definition aliases.h:147
std::conditional_t< D==2, SmoothIndicatorF2D< T, T, PARTICLE >, SmoothIndicatorF3D< T, T, PARTICLE > > SmoothIndicatorF
Definition aliases.h:267
std::conditional_t< D==2, BlockDataF2D< T, BaseType >, BlockDataF3D< T, BaseType > > BlockDataF
Definition aliases.h:392
std::conditional_t< D==2, SuperF2D< T, U >, SuperF3D< T, U > > SuperF
Definition aliases.h:187
std::conditional_t< D==2, BlockIndicatorFfromCallableF2D< T >, BlockIndicatorFfromCallableF3D< T > > BlockIndicatorFfromCallableF
Definition aliases.h:370
std::conditional_t< DESCRIPTOR::d==2, SuperField2D< T, DESCRIPTOR, FIELD >, SuperField3D< T, DESCRIPTOR, FIELD > > SuperField
Definition aliases.h:307
std::conditional_t< D==2, BlockIndicatorF2D< T >, BlockIndicatorF3D< T > > BlockIndicatorF
Definition aliases.h:207
std::conditional_t< D==2, SuperIndicatorMaterial2D< T >, SuperIndicatorMaterial3D< T > > SuperIndicatorMaterial
Definition aliases.h:287
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeField2D< T, DESCRIPTOR, FIELD >, SuperLatticeField3D< T, DESCRIPTOR, FIELD > > SuperLatticeField
Definition aliases.h:137
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeInterpPhysVelocity2D< T, DESCRIPTOR >, SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > > SuperLatticeInterpPhysVelocity
Definition aliases.h:338
std::conditional_t< DESCRIPTOR::d==2, SuperLatticePhysF2D< T, DESCRIPTOR >, SuperLatticePhysF3D< T, DESCRIPTOR > > SuperLatticePhysF
Definition aliases.h:318
std::conditional_t< D==2, BlockVTIreader2D< T, BaseType >, BlockVTIreader3D< T, BaseType > > BlockVTIreader
Definition aliases.h:381
std::conditional_t< D==2, BlockGeometryStatistics2D< T >, BlockGeometryStatistics3D< T > > BlockGeometryStatistics
Definition aliases.h:167
std::conditional_t< D==2, IndicatorF2D< T >, IndicatorF3D< T > > IndicatorF
Definition aliases.h:247
std::conditional_t< DESCRIPTOR::d==2, SuperLatticePhysField2D< T, DESCRIPTOR, FIELD >, SuperLatticePhysField3D< T, DESCRIPTOR, FIELD > > SuperLatticePhysField
Definition aliases.h:414
std::conditional_t< D==2, BlockIndicatorFfromIndicatorF2D< T >, BlockIndicatorFfromIndicatorF3D< T > > BlockIndicatorFfromIndicatorF
Definition aliases.h:237
std::conditional_t< DIM==2, SuperIntegral2D< T, W >, SuperIntegral3D< T, W > > SuperIntegral
Definition aliases.h:127
std::conditional_t< D==2, SpecialAnalyticalFfromBlockF2D< T, W >, SpecialAnalyticalFfromBlockF3D< T, W > > SpecialAnalyticalFfromBlockF
Definition aliases.h:403
std::conditional_t< DIM==2, SuperVTMwriter2D< T, OUT_T, W >, SuperVTMwriter3D< T, OUT_T, W > > SuperVTMwriter
Definition aliases.h:78
std::conditional_t< DESCRIPTOR::d==2, PostProcessor2D< T, DESCRIPTOR >, PostProcessor3D< T, DESCRIPTOR > > PostProcessor
Definition aliases.h:47
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeFpop2D< T, DESCRIPTOR >, SuperLatticeFpop3D< T, DESCRIPTOR > > SuperLatticeFpop
Definition aliases.h:359
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeCuboid2D< T, DESCRIPTOR >, SuperLatticeCuboid3D< T, DESCRIPTOR > > SuperLatticeCuboid
Definition aliases.h:98
std::conditional_t< D==2, BlockIndicatorMaterial2D< T >, BlockIndicatorMaterial3D< T > > BlockIndicatorMaterial
Definition aliases.h:217
std::conditional_t< DESCRIPTOR::d==2, PostProcessorGenerator2D< T, DESCRIPTOR >, PostProcessorGenerator3D< T, DESCRIPTOR > > PostProcessorGenerator
Definition aliases.h:57
std::conditional_t< D==2, SuperIndicatorF2D< T >, SuperIndicatorF3D< T > > SuperIndicatorF
Definition aliases.h:197
std::conditional_t< D==2, SuperGeometryF2D< T >, SuperGeometryF3D< T > > SuperGeometryF
Definition aliases.h:88