24#ifndef NAVIER_STOKES_ADVECTION_DIFFUSION_COUPLING_POST_PROCESSOR_2D_H
25#define NAVIER_STOKES_ADVECTION_DIFFUSION_COUPLING_POST_PROCESSOR_2D_H
36template<
typename T,
typename DESCRIPTOR,
typename DYNAMICS>
40 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_,
46 int extent(
int whichDirection)
const override
52 int x0_,
int x1_,
int y0_,
int y1_)
override;
56 T gravity, T0, deltaTemp;
59 T forcePrefactor[L::d];
61 std::vector<BlockStructureD<2>*> partners;
64template <
typename T,
typename DESCRIPTOR,
typename DYNAMICS>
68 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_);
73 T gravity, T0, deltaTemp;
81template<
typename T,
typename DESCRIPTOR>
85 T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness,
91 int extent(
int whichDirection)
const override
97 int x0_,
int x1_,
int y0_,
int y1_)
override;
104 T _rho_L, _rho_H, _delta_rho;
106 T _surface_tension, _interface_thickness;
111 std::vector<BlockStructureD<2>*> partners;
114template<
typename T,
typename DESCRIPTOR>
118 T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness);
123 T _rho_L, _rho_H, _delta_rho;
125 T _surface_tension, _interface_thickness;
132template<
typename T,
typename DESCRIPTOR>
136 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_, T smagoPrefactor_,
142 int extent(
int whichDirection)
const override
148 int x0_,
int x1_,
int y0_,
int y1_)
override;
150 typedef DESCRIPTOR L;
152 T gravity, T0, deltaTemp;
156 T forcePrefactor[L::d];
157 T tauTurbADPrefactor;
160 std::vector<BlockStructureD<2>*> partners;
163template<
typename T,
typename DESCRIPTOR>
167 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_, T smagoPrefactor_);
172 T gravity, T0, deltaTemp;
181template<
typename T,
typename DESCRIPTOR>
185 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_,
191 int extent(
int whichDirection)
const override
197 int x0_,
int x1_,
int y0_,
int y1_)
override;
199 typedef DESCRIPTOR L;
202 T gravity, T0, deltaTemp, PrTurb;
206 T tauTurbADPrefactor;
208 std::vector<BlockStructureD<2>*> partners;
211template<
typename T,
typename DESCRIPTOR>
215 T gravity_, T T0_, T deltaTemp_, std::vector<T> dir_, T PrTurb_);
220 T gravity, T0, deltaTemp, PrTurb;
Platform-abstracted block lattice for external access and inter-block interaction.
MixedScaleBoussinesqCouplingGenerator2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_)
LatticeCouplingGenerator for advectionDiffusion coupling.
PostProcessor2D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 2 > * > partners) const override
LatticeCouplingGenerator2D< T, DESCRIPTOR > * clone() const override
MixedScaleBoussinesqCouplingPostProcessor2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, std::vector< BlockStructureD< 2 > * > partners_)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) 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)
PostProcessor2D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 2 > * > partners) const override
LatticeCouplingGenerator2D< T, DESCRIPTOR > * clone() const override
PhaseFieldCouplingGenerator2D(int x0_, int x1_, int y0_, int y1_, T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness)
LatticeCouplingGenerator for advectionDiffusion coupling.
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.
PhaseFieldCouplingPostProcessor2D(int x0_, int x1_, int y0_, int y1_, T rho_L, T rho_H, T mu_L, T mu_H, T surface_tension, T interface_thickness, std::vector< BlockStructureD< 2 > * > partners_)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) override
Execute post-processing step on a sublattice.
int extent() const override
Extent of application area (0 for purely local operations)
Interface of 2D post-processing steps.
LatticeCouplingGenerator2D< T, DESCRIPTOR > * clone() const override
PostProcessor2D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 2 > * > partners) const override
SmagorinskyBoussinesqCouplingGenerator2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, T smagoPrefactor_)
LatticeCouplingGenerator for advectionDiffusion coupling.
SmagorinskyBoussinesqCouplingPostProcessor2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, T PrTurb_, T smagoPrefactor_, std::vector< BlockStructureD< 2 > * > partners_)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) 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)
int extent() const override
Extent of application area (0 for purely local operations)
PostProcessor2D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 2 > * > partners) const override
TotalEnthalpyPhaseChangeCouplingGenerator2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_)
LatticeCouplingGenerator for advectionDiffusion coupling.
LatticeCouplingGenerator2D< T, DESCRIPTOR > * clone() const override
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) override
Execute post-processing step on a sublattice.
TotalEnthalpyPhaseChangeCouplingPostProcessor2D(int x0_, int x1_, int y0_, int y1_, T gravity_, T T0_, T deltaTemp_, std::vector< T > dir_, std::vector< BlockStructureD< 2 > * > partners_)
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)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
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].