OpenLB 1.7
Loading...
Searching...
No Matches
Classes | Functions
olb::boundaryhelper Namespace Reference

Classes

struct  DirectionOrientationMixinDynamicsForDirectionOrientationMomenta
 
struct  DirectionOrientationMixinDynamicsForPlainMomenta
 
struct  MixinDynamicsExchangeDirectionOrientationMomenta
 
struct  NormalDynamicsForNormalMomenta
 
struct  NormalDynamicsForPlainMomenta
 
struct  NormalMixinDynamicsForNormalMomenta
 
struct  NormalMixinDynamicsForPlainMomenta
 
struct  NormalSpecialDynamicsForPlainMomenta
 
struct  NormalSpecialMixinDynamicsForPlainMomenta
 
struct  PlainDynamicsForDirectionOrientationMomenta
 
struct  PlainDynamicsForNormalMomenta
 
struct  PlainMixinDynamicsForDirectionOrientationMomenta
 
struct  PlainMixinDynamicsForNormalMomenta
 
struct  PlainMixinDynamicsForNormalSpecialMomenta
 

Functions

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > constructConcreteDynamicsForNormal (Vector< int, 2 > n)
 
template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > constructConcreteDynamicsForDirectionOrientation (Vector< int, 2 > n)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
RESULT * constructForNormal (Vector< int, 2 > n, ARGS &&... args)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
RESULT promiseForNormal (Vector< int, 2 > n)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator2D< T, DESCRIPTOR > * constructPostProcessorForNormal (Vector< int, 2 > n, ARGS &&... args)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormal (Vector< int, 2 > n)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
RESULT * constructForDirectionOrientation (Vector< int, 2 > n, ARGS &&... args)
 
template<typename PROMISE , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PROMISE promiseForDirectionOrientation (Vector< int, 2 > n)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator2D< T, DESCRIPTOR > * constructPostProcessorForDirectionOrientation (Vector< int, 2 > n, ARGS &&... args)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForDirectionOrientation (Vector< int, 2 > n)
 
template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > constructConcreteDynamicsForNormal (Vector< int, 3 > n)
 
template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > constructConcreteDynamicsForNormalSpecial (Vector< int, 3 > n)
 
template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > constructConcreteDynamicsForDirectionOrientation (Vector< int, 3 > n)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
RESULT * constructForNormal (Vector< int, 3 > n, ARGS &&... args)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
RESULT promiseForNormal (Vector< int, 3 > n)
 
template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
RESULT * constructForNormalSpecial (Vector< int, 3 > n, ARGS &&... args)
 
template<typename PROMISE , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PROMISE promiseForNormalSpecial (Vector< int, 3 > n)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator3D< T, DESCRIPTOR > * constructPostProcessorForNormal (Vector< int, 3 > n, ARGS &&... args)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormal (Vector< int, 3 > n)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator3D< T, DESCRIPTOR > * constructPostProcessorForNormalSpecial (Vector< int, 3 > n, ARGS &&... args)
 
template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormalSpecial (Vector< int, 3 > n)
 

Function Documentation

◆ constructConcreteDynamicsForDirectionOrientation() [1/2]

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > olb::boundaryhelper::constructConcreteDynamicsForDirectionOrientation ( Vector< int, 2 > n)

Definition at line 138 of file setBoundary2D.h.

139{
140 if (n[0] == 1) {
141 return DynamicsPromise(meta::id<DYNAMICS<0,1>>{});
142 }
143 else if (n[0] == -1) {
144 return DynamicsPromise(meta::id<DYNAMICS<0,-1>>{});
145 }
146 else if (n[1] == 1) {
147 return DynamicsPromise(meta::id<DYNAMICS<1,1>>{});
148 }
149 else if (n[1] == -1) {
150 return DynamicsPromise(meta::id<DYNAMICS<1,-1>>{});
151 }
152 else {
153 throw std::runtime_error("Could not set Boundary.");
154 }
155}
Factory for instances of a specific Dynamics type.
DynamicsPromise(meta::id< DYNAMICS >) -> DynamicsPromise< typename DYNAMICS::value_t, typename DYNAMICS::descriptor_t >
Identity type to pass non-constructible types as value.
Definition meta.h:79

References olb::DynamicsPromise().

+ Here is the call graph for this function:

◆ constructConcreteDynamicsForDirectionOrientation() [2/2]

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > olb::boundaryhelper::constructConcreteDynamicsForDirectionOrientation ( Vector< int, 3 > n)

Definition at line 204 of file setBoundary3D.h.

205{
206 if (n == Vector<int,3> {-1, 0, 0}) {
207 return DynamicsPromise(meta::id<DYNAMICS<0,-1>>{});
208 }
209 else if (n == Vector<int,3> {1, 0, 0}) {
210 return DynamicsPromise(meta::id<DYNAMICS<0,1>>{});
211 }
212 else if (n == Vector<int,3> {0, -1, 0}) {
213 return DynamicsPromise(meta::id<DYNAMICS<1,-1>>{});
214 }
215 else if (n == Vector<int,3> {0, 1, 0}) {
216 return DynamicsPromise(meta::id<DYNAMICS<1,1>>{});
217 }
218 else if (n == Vector<int,3> {0, 0, -1}) {
219 return DynamicsPromise(meta::id<DYNAMICS<2,-1>>{});
220 }
221 else if (n == Vector<int,3> {0, 0, 1}) {
222 return DynamicsPromise(meta::id<DYNAMICS<2,1>>{});
223 }
224 else {
225 throw std::runtime_error("Could not set Boundary.");
226 }
227}
Plain old scalar vector.
Definition vector.h:47

References olb::DynamicsPromise().

+ Here is the call graph for this function:

◆ constructConcreteDynamicsForNormal() [1/2]

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > olb::boundaryhelper::constructConcreteDynamicsForNormal ( Vector< int, 2 > n)

Definition at line 114 of file setBoundary2D.h.

115{
116 if (n == Vector<int,2> {1, 1}) {
117 return DynamicsPromise(meta::id<DYNAMICS<1,1>>{});
118 }
119 else if (n == Vector<int,2> {1, -1}) {
120 return DynamicsPromise(meta::id<DYNAMICS<1,-1>>{});
121 }
122 else if (n == Vector<int,2> {-1, 1}) {
123 return DynamicsPromise(meta::id<DYNAMICS<-1,1>>{});
124 }
125 else if (n == Vector<int,2> {-1, -1}) {
126 return DynamicsPromise(meta::id<DYNAMICS<-1,-1>>{});
127 }
128 else {
129 throw std::runtime_error("Could not set Boundary.");
130 }
131}

References olb::DynamicsPromise().

+ Here is the call graph for this function:

◆ constructConcreteDynamicsForNormal() [2/2]

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > olb::boundaryhelper::constructConcreteDynamicsForNormal ( Vector< int, 3 > n)

Definition at line 120 of file setBoundary3D.h.

121{
122 if (n == Vector<int,3> {1, 1, 1}) {
123 return DynamicsPromise(meta::id<DYNAMICS<1,1,1>>{});
124 }
125 else if (n == Vector<int,3> {1, -1, 1}) {
126 return DynamicsPromise(meta::id<DYNAMICS<1,-1,1>>{});
127 }
128 else if (n == Vector<int,3> {1, 1, -1}) {
129 return DynamicsPromise(meta::id<DYNAMICS<1,1,-1>>{});
130 }
131 else if (n == Vector<int,3> {1, -1, -1}) {
132 return DynamicsPromise(meta::id<DYNAMICS<1,-1,-1>>{});
133 }
134 else if (n == Vector<int,3> {-1, 1, 1}) {
135 return DynamicsPromise(meta::id<DYNAMICS<-1,1,1>>{});
136 }
137 else if (n == Vector<int,3> {-1, -1, 1}) {
138 return DynamicsPromise(meta::id<DYNAMICS<-1,-1,1>>{});
139 }
140 else if (n == Vector<int,3> {-1, 1, -1}) {
141 return DynamicsPromise(meta::id<DYNAMICS<-1,1,-1>>{});
142 }
143 else if (n == Vector<int,3> {-1, -1, -1}) {
144 return DynamicsPromise(meta::id<DYNAMICS<-1,-1,-1>>{});
145 }
146 else {
147 throw std::runtime_error("Could not set Boundary.");
148 }
149}

References olb::DynamicsPromise().

+ Here is the call graph for this function:

◆ constructConcreteDynamicsForNormalSpecial()

template<typename T , typename DESCRIPTOR , template< int... > typename DYNAMICS>
DynamicsPromise< T, DESCRIPTOR > olb::boundaryhelper::constructConcreteDynamicsForNormalSpecial ( Vector< int, 3 > n)

Definition at line 156 of file setBoundary3D.h.

157{
158 if (n == Vector<int,3> {0, 1, 1}) {
159 return DynamicsPromise(meta::id<DYNAMICS<0,1,1>>{});
160 }
161 else if (n == Vector<int,3> {0, -1, 1}) {
162 return DynamicsPromise(meta::id<DYNAMICS<0,-1,1>>{});
163 }
164 else if (n == Vector<int,3> {0, 1, -1}) {
165 return DynamicsPromise(meta::id<DYNAMICS<0,1,-1>>{});
166 }
167 else if (n == Vector<int,3> {0, -1, -1}) {
168 return DynamicsPromise(meta::id<DYNAMICS<0,-1,-1>>{});
169 }
170 else if (n == Vector<int,3> {1, 0, 1}) {
171 return DynamicsPromise(meta::id<DYNAMICS<1,1,1>>{});
172 }
173 else if (n == Vector<int,3> {-1, 0, -1}) {
174 return DynamicsPromise(meta::id<DYNAMICS<1,-1,-1>>{});
175 }
176 else if (n == Vector<int,3> {-1, 0, 1}) {
177 return DynamicsPromise(meta::id<DYNAMICS<1,1,-1>>{});
178 }
179 else if (n == Vector<int,3> {1, 0, -1}) {
180 return DynamicsPromise(meta::id<DYNAMICS<1,-1,1>>{});
181 }
182 else if (n == Vector<int,3> {1, 1, 0}) {
183 return DynamicsPromise(meta::id<DYNAMICS<2,1,1>>{});
184 }
185 else if (n == Vector<int,3> {-1, 1, 0}) {
186 return DynamicsPromise(meta::id<DYNAMICS<2,-1,1>>{});
187 }
188 else if (n == Vector<int,3> {1, -1, 0}) {
189 return DynamicsPromise(meta::id<DYNAMICS<2,1,-1>>{});
190 }
191 else if (n == Vector<int,3> {-1, -1, 0}) {
192 return DynamicsPromise(meta::id<DYNAMICS<2,-1,-1>>{});
193 }
194 else {
195 throw std::invalid_argument("Invalid normal");
196 }
197}

References olb::DynamicsPromise().

+ Here is the call graph for this function:

◆ constructForDirectionOrientation()

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
RESULT * olb::boundaryhelper::constructForDirectionOrientation ( Vector< int, 2 > n,
ARGS &&... args )

Definition at line 353 of file setBoundary2D.h.

354{
355 if (n[0] == 1) {
356 return new TYPE<T,DESCRIPTOR,0,1>(std::forward<decltype(args)>(args)...);
357 }
358 else if (n[0] == -1) {
359 return new TYPE<T,DESCRIPTOR,0,-1>(std::forward<decltype(args)>(args)...);
360 }
361 else if (n[1] == 1) {
362 return new TYPE<T,DESCRIPTOR,1,1>(std::forward<decltype(args)>(args)...);
363 }
364 else if (n[1] == -1) {
365 return new TYPE<T,DESCRIPTOR,1,-1>(std::forward<decltype(args)>(args)...);
366 }
367 else {
368 throw std::runtime_error("Could not set Boundary.");
369 }
370}

◆ constructForNormal() [1/2]

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
RESULT * olb::boundaryhelper::constructForNormal ( Vector< int, 2 > n,
ARGS &&... args )

Definition at line 272 of file setBoundary2D.h.

273{
274 if (n == Vector<int,2> {1, 1}) {
275 return new TYPE<T,DESCRIPTOR,1,1>(std::forward<decltype(args)>(args)...);
276 }
277 else if (n == Vector<int,2> {1, -1}) {
278 return new TYPE<T,DESCRIPTOR,1,-1>(std::forward<decltype(args)>(args)...);
279 }
280 else if (n == Vector<int,2> {-1, 1}) {
281 return new TYPE<T,DESCRIPTOR,-1,1>(std::forward<decltype(args)>(args)...);
282 }
283 else if (n == Vector<int,2> {-1, -1}) {
284 return new TYPE<T,DESCRIPTOR,-1,-1>(std::forward<decltype(args)>(args)...);
285 }
286 else {
287 throw std::runtime_error("Could not set Boundary.");
288 }
289}

◆ constructForNormal() [2/2]

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
RESULT * olb::boundaryhelper::constructForNormal ( Vector< int, 3 > n,
ARGS &&... args )

Definition at line 283 of file setBoundary3D.h.

284{
285 if (n == Vector<int,3> {1, 1, 1}) {
286 return new TYPE<T,DESCRIPTOR,1,1,1>(std::forward<decltype(args)>(args)...);
287 }
288 else if (n == Vector<int,3> {1, -1, 1}) {
289 return new TYPE<T,DESCRIPTOR,1,-1,1>(std::forward<decltype(args)>(args)...);
290 }
291 else if (n == Vector<int,3> {1, 1, -1}) {
292 return new TYPE<T,DESCRIPTOR,1,1,-1>(std::forward<decltype(args)>(args)...);
293 }
294 else if (n == Vector<int,3> {1, -1, -1}) {
295 return new TYPE<T,DESCRIPTOR,1,-1,-1>(std::forward<decltype(args)>(args)...);
296 }
297 else if (n == Vector<int,3> {-1, 1, 1}) {
298 return new TYPE<T,DESCRIPTOR,-1,1,1>(std::forward<decltype(args)>(args)...);
299 }
300 else if (n == Vector<int,3> {-1, -1, 1}) {
301 return new TYPE<T,DESCRIPTOR,-1,-1,1>(std::forward<decltype(args)>(args)...);
302 }
303 else if (n == Vector<int,3> {-1, 1, -1}) {
304 return new TYPE<T,DESCRIPTOR,-1,1,-1>(std::forward<decltype(args)>(args)...);
305 }
306 else if (n == Vector<int,3> {-1, -1, -1}) {
307 return new TYPE<T,DESCRIPTOR,-1,-1,-1>(std::forward<decltype(args)>(args)...);
308 }
309 else {
310 return nullptr;
311 }
312}

◆ constructForNormalSpecial()

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
RESULT * olb::boundaryhelper::constructForNormalSpecial ( Vector< int, 3 > n,
ARGS &&... args )

Definition at line 410 of file setBoundary3D.h.

411{
412 if (n == Vector<int,3> {0, 1, 1}) {
413 return new TYPE<T,DESCRIPTOR,0,1,1>(std::forward<decltype(args)>(args)...);
414 }
415 else if (n == Vector<int,3> {0, -1, 1}) {
416 return new TYPE<T,DESCRIPTOR,0,-1,1>(std::forward<decltype(args)>(args)...);
417 }
418 else if (n == Vector<int,3> {0, 1, -1}) {
419 return new TYPE<T,DESCRIPTOR,0,1,-1>(std::forward<decltype(args)>(args)...);
420 }
421 else if (n == Vector<int,3> {0, -1, -1}) {
422 return new TYPE<T,DESCRIPTOR,0,-1,-1>(std::forward<decltype(args)>(args)...);
423 }
424 else if (n == Vector<int,3> {1, 0, 1}) {
425 return new TYPE<T,DESCRIPTOR,1,1,1>(std::forward<decltype(args)>(args)...);
426 }
427 else if (n == Vector<int,3> {-1, 0, -1}) {
428 return new TYPE<T,DESCRIPTOR,1,-1,-1>(std::forward<decltype(args)>(args)...);
429 }
430 else if (n == Vector<int,3> {-1, 0, 1}) {
431 return new TYPE<T,DESCRIPTOR,1,1,-1>(std::forward<decltype(args)>(args)...);
432 }
433 else if (n == Vector<int,3> {1, 0, -1}) {
434 return new TYPE<T,DESCRIPTOR,1,-1,1>(std::forward<decltype(args)>(args)...);
435 }
436 else if (n == Vector<int,3> {1, 1, 0}) {
437 return new TYPE<T,DESCRIPTOR,2,1,1>(std::forward<decltype(args)>(args)...);
438 }
439 else if (n == Vector<int,3> {-1, 1, 0}) {
440 return new TYPE<T,DESCRIPTOR,2,-1,1>(std::forward<decltype(args)>(args)...);
441 }
442 else if (n == Vector<int,3> {1, -1, 0}) {
443 return new TYPE<T,DESCRIPTOR,2,1,-1>(std::forward<decltype(args)>(args)...);
444 }
445 else if (n == Vector<int,3> {-1, -1, 0}) {
446 return new TYPE<T,DESCRIPTOR,2,-1,-1>(std::forward<decltype(args)>(args)...);
447 }
448 else {
449 return nullptr;
450 }
451}

◆ constructPostProcessorForDirectionOrientation()

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator2D< T, DESCRIPTOR > * olb::boundaryhelper::constructPostProcessorForDirectionOrientation ( Vector< int, 2 > n,
ARGS &&... args )

Definition at line 402 of file setBoundary2D.h.

403{
404 return constructForDirectionOrientation<PostProcessorGenerator2D<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n, std::forward<decltype(args)>(args)...);
405}

◆ constructPostProcessorForNormal() [1/2]

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator2D< T, DESCRIPTOR > * olb::boundaryhelper::constructPostProcessorForNormal ( Vector< int, 2 > n,
ARGS &&... args )

Definition at line 332 of file setBoundary2D.h.

333{
334 return constructForNormal<PostProcessorGenerator2D<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n, std::forward<decltype(args)>(args)...);
335}

◆ constructPostProcessorForNormal() [2/2]

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator3D< T, DESCRIPTOR > * olb::boundaryhelper::constructPostProcessorForNormal ( Vector< int, 3 > n,
ARGS &&... args )

Definition at line 507 of file setBoundary3D.h.

508{
509 return constructForNormal<PostProcessorGenerator3D<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n, std::forward<decltype(args)>(args)...);
510}

◆ constructPostProcessorForNormalSpecial()

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE, typename... ARGS>
PostProcessorGenerator3D< T, DESCRIPTOR > * olb::boundaryhelper::constructPostProcessorForNormalSpecial ( Vector< int, 3 > n,
ARGS &&... args )

Definition at line 527 of file setBoundary3D.h.

528{
529 return constructForNormalSpecial<PostProcessorGenerator3D<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n, std::forward<decltype(args)>(args)...);
530}

◆ promiseForDirectionOrientation()

template<typename PROMISE , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PROMISE olb::boundaryhelper::promiseForDirectionOrientation ( Vector< int, 2 > n)

Definition at line 377 of file setBoundary2D.h.

378{
379 if (n[0] == 1) {
381 }
382 else if (n[0] == -1) {
383 return meta::id<TYPE<T,DESCRIPTOR,0,-1>>();
384 }
385 else if (n[1] == 1) {
386 return meta::id<TYPE<T,DESCRIPTOR,1,1>>();
387 }
388 else if (n[1] == -1) {
389 return meta::id<TYPE<T,DESCRIPTOR,1,-1>>();
390 }
391 else {
392 throw std::runtime_error("Invalid normal");
393 }
394}

◆ promiseForNormal() [1/2]

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
RESULT olb::boundaryhelper::promiseForNormal ( Vector< int, 2 > n)

Definition at line 295 of file setBoundary2D.h.

296{
297 if (n == Vector<int,2> {1, 1}) {
299 }
300 else if (n == Vector<int,2> {1, -1}) {
301 return meta::id<TYPE<T,DESCRIPTOR,1,-1>>();
302 }
303 else if (n == Vector<int,2> {-1, 1}) {
304 return meta::id<TYPE<T,DESCRIPTOR,-1,1>>();
305 }
306 else if (n == Vector<int,2> {-1, -1}) {
307 return meta::id<TYPE<T,DESCRIPTOR,-1,-1>>();
308 }
309 else if (n == Vector<int,2> {-1, 0}) {
310 return meta::id<TYPE<T,DESCRIPTOR,-1,0>>();
311 }
312 else if (n == Vector<int,2> {1, 0}) {
313 return meta::id<TYPE<T,DESCRIPTOR,1,0>>();
314 }
315 else if (n == Vector<int,2> {0, -1}) {
316 return meta::id<TYPE<T,DESCRIPTOR,0,-1>>();
317 }
318 else if (n == Vector<int,2> {0, 1}) {
319 return meta::id<TYPE<T,DESCRIPTOR,0,1>>();
320 }
321 else {
322 throw std::runtime_error("Invalid normal");
323 }
324}

◆ promiseForNormal() [2/2]

template<typename RESULT , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
RESULT olb::boundaryhelper::promiseForNormal ( Vector< int, 3 > n)

Definition at line 318 of file setBoundary3D.h.

319{
320 if (n == Vector<int,3> {1, 1, 1}) {
322 }
323 else if (n == Vector<int,3> {1, -1, 1}) {
324 return meta::id<TYPE<T,DESCRIPTOR,1,-1,1>>();
325 }
326 else if (n == Vector<int,3> {1, 1, -1}) {
327 return meta::id<TYPE<T,DESCRIPTOR,1,1,-1>>();
328 }
329 else if (n == Vector<int,3> {1, -1, -1}) {
330 return meta::id<TYPE<T,DESCRIPTOR,1,-1,-1>>();
331 }
332 else if (n == Vector<int,3> {-1, 1, 1}) {
333 return meta::id<TYPE<T,DESCRIPTOR,-1,1,1>>();
334 }
335 else if (n == Vector<int,3> {-1, -1, 1}) {
336 return meta::id<TYPE<T,DESCRIPTOR,-1,-1,1>>();
337 }
338 else if (n == Vector<int,3> {-1, 1, -1}) {
339 return meta::id<TYPE<T,DESCRIPTOR,-1,1,-1>>();
340 }
341 else if (n == Vector<int,3> {-1, -1, -1}) {
342 return meta::id<TYPE<T,DESCRIPTOR,-1,-1,-1>>();
343 }
344 else if (n == Vector<int,3> {-1, -1, 0}) {
345 return meta::id<TYPE<T,DESCRIPTOR,-1,-1,0>>();
346 }
347 else if (n == Vector<int,3> {-1, 0, 0}) {
348 return meta::id<TYPE<T,DESCRIPTOR,-1,0,0>>();
349 }
350 else if (n == Vector<int,3> {1, 0, 0}) {
351 return meta::id<TYPE<T,DESCRIPTOR,1,0,0>>();
352 }
353 else if (n == Vector<int,3> {0, -1, 0}) {
354 return meta::id<TYPE<T,DESCRIPTOR,0,-1,0>>();
355 }
356 else if (n == Vector<int,3> {-1, 0, -1}) {
357 return meta::id<TYPE<T,DESCRIPTOR,-1,0,-1>>();
358 }
359 else if (n == Vector<int,3> {0, 1, 0}) {
360 return meta::id<TYPE<T,DESCRIPTOR,0,1,0>>();
361 }
362 else if (n == Vector<int,3> {0, 0, -1}) {
363 return meta::id<TYPE<T,DESCRIPTOR,0,0,-1>>();
364 }
365 else if (n == Vector<int,3> {-1, 1, 0}) {
366 return meta::id<TYPE<T,DESCRIPTOR,-1,1,0>>();
367 }
368 else if (n == Vector<int,3> {0, -1, -1}) {
369 return meta::id<TYPE<T,DESCRIPTOR,0,-1,-1>>();
370 }
371 else if (n == Vector<int,3> {0, -1, 1}) {
372 return meta::id<TYPE<T,DESCRIPTOR,0,-1,1>>();
373 }
374 else if (n == Vector<int,3> {-1, 0, 1}) {
375 return meta::id<TYPE<T,DESCRIPTOR,-1,0,1>>();
376 }
377 else if (n == Vector<int,3> {1, 0, -1}) {
378 return meta::id<TYPE<T,DESCRIPTOR,1,0,-1>>();
379 }
380 else if (n == Vector<int,3> {0, 0, 1}) {
381 return meta::id<TYPE<T,DESCRIPTOR,0,0,1>>();
382 }
383 else if (n == Vector<int,3> {0, 1, -1}) {
384 return meta::id<TYPE<T,DESCRIPTOR,0,1,-1>>();
385 }
386 else if (n == Vector<int,3> {0, 1, 1}) {
387 return meta::id<TYPE<T,DESCRIPTOR,0,1,1>>();
388 }
389 else if (n == Vector<int,3> {1, 0, 1}) {
390 return meta::id<TYPE<T,DESCRIPTOR,1,0,1>>();
391 }
392 else if (n == Vector<int,3> {1, -1, 0}) {
393 return meta::id<TYPE<T,DESCRIPTOR,1,-1,0>>();
394 }
395 else if (n == Vector<int,3> {1, 1, 0}) {
396 return meta::id<TYPE<T,DESCRIPTOR,1,1,0>>();
397 }
398 else {
399 throw std::domain_error("Invalid normal");
400 }
401}

◆ promiseForNormalSpecial()

template<typename PROMISE , typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PROMISE olb::boundaryhelper::promiseForNormalSpecial ( Vector< int, 3 > n)

Definition at line 458 of file setBoundary3D.h.

459{
460 if (n == Vector<int,3> {0, 1, 1}) {
462 }
463 else if (n == Vector<int,3> {0, -1, 1}) {
464 return meta::id<TYPE<T,DESCRIPTOR,0,-1,1>>();
465 }
466 else if (n == Vector<int,3> {0, 1, -1}) {
467 return meta::id<TYPE<T,DESCRIPTOR,0,1,-1>>();
468 }
469 else if (n == Vector<int,3> {0, -1, -1}) {
470 return meta::id<TYPE<T,DESCRIPTOR,0,-1,-1>>();
471 }
472 else if (n == Vector<int,3> {1, 0, 1}) {
473 return meta::id<TYPE<T,DESCRIPTOR,1,1,1>>();
474 }
475 else if (n == Vector<int,3> {-1, 0, -1}) {
476 return meta::id<TYPE<T,DESCRIPTOR,1,-1,-1>>();
477 }
478 else if (n == Vector<int,3> {-1, 0, 1}) {
479 return meta::id<TYPE<T,DESCRIPTOR,1,1,-1>>();
480 }
481 else if (n == Vector<int,3> {1, 0, -1}) {
482 return meta::id<TYPE<T,DESCRIPTOR,1,-1,1>>();
483 }
484 else if (n == Vector<int,3> {1, 1, 0}) {
485 return meta::id<TYPE<T,DESCRIPTOR,2,1,1>>();
486 }
487 else if (n == Vector<int,3> {-1, 1, 0}) {
488 return meta::id<TYPE<T,DESCRIPTOR,2,-1,1>>();
489 }
490 else if (n == Vector<int,3> {1, -1, 0}) {
491 return meta::id<TYPE<T,DESCRIPTOR,2,1,-1>>();
492 }
493 else if (n == Vector<int,3> {-1, -1, 0}) {
494 return meta::id<TYPE<T,DESCRIPTOR,2,-1,-1>>();
495 }
496 else {
497 throw std::domain_error("Invalid normal");
498 }
499}

◆ promisePostProcessorForDirectionOrientation()

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > olb::boundaryhelper::promisePostProcessorForDirectionOrientation ( Vector< int, 2 > n)

Definition at line 411 of file setBoundary2D.h.

412{
413 return promiseForDirectionOrientation<PostProcessorPromise<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n);
414}

◆ promisePostProcessorForNormal() [1/2]

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > olb::boundaryhelper::promisePostProcessorForNormal ( Vector< int, 2 > n)

Definition at line 341 of file setBoundary2D.h.

342{
343 return promiseForNormal<PostProcessorPromise<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n);
344}

◆ promisePostProcessorForNormal() [2/2]

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > olb::boundaryhelper::promisePostProcessorForNormal ( Vector< int, 3 > n)

Definition at line 516 of file setBoundary3D.h.

517{
518 return promiseForNormal<PostProcessorPromise<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n);
519}

◆ promisePostProcessorForNormalSpecial()

template<typename T , typename DESCRIPTOR , template< typename, typename, int, int, int > typename TYPE>
PostProcessorPromise< T, DESCRIPTOR > olb::boundaryhelper::promisePostProcessorForNormalSpecial ( Vector< int, 3 > n)

Definition at line 536 of file setBoundary3D.h.

537{
538 return promiseForNormalSpecial<PostProcessorPromise<T,DESCRIPTOR>,T,DESCRIPTOR,TYPE>(n);
539}