50template <
typename FT =
double, Arch AT = Arch::CPU>
struct KernelTrait {
52 using CollisionModelThermalized =
53 pystencils::CollideSweepDoublePrecisionThermalizedAVX;
54 using CollisionModelLeesEdwards =
55 pystencils::CollideSweepDoublePrecisionLeesEdwardsAVX;
57 using CollisionModelThermalized =
58 pystencils::CollideSweepDoublePrecisionThermalized;
59 using CollisionModelLeesEdwards =
60 pystencils::CollideSweepDoublePrecisionLeesEdwards;
62 using StreamSweep = pystencils::StreamSweepDoublePrecision;
63 using InitialPDFsSetter = pystencils::InitialPDFsSetterDoublePrecision;
66template <>
struct KernelTrait<float,
Arch::
CPU> {
68 using CollisionModelThermalized =
69 pystencils::CollideSweepSinglePrecisionThermalizedAVX;
70 using CollisionModelLeesEdwards =
71 pystencils::CollideSweepSinglePrecisionLeesEdwardsAVX;
73 using CollisionModelThermalized =
74 pystencils::CollideSweepSinglePrecisionThermalized;
75 using CollisionModelLeesEdwards =
76 pystencils::CollideSweepSinglePrecisionLeesEdwards;
78 using StreamSweep = pystencils::StreamSweepSinglePrecision;
79 using InitialPDFsSetter = pystencils::InitialPDFsSetterSinglePrecision;
82template <
typename FT =
double, Arch AT = Arch::CPU>
83struct BoundaryHandlingTrait {
84 using Dynamic_UBB = lbm::Dynamic_UBB_double_precision;
87template <>
struct BoundaryHandlingTrait<float,
Arch::
CPU> {
88 using Dynamic_UBB = lbm::Dynamic_UBB_single_precision;