OpenLB 1.8.1
Loading...
Searching...
No Matches
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  BulkPressure
 Computation of hydrodynamic pressure as zeroth 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  FixedStress
 The stress is fixed and stored in the external field PI. 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  ForcedIncompressibleStress
 
struct  ForcedMomentum
 
struct  ForcedPSMMomentum
 
struct  ForcedStress
 
struct  ForcedWithIncompressibleStress
 
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  IncompressibleBulkMomentum
 
struct  IncompressibleBulkStress
 Standard stress computation as second moment of the population. 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  MovingPorousMomentum
 Momentum of a moving porous medium. More...
 
struct  MovingPorousMomentumCombination
 
struct  MovingPorousMomentumCombinationNoWM
 
struct  MovingPorousStress
 
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  PressureBoundaryMomentum
 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  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  VelocityBoundaryPressure
 Pressure 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

template<typename T , typename DESCRIPTOR >
using BulkDynamics
 
template<typename T , typename DESCRIPTOR >
using available_dynamics
 
using BulkTuple
 Standard computation of momenta from the populations in the bulk.
 
template<typename MOMENTUM >
using IncBulkTuple
 Incompressible Allen-Cahn computation of momenta from the populations in the bulk.
 
using ExternalVelocityTuple
 The Velocity is stored in descriptors::VELOCITY (and computed e.g.
 
using ExternalVelocityFixedDensityTuple
 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 IncDirichletVelocityBoundaryTuple
 Velocity boundary node.
 
template<int direction, int orientation>
using BasicDirichletPressureBoundaryTuple
 Pressure boundary node.
 
template<int direction, int orientation>
using IncDirichletPressureBoundaryTuple
 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
 
using ForcedPSMBulkTuple
 
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 V = typename CELL::value_t, typename DESCRIPTOR = typename CELL::descriptor_t>
velocityBMP (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 80 of file aliases.h.

◆ available_dynamics

template<typename T , typename DESCRIPTOR >
using olb::momenta::available_dynamics

Definition at line 39 of file availableDynamicList.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 166 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 146 of file aliases.h.

◆ BulkDynamics

template<typename T , typename DESCRIPTOR >
using olb::momenta::BulkDynamics
Initial value:
dynamics::Tuple<T, DESCRIPTOR, Porous<BulkTuple>, equilibria::SecondOrder,
collision::SmagorinskyEffectiveOmega<collision::BGK>>

Definition at line 34 of file availableDynamicList.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 118 of file aliases.h.

◆ ExternalVelocityFixedDensityTuple

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

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

in a postprocessor, density is fixed for using at boundary conditions with fixed pressure)

Definition at line 68 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 59 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 188 of file aliases.h.

◆ ForcedPSMBulkTuple

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

Definition at line 269 of file aliases.h.

◆ FreeEnergyBulkTuple

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

Definition at line 262 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 234 of file aliases.h.

◆ Identity

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

Definition at line 324 of file interface.h.

◆ IncBulkTuple

template<typename MOMENTUM >
using olb::momenta::IncBulkTuple
Initial value:
Tuple<
BulkPressure<MOMENTUM>,
IncompressibleBulkMomentum,
IncompressibleBulkStress,
DefineToNEq
>

Incompressible Allen-Cahn computation of momenta from the populations in the bulk.

Definition at line 50 of file aliases.h.

◆ IncDirichletPressureBoundaryTuple

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

Pressure boundary node.

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

Definition at line 176 of file aliases.h.

◆ IncDirichletVelocityBoundaryTuple

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

Velocity boundary node.

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

Definition at line 156 of file aliases.h.

◆ InnerCornerVelocityTuple2D

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

Definition at line 196 of file aliases.h.

◆ InnerCornerVelocityTuple3D

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

Definition at line 212 of file aliases.h.

◆ InnerEdgeVelocityTuple3D

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

Definition at line 204 of file aliases.h.

◆ None

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

Definition at line 255 of file aliases.h.

◆ P1Tuple

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

Definition at line 248 of file aliases.h.

◆ PoissonTuple

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

Definition at line 241 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 110 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 136 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 95 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 127 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 97 of file elements.h.

98{
99 V rho = velocityBMRho<direction,orientation>(cell, u);
100 rho -= orientation * flux / (V{1} + orientation * u[direction]);
101 return rho;
102}

References velocityBMRho().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ velocityBMP()

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

Definition at line 74 of file elements.h.

75{
76 constexpr auto onWallIndices = util::populationsContributingToVelocity<DESCRIPTOR,direction,0>();
77 constexpr auto normalIndices = util::populationsContributingToVelocity<DESCRIPTOR,direction,orientation>();
78
79 auto rho = cell.template getField<descriptors::RHO>();
80
81 V pOnWall{};
82 for (auto e : onWallIndices) {
83 pOnWall += cell[e];
84 }
85 pOnWall -= cell[0];
86
87 V pNormal{};
88 for (auto e : normalIndices) {
89 pNormal += cell[e];
90 }
91
92 return ((V{2}*pNormal+pOnWall-rho*orientation*u[direction])/descriptors::invCs2<V,DESCRIPTOR>()
93 -0.5*rho*descriptors::t<V,DESCRIPTOR>(0)*u[direction]*u[direction]) / (V{1}-descriptors::t<V,DESCRIPTOR>(0));
94}

References olb::descriptors::invCs2(), olb::util::populationsContributingToVelocity(), and olb::descriptors::t().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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 55 of file elements.h.

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

References olb::util::populationsContributingToVelocity().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: