OpenLB 1.7
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 Cuboid2D;
34template <typename T> class Cuboid3D;
35
36template <typename T, unsigned D>
37using Cuboid = std::conditional_t<
38 D == 2,
41>;
42
43template <typename T> class CuboidGeometry2D;
44template <typename T> class CuboidGeometry3D;
45
46template <typename T, unsigned D>
47using CuboidGeometry = std::conditional_t<
48 D == 2,
51>;
52
53template <typename T> class Communicator2D;
54template <typename T> class Communicator3D;
55
56template <typename T, unsigned D>
57using Communicator = std::conditional_t<
58 D == 2,
61>;
62
63template <typename T, typename DESCRIPTOR> class PostProcessor2D;
64template <typename T, typename DESCRIPTOR> class PostProcessor3D;
65
66template <typename T, typename DESCRIPTOR>
67using PostProcessor = std::conditional_t<
68 DESCRIPTOR::d == 2,
71>;
72
73template <typename T, typename DESCRIPTOR> class PostProcessorGenerator2D;
74template <typename T, typename DESCRIPTOR> class PostProcessorGenerator3D;
75
76template <typename T, typename DESCRIPTOR>
77using PostProcessorGenerator = std::conditional_t<
78 DESCRIPTOR::d == 2,
81>;
82
83
84template <typename T> class SuperGeometryStatistics2D;
85template <typename T> class SuperGeometryStatistics3D;
86
87template <typename T, unsigned DIM>
88using SuperGeometryStatistics = std::conditional_t<
89 DIM == 2,
92 >;
93
94template <typename T> class CuboidGeometry2D;
95template <typename T> class CuboidGeometry3D;
96
97template <typename T, unsigned DIM>
98using CuboidGeometry = std::conditional_t<
99 DIM == 2,
102 >;
103
104template<typename T, typename OUT_T, typename W> class SuperVTMwriter2D;
105template<typename T, typename OUT_T, typename W> class SuperVTMwriter3D;
106
107template <typename T, unsigned DIM, typename OUT_T=float, typename W=T>
108using SuperVTMwriter = std::conditional_t<
109 DIM == 2,
112 >;
113
114template <typename T, typename DESCRIPTOR> class SuperLatticeGeometry2D;
115template <typename T, typename DESCRIPTOR> class SuperLatticeGeometry3D;
116
117template <typename T, typename DESCRIPTOR>
118using SuperLatticeGeometry = std::conditional_t<
119 DESCRIPTOR::d == 2,
122 >;
123
124template <typename T, typename DESCRIPTOR> class SuperLatticeCuboid2D;
125template <typename T, typename DESCRIPTOR> class SuperLatticeCuboid3D;
126
127template <typename T, typename DESCRIPTOR>
128using SuperLatticeCuboid = std::conditional_t<
129 DESCRIPTOR::d == 2,
132 >;
133
134template <typename T, typename DESCRIPTOR> class SuperLatticeRank2D;
135template <typename T, typename DESCRIPTOR> class SuperLatticeRank3D;
136
137template <typename T, typename DESCRIPTOR>
138using SuperLatticeRank = std::conditional_t<
139 DESCRIPTOR::d == 2,
142 >;
143
144template <typename T, typename DESCRIPTOR> class SuperLatticeF2D;
145template <typename T, typename DESCRIPTOR> class SuperLatticeF3D;
146
147template <typename T, typename DESCRIPTOR>
148using SuperLatticeF = std::conditional_t<
149 DESCRIPTOR::d == 2,
152 >;
153
154template <typename T, typename DESCRIPTOR> class BlockLatticeF2D;
155template <typename T, typename DESCRIPTOR> class BlockLatticeF3D;
156
157template <typename T, typename DESCRIPTOR>
158using BlockLatticeF = std::conditional_t<
159 DESCRIPTOR::d == 2,
162 >;
163
164template <typename T, typename DESCRIPTOR> class LatticeCouplingGenerator2D;
165template <typename T, typename DESCRIPTOR> class LatticeCouplingGenerator3D;
166
167template <typename T, typename DESCRIPTOR>
168using LatticeCouplingGenerator = std::conditional_t<
169 DESCRIPTOR::d == 2,
172>;
173
174template <typename T> class BlockGeometryStatistics2D;
175template <typename T> class BlockGeometryStatistics3D;
176
177template <typename T, unsigned D>
178using BlockGeometryStatistics = std::conditional_t<
179 D == 2,
182>;
183
184template <typename T> class BlockF2D;
185template <typename T> class BlockF3D;
186
187template <typename T, unsigned D>
188using BlockF = std::conditional_t<
189 D == 2,
192>;
193
194template <typename T, typename U> class SuperF2D;
195template <typename T, typename U> class SuperF3D;
196
197template <unsigned D, typename T, typename U=T>
198using SuperF = std::conditional_t<
199 D == 2,
202>;
203
204template <typename T> class SuperIndicatorF2D;
205template <typename T> class SuperIndicatorF3D;
206
207template <typename T, unsigned D>
208using SuperIndicatorF = std::conditional_t<
209 D == 2,
212>;
213
214template <typename T> class BlockIndicatorF2D;
215template <typename T> class BlockIndicatorF3D;
216
217template <typename T, unsigned D>
218using BlockIndicatorF = std::conditional_t<
219 D == 2,
222>;
223
224template <typename T> class BlockIndicatorMaterial2D;
225template <typename T> class BlockIndicatorMaterial3D;
226
227template <typename T, unsigned D>
228using BlockIndicatorMaterial = std::conditional_t<
229 D == 2,
232>;
233
234template <typename T> class BlockIndicatorBoundaryNeighbor2D;
235template <typename T> class BlockIndicatorBoundaryNeighbor3D;
236
237template <typename T, unsigned D>
238using BlockIndicatorBoundaryNeighbor = std::conditional_t<
239 D == 2,
242>;
243
244template <typename T> class BlockIndicatorFfromIndicatorF2D;
245template <typename T> class BlockIndicatorFfromIndicatorF3D;
246
247template <typename T, unsigned D>
248using BlockIndicatorFfromIndicatorF = std::conditional_t<
249 D == 2,
252>;
253
254template <typename T> class IndicatorF2D;
255template <typename T> class IndicatorF3D;
256
257template <typename T, unsigned D>
258using IndicatorF = std::conditional_t<
259 D == 2,
262>;
263
264template <typename T> class IndicatorCuboid2D;
265template <typename T> class IndicatorCuboid3D;
266
267template <typename T, unsigned D>
268using IndicatorCuboid = std::conditional_t<
269 D == 2,
272>;
273
274template <typename T, typename S, bool PARTICLE> class SmoothIndicatorF2D;
275template <typename T, typename S, bool PARTICLE> class SmoothIndicatorF3D;
276
277template <typename T, typename S, unsigned D, bool PARTICLE=false>
278using SmoothIndicatorF = std::conditional_t<
279 D == 2,
282>;
283
284template <typename T> class SuperIndicatorFfromIndicatorF2D;
285template <typename T> class SuperIndicatorFfromIndicatorF3D;
286
287template <typename T, unsigned D>
288using SuperIndicatorFfromIndicatorF = std::conditional_t<
289 D == 2,
292>;
293
294template <typename T> class SuperIndicatorMaterial2D;
295template <typename T> class SuperIndicatorMaterial3D;
296
297template <typename T, unsigned D>
298using SuperIndicatorMaterial = std::conditional_t<
299 D == 2,
302>;
303
304template <typename T> class SuperIndicatorBoundaryNeighbor2D;
305template <typename T> class SuperIndicatorBoundaryNeighbor3D;
306
307template <typename T, unsigned D>
308using SuperIndicatorBoundaryNeighbor = std::conditional_t<
309 D == 2,
312>;
313
314template <typename T, typename DESCRIPTOR, typename FIELD> class SuperField2D;
315template <typename T, typename DESCRIPTOR, typename FIELD> class SuperField3D;
316
317template <typename T, typename DESCRIPTOR, typename FIELD>
318using SuperField = std::conditional_t<
319 DESCRIPTOR::d == 2,
322>;
323
324
325template <typename T, typename DESCRIPTOR> class SuperLatticePhysF2D;
326template <typename T, typename DESCRIPTOR> class SuperLatticePhysF3D;
327
328template <typename T, typename DESCRIPTOR>
329using SuperLatticePhysF = std::conditional_t<
330 DESCRIPTOR::d == 2,
333>;
334
335template <typename T, typename DESCRIPTOR> class BlockLatticePhysF2D;
336template <typename T, typename DESCRIPTOR> class BlockLatticePhysF3D;
337
338template <typename T, typename DESCRIPTOR>
339using BlockLatticePhysF = std::conditional_t<
340 DESCRIPTOR::d == 2,
343>;
344
345template <typename T, typename DESCRIPTOR> class SuperLatticeInterpPhysVelocity2D;
346template <typename T, typename DESCRIPTOR> class SuperLatticeInterpPhysVelocity3D;
347
348template <typename T, typename DESCRIPTOR>
349using SuperLatticeInterpPhysVelocity = std::conditional_t<
350 DESCRIPTOR::d == 2,
353>;
354
355
356template <typename T, typename DESCRIPTOR> class BlockLatticeInterpPhysVelocity2D;
357template <typename T, typename DESCRIPTOR> class BlockLatticeInterpPhysVelocity3D;
358
359template <typename T, typename DESCRIPTOR>
360using BlockLatticeInterpPhysVelocity = std::conditional_t<
361 DESCRIPTOR::d == 2,
364>;
365
366
367// *INDENT-ON*
368
369}
370
371#endif
represents all functors that operate on a cuboid in general, mother class of BlockLatticeF,...
represents all functors that operate on a cuboid in general, mother class of BlockLatticeF,...
Block indicator identifying neighbors of boundary cells.
Block indicator identifying neighbors of boundary cells.
Base block indicator functor (discrete)
Base block indicator functor.
BlockIndicatorF2D from IndicatorF2D.
BlockIndicatorF3D from IndicatorF3D.
Block indicator functor from material numbers.
Block indicator functor from material numbers.
represents all functors that operate on a DESCRIPTOR in general, e.g. getVelocity(),...
represents all functors that operate on a DESCRIPTOR in general, e.g. getVelocity(),...
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
A regular single 2D cuboid is the basic component of a 2D cuboid structure which defines the grid.
Definition cuboid2D.h:54
A regular single 3D cuboid is the basic component of a 3D cuboid structure which defines the grid.
Definition cuboid3D.h:58
A cuboid structure represents the grid of a considered domain.
A cuboid geometry represents a voxel mesh.
indicator function for a 2D-cuboid, parallel to the planes x=0, y=0; theta rotates cuboid around its ...
indicator function for a 3d-cuboid, parallel to the planes x=0, y=0, z=0.
IndicatorF2D is an application from .
IndicatorF3D is an application from .
Interface of 2D post-processing steps.
represents all functors that operate on a SuperStructure<T,2> in general
represents all functors that operate on a SuperStructure<T,3> in general
Indicator identifying neighbors of boundary cells.
Indicator identifying neighbors of boundary cells.
Base indicator functor (discrete)
SuperIndicatorF2D from IndicatorF2D.
SuperIndicatorF3D from IndicatorF3D.
Indicator functor from material numbers.
Indicator functor from material numbers.
functor to get pointwise the cuboid no. + 1 on local lattice
functor to get pointwise the cuboid no. + 1 on local lattice
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
functor to get pointwise the material no. presenting the geometry on local lattice
functor to get pointwise the material no. presenting the geometry on local lattice
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
functor to get pointwise the rank no. + 1 on local lattice
functor to get pointwise the rank no. + 1 on local lattice
SuperVTMwriter2D writes any SuperF2D to vtk-based output files.
SuperVTMwriter3D writes any SuperF3D to vtk-based output files.
Top level namespace for all of OpenLB.
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeF2D< T, DESCRIPTOR >, SuperLatticeF3D< T, DESCRIPTOR > > SuperLatticeF
Definition aliases.h:148
std::conditional_t< D==2, IndicatorCuboid2D< T >, IndicatorCuboid3D< T > > IndicatorCuboid
Definition aliases.h:268
std::conditional_t< D==2, Communicator2D< T >, Communicator3D< T > > Communicator
Definition aliases.h:57
std::conditional_t< D==2, BlockIndicatorBoundaryNeighbor2D< T >, BlockIndicatorBoundaryNeighbor3D< T > > BlockIndicatorBoundaryNeighbor
Definition aliases.h:238
std::conditional_t< DIM==2, SuperGeometryStatistics2D< T >, SuperGeometryStatistics3D< T > > SuperGeometryStatistics
Definition aliases.h:88
std::conditional_t< DESCRIPTOR::d==2, BlockLatticeInterpPhysVelocity2D< T, DESCRIPTOR >, BlockLatticeInterpPhysVelocity3D< T, DESCRIPTOR > > BlockLatticeInterpPhysVelocity
Definition aliases.h:360
std::conditional_t< D==2, SuperIndicatorBoundaryNeighbor2D< T >, SuperIndicatorBoundaryNeighbor3D< T > > SuperIndicatorBoundaryNeighbor
Definition aliases.h:308
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeRank2D< T, DESCRIPTOR >, SuperLatticeRank3D< T, DESCRIPTOR > > SuperLatticeRank
Definition aliases.h:138
std::conditional_t< D==2, SuperIndicatorFfromIndicatorF2D< T >, SuperIndicatorFfromIndicatorF3D< T > > SuperIndicatorFfromIndicatorF
Definition aliases.h:288
std::conditional_t< DESCRIPTOR::d==2, BlockLatticePhysF2D< T, DESCRIPTOR >, BlockLatticePhysF3D< T, DESCRIPTOR > > BlockLatticePhysF
Definition aliases.h:339
std::conditional_t< D==2, BlockF2D< T >, BlockF3D< T > > BlockF
Definition aliases.h:188
std::conditional_t< DESCRIPTOR::d==2, LatticeCouplingGenerator2D< T, DESCRIPTOR >, LatticeCouplingGenerator3D< T, DESCRIPTOR > > LatticeCouplingGenerator
Definition aliases.h:168
std::conditional_t< DESCRIPTOR::d==2, BlockLatticeF2D< T, DESCRIPTOR >, BlockLatticeF3D< T, DESCRIPTOR > > BlockLatticeF
Definition aliases.h:158
std::conditional_t< D==2, SmoothIndicatorF2D< T, T, PARTICLE >, SmoothIndicatorF3D< T, T, PARTICLE > > SmoothIndicatorF
Definition aliases.h:278
std::conditional_t< D==2, SuperF2D< T, U >, SuperF3D< T, U > > SuperF
Definition aliases.h:198
std::conditional_t< DESCRIPTOR::d==2, SuperField2D< T, DESCRIPTOR, FIELD >, SuperField3D< T, DESCRIPTOR, FIELD > > SuperField
Definition aliases.h:318
std::conditional_t< D==2, CuboidGeometry2D< T >, CuboidGeometry3D< T > > CuboidGeometry
Definition aliases.h:47
std::conditional_t< D==2, BlockIndicatorF2D< T >, BlockIndicatorF3D< T > > BlockIndicatorF
Definition aliases.h:218
std::conditional_t< D==2, SuperIndicatorMaterial2D< T >, SuperIndicatorMaterial3D< T > > SuperIndicatorMaterial
Definition aliases.h:298
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeInterpPhysVelocity2D< T, DESCRIPTOR >, SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > > SuperLatticeInterpPhysVelocity
Definition aliases.h:349
std::conditional_t< DESCRIPTOR::d==2, SuperLatticePhysF2D< T, DESCRIPTOR >, SuperLatticePhysF3D< T, DESCRIPTOR > > SuperLatticePhysF
Definition aliases.h:329
std::conditional_t< D==2, BlockGeometryStatistics2D< T >, BlockGeometryStatistics3D< T > > BlockGeometryStatistics
Definition aliases.h:178
std::conditional_t< D==2, IndicatorF2D< T >, IndicatorF3D< T > > IndicatorF
Definition aliases.h:258
std::conditional_t< D==2, BlockIndicatorFfromIndicatorF2D< T >, BlockIndicatorFfromIndicatorF3D< T > > BlockIndicatorFfromIndicatorF
Definition aliases.h:248
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeGeometry2D< T, DESCRIPTOR >, SuperLatticeGeometry3D< T, DESCRIPTOR > > SuperLatticeGeometry
Definition aliases.h:118
std::conditional_t< DIM==2, SuperVTMwriter2D< T, OUT_T, W >, SuperVTMwriter3D< T, OUT_T, W > > SuperVTMwriter
Definition aliases.h:108
std::conditional_t< DESCRIPTOR::d==2, PostProcessor2D< T, DESCRIPTOR >, PostProcessor3D< T, DESCRIPTOR > > PostProcessor
Definition aliases.h:67
std::conditional_t< DESCRIPTOR::d==2, SuperLatticeCuboid2D< T, DESCRIPTOR >, SuperLatticeCuboid3D< T, DESCRIPTOR > > SuperLatticeCuboid
Definition aliases.h:128
std::conditional_t< D==2, BlockIndicatorMaterial2D< T >, BlockIndicatorMaterial3D< T > > BlockIndicatorMaterial
Definition aliases.h:228
std::conditional_t< DESCRIPTOR::d==2, PostProcessorGenerator2D< T, DESCRIPTOR >, PostProcessorGenerator3D< T, DESCRIPTOR > > PostProcessorGenerator
Definition aliases.h:77
std::conditional_t< D==2, SuperIndicatorF2D< T >, SuperIndicatorF3D< T > > SuperIndicatorF
Definition aliases.h:208
std::conditional_t< D==2, Cuboid2D< T >, Cuboid3D< T > > Cuboid
Definition aliases.h:37