OpenLB 1.7
Loading...
Searching...
No Matches
offBoundaryPostProcessors3D.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2012 Jonas Kratzke, Mathias J. Krause
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 OFF_BOUNDARY_POST_PROCESSORS_3D_H
25#define OFF_BOUNDARY_POST_PROCESSORS_3D_H
26
27#include "core/postProcessing.h"
28
29namespace olb {
30
35template<typename T, typename DESCRIPTOR>
37public:
38 ZeroVelocityBouzidiLinearPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_);
39 int extent() const override
40 {
41 return 1;
42 }
43 int extent(int whichDirection) const override
44 {
45 return 1;
46 }
47 void process(BlockLattice<T,DESCRIPTOR>& blockLattice) override;
49 int x0_, int x1_, int y0_, int y1_, int z0_, int z1_ ) override;
50private:
51 int x, y, z;
52 int xN, yN, zN, xB, yB, zB;
53 int iPop, opp, iPop2;
54 T q, dist;
55};
56
57template<typename T, typename DESCRIPTOR>
59public:
60 ZeroVelocityBounceBackPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_);
61 int extent() const override
62 {
63 return 1;
64 }
65 int extent(int whichDirection) const override
66 {
67 return 1;
68 }
69 void process(BlockLattice<T,DESCRIPTOR>& blockLattice) override;
71 int x0_, int x1_, int y0_, int y1_, int z0_, int z1_ ) override;
72private:
73 int x, y, z;
74 int xN, yN, zN;
75 int iPop, opp;
76 T dist;
77};
78
79template<typename T, typename DESCRIPTOR>
81public:
82 VelocityBouzidiLinearPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_);
83 int extent() const override
84 {
85 return 1;
86 }
87 int extent(int whichDirection) const override
88 {
89 return 1;
90 }
91 void process(BlockLattice<T,DESCRIPTOR>& blockLattice) override;
93 int x0_, int x1_, int y0_, int y1_, int z0_, int z1_ ) override;
94private:
95 int x, y, z;
96 int xN, yN, zN, xB, yB, zB;
97 int iPop, opp, iPop2;
98 T q, dist;
99 T ufrac;
100};
101
102template<typename T, typename DESCRIPTOR>
104public:
105 VelocityBounceBackPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_);
106 int extent() const override
107 {
108 return 1;
109 }
110 int extent(int whichDirection) const override
111 {
112 return 1;
113 }
114 void process(BlockLattice<T,DESCRIPTOR>& blockLattice) override;
116 int x0_, int x1_, int y0_, int y1_, int z0_, int z1_ ) override;
117private:
118 int x, y, z;
119 int xN, yN, zN;
120 int iPop, opp;
121 T dist;
122};
123
128template<typename T, typename DESCRIPTOR>
130public:
131 ZeroVelocityBouzidiLinearPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_);
132 PostProcessor3D<T,DESCRIPTOR>* generate() const override;
134private:
135 int x, y, z;
136 int iPop;
137 T dist;
138};
139
140template<typename T, typename DESCRIPTOR>
142public:
143 ZeroVelocityBounceBackPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_);
144 PostProcessor3D<T,DESCRIPTOR>* generate() const override;
146private:
147 int x, y, z;
148 int iPop;
149 T dist;
150};
151
152template<typename T, typename DESCRIPTOR>
154public:
155 VelocityBouzidiLinearPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_);
156 PostProcessor3D<T,DESCRIPTOR>* generate() const override;
158private:
159 int x, y, z;
160 int iPop;
161 T dist;
162};
163
164template<typename T, typename DESCRIPTOR>
166public:
167 VelocityBounceBackPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_);
168 PostProcessor3D<T,DESCRIPTOR>* generate() const override;
170private:
171 int x, y, z;
172 int iPop;
173 T dist;
174};
175
176}
177
178#endif
Platform-abstracted block lattice for external access and inter-block interaction.
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
int extent() const override
Extent of application area (0 for purely local operations)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
VelocityBounceBackPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_)
VelocityBounceBackPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_)
PostProcessorGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate() const override
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
int extent() const override
Extent of application area (0 for purely local operations)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
VelocityBouzidiLinearPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_)
PostProcessorGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate() const override
VelocityBouzidiLinearPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
ZeroVelocityBounceBackPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_)
int extent() const override
Extent of application area (0 for purely local operations)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
ZeroVelocityBounceBackPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_)
PostProcessorGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate() const override
This class computes the Linear Bouzidi BC.
int extent() const override
Extent of application area (0 for purely local operations)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
ZeroVelocityBouzidiLinearPostProcessor3D(int x_, int y_, int z_, int iPop_, T dist_)
ZeroVelocityBouzidiLinearPostProcessorGenerator3D(int x_, int y_, int z_, int iPop_, T dist_)
PostProcessorGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate() const override
Top level namespace for all of OpenLB.
Interface for post-processing steps – header file.