blob: 4660946a7cfd9f97c386a17d999d11485dd21ef3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
template <typename T, template<typename> class DESCRIPTOR>
void Grid2D<T,DESCRIPTOR>::collideAndStream()
{
for ( auto& fineCoupler : _fineCouplers ) {
fineCoupler->store(); // Speichern von Werten in $x_{g \to f}^g \in \G$ zu Zeit $t$
}
this->getSuperLattice().collideAndStream(); // Zeitschritt $t \to t+\delta t_g$ auf $\G$
for ( auto& fineGrid : _fineGrids ) {
fineGrid->collideAndStream(); // Zeitschritt $t \to t+\delta t_g / 2$ auf $\F$
}
for ( auto& fineCoupler : _fineCouplers ) {
fineCoupler->interpolate(); // Interpolation von Werten in $x_{g \to f}^g \in \G$ zu Zeit $t + \delta t_g / 2$
fineCoupler->couple(); // Setzen von $f_{f,i}$ in $x_{g \to f} \in \F$
}
for ( auto& fineGrid : _fineGrids ) {
fineGrid->collideAndStream(); // Zeitschritt $t+\delta t_f \to t+2\delta t_f$ auf $\F$
}
for ( auto& fineCoupler : _fineCouplers ) {
fineCoupler->store(); // Speichern von Werten in $x_{g \to f}^g \in \G$ zu Zeit $t + \delta t_g$
fineCoupler->couple(); // Setzen von $f_{f,i}$ in $x_{g \to f} \in \F$
}
for ( auto& coarseCoupler : _coarseCouplers ) {
coarseCoupler->couple(); // Setzen von $f_{g,i}$ in $x_{f \to g} \in \G$
}
}
|