28#ifndef LB_SMOOTHING_FUNCTIONALS_3D_H
29#define LB_SMOOTHING_FUNCTIONALS_3D_H
53template<
typename T,
typename Lattice>
57 virtual bool update(T physPosP[],
int globic);
59 const std::deque<LatticePosAndWeight<T>>
getData()
const
74 virtual T
compute(T physPosP[], T physPosL[])=0;
85template<
typename T,
typename Lattice>
92 virtual T
compute(T physPosP[], T physPosL[])
override;
97template<
typename T,
typename Lattice>
104 virtual T
compute(T physPosP[], T physPosL[])
override;
109template<
typename T,
typename Lattice>
122template<
typename T,
typename Lattice>
129 virtual bool update(T physPosP[],
int globic)
override;
140template<
typename T,
typename Lattice>
Smoothing functional as in Deen et al (2004), Chem.
DeenSmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
virtual T smoothingFunction(T delta) override
The actual smoothing function.
Abstact class for all the linear-averaging smoothing functionals.
LinearAveragingSmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice, int nVoxelInterpPoints=2)
Constructor.
virtual T compute(T physPosP[], T physPosL[]) override
Returns the weight for smoothing.
Abstact class for all the smoothing functionals.
virtual T compute(T physPosP[], T physPosL[])=0
Returns the weight for smoothing.
int getNvoxelInterpPoints()
std::deque< LatticePosAndWeight< T > > _latticePosAndWeight
UnitConverter< T, Lattice > & _converter
SmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice, int nVoxelInterpPoints=2)
Constructor.
virtual bool update(T physPosP[], int globic)
SuperLattice< T, Lattice > & _sLattice
virtual T smoothingFunction(T delta)=0
The actual smoothing function.
const std::deque< LatticePosAndWeight< T > > getData() const
Stepwise smoothing functional.
StepSmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
virtual T smoothingFunction(T delta) override
The actual smoothing function.
Super class maintaining block lattices for a cuboid decomposition.
Conversion between physical and lattice units, as well as discretization.
Abstact class for all the volume-averaging smoothing functionals.
VolumeAveragingSmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice, int nVoxelInterpPoints=2)
Constructor.
virtual T compute(T physPosP[], T physPosL[]) override
Returns the weight for smoothing.
Smoothing functional as in Evrard, Denner and van Wachem (2019).
void updateContinuousPhaseFraction(T physPosP[], int globic)
Updates _latticePosAndWeight with contribution from continuous phase fraction. To be called AFTER com...
virtual T smoothingFunction(T delta) override
The actual smoothing function.
vanWachemSmoothingFunctional(T kernelLength, UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice, T radius, int nVoxelInterpPoints)
Constructor.
virtual bool update(T physPosP[], int globic) override
Top level namespace for all of OpenLB.
Data structure for smoothing functionals.
T continuousPhaseFraction