24#ifndef ADVECTION_DIFFUSION_FORCES_H
25#define ADVECTION_DIFFUSION_FORCES_H
31template<
typename T,
typename DESCRIPTOR,
32 typename ADLattice=descriptors::D3Q7<descriptors::VELOCITY,descriptors::VELOCITY2>>
49template<
typename T,
typename DESCRIPTOR,
50 typename ADLattice=descriptors::D3Q7<descriptors::VELOCITY,descriptors::VELOCITY2>>
63template<
typename T,
typename DESCRIPTOR,
64typename ADLattice=descriptors::D3Q7<descriptors::VELOCITY,descriptors::VELOCITY2>>
77template<
typename T,
typename DESCRIPTOR,
78typename ADLattice=descriptors::D3Q7<descriptors::VELOCITY,descriptors::VELOCITY2>>
91template<
typename T,
typename DESCRIPTOR,
92typename ADLattice=descriptors::D3Q7<descriptors::VELOCITY,descriptors::VELOCITY2>>
97 std::vector<T> axisPoint_,
98 std::vector<T> axisDirection_,
100 bool centrifugeForceOn_ =
true,
101 bool coriolisForceOn_ =
true);
118template<
typename T,
typename DESCRIPTOR,
130 T _conversionVelocity;
AdvDiffBuoyancyForce3D(UnitConverter< T, DESCRIPTOR > const &converter_, Vector< T, 3 > g, T pRho_)
~AdvDiffBuoyancyForce3D() override
void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[]) override
AdvDiffDragForce3D(UnitConverter< T, DESCRIPTOR > const &converter_, T St_)
~AdvDiffDragForce3D() override
void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[]) override
~AdvDiffMagneticWireForce3D() override
AdvDiffMagneticWireForce3D(SuperGeometry< T, 3 > &superGeometry_, UnitConverter< T, DESCRIPTOR > const &converter_, T pMass, AnalyticalF< 3, T, T > &getMagForce)
void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[]) override
void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[])
AdvDiffRotatingForce3D(UnitConverter< T, DESCRIPTOR > const &converter_, T pRadius_, T pRho_)
std::vector< T > axisDirection
SuperGeometry< T, 3 > & sg
AdvDiffRotatingForce3D(SuperGeometry< T, 3 > &superGeometry_, const UnitConverter< T, DESCRIPTOR > &converter_, std::vector< T > axisPoint_, std::vector< T > axisDirection_, T w_, T *frac_, bool centrifugeForceOn_=true, bool coriolisForceOn_=true)
std::vector< T > axisPoint
virtual ~AdvDiffRotatingForce3D()
void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[]) override
AdvDiffSNDragForce3D(UnitConverter< T, DESCRIPTOR > const &converter_, T pRadius_, T pRho_)
~AdvDiffSNDragForce3D() override
virtual ~AdvectionDiffusionForce3D()
virtual void applyForce(T force[], Cell< T, DESCRIPTOR > *nsCell, Cell< T, ADLattice > *adCell, T vel[], int latticeR[])=0
AdvectionDiffusionForce3D()
AnalyticalF are applications from DD to XD, where X is set by the constructor.
Highest-level interface to Cell data.
Representation of a statistic for a parallel 2D geometry.
Conversion between physical and lattice units, as well as discretization.
Top level namespace for all of OpenLB.
Unit conversion handling – header file.