43static constexpr size_t STARTDIR = 0;
44static constexpr size_t ENDDIR = 26;
45static constexpr size_t NUMBER_Of_DIRECTIONS = ENDDIR + 1;
47static constexpr size_t d000 = 0;
48static constexpr size_t dP00 = 1;
49static constexpr size_t dM00 = 2;
50static constexpr size_t d0P0 = 3;
51static constexpr size_t d0M0 = 4;
52static constexpr size_t d00P = 5;
53static constexpr size_t d00M = 6;
54static constexpr size_t dPP0 = 7;
55static constexpr size_t dMM0 = 8;
56static constexpr size_t dPM0 = 9;
57static constexpr size_t dMP0 = 10;
58static constexpr size_t dP0P = 11;
59static constexpr size_t dM0M = 12;
60static constexpr size_t dP0M = 13;
61static constexpr size_t dM0P = 14;
62static constexpr size_t d0PP = 15;
63static constexpr size_t d0MM = 16;
64static constexpr size_t d0PM = 17;
65static constexpr size_t d0MP = 18;
66static constexpr size_t dPPP = 19;
67static constexpr size_t dMPP = 20;
68static constexpr size_t dPMP = 21;
69static constexpr size_t dMMP = 22;
70static constexpr size_t dPPM = 23;
71static constexpr size_t dMPM = 24;
72static constexpr size_t dPMM = 25;
73static constexpr size_t dMMM = 26;
75#define NAME_OF(direction) #direction
76static const std::map<size_t, std::string> directionNames {
86static constexpr size_t i000 = d000;
87static constexpr size_t iP00 = dM00;
88static constexpr size_t iM00 = dP00;
89static constexpr size_t i0P0 = d0M0;
90static constexpr size_t i0M0 = d0P0;
91static constexpr size_t i00P = d00M;
92static constexpr size_t i00M = d00P;
93static constexpr size_t iPP0 = dMM0;
94static constexpr size_t iMM0 = dPP0;
95static constexpr size_t iPM0 = dMP0;
96static constexpr size_t iMP0 = dPM0;
97static constexpr size_t iP0P = dM0M;
98static constexpr size_t iM0M = dP0P;
99static constexpr size_t iP0M = dM0P;
100static constexpr size_t iM0P = dP0M;
101static constexpr size_t i0PP = d0MM;
102static constexpr size_t i0MM = d0PP;
103static constexpr size_t i0PM = d0MP;
104static constexpr size_t i0MP = d0PM;
105static constexpr size_t iPPP = dMMM;
106static constexpr size_t iMPP = dPMM;
107static constexpr size_t iPMP = dMPM;
108static constexpr size_t iMMP = dPPM;
109static constexpr size_t iPPM = dMMP;
110static constexpr size_t iMPM = dPMP;
111static constexpr size_t iPMM = dMPP;
112static constexpr size_t iMMM = dPPP;
114static constexpr size_t eP00 = 0;
115static constexpr size_t eM00 = 0;
116static constexpr size_t e0P0 = 1;
117static constexpr size_t e0M0 = 1;
118static constexpr size_t e00P = 2;
119static constexpr size_t e00M = 2;
120static constexpr size_t ePP0 = 3;
121static constexpr size_t eMM0 = 3;
122static constexpr size_t ePM0 = 4;
123static constexpr size_t eMP0 = 4;
124static constexpr size_t eP0P = 5;
125static constexpr size_t eM0M = 5;
126static constexpr size_t eP0M = 6;
127static constexpr size_t eM0P = 6;
128static constexpr size_t e0PP = 7;
129static constexpr size_t e0MM = 7;
130static constexpr size_t e0PM = 8;
131static constexpr size_t e0MP = 8;
132static constexpr size_t ePPP = 9;
133static constexpr size_t eMMM = 9;
134static constexpr size_t eMPP = 10;
135static constexpr size_t ePMM = 10;
136static constexpr size_t ePMP = 11;
137static constexpr size_t eMPM = 11;
138static constexpr size_t eMMP = 12;
139static constexpr size_t ePPM = 12;
141static constexpr unsigned long int et000 = 1;
142static constexpr unsigned long int etP00 = 2;
143static constexpr unsigned long int etM00 = 4;
144static constexpr unsigned long int et0P0 = 8;
145static constexpr unsigned long int et0M0 = 16;
146static constexpr unsigned long int et00P = 32;
147static constexpr unsigned long int et00M = 64;
148static constexpr unsigned long int etPP0 = 128;
149static constexpr unsigned long int etMM0 = 256;
150static constexpr unsigned long int etPM0 = 512;
151static constexpr unsigned long int etMP0 = 1024;
152static constexpr unsigned long int etP0P = 2048;
153static constexpr unsigned long int etM0M = 4096;
154static constexpr unsigned long int etP0M = 8192;
155static constexpr unsigned long int etM0P = 16384;
156static constexpr unsigned long int et0PP = 32768;
157static constexpr unsigned long int et0MM = 65536;
158static constexpr unsigned long int et0PM = 131072;
159static constexpr unsigned long int et0MP = 262144;
160static constexpr unsigned long int etPPP = 524288;
161static constexpr unsigned long int etMPP = 1048576;
162static constexpr unsigned long int etPMP = 2097152;
163static constexpr unsigned long int etMMP = 4194304;
164static constexpr unsigned long int etPPM = 8388608;
165static constexpr unsigned long int etMPM = 16777216;
166static constexpr unsigned long int etPMM = 33554432;
167static constexpr unsigned long int etMMM = 67108864;
346template <std::size_t offset, std::size_t...
S,
typename F>
349 (
func(std::integral_constant<std::size_t, S + offset> {}), ...);
365 forSequence<0>(std::make_index_sequence<vf::lbm::dir::NUMBER_Of_DIRECTIONS> {},
func);
std::shared_ptr< T > SPtr
#define NAME_OF(direction)
constexpr real getComponentY< dP0P >()
constexpr real getVelocity< dPP0 >(real velocityX, real velocityY, real)
constexpr real getVelocity< d0MP >(real, real velocityY, real velocityZ)
constexpr real getComponentX< d0MP >()
constexpr real getWeight< dPMP >()
constexpr real getWeight< dM0P >()
constexpr real getComponentZ< dPP0 >()
constexpr real getComponentZ< d0MP >()
constexpr real getWeight< dMPM >()
constexpr real getComponentX< dMPM >()
constexpr size_t inverseDir< d0PP >()
constexpr real getComponentZ< dMMP >()
constexpr real getVelocity< d00M >(real, real, real velocityZ)
constexpr real getVelocity< dPMP >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentX< dPPP >()
constexpr real getComponentX()
constexpr real getComponentY< d0MP >()
constexpr real getComponentX< dM0P >()
constexpr real getVelocity< d00P >(real, real, real velocityZ)
constexpr real getComponentZ< dM00 >()
constexpr real getComponentX< d00P >()
constexpr real getWeight< d0M0 >()
constexpr real getComponentX< dMMP >()
constexpr real getComponentZ< d00P >()
constexpr real getVelocity< dPMM >(real velocityX, real velocityY, real velocityZ)
constexpr real getWeight< dMMM >()
constexpr real getComponentZ< d000 >()
constexpr size_t inverseDir< d0MM >()
constexpr real getComponentZ< dMPP >()
constexpr void forEachNonRestDirection(F func)
How to use this function:
constexpr size_t inverseDir< d0M0 >()
constexpr real getComponentY< dMM0 >()
constexpr real getComponentZ()
constexpr real getComponentY< dMP0 >()
constexpr real getWeight< d00P >()
constexpr real getComponentZ< dMM0 >()
constexpr real getComponentX< dPP0 >()
constexpr real getWeight< dP0P >()
constexpr real getComponentZ< dPM0 >()
constexpr size_t inverseDir< dPM0 >()
constexpr real getComponentZ< dPPM >()
constexpr real getWeight< dPP0 >()
constexpr size_t inverseDir< dP0M >()
constexpr real getVelocity< dMMM >(real velocityX, real velocityY, real velocityZ)
constexpr real getWeight< d0PM >()
constexpr real getVelocity< d0P0 >(real, real velocityY, real)
constexpr size_t inverseDir< dPMP >()
constexpr real getComponentY< dMPP >()
constexpr real getComponentX< dM00 >()
constexpr real getComponentX< d0PP >()
constexpr real getVelocity(real velocityX, real velocityY, real velocityZ)
constexpr size_t inverseDir< dPPM >()
constexpr size_t inverseDir< d0MP >()
constexpr real getWeight()
constexpr real getComponentY< dPPM >()
constexpr real getWeight< dP0M >()
constexpr real getComponentZ< d0P0 >()
constexpr size_t inverseDir< d00P >()
constexpr size_t inverseDir< d00M >()
constexpr real getComponentX< dP0P >()
constexpr real getVelocity< dP0P >(real velocityX, real, real velocityZ)
constexpr real getComponentX< dPMP >()
constexpr size_t inverseDir()
constexpr size_t inverseDir< dMM0 >()
constexpr real getComponentY< dMMM >()
constexpr real getComponentZ< dM0P >()
constexpr real getWeight< d0MP >()
constexpr real getWeight< dPPP >()
constexpr size_t inverseDir< dMP0 >()
constexpr size_t inverseDir< d0P0 >()
constexpr size_t inverseDir< dMPP >()
constexpr real getVelocity< dMPP >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentZ< d0MM >()
constexpr real getComponentY< d0P0 >()
constexpr real getComponentX< dPMM >()
constexpr real getComponentX< dM0M >()
constexpr real getVelocity< d0M0 >(real, real velocityY, real)
constexpr real getWeight< dMPP >()
constexpr real getComponentZ< dPMM >()
constexpr real getVelocity< dPPP >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentZ< dMMM >()
constexpr real getComponentX< dMM0 >()
constexpr void forSequence(std::index_sequence< S... >, F func)
constexpr real getComponentY< d0PM >()
constexpr real getComponentZ< d00M >()
constexpr size_t inverseDir< dM0P >()
constexpr size_t inverseDir< dPMM >()
constexpr real getWeight< d0MM >()
constexpr real getComponentX< dPM0 >()
constexpr real getVelocity< d000 >(real, real, real)
constexpr real getComponentX< d0PM >()
constexpr real getComponentX< dP0M >()
constexpr size_t inverseDir< dPP0 >()
constexpr size_t inverseDir< d000 >()
constexpr real getComponentX< dMMM >()
constexpr real getWeight< dPMM >()
constexpr real getComponentX< d00M >()
constexpr real getWeight< dMMP >()
constexpr real getVelocity< dMM0 >(real velocityX, real velocityY, real)
constexpr real getComponentY< dMMP >()
constexpr real getComponentZ< d0PM >()
constexpr real getComponentX< d0M0 >()
constexpr real getComponentY< dM0P >()
constexpr real getComponentY< d0MM >()
constexpr real getComponentY< dPMM >()
constexpr real getComponentX< dPPM >()
constexpr size_t inverseDir< dP00 >()
constexpr real getComponentX< dP00 >()
constexpr real getComponentY< dPMP >()
constexpr real getVelocity< d0MM >(real, real velocityY, real velocityZ)
constexpr real getWeight< d000 >()
constexpr real getWeight< dMP0 >()
constexpr size_t inverseDir< dPPP >()
constexpr real getVelocity< d0PP >(real, real velocityY, real velocityZ)
constexpr real getComponentY< dM00 >()
constexpr real getVelocity< dMP0 >(real velocityX, real velocityY, real)
constexpr real getWeight< dPPM >()
constexpr real getWeight< d0P0 >()
constexpr real getComponentX< d0MM >()
constexpr real getComponentY< dPP0 >()
constexpr real getVelocity< dMPM >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentZ< d0PP >()
constexpr real getWeight< dP00 >()
constexpr real getComponentZ< dP00 >()
constexpr real getVelocity< dPM0 >(real velocityX, real velocityY, real)
constexpr real getComponentY< d00M >()
constexpr real getComponentY< d0PP >()
constexpr real getComponentY< d000 >()
constexpr void forEachDirection(F func)
constexpr real getWeight< dMM0 >()
constexpr real getComponentZ< dP0M >()
constexpr size_t inverseDir< dMMP >()
constexpr real getComponentZ< dMPM >()
constexpr real getComponentY< dP00 >()
constexpr size_t inverseDir< dP0P >()
constexpr real getComponentY< d0M0 >()
constexpr real getComponentY< dPPP >()
constexpr real getVelocity< dP0M >(real velocityX, real, real velocityZ)
constexpr real getVelocity< d0PM >(real, real velocityY, real velocityZ)
constexpr real getVelocity< dP00 >(real velocityX, real, real)
constexpr real getVelocity< dM0P >(real velocityX, real, real velocityZ)
constexpr real getWeight< d0PP >()
constexpr real getWeight< dM00 >()
constexpr real getComponentY< dP0M >()
constexpr real getComponentY< dPM0 >()
constexpr size_t inverseDir< dMPM >()
constexpr real getComponentZ< dP0P >()
constexpr real getVelocity< dMMP >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentZ< dM0M >()
constexpr real getWeight< d00M >()
constexpr size_t inverseDir< d0PM >()
constexpr size_t inverseDir< dMMM >()
constexpr size_t inverseDir< dM0M >()
constexpr real getComponentZ< d0M0 >()
constexpr real getComponentY< dM0M >()
constexpr real getComponentX< dMP0 >()
constexpr real getComponentX< d000 >()
constexpr real getComponentX< dMPP >()
constexpr size_t inverseDir< dM00 >()
constexpr real getComponentY< dMPM >()
constexpr real getComponentY< d00P >()
constexpr real getWeight< dPM0 >()
constexpr real getComponentZ< dPMP >()
constexpr real getVelocity< dM00 >(real velocityX, real, real)
constexpr real getVelocity< dPPM >(real velocityX, real velocityY, real velocityZ)
constexpr real getComponentZ< dMP0 >()
constexpr real getComponentY()
constexpr real getComponentX< d0P0 >()
constexpr real getComponentZ< dPPP >()
constexpr real getWeight< dM0M >()
constexpr real getVelocity< dM0M >(real velocityX, real, real velocityZ)