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

Classes

struct  BulkDensity
 Standard computation for density in the bulk as zeroth moment of the population. More...
 
struct  BulkMomentum
 Standard computation for momentum in the bulk as first moment of the population. More...
 
struct  BulkStress
 Standard stress computation as second moment of the population. More...
 
struct  ComputeRhoU
 Partially-specializable rho and u computation. More...
 
struct  ComputeRhoU< BASE, BulkDensity, BulkMomentum >
 
struct  ConcreteTuple
 Tuple of momenta components forming a moment system. More...
 
struct  DefineSeparately
 The momenta are defined one after the other. More...
 
struct  DefineToEq
 When momenta are changed, a new equilibrium state is set. More...
 
struct  DefineToNEq
 When momenta are changed, the equilibrium part of the population is modified while the non-equilibrium part is kept. More...
 
struct  DefineUSeparately
 defineRho leads to a new non-equilibrium population, defineU only sets the velocity data. More...
 
struct  DefineUSeparatelyTrace
 defineRho leads to a new non-equilibrium population, defineU only sets the velocity data. More...
 
struct  FixedDensity
 The density is fixed and stored in the external field RHO. More...
 
struct  FixedPressureMomentum
 The velocity is stored in the external field U, except for the component "direction", which is computed by means of the population and the pressure. More...
 
struct  FixedTemperatureMomentum
 The conduction is computed from density and population. More...
 
struct  FixedVelocityMomentum
 The velocity is stored in the external field descriptors::VELOCITY. More...
 
struct  FixedVelocityMomentumAD
 The first moment (the heat conduction) is fixed. More...
 
struct  FixedVelocityMomentumGeneric
 The velocity is fixed and stored in the external field U. More...
 
struct  Forced
 
struct  ForcedMomentum
 
struct  ForcedStress
 
struct  ForcedWithStress
 
struct  FreeEnergyInletOutletDensity
 The density is stored in descriptors::FORCE[0] (TODO: absurd, to be changed) More...
 
struct  FreeEnergyInletOutletMomentum
 
struct  FreeEnergyMomentum
 
struct  GuoZhaoForced
 
struct  GuoZhaoForcedMomentum
 
struct  GuoZhaoForcedStress
 
struct  GuoZhaoForcedWithStress
 
struct  GuoZhaoMomentum
 
struct  HeatFluxBoundaryDensity
 For fixed heat flux, the density is computed from flux, velocity and populations, similar to fixed velocity boundaries. More...
 
struct  InnerCornerDensity2D
 
struct  InnerCornerDensity3D
 
struct  InnerCornerStress2D
 Computation of the stress tensor in an inner corner (2D case) More...
 
struct  InnerCornerStress3D
 Computation of the stress tensor in an inner corner (3D case) More...
 
struct  InnerEdgeDensity3D
 
struct  InnerEdgeStress3D
 Computation of the stress tensor in an inner edge. More...
 
struct  NoStress
 Access to the stress computation is forbidden and raises an error. More...
 
struct  OffBoundaryMomentum
 For offLattice boundary conditions. More...
 
struct  OneDensity
 
struct  P1Momentum
 Momentum computation for P1 dynamics. More...
 
struct  PoissonMomentum
 Momentum computation for Poisson dynamics. More...
 
struct  Porous
 
struct  PorousGuoMomentum
 
struct  PorousMomentum
 
struct  PorousParticle
 
struct  PorousParticleMomentum
 
struct  RegularizedBoundaryStress
 Computation of the stress tensor for regularized boundary nodes. More...
 
struct  SourcedDensity
 
struct  Tuple
 
struct  VelocityBoundaryDensity
 Density computation for fixed velocity boundary. More...
 
struct  ZeroDensity
 
struct  ZeroMomentum
 Momentum is zero at solid material. More...
 
struct  ZeroStress
 The stress is always zero. More...
 

Typedefs

using BulkTuple
 Standard computation of momenta from the populations in the bulk.
 
using ExternalVelocityTuple
 The Velocity is stored in descriptors::VELOCITY (and computed e.g.
 
using AdvectionDiffusionBulkTuple
 Collection of momenta for advection diffusion situations rho describes the temperature/ particle concentration, while j describes the convective transport and u is the transport rate.
 
template<int direction, int orientation>
using RegularizedTemperatureBoundaryTuple
 Momenta collection for advection diffusion boundary with fixed temperature rho describes the temperature, while j describes the (heat) transport (= flux + convective transport) and u is the conduction/ flux.
 
template<int direction, int orientation>
using RegularizedHeatFluxBoundaryTuple
 Momenta collection for advection diffusion boundary with fixed heat flux rho describes the temperature, while j describes the (heat) transport (= conduction + convective transport) and u is the conduction/ flux.
 
using EquilibriumBoundaryTuple
 Velocity and density are stored in external fields.
 
template<int direction, int orientation>
using RegularizedVelocityBoundaryTuple
 Regularized velocity boundary node.
 
template<int direction, int orientation>
using RegularizedPressureBoundaryTuple
 Regularized pressure boundary node.
 
template<int direction, int orientation>
using BasicDirichletVelocityBoundaryTuple
 Velocity boundary node.
 
template<int direction, int orientation>
using BasicDirichletPressureBoundaryTuple
 Pressure boundary node.
 
using FixedVelocityBoundaryTuple
 In this class, the velocity is fixed As opposed to VelocityBM, the pressure is however not computed from a special trick on the boundary, but the same way it would be in the bulk.
 
template<int... Normal>
using InnerCornerVelocityTuple2D
 
template<int... PlaneAndNormal>
using InnerEdgeVelocityTuple3D
 
template<int... Normal>
using InnerCornerVelocityTuple3D
 
template<typename DENSITY , typename MOMENTUM >
using GenericSolidMaterialTuple
 Wrapper alias for solid and wet nodes.
 
using PoissonTuple
 
using P1Tuple
 
using None
 
using FreeEnergyBulkTuple
 
template<typename MOMENTA >
using Identity = MOMENTA
 

Functions

template<int direction, int orientation, typename CELL , typename U , typename V = typename CELL::value_t, typename DESCRIPTOR = typename CELL::descriptor_t>
velocityBMRho (CELL &cell, const U &u) any_platform
 
template<int direction, int orientation, typename CELL , typename U , typename FLUX , typename V = typename CELL::value_t, typename DESCRIPTOR = typename CELL::descriptor_t>
heatFluxBMRho (CELL &cell, const U &u, FLUX &flux) any_platform
 

Typedef Documentation

◆ AdvectionDiffusionBulkTuple

Initial value:
Tuple<
BulkDensity,
BulkMomentum,
NoStress,
DefineToEq
>

Collection of momenta for advection diffusion situations rho describes the temperature/ particle concentration, while j describes the convective transport and u is the transport rate.

stress does not occur in this model and must not be computed.

Definition at line 62 of file aliases.h.

◆ BasicDirichletPressureBoundaryTuple

template<int direction, int orientation>
using olb::momenta::BasicDirichletPressureBoundaryTuple
Initial value:
Tuple<
FixedDensity,
FixedPressureMomentum<direction,orientation>,
BulkStress,
DefineSeparately
>

Pressure boundary node.

Density and velocity are computed via boundary condition, whereas stress is computed as in the bulk.

Definition at line 138 of file aliases.h.

◆ BasicDirichletVelocityBoundaryTuple

template<int direction, int orientation>
using olb::momenta::BasicDirichletVelocityBoundaryTuple
Initial value:
Tuple<
VelocityBoundaryDensity<direction,orientation>,
FixedVelocityMomentumGeneric,
BulkStress,
DefineSeparately
>

Velocity boundary node.

Density and velocity are computed via boundary condition, whereas stress is computed as in the bulk.

Definition at line 128 of file aliases.h.

◆ BulkTuple

Initial value:
Tuple<
BulkDensity,
BulkMomentum,
BulkStress,
DefineToNEq
>

Standard computation of momenta from the populations in the bulk.

Definition at line 41 of file aliases.h.

◆ EquilibriumBoundaryTuple

Initial value:
Tuple<
FixedDensity,
FixedVelocityMomentumGeneric,
ZeroStress,
DefineSeparately
>

Velocity and density are stored in external fields.

Definition at line 100 of file aliases.h.

◆ ExternalVelocityTuple

Initial value:
Tuple<
BulkDensity,
FixedVelocityMomentum,
BulkStress,
DefineUSeparately
>

The Velocity is stored in descriptors::VELOCITY (and computed e.g.

in a postprocessor)

Definition at line 50 of file aliases.h.

◆ FixedVelocityBoundaryTuple

Initial value:
Tuple<
BulkDensity,
FixedVelocityMomentumGeneric,
BulkStress,
DefineUSeparatelyTrace
>

In this class, the velocity is fixed As opposed to VelocityBM, the pressure is however not computed from a special trick on the boundary, but the same way it would be in the bulk.

Definition at line 150 of file aliases.h.

◆ FreeEnergyBulkTuple

Initial value:
Tuple<
BulkDensity,
FreeEnergyMomentum,
BulkStress,
DefineToNEq
>

Definition at line 224 of file aliases.h.

◆ GenericSolidMaterialTuple

template<typename DENSITY , typename MOMENTUM >
using olb::momenta::GenericSolidMaterialTuple
Initial value:
Tuple<
DENSITY,
MOMENTUM,
ZeroStress,
DefineSeparately
>

Wrapper alias for solid and wet nodes.

Definition at line 196 of file aliases.h.

◆ Identity

template<typename MOMENTA >
using olb::momenta::Identity = MOMENTA

Definition at line 315 of file interface.h.

◆ InnerCornerVelocityTuple2D

template<int... Normal>
using olb::momenta::InnerCornerVelocityTuple2D
Initial value:
Tuple<
InnerCornerDensity2D<Normal...>,
FixedVelocityMomentumGeneric,
InnerCornerStress2D<Normal...>,
DefineSeparately
>

Definition at line 158 of file aliases.h.

◆ InnerCornerVelocityTuple3D

template<int... Normal>
using olb::momenta::InnerCornerVelocityTuple3D
Initial value:
Tuple<
InnerCornerDensity3D<Normal...>,
FixedVelocityMomentumGeneric,
InnerCornerStress3D<Normal...>,
DefineSeparately
>

Definition at line 174 of file aliases.h.

◆ InnerEdgeVelocityTuple3D

template<int... PlaneAndNormal>
using olb::momenta::InnerEdgeVelocityTuple3D
Initial value:
Tuple<
InnerEdgeDensity3D<PlaneAndNormal...>,
FixedVelocityMomentumGeneric,
InnerEdgeStress3D<PlaneAndNormal...>,
DefineSeparately
>

Definition at line 166 of file aliases.h.

◆ None

Initial value:
Tuple<
ZeroDensity,
ZeroMomentum,
ZeroStress,
DefineSeparately
>

Definition at line 217 of file aliases.h.

◆ P1Tuple

Initial value:
Tuple<
BulkDensity,
P1Momentum,
ZeroStress,
DefineToNEq
>

Definition at line 210 of file aliases.h.

◆ PoissonTuple

Initial value:
Tuple<
BulkDensity,
PoissonMomentum,
ZeroStress,
DefineToNEq
>

Definition at line 203 of file aliases.h.

◆ RegularizedHeatFluxBoundaryTuple

template<int direction, int orientation>
using olb::momenta::RegularizedHeatFluxBoundaryTuple
Initial value:
Tuple<
HeatFluxBoundaryDensity<direction,orientation>,
FixedVelocityMomentumAD,
NoStress,
DefineToEq
>

Momenta collection for advection diffusion boundary with fixed heat flux rho describes the temperature, while j describes the (heat) transport (= conduction + convective transport) and u is the conduction/ flux.

stress does not occur in this model and must not be computed.

Definition at line 92 of file aliases.h.

◆ RegularizedPressureBoundaryTuple

template<int direction, int orientation>
using olb::momenta::RegularizedPressureBoundaryTuple
Initial value:
Tuple<
FixedDensity,
FixedPressureMomentum<direction,orientation>,
RegularizedBoundaryStress<direction,orientation>,
DefineSeparately
>

Regularized pressure boundary node.

Definition at line 118 of file aliases.h.

◆ RegularizedTemperatureBoundaryTuple

template<int direction, int orientation>
using olb::momenta::RegularizedTemperatureBoundaryTuple
Initial value:
Tuple<
FixedDensity,
FixedTemperatureMomentum<direction,orientation>,
NoStress,
DefineSeparately
>

Momenta collection for advection diffusion boundary with fixed temperature rho describes the temperature, while j describes the (heat) transport (= flux + convective transport) and u is the conduction/ flux.

stress does not occur in this model and must not be computed.

Definition at line 77 of file aliases.h.

◆ RegularizedVelocityBoundaryTuple

template<int direction, int orientation>
using olb::momenta::RegularizedVelocityBoundaryTuple
Initial value:
Tuple<
VelocityBoundaryDensity<direction,orientation>,
FixedVelocityMomentumGeneric,
RegularizedBoundaryStress<direction,orientation>,
DefineSeparately
>

Regularized velocity boundary node.

Definition at line 109 of file aliases.h.

Function Documentation

◆ heatFluxBMRho()

template<int direction, int orientation, typename CELL , typename U , typename FLUX , typename V = typename CELL::value_t, typename DESCRIPTOR = typename CELL::descriptor_t>
V olb::momenta::heatFluxBMRho ( CELL & cell,
const U & u,
FLUX & flux )

Definition at line 79 of file elements.h.

80{
81 V rho = velocityBMRho<direction,orientation>(cell, u);
82 rho -= orientation * flux / (V{1} + orientation * u[direction]);
83 return rho;
84}

◆ velocityBMRho()

template<int direction, int orientation, typename CELL , typename U , typename V = typename CELL::value_t, typename DESCRIPTOR = typename CELL::descriptor_t>
V olb::momenta::velocityBMRho ( CELL & cell,
const U & u )

Definition at line 60 of file elements.h.

61{
62 constexpr auto onWallIndices = util::populationsContributingToVelocity<DESCRIPTOR,direction,0>();
63 constexpr auto normalIndices = util::populationsContributingToVelocity<DESCRIPTOR,direction,orientation>();
64
65 V rhoOnWall{};
66 for (auto e : onWallIndices) {
67 rhoOnWall += cell[e];
68 }
69
70 V rhoNormal{};
71 for (auto e : normalIndices) {
72 rhoNormal += cell[e];
73 }
74
75 return (V{2}*rhoNormal+rhoOnWall+V{1}) / (V{1}+orientation*u[direction]);
76}