27#ifndef FD_BOUNDARIES_2D_H
28#define FD_BOUNDARIES_2D_H
41template<
typename T,
typename DESCRIPTOR,
int direction,
int orientation>
50 template <CONCEPT(Cell) CELL>
54 template<
int deriveDirection,
typename CELL>
55 void interpolateGradients(CELL& blockLattice, T velDeriv[DESCRIPTOR::d])
const any_platform;
68template<
typename T,
typename DESCRIPTOR,
int NORMAL_X,
int NORMAL_Y>
77 template <CONCEPT(Cell) CELL>
82template<
typename T,
typename DESCRIPTOR,
int NORMAL_X,
int NORMAL_Y>
91 template <CONCEPT(Cell) CELL>
101template<
typename T,
typename DESCRIPTOR,
int NORMAL_X,
int NORMAL_Y>
112 template <CONCEPT(Cell) CELL,
typename PARAMETERS>
121template<
typename T,
typename DESCRIPTOR,
int NORMAL_X,
int NORMAL_Y>
130 template <CONCEPT(Cell) CELL>
139template<
typename T,
typename DESCRIPTOR,
int direction,
int orientation>
148 int extent(
int whichDirection)
const override
154 int x0_,
int x1_,
int y0_,
int y1_ )
override;
161template<
typename T,
typename DESCRIPTOR,
int direction,
int orientation>
175template<
typename T,
typename DESCRIPTOR>
183 int extent(
int whichDirection)
const override
189 int x0_,
int x1_,
int y0_,
int y1_ )
override;
191 int reflectionPop[DESCRIPTOR::q];
196template<
typename T,
typename DESCRIPTOR>
211template<
typename T,
typename DESCRIPTOR>
219 int extent(
int whichDirection)
const override
225 int x0_,
int x1_,
int y0_,
int y1_ )
override;
227 int reflectionPop[DESCRIPTOR::q];
233template<
typename T,
typename DESCRIPTOR>
250template<
typename T,
typename DESCRIPTOR,
int xNormal,
int yNormal>
259 template <CONCEPT(Cell) CELL>
Platform-abstracted block lattice for external access and inter-block interaction.
PostProcessors for the chemical potential boundary condition in the free energy model.
void apply(CELL &cell) any_platform
static constexpr OperatorScope scope
static constexpr OperatorScope scope
void apply(CELL &cell) any_platform
PostProcessor for pressure / velocity outflow boundaries in the free energy model.
static constexpr OperatorScope scope
void apply(CELL &cell) any_platform
PostProcessor for the wetting boundary condition in the free energy model.
static constexpr OperatorScope scope
meta::list< olb::descriptors::ADDEND > parameters
void apply(CELL &cell, PARAMETERS ¶meters) any_platform
This class computes the skordos BC in 2D on a convex corner but with a limited number of terms added ...
void apply(CELL &cell) any_platform
static constexpr OperatorScope scope
This class computes a partial slip BC in 2D.
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_) override
Execute post-processing step on a sublattice.
PartialSlipBoundaryProcessor2D(T tuner_, int x0_, int x1_, int y0_, int y1_, int discreteNormalX_, int discreteNormalY_)
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)
PartialSlipBoundaryProcessorGenerator2D(T tuner_, int x0_, int x1_, int y0_, int y1_, int discreteNormalX_, int discreteNormalY_)
PostProcessorGenerator2D< T, DESCRIPTOR > * clone() const override
PostProcessor2D< T, DESCRIPTOR > * generate() const override
Interface of 2D post-processing steps.
This class computes a slip BC in 2D.
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) override
Execute post-processing step on a sublattice.
SlipBoundaryProcessor2D(int x0_, int x1_, int y0_, int y1_, int discreteNormalX_, int discreteNormalY_)
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)
PostProcessorGenerator2D< T, DESCRIPTOR > * clone() const override
PostProcessor2D< T, DESCRIPTOR > * generate() const override
SlipBoundaryProcessorGenerator2D(int x0_, int x1_, int y0_, int y1_, int discreteNormalX_, int discreteNormalY_)
This class computes a convection BC on a flat wall in 2D.
StraightConvectionBoundaryProcessor2D(int x0_, int x1_, int y0_, int y1_, T *uAv_=NULL)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
~StraightConvectionBoundaryProcessor2D() override
int extent() const override
Extent of application area (0 for purely local operations)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_) override
Execute post-processing step on a sublattice.
PostProcessor2D< T, DESCRIPTOR > * generate() const override
PostProcessorGenerator2D< T, DESCRIPTOR > * clone() const override
StraightConvectionBoundaryProcessorGenerator2D(int x0_, int x1_, int y0_, int y1_, T *uAv_=NULL)
This class computes the skordos BC on a flat wall in 2D but with a limited number of terms added to t...
void apply(CELL &cell) any_platform
static constexpr OperatorScope scope
Top level namespace for all of OpenLB.
OperatorScope
Block-wide operator application scopes.
@ PerCell
Per-cell application, i.e. OPERATOR::apply is passed a CELL concept implementation.
@ PerCellWithParameters
Per-cell application with parameters, i.e. OPERATOR::apply is passed a CELL concept implementation an...
Interface for post-processing steps – header file.