24#ifndef NAVIER_STOKES_INTO_ADVECTION_DIFFUSION_COUPLING_POST_PROCESSOR_3D_H
25#define NAVIER_STOKES_INTO_ADVECTION_DIFFUSION_COUPLING_POST_PROCESSOR_3D_H
40template<
typename T,
typename DESCRIPTOR,
typename DYNAMICS>
44 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_,
50 int extent(
int whichDirection)
const override
56 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
59 int x0, x1, y0, y1, z0, z1;
60 T gravity, T0, deltaTemp;
63 T forcePrefactor[L::d];
65 std::vector<BlockStructureD<3>*> partners;
68template<
typename T,
typename DESCRIPTOR,
typename DYNAMICS>
72 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_);
77 T gravity, T0, deltaTemp;
85template<
typename T,
typename DESCRIPTOR>
89 T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness,
95 int extent(
int whichDirection)
const override
101 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
103 using L = DESCRIPTOR;
106 int x0, x1, y0, y1, z0, z1;
108 T _rho_L, _rho_H, _delta_rho;
110 T _surface_tension, _interface_thickness;
115 std::vector<BlockStructureD<3>*> partners;
118template<
typename T,
typename DESCRIPTOR>
122 T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness);
127 T _rho_L, _rho_H, _delta_rho;
129 T _surface_tension, _interface_thickness;
136template<
typename T,
typename DESCRIPTOR>
140 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_, T smagoPrefactor_,
146 int extent(
int whichDirection)
const override
152 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
154 typedef DESCRIPTOR L;
155 int x0, x1, y0, y1, z0, z1;
156 T gravity, T0, deltaTemp;
160 T forcePrefactor[L::d];
161 T tauTurbADPrefactor;
164 std::vector<BlockStructureD<3>*> partners;
167template<
typename T,
typename DESCRIPTOR>
171 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
172 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_, T smagoPrefactor_);
177 T gravity, T0, deltaTemp;
197 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
int iC_,
204 int extent(
int whichDirection)
const override
210 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
213 std::vector<std::reference_wrapper<AdvectionDiffusionForce3D<T, DESCRIPTOR, ADLattice> > >
_forces;
217 int x0, x1, y0, y1, z0, z1, iC;
250 std::vector<std::reference_wrapper<AdvectionDiffusionForce3D<T, DESCRIPTOR, ADLattice> > >
ADforces;
257template<
typename T,
typename DESCRIPTOR>
262 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
263 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_,
269 int extent(
int whichDirection)
const override
275 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
277 int x0, x1, y0, y1, z0, z1;
278 T gravity, T0, deltaTemp;
281 std::vector<BlockStructureD<3>*> partners;
284template<
typename T,
typename DESCRIPTOR>
289 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
290 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_);
296 T gravity, T0, deltaTemp;
303template<
typename T,
typename DESCRIPTOR>
307 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_,
313 int extent(
int whichDirection)
const override
319 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
321 typedef DESCRIPTOR L;
323 int x0, x1, y0, y1, z0, z1;
324 T gravity, T0, deltaTemp;
329 T tauTurbADPrefactor;
331 std::vector<BlockStructureD<3>*> partners;
334template<
typename T,
typename DESCRIPTOR>
338 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_);
343 T gravity, T0, deltaTemp;
363 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
int iC_,
370 int extent(
int whichDirection)
const override
376 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
379 std::vector<std::reference_wrapper<AdvectionDiffusionForce3D<T, DESCRIPTOR, ADLattice> > >
_forces;
381 int x0, x1, y0, y1, z0, z1, iC;
413 std::vector<std::reference_wrapper<AdvectionDiffusionForce3D<T, DESCRIPTOR, ADLattice> > >
ADforces;
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
void addForce(AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > &force)
AdvectionDiffusionParticleCouplingGenerator3D()
std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > ADforces
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) 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.
std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > _forces
AdvectionDiffusionParticleCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, int iC_, std::vector< BlockStructureD< 3 > * > partners_, std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > forces_)
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.
int extent() const override
Extent of application area (0 for purely local operations)
Platform-abstracted block lattice for external access and inter-block interaction.
Highest-level interface to Cell data.
MixedScaleBoussinesqCouplingGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_)
LatticeCouplingGenerator for advectionDiffusion coupling.
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
int extent() const override
Extent of application area (0 for purely local operations)
MixedScaleBoussinesqCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, std::vector< BlockStructureD< 3 > * > partners_)
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(int whichDirection) const override
Extent of application area along a direction (0 or 1)
PhaseFieldCouplingGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness)
LatticeCouplingGenerator for advectionDiffusion coupling.
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) 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.
PhaseFieldCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness, std::vector< BlockStructureD< 3 > * > partners_)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
PorousNavierStokesAdvectionDiffusionCouplingGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_)
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
PorousNavierStokesAdvectionDiffusionCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, std::vector< BlockStructureD< 3 > * > partners_)
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.
int extent() const override
Extent of application area (0 for purely local operations)
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
SmagorinskyBoussinesqCouplingGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, T smagoPrefactor_)
LatticeCouplingGenerator for advectionDiffusion coupling.
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
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)
int extent() const override
Extent of application area (0 for purely local operations)
SmagorinskyBoussinesqCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, T smagoPrefactor_, std::vector< BlockStructureD< 3 > * > partners_)
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.
TotalEnthalpyPhaseChangeCouplingGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_)
LatticeCouplingGenerator for advectionDiffusion coupling.
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
TotalEnthalpyPhaseChangeCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, std::vector< BlockStructureD< 3 > * > partners_)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
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 addForce(AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > &force)
std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > ADforces
VolumeAveragedNavierStokesAdvectionDiffusionParticleCouplingGenerator3D()
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
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.
VolumeAveragedNavierStokesAdvectionDiffusionParticleCouplingPostProcessor3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, int iC_, std::vector< BlockStructureD< 3 > * > partners_, std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > forces_)
std::vector< std::reference_wrapper< AdvectionDiffusionForce3D< T, DESCRIPTOR, ADLattice > > > _forces
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)
Top level namespace for all of OpenLB.
Interface for post-processing steps – header file.
Base of a field whose size is defined by [C,U_1,...,U_N]^T * [1,V_1,...V_N].