34namespace FreeSurface {
42enum class Type : std::uint8_t {
49enum class Flags : std::uint8_t {
77template<
typename T,
size_t S>
78static std::array<T,S>
solvePivotedLU(std::array<std::array<T,S>,S>& matrix,
const std::array<T,S>& b,
size_t N = S)
any_platform;
80template<
typename T,
typename DESCRIPTOR>
83template <
typename CELL>
86template <
typename CELL>
89template <
typename CELL>
92template <
typename CELL>
95template <
typename CELL,
typename V=
typename CELL::value_t>
98template <
typename CELL,
typename V=
typename CELL::value_t>
101template <
typename CELL,
typename V=
typename CELL::value_t>
109template<
typename T,
typename DESCRIPTOR>
112template<
typename T,
typename DESCRIPTOR>
115template <
typename CELL,
typename V=
typename CELL::value_t>
118template <
typename CELL,
typename V=
typename CELL::value_t>
121template <
typename CELL,
typename V=
typename CELL::value_t>
124template<
typename T,
typename DESCRIPTOR>
127template <
typename CELL>
130template <
typename CELL,
typename V=
typename CELL::value_t>
133template <
typename CELL,
typename V=
typename CELL::value_t>
136template <
typename CELL,
typename V=
typename CELL::value_t>
142 return static_cast<FreeSurface::Flags>(
static_cast<std::uint8_t
>(lhs) &
static_cast<std::uint8_t
>(rhs));
146 return static_cast<FreeSurface::Flags>(
static_cast<std::uint8_t
>(lhs) |
static_cast<std::uint8_t
>(rhs));
Super class maintaining block lattices for a cuboid decomposition.
void setCellFlags(CELL &cell, const FreeSurface::Flags &flags)
V getClampedEpsilon(CELL &cell)
Vector< V, CELL::descriptor_t::d > computeInterfaceNormal(CELL &cell)
bool hasNeighbourFlags(CELL &cell, const FreeSurface::Flags &flags)
V calculateSurfaceTensionCurvature2D(CELL &cell)
void initialize(SuperLattice< T, DESCRIPTOR > &lattice)
bool hasNeighbour(CELL &cell, const FreeSurface::Type &type)
bool isCellType(CELL &cell, const FreeSurface::Type &type)
std::array< T, S > solvePivotedLU(std::array< std::array< T, S >, S > &matrix, const std::array< T, S > &b, size_t N)
void setCellType(CELL &cell, const FreeSurface::Type &type)
V calculateSurfaceTensionCurvature3D(CELL &cell)
Vector< V, CELL::descriptor_t::d > computeParkerYoungInterfaceNormal(CELL &cell)
V calculateSurfaceTensionCurvature(CELL &cell)
T calculateCubeOffsetOpt(T volume, const Vector< T, DESCRIPTOR::d > &normal)
bool isHealthyInterface(CELL &cell)
bool hasCellFlags(CELL &cell, const FreeSurface::Flags &flags)
T calculateCubeOffset(T volume, const Vector< T, DESCRIPTOR::d > &normal)
T plicInverse(T d_o, const Vector< T, DESCRIPTOR::d > &normal)
NeighbourInfo getNeighbourInfo(CELL &cell)
Top level namespace for all of OpenLB.
any_platform FreeSurface::Flags operator&(FreeSurface::Flags lhs, FreeSurface::Flags rhs)
any_platform FreeSurface::Flags operator|(FreeSurface::Flags lhs, FreeSurface::Flags rhs)
bool has_fluid_neighbours
size_t interface_neighbours
Base of a field whose size is defined by [C,U_1,...,U_N]^T * [1,V_1,...V_N].
Base of a descriptor field of scalar TYPE with dimensions A*B + B*Q + C.