Dec 21, 2006 - The following software was applied in my work: the GNU Compiler Col- lection ... we have many mathematical tools for making general statements on them. ..... distribution function from the distribution function of an ideal gas.
AB INITIO DERIVATION OF THE CASCADED LATTICE BOLTZMANN AUTOMATON
Martin Christian Geier
ii
iv
AB INITIO DERIVATION OF THE CASCADED LATTICE BOLTZMANN AUTOMATON
vi
AB INITIO DERIVATION OF THE CASCADED LATTICE BOLTZMANN AUTOMATON Vorgelegt von
Martin Christian Geier University of Freiburg – IMTEK
Dissertation zur Erlangung des Doktorgrads der Fakultät für Angewandte Wissenschaften der Albert-Ludwigs-Universität Freiburg im Breisgau
viii
Department of Microsystems Technology IMTEK University of Freiburg Freiburg im Breisgau, Germany
Author
Martin Christian Geier
Thesis period
August 2003 to September 2006
Referees
Jan G. Korvink and Oliver Paul
Supervisors
Jan G. Korvink and Andreas Greiner
Disputation
Decemb er 21th 2006
Declaration
Ich erkläre hiermit, dass ich die vorliegende Arbeit ohne unzulässige Hilfe Dritter und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe. Die aus anderen Quellen direkt oder indirekt übernommenen Daten und Konzepte sind unter Angabe der Quelle gekennnzeichnet. Insbesondere habe ich hierfür nicht die entgeltliche Hilfe von Vermittlungs- oder Beratungsdiensten (Promotionsberaterinnen oder Promotionsberater oder anderer Personen) in Anspruch genommen. Niemand hat von mir unmittelbar oder mittelbar geldwerte Leistungen für Arbeiten erhalten, die im Zusammenhang mit dem Inhalt der vorgelegten Dissertation stehen. Die Arbeit wurde bisher weder im In- noch im Ausland in gleicher oder ähnlicher Form einer anderen Prüfungsbehörde vorgelegt. Freiburg, 5th September 2006
Martin Christian Geier
In memory of the 100th anniversary of the dead of Ludwig Boltzmann
xii
I am conscious of being only an individual struggling weakly against the stream of time. But it still remains in my power to contribute in such a way that, when the theory of gases is again revived, not too much will have to be rediscovered. –Ludwig Boltzmann (∗20.4.1844 † 5.9.1906)
xiii
xiv
Contents
1 Introduction
7
2 Lattice Boltzmann - state of the art 2.1 Lattice gas and lattice Boltzmann cellular automata . . . . 2.1.1 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Streaming and scattering . . . . . . . . . . . . . . . 2.1.3 Particle representations . . . . . . . . . . . . . . . . 2.2 Lattice Boltzmann scattering operators . . . . . . . . . . . 2.2.1 Single relaxation time operators . . . . . . . . . . . 2.2.2 Multiple relaxation time operators . . . . . . . . . . 2.2.3 Entropic operators . . . . . . . . . . . . . . . . . . . 2.3 Theoretical background of the lattice Boltzmann automaton 2.4 SRT lattice Boltzmann automaton in 2D . . . . . . . . . . . 2.5 Boundary conditions . . . . . . . . . . . . . . . . . . . . . . 2.6 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Turbulence and the lattice Boltzmann automaton . . 2.6.2 Scale separation . . . . . . . . . . . . . . . . . . . . 2.6.3 Navier Stokes and higher order schemes . . . . . . . 2.6.4 Closing under-determined equations with entropy . . 2.6.5 Entropy and closure . . . . . . . . . . . . . . . . . . 2.7 Endnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
13 13 14 16 16 17 17 18 18 20 21 23 24 25 26 29 31 32 34
3 Minimal kinetic model 3.1 Basic principles . . . . . . . 3.2 1D prototype . . . . . . . . 3.2.1 Equilibrium . . . . . 3.2.2 Scattering rate . . . 3.3 Generalization to more than 3.4 Admissible operations . . . 3.4.1 The generic collision
. . . . . . .
. . . . . . .
37 37 38 39 41 43 44 44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . one dimension . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
xv
Contents
3.5
3.6 3.7
3.4.2 The generic commutative operator 3.4.3 Invariance under translation . . . . 3.4.4 Invariance under rotation . . . . . 3.4.5 Invariance under collisions . . . . . Elementary collisions in two dimensions . 3.5.1 Moments . . . . . . . . . . . . . . 3.5.2 Collision vectors . . . . . . . . . . 3.5.3 Equilibria . . . . . . . . . . . . . . The collision cascade . . . . . . . . . . . . Endnotes . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
45 45 46 47 48 48 51 53 56 59
4 Properties of the cascaded lattice Boltzmann automaton 4.1 Basic differences to other lattice Boltzmann models . . 4.1.1 Transport coefficients . . . . . . . . . . . . . . 4.1.2 Algorithmic differences . . . . . . . . . . . . . . 4.2 Effects of high order corrections on stability . . . . . . 4.2.1 A thought experiment . . . . . . . . . . . . . . 4.2.2 Aliasing . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Over-relaxation of third order moments . . . . 4.3 Simple tests . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Frozen-in velocity peak at rest . . . . . . . . . 4.3.2 Frozen-in velocity peak in motion . . . . . . . . 4.3.3 Step advection with finite viscosity . . . . . . . 4.4 Measurement of the viscosity error . . . . . . . . . . . 4.4.1 Shear wave decay experiment . . . . . . . . . . 4.4.2 Determining the numerical viscosity . . . . . . 4.5 Speed bounds . . . . . . . . . . . . . . . . . . . . . . . 4.6 Cascaded digital lattice Boltzmann . . . . . . . . . . . 4.7 Endnotes . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
63 63 64 65 66 66 74 78 79 79 84 84 92 97 97 100 102 105
5 Simulation of turbulent flow 5.1 Under-resolved turbulence . . . . . . . . . . . . . . . 5.2 Turbulent wake . . . . . . . . . . . . . . . . . . . . . 5.2.1 Energy spectrum . . . . . . . . . . . . . . . . 5.2.2 Convergence study . . . . . . . . . . . . . . . 5.3 Turbulence induced by Kelvin Helmholtz instability 5.3.1 Resolution of turbulent flow . . . . . . . . . . 5.4 Under-resolved laminar flow . . . . . . . . . . . . . . 5.5 Endnotes . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
107 107 108 109 109 112 118 121 121
xvi
. . . . . . . .
Contents 6 Conclusions 6.1 Efficiency . . . . . . 6.2 Turbulent flow . . . 6.3 Complexity . . . . . 6.4 Future challenges . . 6.5 Fields of applications 6.6 Endnotes . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Appendices
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
127 127 128 130 132 135 137 139
A Minimal cascaded lattice Boltzmann automaton in 3D 141 A.1 Scattering matrix . . . . . . . . . . . . . . . . . . . . . . . . . . 142 A.2 Length of collision vectors . . . . . . . . . . . . . . . . . . . . . 144 B Mapping lattice units to the real world
157
Bibliography
159
xvii
xviii
List of Figures
2.1 2.2
D2Q7 and D2Q9 lattices . . . . . . . . . . . . . . . . . . . . . D3Q13, D3Q15, D3Q19, and D3Q27 lattices . . . . . . . . . .
14 15
3.1
Elementary collisions D2Q9 . . . . . . . . . . . . . . . . . . . .
54
4.1 4.2 4.3
70 71
4.17 4.18
Transport of singular velocity peak (SRT) . . . . . . . . . . . . Transport of singular velocity peak (cascaded LB) . . . . . . . Comparison of the velocity dependence of viscosity on the SRT lattice Boltzmann automaton and the cascaded lattice Boltzmann automaton . . . . . . . . . . . . . . . . . . . . . . . . . . Flipping-over of velocity curvature due to κxxy . . . . . . . . . Diffusion of peak (SRT model) . . . . . . . . . . . . . . . . . . Diffusion of peak (none equilibrated) . . . . . . . . . . . . . . . Diffusion of peak (equilibrated) . . . . . . . . . . . . . . . . . . Diffusion of peak with velocity (SRT model) . . . . . . . . . . . Diffusion of peak with velocity (non equilibrated) . . . . . . . . Diffusion of peak with velocity (equilibrated) . . . . . . . . . . Step profile transport with SRT model . . . . . . . . . . . . . . Step profile transport with entropic lattice Boltzmann model . Step profile transport with cascaded lattice Boltzmann model . Step profile transport with entropic lattice Boltzmann model (gradient) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step profile transport with cascaded lattice Boltzmann model (gardient) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step profile transport with cascaded lattice Boltzmann model (gardient, ν = 10−3 ) . . . . . . . . . . . . . . . . . . . . . . . . Step profile at rest with cascaded lattice Boltzmann model . . . Measurement of numerical viscosity. . . . . . . . . . . . . . . .
5.1
Turbulent wake behind plate . . . . . . . . . . . . . . . . . . . 109
4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16
73 80 81 82 83 85 86 87 89 90 91 93 94 95 96 99
xix
List of Figures 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13
xx
Energy spectrum of turbulent wake . . . . . . . . Turbulent wake behind plate (coarse) . . . . . . . Turbulent wake behind plate (averaged) . . . . . Turbulent wake behind plate (variance) . . . . . Onset of Kelvin Helmholtz instability (coarse) . . Free decay of turbulence . . . . . . . . . . . . . . Onset of Kelvin Helmholtz instability (fine) . . . Energy spectrum of the decay of Kelvin-Helmoltz Compensated energy spectra . . . . . . . . . . . Minimal resolution vortex shedding (isosurface) Minimal resolution vortex shedding (flow field) . Minimal resolution stationary vortex . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . instability . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . .
110 111 113 114 115 116 117 119 120 122 123 124
Abstract In this thesis, an executable cellular automaton model for athermal fluids is derived from first principles. The time evolution of a fluid is described by deterministic streaming of particles and their collisions. It is shown that the assumption of a symmetric equilibrium and the invariance under shift, rotation, and the commutation of the collision operators are sufficient for the unique determination of all model parameters. No other physical or mathematical justification is necessary for the derived model, which will be called the cascaded lattice Boltzmann automaton. The method of central moments is introduced for the derivation of the cascaded lattice Boltzmann automaton. The method of central moments is a mathematical tool applied to gain independence of the frame of reference for systems with an intrinsic frame of reference. The first step in the procedure is to determine the intrinsic frame of reference. This is done by the determination of all characteristic points of the the system. The second step is to apply a coordinate transform to the system to transfer it into its characteristic frame of reference. Operations are constraint to the characteristic frame of reference. The last step is the transformation back into the original frame of reference. For simple fluid dynamics the only characteristic point is the mean of the velocity distribution. The cascaded lattice Boltzmann automaton is compared to other lattice Boltzmann automata and is found to have superior accuracy and stability characteristics. The role of higher order velocity moments which are typically neglected in other lattice Boltzmann automata is investigated in detail. The instabilities which plague other lattice Boltzmann automata are traced back to the wrong behavior of third order velocity moments. Without the independence from the frame of reference gained by the method of central moments, third order velocity moments are wrong and cause an error in viscosity which is of second order in Mach number. The application of the method of central moments reduces this error to fourth order in Mach number. More important is the qualitative differences of the errors. The error in the original lattice Boltzmann automaton is shown to be always negative while the error in the cascaded lattice Boltzmann automaton is always positive. Negative errors in
1
viscosity are destabilizing since they might cause the viscosity to become negative which is not allowed by the second law of thermodynamics. Positive errors in viscosity cannot cause numerical instabilities. In addition, the magnitude of the errors in the cascaded lattice Boltzmann automaton is significantly lower. Numerical viscosity is in general very low in the new method. It is further shown that the time evolution of third order moments have to be decoupled from the evolution of second order moments. The evolution of second order velocity moments is modeled by an over-relaxation process in order to obtain small viscosities. It is shown that the application of the same over-relaxation process to third order moments causes intolerable aliasing effects. Third order moments describe the curvature of the velocity field and their over-relaxation causes a flipping-over of the local curvature. Low wavelength components of the flow field get unstable if over-relaxation of third order moments is allowed. Therefore, the cascaded lattice Boltzmann automaton applies over-relaxation only to second order moments and equilibrates all higher order moments. Computational evidence for the superiority of the cascaded lattice Boltzmann automaton over other methods of computational fluid dynamics is shown by some computational experiments. The flow around an rectangular obstacle in 3D at a Reynolds number of 1400000 is presented. Even though the simulation is under-resolved by a factor of more than 40000, it is shown that the fully developed turbulent wake complies with the Kolmogorov theory of turbulent flow. Simulations of the free decay of turbulence show that the flow field contains turbulent features complying with the Kolmogorov theory down to the length of a few grid spacings irrespective of the lack of resolution in the simulation. Finally it is shown that the cascaded lattice Boltzmann automaton captures the correct transition from laminar steady to laminar unsteady flow behind a cylinder with a diameter of a single grid spacing. The vortices are smaller than one grid spacings in this case and yet they are modeled with sufficient accuracy to capture the relevant physical effects of the problem.
2
Zusammenfassung In dieser Arbeit wird ein Zellularautomatenmodel für athermische Fluide ab intio abgeleitet. Die zeitliche Entwicklung eines Fluids wird durch determistischen Flug und Stoss von Partikeln beschrieben. Es wird gezeigt, dass die Annahme einer symmetrischen Gleichgewichtsverteilung und der Invarianz unter Translation und Rotation sowie die Kommutation der Stossoperatoren ausreichen um alle Modellparameter eindeutig zu bestimmen. Die Herleitung des neuen Modells, das als der kaskadierte Gitterboltzmannautomat bezeichnet werden soll, benötigt keine darüber hinausgehende physikalische oder mathematische Rechtfertigung. Für die Ableitung des kaskadierten Gitterboltzmannautomaten wird die Methode der zentralen Momente eingeführt. Die Methode der zentralen Momente ist ein mathematisches Hilfsmittel mit dem sich für ein System das ein intrinsiches Bezugssystem aufweist Unabhängigkeit von dem Bezugssystem erlangen lässt. Im ersten Schritt wird das intrinsische Bezugssystem ermittelt indem alle charakteristischen Punkte des Systems bestimmt werden. Der zweite Schritt besteht in einer Koordinatentransformation in das charakteristische Bezugssystem. Alle Operationen werden in dem charakteristischen Bezugssystem ausgeführt. Im letzten Schritt wird das System wieder in sein Ursprungsbezugssystem zurücktransformiert. Der einzige charakteristische Punkt für einfache Fluide ist der Schwerpunkt der Geschwindigkeitsverteilungsfunktion. Der kaskadierte Gitterboltzmannautomat wird mit anderen Gitterboltzmannautomaten verglichen und es wird festgestellt, dass er bessere Stabilitäts und Genauigkeitseigenschaften aufweist. Die Rolle der höheren Geschwindigkeitsmomente, die gewöhnlich in anderen Gitterboltzmannautomaten vernachlässigt werden, wird genauer untersucht. Die Insatbilitäten die andere Gitterboltzmannautomaten plagen, können auf ein falsches Verhalten der dritten Geschwindigkeitsmomente zurückgefürt werden. Ohne die Unabhängigkeit vom Bezugsrahmen, die durch die Methode der zentralen Momente erreicht wird, sind die dritten Geschwindigkeitsmomente falsch und verursachen einen Fehler in der Viskosität der zweiter Ordung in der Machzahl ist. Die Verwendung der Methode der zentralen Momente reduziert diesen Fehler auf Ordnung vier
3
in der Machzahl. Wichtiger ist aber der qualitative Unterschied der Fehler. Wärend der Fehler in der Ursprünglichen Gitterboltzmannmethode immer zu einer negativen Viskosität führt ist der Fehler in der neuen Methode immer positiv. Negative Fehler in der Viskosität sind destabilisierend da sie dazu führen können das die Viskosität negativ werden kann was laut dem zweiten Hauptsatz der Thermodynamik verboten ist. Positive Fehler in der Viskosität können keine numerischen Instabilitäten verursachen. Zusätzlich ist auch der Betrag der Fehler in der kaskadierten Methode erheblich kleiner. Es wird gezeigt, dass die zeitliche Entwicklung der dritten Momente von der der zweiten Momente entkoppelt werden muss. Die zeitliche Entwicklung der zweiten Momente wird durch einen Überrelaxationsprozess modelliert um kleine Viskositäten zu erlangen. Es wird gezeigt, dass die Anwendung des gleichen Überrelaxationsprozesses auf die dritten Momente zu intolerablen Aliasingeffekten führt. Dritte Momente beschreiben die Krümmung des Geschwindigkeitsfeldes. Ihre überrelaxierung führt zu einer Inversion der lokalen Krümmung. Kurzwellige Bestandteile des Strömungsfeldes werden instabil wenn die Überrelaxierung dritter Momente zugelassen wird. Daher überrelaxiert der kaskadierte Gitterboltzmannautomat nur zweite Momente und setzt alle übrigen Momente auf ihren Gleichgewichtszustand. Die Überlegenheit des kaskadierten Gitterboltzmannautomaten gegenüber anderen fluidischen Simulationsmethoden wird anhand einiger rechnerischer Experimente gezeigt. Der Fluss um ein rechteckiges Hindernis bei Reynoldszahl 1400000 wird untersucht. Obwohl die Auflösung der Simulation um mehr als einen Faktor 40000 zu niedrig ist kann gezeigt werden, dass die völlig ausgebildete turbulente Strömung der Kolmogorov-Theorie gehorcht. Simulationen von frei zerfallender Turbulenz zeigen Details die bis hinunter auf wenige Gitterlängen der Kolmogorov-Theorie gehorchen ungeachtet der fehlenden Auflösung in der Simulation. Es wird ferner gezeigt, dass der kaskadierte Gitterboltzmannautomat auch den Übergang von laminar statischen zu laminar dynamischen Stömungen hinter einem Zylinder korrekt abbildet wenn der Zylinder nur den Durchmesser einer einzigen Gitterlänge aufweist. Die Wirbel sind in diesem Fall zwar kleiner als eine einzige Gitterlänge, die relevanten physikalischen Effekte werden aber dennoch mit hinreichender Genauigkeit von dem Modell abgebildet.
4
Acknowledgments This thesis was only possible in this form due to the nearly unlimited freedom I enjoyed in the group of professor Korvink. Professor Korvink gave me free choice of my topic, my objectives and my working principles. I exploited this freedom to the limit. I chose a topic which was unrelated to other work in the group, even unrelated to MEMS in general. The way I approached my work was rather chaotic. I did what ever came to my mind without a clear aim what I wanted to archive. Very few professors would have trusted in me for so long. Very few Ph. D. students were given a similar opportunity. Therefore, I want to thank professor Korvink deeply: for the trust, for the freedom, and for accepting my decisions and opinions even when he had other directions in mind. I also have to thank my supervisor Andreas Greiner for his mental and scientific support and, of course, for keeping my salary flowing. Together with Mr. Korvink and Mr. Greiner I have to thank Mr. Zhenyu Liu for all the insight from our unnumbered discussions. For enlightening discussion on specific topics I have to thank the following people: Evgenii Rudnyi for his explications of entropy. Jan Lienmann helped me to understand the closure problem of turbulence. Professor Andreas Bamberger enlightened me on the subject of vortex pairing and the related generation of sound. Professor Oliver Paul pointed me to Noether’s theorem. For technical support with the hardware in the group I have to thank Christian Moosmann, Oliver Rübenkönig, and Jan Lienemann. Furthermore, I have to thank Jan Linemann for the technical support in designing this thesis and for preparing the Latex stylesheets. Andreas Greiner extracted the data points from Mr. Karlin’s paper which was a great help for me in comparing the cascaded lattice Boltzmann automaton to the entropic lattice Boltzmann automaton. For help with C++ programming, lots of tricks, and for the voice of the ”other point of view in fluidics” I want to thank David Kauzlaric.
5
I also want to thank the rest of the simulation group and our Hiwis for the convenient working atmosphere. For discovering errors in my code and in my papers I have to thank Helmut Kühnelt, Alexander Gaulke, Kerstin Tegeler, and Jonas Tölke. I have to thank all the people who discussed with me on the DSFD 2006 conference in Geneva. Even though, the conference was only two weeks before I had to submit this thesis I tried to include some important points from our discussions. My work was partially founded by the German Ministry of Science and Education BMBF under the project SIMOD and by the Provincia Autonoma di Trento and the Consiglio Nazionale di Ricerca (Italy) within the project Microsystem Modeling in the reasearch framework ricerca e formatzione nei microsistemi. The following software was applied in my work: the GNU Compiler Collection, the Simplified Wrapper and Interface Generator, the Ruby scripting language, Gnuplot, Paraview, Povray, and Mathematica. Finally I have to thank my sister Monika for her remark that if I am not able to explain my theory to her, I have obviously not understood it myself. This made me start over again and I spent the last half year of my work with the search for comprehensible justifications for my theory. And true enough, that led to much deeper understanding of the cascaded lattice Boltzmann automaton than I had before.
6
1
1 Introduction I am an old man now, and when I die and go to heaven there are two matters on which I hope for enlightenment. One is quantum electrodynamics, and the other is the turbulent motion of fluids. And about the former I am rather optimistic. – Horace Lamb The language of science is certainly mathematics. But mathematics is a language with many dialects. Scientist are used to express their theories on natural phenomena in the dialect of differential equations. One example for such a theory is the Navier Stokes equation which describes the time evolution of a simple fluid constrained by boundary conditions. There is a consensus that the Navier Stokes equation represents the best model for this purpose know to date. However, the Navier Stokes equation has a disadvantage which is directly related to the fact that it is a differential equation: we do not know how to solve it. In fact, we cannot prove that it has solutions! Even though this is widely regarded as a theoretical problem, it has profound implications on what engineers are able to achieve and on what scientists are able to predict. Flow is so omnipresent that we could easily fill the pages of this thesis with relevant engineering problems which are hitherto unsolved due to our insufficient understanding of the behavior of simple fluids. Differential equations provide certainly a very efficient framework for expressing theories and we have many mathematical tools for making general statements on them. However, they come without a clue on how to solve them in general. Even with a genuine model on the behavior fluidic motion we are not able to predict fluidic motion. Non-linear partial differential equations require an auxiliary model for obtaining solutions from them. Instead of solving the Navier Stokes equation, what seems impossible, scientists solve discretized approximations of the Navier Stokes equation. Whether this is sufficient or not depends on the problem at hand. In the case of large scale fluid dynamic it is often insufficient as is easily seen from the unreliability of the weather forecast. In this thesis we will deal with an alternative dialect of mathematics to express theories on the behavior of natural phenomena. This is the dialect of
7
1 Introduction cellular automata. A cellular automaton is a state machine which describes the evolution of observable entities by rules acting on the entities. The different mathematical dialects are in principle equivalent. There are long winded methods to translate expressions from one dialect to the other but they are in general not very useful. The main difference between the dialects is to be seen in the fact that operations which are very simple in one dialect are very involved in the other dialect. Differential equations are compact statements on the general properties of systems regardless of its specific state. Cellular automata, on the other hand, are advantageous for the description of specific systems being in specific states. If we can express a theory in terms of state machine rules, we have, at least in principle, solved it. A cellular automaton is an executable model. Knowledge of the rules and the initial configuration implies knowledge of all forthcoming configurations to later times. We only need to apply the rules to the system state which can easily be done by a digital computer. This idea has been applied to solve the Navier Stokes equation by means of a cellular automaton today known as the lattice Boltzmann automaton. A formal link to the Navier Stokes equation was desired in the historically context since the Navier Stokes equation represented the accepted theory. The objective for the development of the lattice Boltzmann automaton was hence not to derive a new theory in another mathematical dialect but merely to translate the Navier Stokes equation from the dialect of differential equations to the dialect of cellular automata. The technique that was applied successfully to this task is the Chapman Enskog expansion, an expansion technique in Knudsen and Mach number (ratios of system size to mean free path and system speed to sound speed, respectively) which can also be used to derive the continuous Navier Stokes equation from the continuous Boltzmann transport equation, the equation describing the evolution of a single particle distribution function in time, space, and momentum. The procedure is reminiscent of the craft of solving differential equations insofar as it is not possible to obtain the lattice Boltzmann automaton from the Chapman Enskog expansion directly. It is only possible to prove for a given (actually a guessed) cellular automaton that it complies with the Navier Stokes equation in a long wavelength limit. Only rudimentary parameters for the model can be obtained from a comparison between the physical Navier Stokes equation and lattice Navier Stokes equation. Everything else is due to scientific inspiration. This turns out to be a problem. Different assumptions made in the process lead to different models with different properties notwithstanding that they are all supposed to solve exactly the same equation.
8
1 In this thesis we follow a different route to derive a cellular automaton model for fluid dynamics. We will not justify model parameters by analytical comparison with the Navier Stokes equation (expect for viscosity). The equivalence of the lattice Boltzmann automaton to the Navier Stokes equation is taken as an established fact. And even if this was not true, it would not necessarily mean that the Navier Stokes equation was right. The development of a new model for a physical process requires some justification. A physicist would accept a new theory only if it mad testable predictions which are in contradiction to the established theory and which are then found to be true. Alternatively, the physicist might accept a new theory if it made the same prediction as the old one but was simpler. Both is not true for the model derived in this thesis. The work done here is justified on another basis since we assume a point of view that is different from the point of view of a physicist. The rapid progress of physics in the last century has produced very accurate theories. In his famous lectures on physics (volume II chaper 41) Richard Feynman counters the argument that physicists are not able to present an equation for life with the Schrödinger equation. But Feynman is also known to have said that it was not known whether the Schrödinger equation contains frogs, musical composers, or morality. The physicist is interested in the most fundamental description of nature and is indifferent to the difficulties imposed by her or his model. The argument, that physicist have no model for life and will most likely never develop one, is still true. Super computing will, at some point, give us the opportunity to solve the Schrödinger equation for a simple protein but it will never be of practical use for understanding life in general. In applied sciences, the objective for modeling is different from the objective in raw physics. Let us assume that physics tries to maximize the trustworthiness T of a model. The trustworthiness is the accuracy of the model or the likelihood for a prediction to be true. The perfect model has a trustworthiness of one. We might assume that the trustworthiness of the Schrödinger equation for describing life is rather high (even though we do not know whether that is really true). But the usability of the Schrödinger equation in this respect is nil and hence we see that trustworthiness is not a good quality factor for a model seen from the perspective of applied sciences. Instead we could introduce a model performance P that includes a measure for the price we have to pay to obtain predictions from a given model. Let R be the maximal amount of resources which we are willing or able to spend for this prediction and let C be the cost that we have to spend to obtain the prediction. Cost might have different physical units such as person hours,
9
1 Introduction money, CPU hour, gigabytes of memory and so on. We could define a model performance like this: P=
T×R C
0
if C < R else
(1.1)
The model performance of the Schrödinger equation for describing life is zero because the cost we are able to spend is smaller than the cost we had to spend in order to solve it. It is necessary to recognize that this is a hard constraint. A model is infeasible even if the cost for its application is only very slightly larger than the amount we are able to spend. For example, if a finite element model is just a little bit too large for the address space of the largest available computer it is as useless as no model at all. In applied sciences our objective is always to solve concrete problems given a concrete amount of resources. That we could increase the trustworthiness of a model if we had other resources is not of practical interest for us. In this thesis we are not going to solve concrete technical problems. Our objective here is instead to derive a model that can be applied to concrete technical problems. That is to say, we are not taking the physicists point of view and optimize T but we take the applied science point of view and optimize P. The model performance equation favors simple models. The educated guess comes at low cost and has a non-zero trustworthiness. Simple models are in fact very common in engineering sciences. However, sometimes a threshold trustworthiness is indispensable below which the results are worthless. The thesis is structured as follows: in the second chapter the lattice Boltzmann automaton is explained in the way it is nowadays commonly used. In the third chapter, a novel methodology is introduced to obtain an hydrodynamic cellular automaton without reference to other models. The new methodology allows us to derive an hydrodynamic lattice Boltzmann automaton from first principle. Even though the new model is completely independent from the Navier Stokes equation, it will become evident in chapter four that it solves the Navier Stokes equation to a much higher accuracy than previously proposed lattice Boltzmann automata. The analytical evidence will be supplemented with numerical experiments in chapter five. There we will see that the new lattice Boltzmann automaton solves hitherto intractable problems with ease. In particular, we will see simulations of fully developed turbulent flow which were obtained without any ad hock turbulence modeling. Unlike other hydrodynamic modeling techniques, the cascaded lattice Boltzmann automaton, as we shall call the new model, captures turbulent behavior ”out of the box”.
10
1 This thesis deals with a fundamental question at the heart of hydrodynamic modeling. It has therefore a strong theoretical focus. We shall deal only with the basic principles of the lattice Boltzmann automaton. But we shall deal with them in depths to obtain a rigorous understanding of the difficulties of simulating simple fluids and the solutions to this difficulties.
11
12
2
2 Lattice Boltzmann - state of the art Whenever a theory appears to you as the only possible one, take this as a sign that you have neither understood the theory nor the problem which it was intended to solve. –Karl Popper In this chapter the lattice Boltzmann automaton is introduced in the way it is typically derived. A 2D example is shown in more detail and the limitations of the model and computational fluid dynamics in general are discussed.
2.1 Lattice gas and lattice Boltzmann cellular automata A cellular automaton is a regular arrangement of cells. Each cell is in a state chosen from a finite set. The cellular automaton undergoes a time evolution in which the state of each cell is updated according to rules acting on the states of the cells. The rules are invariant under shift from one cell to another. That is to say, the input of the rules for a given cell is the state of the cell itself and the state of the neighboring cells. Only the states of cells in a finite neighborhood are considered by the rule. A cellular automaton is called homogenous if there is only one set of rules for all cells and inhomogenous if different cells have different rules. Cellular automata used for physical simulations are typically slightly inhomogenous using only a few different rules for bulk and boundary conditions respectively. Lattice gas and lattice Boltzmann automata [1, 2] are cellular automata applied for the physical simulation of transport phenomena, typically fluid flow. The cells are broken down into links between nodes. The node represents the spatial location of the links which are momentum states. The links can be occupied by particles (the terms link and momentum state are synonymous in the lattice Boltzmann nomenclature). A particle is the computational quant of mass and momentum and should not be mistaken for a physical entity like a water molecule.
13
2 Lattice Boltzmann - state of the art
Figure 2.1: Momentum state distribution of the D2Q7 and the D2Q9 lattices. The volume of the spheres indicates the weight of the states in the equilibrium distribution.
2.1.1 Lattices The nature of lattice Boltzmann automata allows only for specific momentum sets or lattices. The number of lattices that found their way into applications is very small. The first lattice that was found to comply with the laws of fluid dynamics is the one due to Frisch, Hasslacher, and Pomeau [3]. It applies a hexagonal distribution of nodes. Each node has 6 links to six nearest neighbors, each having a 60 degrees angle to the next link. We call this lattice the D2Q6 lattice (two dimensions, six speeds). By allowing for a resting particle we obtain a D2Q7 lattice. Today, the most popular lattice in two dimensions is the square lattice with links to four next neighbors, four diagonal neighbors and a resting link (see figure 2.1). We call it the D2Q9 lattice. Common lattices in three dimensions are the D3Q27, the D3Q19, the D3Q15, and the D3Q13 latices [4, 5] (see figure 2.2). There are also lattices with links pointing beyond neighbors to fare away nodes [6]. Such lattices are necessary to include energy conservation, a topic we will not touch in this thesis. A condition for the lattice to be valid is the isotropy of second rank velocity tensors [7]. We will later see that the derivation of the cascaded lattice Boltzmann automaton results in a more stringent constraint on the lattice so that lattices like the D2Q6, D2Q7, D3Q19, D3Q15, D3Q13, and many more are not
14
2
2.1 Lattice gas and lattice Boltzmann cellular automata
Figure 2.2: Momentum state distribution of the most common lattices in 3D. From top left to bottom right: D3Q13, D3Q15, D3Q19, and D3Q27. The volume of the spheres indicates the weight of the states in the equilibrium distribution. Only the D3Q27 lattice is suitable for the cascaded lattice Boltzmann automaton.
15
2 Lattice Boltzmann - state of the art valid for the cascaded lattice Boltzmann automaton. The isotropy of second rank tensors does not constrain the homogeneity of momentum space. The momentum state of the D2Q6 lattice, for example, is clearly inhomogeneous since the velocity of a particle in x-direction imposes restrictions on its velocity in y-direction. The standard theory of the lattice Boltzmann automata is ignorant of violations of the homogeneity of the momentum space.
2.1.2 Streaming and scattering The evolution of the lattice gas and lattice Boltzmann automaton is split into two subsequent steps which are repeated over the duration of the simulation: the streaming step and the scattering step. In the streaming step, all links move in their respective direction carrying their particles with them. The set of momentum states is defined so as to match the spatial distribution of nodes. After streaming, each particle has reached another node and the number and type of momentum states on each node is identical before and after streaming. This imposes stringent restrictions on the regularity of both the set of links and the arrangement of nodes. In the scattering step, update rules are applied to the links of each node. The rules depend only on the state of the links on the same node and are ignorant of other variables in the system. Scattering is supposed to comply with given conservation laws, typically for mass and momentum. State variables which are not considered to be conserved should be changed by scattering. That is to say, they should not be conserved by accident.
2.1.3 Particle representations The basic ingredient of lattice gas and lattice Boltzmann automata are the field of nodes, the set of momentum states, the representation of the particles, and the update rules. The main difference between lattice gas automata and lattice Boltzmann automata is to be found in the representation of the particles and the update rules while the arrangement of nodes and the set of momentum states is potentially identical in both methods. Lattice gas represents particles in a binary fashion. The momentum state is allowed to be either occupied or not occupied. The lattice gas automaton comply with the classic definition of a cellular automaton as it allows only for a finite set of states. Lattice Boltzmann automata represent particles in a fuzzy fashion, dealing only with the likelihood of the state to be occupied which is a real number between zero and one. For actual implementations of the lattice Boltzmann
16
automaton the momentum state is still taken from a finite set since real numbers are approximated with floating point numbers on a digital computer. The momentum distribution function for the lattice gas automaton is determined by the velocity set which is unphysical unless the set of momentum states is prohibitively large. With the fuzzy states of the lattice Boltzmann automata comes the possibility to choose the distribution function freely. The lattice Boltzmann automaton uses a moments expansion of the Maxwell-Boltzmann distribution as a reference distribution function. This allows for free choice of transport coefficients like viscosity, freedom from quantization noise and certain lattice artifacts like the lack of Galilean invariance. The lattice gas automaton seems to be obsolete as a model for fluid dynamics today. There is a third possibility to represent particles which we will follow in this thesis. Instead of allowing only one particle or the likelihood for one particle in a momentum state we can also allow for a multitude of particles in a state. That is to say, the state data is neither represented by boolean variables nor by floating point numbers but by integers. Integers provide the same freedom from round-off errors as boolean variables and allow for a free choice of the distribution function.
2.2 Lattice Boltzmann scattering operators The standard theory of the lattice Boltzmann automaton leaves some state variables undetermined and allows for a multitude of different scattering operators. Regardless of their theoretical equivalence, these different scattering operators have different stability and accuracy properties. Three classes of scattering operators are popular: the single relaxation time (SRT) operators, the multiple relaxation time (MRT) operators, and the entropic operators.
2.2.1 Single relaxation time operators The SRT operators [8], which are sometimes called BGK operators, (due to the classic relaxation time assumption of Bhatnagar, Gross, and Krook [9]) are the simplest and least stable scattering operators. They work as follows: The conserved quantities, typically the mass and the velocity vector, are determined for the node by summation over the populations of the links. Next, an approximation of the Maxwell-Boltzmann distribution in terms of link occupation parameterized by the conserved quantities is computed. This is the attractor for the relaxation process and it is typically called the equilibrium
17
2
2.2 Lattice Boltzmann scattering operators
2 Lattice Boltzmann - state of the art distribution. Each link occupation si is relaxed to its equilibrium population seq i with the same relaxation parameter ω. = ωseq spost i i + (1 − ω)si
(2.1)
2.2.2 Multiple relaxation time operators The MRT operators [5, 10, 11] apply a multitude of different relaxation operators. This is only possible by first transforming the state of the node as defined by its link occupations into an equivalent moment space. Each moment is associated with one physical quantity like velocity in certain directions, energy, and so on. Some moments are conserved quantities, some moments are associated with the local stress in the fluid and some moments are supposed to be irrelevant as long as they are not conserved by accident. The MRT operators leave the conserved moments as they are. The relevant moments are relaxed with the relaxation parameter chosen to match the physical parameters of the fluid and the irrelevant moments relax with a relaxation parameter chosen solely from stability considerations. The equilibrium is the same as in the SRT method, however it has to be transfromed into moment space. The scattering of moment mi reads: mpost = ωi meq i i + (1 − ωi )mi
(2.2)
After the scattering, the moments are transformed into occupation space. The MRT lattice Boltzmann automata are considerable more stable than the SRT automata [11]. Sound waves which contaminate the results of SRT simulations can be effectively removed with multiple relaxation times by choosing the bulk viscosity of the fluid much higher than its shear viscosity. However, the stability properties of the MRT lattice Boltzmann models are still not satisfactory.
2.2.3 Entropic operators Entropic lattice Boltzmann automata are systems designed to be unconditionally stable [12–16]. An additional constrained is imposed on the scattering operation. The method computes the entropy of the particle distribution on the node. Scattering is not allowed to decrease entropy. The equilibrium is the maximizer of entropy and is in general not given in polynomial form. The
18
rest of the algorithm is like the SRT algorithm with a relaxation parameter β and a modulation parameter α: spost = αβseq i i + (1 − αβ)si
(2.3)
The modulation parameter α is chosen so that a lattice dependent convex H-function does not change for β = 1. The H-function1 is defined to be the sum of the negative entropies for each link on the node: H=
X
ηi (si )
(2.4)
i
It is easily seen that a non-declining entropy can always be obtained with the trivial modulation α = 0. It is hence impossible for the entropic lattice Boltzmann automata to become unstable. However, this comes at the cost of some additional assumptions which are not easily justified. The second law of thermodynamics is introduced in an unusually stringent way. Entropy is supposed to increase locally and in each scattering event, not on the usual global and statistical basis. The definition of entropy is bound to the specific lattice and has no relation to the definition of entropy in a real fluid. If the definition of entropy for the entropic lattice Boltzmann automaton would be translationally invariant in momentum space (Galilean invariant), like one should expect for a real fluid, it would not fulfill its purpose of stabilizing the automaton. It should be noted that it is not straightforward to combine the two most advanced scattering operators, the MRT and the entropic operator. Entropic stabilization with convex functionals is only simple in one dimension and hence with one relaxation parameter. Finding a root of a convex function in one dimension is always possible as long as the root exists, which is the case for the entropic lattice Boltzmann automaton. Finding a root in higher dimensions is not only more difficult. The root in higher dimensions is in general not unique. The reason is that we are not looking for the minimum of the H-function but for a point with the same ”altitude” as the initial condition. It is like we were standing at the shore of a lake and would ask for the other point at the shore. Of course we see that there is a waterline and that determining ”the other point” is impossible without an additional constraint. The constraint used in the entropic method is to determine the deepest point in the lake and ask: If we draw a straight line from where we are passing over the deepest point in 1
H is the Greek letter ”Eta”. However, it is typically pronounced like the English letter H in the lattice Boltzmann community.
19
2
2.2 Lattice Boltzmann scattering operators
2 Lattice Boltzmann - state of the art the lake, where will this line hit the waterline? The nice thing with this idea is that it reduces the problem to an one-dimensional one irrespective of the original number of dimensions of the landscape. Note that the ”waterline” is an object with d−1 dimensions for a d-dimensional search space. The solution is hence only unique if we reduce the problem to one dimension. Exploiting all degrees of freedom of a D3Q27 lattice would lead to a 25-dimensional search space in which the root of the entropy functional had 24 dimensions.
2.3 Theoretical background of the lattice Boltzmann automaton The theory of the lattice Boltzmann automaton is tightly bound to an expansion technique, called the Chapman Enskog procedure which was applied to derive the worlds first working lattice gas automaton2 [20]. The ChapmanEnskog expansion can be used to derive the fluid dynamic Navier Stokes equation from the microscopic Boltzmann transport equation by means of a double expansion in Knudsen and Mach number. The Boltzmann transport equation describes the evolution of the continuous probability of finding a classical particle in a state in phase space subject to free streaming, collision, and forcing. The lattice Boltzmann automaton is hence a digital variant of the continuous Boltzmann transport equation and can be interpreted as a discritization thereof. However, the purpose of the lattice Boltzmann automaton is to solve the Navier Stokes equation. The Chapman Enskog procedure can be applied to determine how the macroscopic equation for a lattice Boltzmann automaton would look like. Free parameters can then be fixed by comparing the results to the Navier Stokes equation. The Chapman Enskog procedure is not a straightforward application of algebra. In fact, some assumptions made in the process are not easily justified. The expansion in terms of Knudsen number Kn uses the smallness parameter ǫ = Kn. The Knudsen number is the ratio of the mean free path of a particle and the macroscopic dimension of the considered system. Only a small 2
There is an ongoing argument on who invented the lattice gas algorithm. Stephan Wolfram obtained an US patent [17] on lattice gas even though the algorithm was demonstrated earlier by Frisch, Hasslacher, and Pommeau [3]. Note that [3] was received on October 22nd 1985 while [17] was received on December 27th 1985. It appears unlikely that the involved persons were not aware of each other since Stephan Wolfram was in close contact with Brosl Hasslacher at this time [18, 19].
20
Knudsen number implies hydrodynamic behavior. However, the expansion of the distribution function in ǫ is only a formal act: f = f (0) + ǫf (1) + ǫ2 f (2) + · · ·
(2.5)
The smallness parameter ǫ is used to split the distribution function into terms that vary on different time scales. After the expansion we set ǫ = 1 which is, actually, a contradiction to the assumption that ǫ was small. The Chapman Enskog procedure is not convergent. Extending the expansion to terms higher than those found in Navier Stokes equation results in the unstable Burnett and Super-Burnett equations. The Chapman Enskog expansion is shown for the SRT model in [8]. See also [7, 16] for further information.
2.4 SRT lattice Boltzmann automaton in 2D For the sake of concreteness we regard the simple 2D SRT lattice Boltzmann automaton on the D2Q9 lattice as described in [8]. The state of a node is given by a state vector s: s=
r nw w sw s se e ne n
T
(2.6)
Here r denotes the occupation of the resting link while the other links are named after the cardinal direction they are pointing at, counterclockwise from northwest to north. The node has three conserved quantities, mass ρ, velocity in x-direction vx and velocity in y-direction vy :
ρ = r + nw + w + sw + s + se + e + ne + n
(2.8)
−1
(2.9)
vx = (se + e + ne − sw − w − nw)ρ vy = (nw + n + ne − sw − s − se)ρ
(2.7)
−1
The update rule for the individual links is: 3 2 9 2 si ← (1 − ωsi ) + ωwi 1 + 3ci · v + (ci · v) − v (2.10) 2 2 T Here v is the velocity vector v = vx vy and ci is the velocity vector of the specific link under consideration. Velocities are normalized and have unit 1 so that summation over different exponents is formally allowed.
21
2
2.4 SRT lattice Boltzmann automaton in 2D
2 Lattice Boltzmann - state of the art Each link is associated with a constant weight wi which is derived from the Maxwell-Boltzmann distribution. Note that only first and second order terms in v appear. This is not an accident. It results from the derivation with the Chapman Enskog expansion which must be truncated at second order to obtain the Navier Stokes equation. The derivation of weighting factors wi is of some interest since we will see the same result from a completely different argument in the next chapter. First we recognize that there are three types of links: the resting link r, the links to the nearest neighbors w, s, e, and n, and the links to the next nearest neighbors nw, sw, se, and ne. So we have obviously only three different weights. The first few moments of the Maxwell-Boltzmann distribution are:
(2.11)
µ0 = ρ kB T m kB T 2 = 3ρ m kB T 2 = ρ m
µxx = ρ µxxxx µxxyy
(2.12) (2.13) (2.14)
Odd moments vanish for v = 0. We calculate moments of the node distribution function at velocity zero and match them to the values from the Maxwell-Boltzmann distribution:
w0 + 4w1 + 4w2 = ρ 2c2 w1 + 4c2 w2 2c4 w1 + 4c4 w2 4c4 w2
kB T = ρ m kB T 2 = 3ρ m kB T 2 = ρ m
with c = 1 being the unit speed. This solves to:
22
(2.15) (2.16) (2.17) (2.18)
2
2.5 Boundary conditions
w0 = w1 = w2 = kB T m
=
4 ρ 9 1 ρ 9 1 ρ 36 1 3
(2.19) (2.20) (2.21) (2.22)
Now we have derived the weights for our lattice Boltzmann equilibrium distribution function from the distribution function of an ideal gas. We see that the temperature T must be a constant. Thus energy conservation is obviously not possible. However, it seems a little bit arbitrary to take this velocity set and this set of moments. In the next chapter we see that it is not necessary to invoke the Maxwell-Boltzmann distribution. The same results could be obtained from symmetry and homogeneity considerations directly. Two basic properties of this lattice Boltzmann automaton are its speed of sound: 1 cs = √ 3
(2.23)
and its kinematic viscosity: ν = c2s
1 1 − ω 2
(2.24)
2.5 Boundary conditions We will not go into depth on boundary conditions and discuss only the simplest ones necessary to get started. The minimal set includes a pressure boundary condition and a simple wall boundary condition. The simplest possibility to implement pressure or inflow boundary conditions is to set the links on nodes without neighbors on one side to predefined constant values in each time step. A pressure drop can be implemented by using different values at different ends of the domain. Such a boundary condition does not absorb pressure waves. The simplest way to model a solid boundary inside the domain is to define boundary nodes which simply return all incoming particles to were they came
23
2 Lattice Boltzmann - state of the art from. Since this is an inversion of the velocity prior to collision, the particle must pass velocity zero somewhere between the nodes. The so-called bounce back rule gives a no-slip boundary condition. The location of the boundary is only known within the uncertainty of the lattice itself. No orientation information of the boundary is retained.
2.6 Limitations The lattice Boltzmann automaton is subject to some limitations. The simplifying incompressibility assumption commonly used in computational fluid dynamics is not valid for the lattice Boltzmann automaton because incompressibility implies instantaneous information transfer and an infinite speed of sound. However, the speed of sound is bound to be below one lattice spacing per time step by the nature of the cellular automaton. Still we did not include energy conservation and the lattice Boltzmann automaton should therefore be regarded as a weakly compressible fluid solver. The nature of the cellular automaton imposes a strict limitation on the speed allowed at a node known as the CFL (Courant-Friedrichs-Lewy) condition [21]. The CFL condition is the statement that the propagation of some simulated physical quantity must be slower than the propagation of computational information due to the numerical algorithm. The critical velocity for the lattice Boltzmann automaton is the velocity at which sound waves can propagate in a Galilean invariant fashion: vCF L = c − cs
(2.25)
Simulation results are physically meaningless if the CFL condition is violated (if v > vCF L ). The violation of the CFL condition typically results in numerical instabilities (by this we understand that some state variables grow until they cannot be represented on a digital computer anymore). The CFL condition might be violated with a realizable distribution of particles on the node. (A realizable distribution in the statistical sense is one in which the occupation number of each link is in the range 0...1.) Another limitation of the lattice Boltzmann automaton is the restriction of the relaxation parmeter ω to be smaller than 2. The viscosity ν in 2.24 becomes negative for ω > 2. Negative viscosity results in instability. This is physically consistent since viscosity is the diffusion coefficient of momentum. However, the lattice Boltzmann automaton is, in general, unstable even if ω is significantly smaller than 2. The reason for this instabilities is subject to some
24
speculation. In fact, there might be a multitude of reason for the instabilities. At least we can say that lattice Boltzmann works reasonable well for laminar flows. However, once the flow condition reaches a state that can be regarded as turbulent, the method fails quickly.
2.6.1 Turbulence and the lattice Boltzmann automaton Talking about turbulence is made difficult by the lack of a rigorous definition of the term. We need some kind of working definition in order to make any statements. By turbulence we shall understand the state of a fluidic system in witch an evolution is determined only by state variables measured at a broad spectrum of scales in time and space. We should note that it seems to be impossible to define turbulence without reference to some subjective quantity such as ”a broad spectrum”. In fact, we can say that whether a condition is recognized as turbulent or laminar might depend on the length and time scale we are applying for the measurements. A flow that seems chaotic on a large scale might become perfectly laminar if we zoom into a certain region and restrict our observation to a short time. Unfortunately a fluctuating flow field on a small scale might also look flat seen from a larger scale. The granular nature of matter imposes a minimal scale at which eddies can exist. However, our subjective point of view makes things quite more complicated. For example, it is common to split the energy content of a system into a kinetic and a thermal part. This implies a clear separation of the kinetic and thermal scales. But in a fluid the separation of scales between microscopic and macroscopic motion is not so obvious and perhaps not always possible. Let us take the point of view that a turbulent flow condition is one in which there is no separation of scales at the range we are observing. That is to say, the evolution of the state variables at a certain scale depends on the state variables on all other observed scales and perhaps even on non-observed scales. Nature is supposed to be objective and a definition of turbulence like the one given here does not qualify as valid physical statement. Actually, there must not be any fundamental (objective) difference between laminar and turbulent flows. Otherwise nature would not be scale invariant. So why do we distinguish this flow regimes in the first place? The point is that we cannot be completely objective in our observation and simulations. The act of discretization defines a subjective length and time scale at which we observe our system. It is certainly of some importance whether all relevant scales are included in the subjective discretization or not.
25
2
2.6 Limitations
2 Lattice Boltzmann - state of the art The term ”relevant scales” is by itself not completely objective. Coming from the continuum theory we could argue that there is a length scale below which dissipation dominates inertial forces so that the velocity and pressure gradients are nearly constant and no eddies are formed below this scale. Velocity fluctuations below this scale can be accurately described on a statistical basis as thermal energy. The length η is called the Kolmogorov length and defines the separating length scale below which no vortices exist in the continuum theory [22–24]. It is the scale at which we need to resolve our simulation in order for the continuum theory to be valid. Fluid simulations, lattice Boltzmann or other, do not tend to be stable if the discretization length is larger than the Kolmogorov length. The Kolmogorov length is the length scale for which the Reynolds number is of order unity: ηv ≈1 (2.26) ν Where v is the flow velocity and ν is the kinematic viscosity. Flow at Reynolds numbers smaller than one are not assumed to be influenced by convection. From the microscopic point of view the separation appears to be a little bit arbitrary. The smallest vortex should be the rotation of a single molecule (and possibly it is). Let us investigate the problem of scale separation in fluidic simulation a bit further. Reη =
2.6.2 Scale separation Let us take a look at the equation of motion of a continuous fluid, the Navier Stokes equation: ∂v + v∇v = −∇p + νρ△v (2.27) ρ ∂t This equation imposes severe difficulties if we try to solve it with common numerical methods like finite differences or finite elements. The convection term v∇v could be blamed as the source of the difficulties because the nonlinearity in velocity results in a coupling of all length scales (the superposition principle does not hold). However, there is another source of significant difficulties. The velocity vector v appears directly and together with three different differential operators. These differential operators must somehow be implemented numerically. Differentiation requires knowledge of the considered quantity in a ”small” neighborhood. Numerical schemes are typically
26
designed to converge to the exact differential equation if the spacings between grid nodes and time steps go to zero. In practice they all use finite time steps and grid spacings. The smallness of the neighborhood is directly related to the sizes of the grid spacings and the time steps. With the notable exception of methods that apply global ansatz functions (spectral methods), numerical differentiation results in a loss of resolution. For any given point our knowledge of v will be more certain than that for ∇v at the same point because the later requires knowledge of neighboring points. In statistical terms we might say that differentiation requires some kind of averaging and averaging always means a loss of precision. Consider the approximation of a differential operator by a simple central difference stencil: f (x + ∆x) − f (x − ∆x) 1 ∂f (x) ≈ = ∂x 2∆x 2∆x
Z
(δ(x + ∆x) − δ(x − ∆x))f (x)dx
(2.28) Equation 2.28 is a standard central differencing stencil. It is the weighted sum of two Delta distributions and has the Fourier transform:
F
n δ(x + ∆x) − δ(x − ∆x) 2∆x
o e−iω(x+∆x) − e−iω(x−∆x) n o f (x) = ∗ F f (x) 2∆x (2.29) n o −iωx e i sin(ω∆x) = ∗ F f (x) (2.30) ∆x
where the asterisk denotes the convolution operator: Z w(k) ∗ v(k) = w(x)v(k − x)dx
(2.31)
Since
lim
∆x→0
i sin(ω∆x) = iω ∆x
(2.32)
the pre-factor becomes negligible for small grid spacings and we obtain the Fourier space differential operator. However, at length scales close to the grid spacing we have: lim
2π ω→ ∆x
i sin(ω∆x) =0 ∆x
(2.33)
27
2
2.6 Limitations
2 Lattice Boltzmann - state of the art We hence see that this stencil has a low pass characteristic which is true for almost all useful differentiation schemes since they are supposed to improve with higher resolution. This low pass characteristic means that the derivatives are valid only for length scales larger than the grid spacing. The problem is that the discretization can represent the field quantity with the accuracy of the grid spacing while the gradient of the field is known only with lesser accuracy. There are hence three length scales: The large scale on which the discretization is good, the length scale which is much shorter than the grid spacing and is invisible to the numerics, and the intermediate length scale that fits on the grid but is so short that the numerical differentiation filters it out. Now let us assume that the numerical differential operators introduce errors that can be modeled as multiplicative low pass filters in the discretization frequencies. In general, the filters have magnitude and phase but for simplicity the phase change is omitted here and we assume that the errors can be expressed as multiplicative scalar values: ∂ ∂t = A∇ (ωx )∇
∂tdiscrete = At (ωt )
(2.34)
∇discrete
(2.35)
△
discrete
= A△ (ωx )△
(2.36)
If we try to solve the Navier Stokes equation numerically, we are, in fact, solving the equation: ρ(At (ωt )∂t v + vA∇ (ωx )∇v) = −A∇ (ωx )∇p + A△ (ωx )νρ△v
(2.37)
The most severe problem here is that the low pass characteristics are different. In particular we have reason to assume for large ωx : A△ (ωxBIG ) ≪ A∇ (ωxBIG )
(2.38)
νef (ωx ) = A△ (ωx )ν
(2.39)
due to the fact that a second derivative is even more uncertain than a first derivative. We may cast A△ (ωx )ν in equation 2.37 into an effective viscosity:
The numerical differentiation has the effect of an altered viscosity at shorter scales. The low pass characteristic of the differential operator implies a reduction of the effective viscosity at high frequencies. This has profound implications on the stability of the numerics. The point is that if the grid spacing
28
is larger than the Kolmogorov length, all possible frequencies are relevant. However, for high frequencies the velocity field and its gradients become inconsistent and the numerical errors on this scale corrupt the simulation result.
2.6.3 Navier Stokes and higher order schemes The finite difference stencils we used above are not very sophisticated and we could hope that things look different if we use, for example, finite elements. Let us consider the simplified one-dimensional Navier Stokes equation as a toy example: ρ
∂u ∂u +u ∂t ∂x
=−
∂2u ∂p + ρν 2 ∂x ∂x
(2.40)
We assume that the solution for u is a square integrable function in x with at most a finite number of discontinuities in a finite domain. Then we can write u in a Tailor expansion: u = u(x, t) = u0 + u1 x + u2 x2 + u3 x3 · · ·
(2.41)
and its derivatives: ∂u ∂x ∂2u ∂x2
= u1 + 2u2 x + 3u3 x2 · · ·
(2.42)
= 2u2 + 6u3 x + 12u4 x2 · · ·
(2.43)
If we further develop ∂p/∂x in x we obtain an equation with multiple terms in xn and we can split the partial differential equation into n ordinary differential equations in time according to their power n. In principle, the series should go to infinity and we had to solve an infinite set of equations. Numerical schemes always apply finite approximations. So we can safely assume that n may be big but finite. This has the consequence that the number of coefficients in ∂u/∂x and ∂ 2 u/∂x2 are one and two less as in u, respectively. As a result the system is not closed. The equation in xn reads:
ρ
! n ∂un X ui un−i+1 (n + 1) xn = (−(n+1)pn+1 +ρν(n+1)(n+2)un+2 )xn + ∂t i=0 (2.44)
29
2
2.6 Limitations
2 Lattice Boltzmann - state of the art The equation for un depends on both un+1 and un+2 . The term un+1 can be eliminated because it is multiplied with u0 . Since the Navier Stokes equation is Galilean invariant we can choose the origin of the velocity coordinate system at will. We can as well select it to fulfill u0 = 0. However the influence of un+2 cannot be eliminated. The only thing we could do in order to eliminate un+2 was to set ν = 0. Then we obtained the Euler equation. This shows us one of the fundamental differences between the Euler and the Navier Stokes equation. The Navier Stokes equation is intrinsically unclosed for all finite approximations. In order to compute un we always need to know un+2 . Our only hope is that un gets small for n → ∞. In fact, we know when un is getting negligible: if its features are below the Kolmogorov scale. For finite n we conclude that the system is closed if the features of un+2 are below the Kolmogorov scale and that it is not closed if its features are larger than the Kolmogorov scale. The Kolmogorov scale is a particularly small scale. We can think of it as the scale that solves the Reynolds number to one [22]. That means for the Knudsen number Kn: Kn =
Ma λ = η Re |{z}
(2.45)
=1
with λ being the mean free path and η being the Kolmogorov scale. The Machnumber M a is the ratio of the fluid velocity v and the speed of sound cs : Ma =
v cs
(2.46)
The speed of sound is the root of the variance of the speed of the particles in the system. At molecular distances v ∼ cs and therefore λ ∼ η. Thus, in principle we need to resolve the molecular scale to close the system. The above problem becomes even more severe if we consider discretization schemes with finite support like finite elements. The analysis then holds for one set of compact ansatz functions at a time. (A compact ansatz function is non-zero only in a finite domain.) The point is that we loose two coefficients for each element in the domain. The accuracy to which we know the gradients and second gradients of the velocity fields are significantly lower than the accuracy to which we know the flow field itself. This is the reason why spectral elements enjoy such a popularity in computational fluid dynamics [25]. Spectral elements are particularly large elements with high order ansatz functions. However, the closure problem remains even for a global spectral discretization.
30
It should be noted that the closure problem does not show up directly in the numerical schemes. The coefficients that get lost due to differentiation do not need to be explicit degrees of freedom of the system. However, the closure problem cannot be removed by restating the problem and manifests itself in numerical instabilities if the system is not closed in an appropriate way.
2.6.4 Closing under-determined equations with entropy That the closure problem of turbulence is a basic principle of nature means that it has to be present in the lattice Boltzmann automaton, too. There it originates form the truncation of the moment expansion. The Chapman Enskog expansion allows only small deviations from the equilibrium. If we extended the expansion to infinity by adding an infinite number of speeds to each node we should, in principle, be able to close the system. However, the Chapman Enskog expansion itself does not seem to be stable for higher moments. The lattice Boltzmann automaton is unclosed even with respect to its own parameter space as can be seen from the fact that there are several ”equivalent” scattering operators. To date, the most successful method to close the system (in terms of stability) uses entropy maximizing as supplementary constraint. However, the choice of the entropy functional is, in a way, arbitrary and typically not Galilean invariant. To see this we consider the following equation: y = x1 + x2
(2.47)
Equation 2.47 is unclosed because it is only one equation for two variables x1 and x2 . We can close it by supplementing it with an entropy maximization constraint. A typical choice for the entropy functional is the additive Boltzmann entropy: S = x1 ln(x1 ) + x2 ln(x2 ) = x1 ln(x1 ) + (y − x1 ) ln(y − x1 )
(2.48) (2.49)
We want to maximize entropy: ∂S = 0 ∂x1 ln(x1 ) − ln(y − x1 ) = 0 y x1 = 2
(2.50) (2.51) (2.52)
31
2
2.6 Limitations
2 Lattice Boltzmann - state of the art The maximal entropy constraint tells us to choose x1 = y/2 and hence x2 = y/2. This seems to be reasonable. Now imagine x1 and x2 would represent velocity space occupations in orthogonal directions such like the links of a lattice Boltzmann automaton. There is no special resting velocity and the choice of the coordinate system in velocity space is arbitrary. We could as well use a transformed system with x1 = xa + a and repeat the calculation: y = xa + a + x2 S = xa ln(xa ) + (y − a − xa ) ln(y − a − xa ) ∂S = 0 ∂xa y−a xa = 2 Let us transform this to the original coordinate system:
(2.53) (2.54) (2.55) (2.56)
y+a (2.57) 2 y−a x2 = (2.58) 2 The result is not the same as for the original coordinate system! Closing the lattice Boltzmann automaton with entropic auxiliary constraints breaks Galilean invariance. Is this good or bad? The Navier Stokes equation is Galilean invariant. However, we could argue that Galilean invariance has to be broken anyway to guarantee positivity of the occupation numbers in order to obtain a stable solution. Thus the entropic ansatz might not be perfect but it has the virtue to always deliver a stable solution. Still, we should ask for the justification of auxiliary constraints like equation 2.48. Entropy has a profound physical meaning and using the word in the way we did here could imply that there was a deeper physical truth buried somewhere in the assumption. However, this is clearly not so. Equation 2.48 comes out of the blue. Its justification is that it does not contradict other constraints and that it closes the system which was otherwise underdetermined. x1 =
2.6.5 Entropy and closure By talking about entropy we should be aware that the modeled entropy in the entropic lattice Boltzmann method is actually the opposite of its physical coun-
32
terpart. Entropy is highest in the state of global equilibrium. In the physical world that would mean that the particle states were maximally randomized. The equilibrium is the state of the highest information content. For the entropic lattice Boltzmann automaton, the equilibrium is a predefined state and has the smallest information content. It is interesting to note, that the (physical) entropy is actually the reason for the instability of the lattice Boltzmann simulations. To see this, we note that the lattice Boltzmann automaton is time reversible. Equation 2.1 can be inverted to obtain the pre-collision state from the post-collision state: si =
spost − ωseq i i 1−ω
(2.59)
Streaming is trivially undone by inverting the particle directions. The possibility to run the automaton backwards has a profound implication on the amount of data stored in the cellular automaton: coded somehow into its current state, the lattice Boltzmann automaton remembers its whole history! This should be impossible and it is, of course, because round-off errors erase its memory over time. However, rounding in floating point operations is designed to retain as much information as possible. So the memory is erased as slowly as possible. We can tune the process of forgetting with the relaxation constant ω. For ω = 1 equation 2.59 has a singularity and the automaton is not reversible anymore even if we used perfect reversible arithmetic and infinite precision data types. The precision P to which we know about a previous state after t time steps is: P = |(1 − ω)t |
(2.60)
The reason for this is that the incoming state of the whole automaton is present after each collision multiplied with (1 − ω). The memory is erased gradually and it is gone completely when P drops below machine precision. Turbulent behavior is obtained at ω → 2. By stetting ω = 2 we tell the lattice Boltzmann automaton to record its whole history forever. However, we run the simulation on a finite computer with finite memory. This memory can only hold a finite amount of information. Thus, there is an upper bound for the entropy in the holographic memory of the cellular automaton. By overloading the holographic memory we destroy all it contains. The problem is not that lattice Boltzmann simulations fail to increase entropy. The problem is that if the automaton is under resolved it has not enough memory to store what it is supposed to store. This is just another way to state the closure
33
2
2.6 Limitations
2 Lattice Boltzmann - state of the art problem. The information content (entropy) in turbulent flow is too large. Any approach to simulation of turbulent flow needs to destroy entropy in one way or another. The optimal solution would retain a maximum of entropy that does not overload the computer memory.
2.7 Endnotes This chapter gave a rudimentary overview of the state of the art of the lattice Boltzmann automaton without focusing on specialties since we want to concentrate on the basic principles in this thesis. We shall see in the forthcoming chapters that there is an astonishingly width space for improvement for the basic principles of the lattice Boltzmann automaton. Especially the application of the Chapman Enskog procedure is not rigorously justified and some of its assumptions are dubious. In conjunction with the Navier Stokes equation the Champamn Enskog expansion gives no constraints for terms higher than second order in velocity. The problem is that the lattice Boltzmann stencils would support higher order terms and without additional constraints some degrees of freedom must be chosen arbitrarily. However, it is quite evident that the choice of the undetermined degrees of freedom has a strong influence on the accuracy and the stability of the model. It is clearly an unsatisfactory condition that our current understanding of the lattice Boltzmann automaton does not provide any clues on how to fix this undetermined degrees of freedom. We could even go so far as to question the validity of the Chapman Enskog expansion in general. To be considered ”good” a theory has to fulfill some constraints. It has to explain what is known, it has to provide testable implications on what is not known, and it should be simpler than other theories which explain the same things and make the same testable predictions. Seen in this light, the Chapman Enskog expansion has yet to show its status as a good theory. It can be used to derive the Euler and the Navier Stokes Equation from the Boltzmann transport equation. However, both the Euler and the Navier Stokes equation are significantly longer known to science than the Boltzmann transport equation. Hence, the Chapman Enskog expansion explains what is already known. But a good theory should also make predictions on what is not known. That is to say, we should obtain better hydrodynamic equations, if we truncated the expansion at higher orders in Mach or Knudsen number. To date, it still seems unclear whether this is the case or not. Either way, we can only benefit from other entries to the theory of lattice Boltzmann automata. In the next chapter we derive the lattice Boltzmann automaton
34
with a new method that is not related to the Chapman Enskog expansion. The new method will lead to the same results as the Chapman Enskog expansion in many aspects but it will also lead to certain differences. A prominent feature will be seen in the fact that it determines all degrees of freedom which the Chapman Enskog expansion leaves undetermined.
35
2
2.7 Endnotes
36
3
3 Minimal kinetic model Thus, the task is, not so much to see what no one has yet seen, but to think what nobody has yet though, about that which everybody sees. – Erwin Schrödinger In this chapter we derive a minimal kinetic lattice Boltzmann model from first principle.
3.1 Basic principles The purpose of the lattice Boltzmann automaton is to provide an executable mathematical model for drift and diffusion of mass and momentum of a substance with given viscosity (diffusion coefficient of momentum). The theory of lattice Boltzmann automata assumes that everything is quantified. The quant of mass is called ”particle”. A particle is allowed to carry momentum. The location of a particle in space changes in time according to its momentum: x(t + ∆t) = x(t) + πx /m∆t = x(t) + vx ∆t
(3.1)
with x(t) being the position of the particle, πx being its momentum in xdirection and m being its mass. The velocity of the particle is vx = πx /m. The momentum of the particle is quantified as to allow only certain velocities. Time t is a global monotonous increasing variable valid for all particles irrespective of their state in phase space. That is to say, time is Newtonian not relativistic. Time is quantified and increases with constant step size ∆t. The state of the system between two subsequent time steps is undefined. Space is to the best possible approximation isotropic and homogenous. There should not be a characteristic resting (v = 0) reference point. Space is quantified insofar as particles are allowed to be in specific locations only. These locations are called nodes. Nodes offer states in momentum space that can be occupied. We shall never address a specific particle directly. Instead, we describe the state of the system by the occupation of states at nodes x
37
3 Minimal kinetic model and in time t. The utilization of nodes is in conflict with the requirement that there should not be a resting reference point. This conflict cannot be completely resolved. However, its consequences can be minimized. The state of any point in space other than a node is undefined. The occupation of states is also quantified according to the nature of the data type we apply for the occupation numbers. This could be integers (constant quant) or floating point numbers (variable quant). Exact conservation of mass and momentum is guaranteed if we choose integers. Numerical data types have a final range so that a state could be ”full”. Here we assume that this range is large enough to avoid overflow in practice. Particle interactions are modeled by collisions. Collisions are processes which are instantaneous in time and depend only on local information. The outcome of a collision is hence completely determined by the knowledge of the state of the given node at the given time.
3.2 1D prototype We seek the simplest possible model for transport of mass and momentum in one dimension. Mass and momentum are conserved quantities for a given instant in time and space. A system that describes a non-trivial evolution of mass and momentum at a given point in space needs more than two state variables at every node. The minimal set of state variables for a lattice Boltzmann automaton in one dimension is hence three. Since there is no justification for assuming a special direction in momentum space, the arrangement of states must be symmetric. Three is an odd number. The only possibility to arrange an odd number of objects symmetrically in one dimension is to place one in the middle. The remaining two states are placed at equal distances from the center state in positive and in negative direction. Thus, the arguable simplest lattice Boltzmann model in one dimension looks as follows: Particles are allowed to move with velocity c, −c, and zero along a line. The state set of a lattice node has three elements and we call such a lattice D1Q3 (one dimension, three speeds). Nodes are separated on the line by distance ∆l and the cellular automaton is updated in time steps ∆t = ∆l/c. Deterministic particle motion is accounted for by the streaming step. In the streaming step, particles in velocity state c on the node with index m move to node m + 1 and occupy the state c. Particles in velocity state −c on node m move to velocity state −c on node m − 1. And particles in velocity state 0 on node m remain in velocity state 0 on node m. All particles on all nodes stream instantaneously. Parti-
38
cles arriving from neighboring nodes find empty states which can be occupied without overwriting other states. The subsequent scattering step accounts for the interaction between the particles. Due to the regularity of the cellular automaton and the choice of velocity c, grid spacing ∆l and time step ∆t, particles are always located on lattice nodes at the time of updating. Scattering happens in a singular instance in time and space but it is not local in momentum space. We impose conservative and non-conservative constraints on scattering. The conservative constraints for this model are mass conservation and momentum conservation. Further conservation laws cannot be requested for this lattice since we have only three variables and we have already fixed two invariants. Any further invariant would prohibit particle interaction. T Let us denote the momentum state vector for node m by sm = r w e with r being the number of particles in velocity state 0, w (as in west) the particles in velocity state −c, and e (as in east) the particles in velocity state c, respectively. The conservation constraints determine two collision invariants: ρ = µ0 = r + e + w
(3.2)
v = µ1 = (e − w)/rho
(3.3)
s ← s + kK
(3.4)
The two invariants are also the first two moments of the distribution function µ0 = ρ and µ1 = v. Due to the invariants, there is only one degree of freedom in the scattering process:
We denote by K the elementary collision which is orthogonal to the conserved quantities: 1 K= −2 (3.5) 1
The degree of freedom k is determined by non-conservative constraints which can be further split into two categories: equilibrium constraints and rate constraints.
3.2.1 Equilibrium The first category are those constraints that determine the attractor or ”equilibrium”. Scattering is supposed to be a dissipative effect. That is to say, the
39
3
3.2 1D prototype
3 Minimal kinetic model memory of pre-collision state is erased and the state vector evolves into the direction of the statistically most likely distribution of particles in momentum space. First we have to be aware that the lattice gas ansatz is physically wrong insofar as it restricts the particles to move on a fixed lattice. If arbitrary speeds were allowed it would not be justified to assume that the variance of the particle velocities could depend on the average speed of the particles v. The variance of the momentum distribution function should hence be independent of velocity. Physically, the variance of the momentum distribution is the square of the speed of sound:
c2s = µ2 − µ21
(3.6)
Where µ2 = (w + e)ρ−1 is the second statistical moment of the particle distribution function in momentum space on node m. Further constraints arise from symmetry considerations. We cannot justify the existence of a preferred direction in space. The equilibrium distribution function must hence be symmetric with respect to the mean of the distribution (since the mean is the only special point in the distribution). In statistical terms that means, that all odd order (unsymmetric) central moments must be zero. For the given velocity set we have only one remaining parameter (cs ) which has to be chosen independent of velocity. So we weaken the symmetry constraint and require only that the third order central moment κ3 (or skewness) of the momentum distribution should be small.
κ3 = µ3 − 3µ1 µ2 + 2µ31 2
= µ1 c −
3µ1 c2s
−
µ31
(3.7) (3.8)
Note that the statistical raw moments µ1 and µ3 are aliases of each other for this specific lattice. In fact all odd raw moments are aliases of each other and all even raw moments are aliases of each other on this lattice (µ1+n c2m = µ1+n+2m ∀n, m ∈ Z+ ). It is not possible to eliminate skewness exactly due to the µ31 = v 3 term. However, the linear term vanishes if c2s = c2 /3. In the reminder of this thesis we shall assume c = 1, ∆t = 1, and ∆l = 1 for simplicity.
40
3.2 1D prototype
The scattering rate is, in essence, a material parameter and it should be left adjustable. Let us denote the scattering rate by ω and let keq be defined as the k that drives the scattering into equilibrium: keq K = seq − s
(3.9)
We have no justification for assuming a specific metric for the distance from equilibrium. This means we have to choose a scale invariant evolution law for scattering. The only scale invariant measure for the derivation from equilibrium is the distance from the is-state to the equilibrium-state and the speed of relaxation can only depend on this distance1 . That is to say, scale invariant decay must be exponential decay with a constant decay parameter ω: s ← s + ωkeq K
(3.10)
The relaxation constant ω allows us to scatter an arbitrary fraction of the particles on the node. It is convenient to express the scattering rate as the mean time between two scattering events (τ ). For this we define the function ˜ as the fraction of particles which have not been scattered at time t: φ(t) ˜ = (1 − ω)⌊t/∆t⌋ φ(t)
(3.11)
˜ is constant. Scattering happens at discrete time steps ∆t between which φ(t) ˜ has to be In order to obtain a distribution to derive statistical moments, φ(t) normalized: ˜ φ(t) = φ(t)/
Z
0
∞
˜ φ(x)dx
(3.12)
The integral can be simplified: 1
There are absolute parameters in the physical world, such as the size of the molecules, which might cause this assumption to be invalid.
41
3
3.2.2 Scattering rate
3 Minimal kinetic model
Z
∞
˜ φ(x)dx =
0
=
∞ Z X
n∆t
˜ φ(x)dx
n=1 (n−1)∆t ∞ X n−1
(3.13) (3.14)
(1 − ω)
n=1
1 ω
(3.15)
φ(t) = (1 − ω)⌊t/∆t⌋ ω
(3.16)
= Hence, the distribution reads:
The mean or expected value τ is obtained by integrating over φ(t)t:
τ= = =
Z
∞
n=1 (n−1)∆t ∞ 2 X t
n=1
=
∞ X
n=1
= ∆t
(3.17)
φ(t)tdt
0 ∞ Z n∆t X
2
(1 − ω)n−1 ωtdt
(1 − ω)
∆t n −
n−1
1 1 − ω 2
1 2
ω|n∆t (n−1)∆t
−
(1 − ω)n−1 ω
(3.18) Z
n∆t
t2 ∂ dt (1 − ω)n−1 ω (n−1)∆t |∂t {z } 2
(3.19)
=0
(3.20) (3.21)
Thus we have a simple exact relationship between the scattering or relaxation constant ω and the mean free time between two scattering events. Note that the relationship is surjective. That is to say, we can obtain arbitrary mean free times τ by manipulating ω. There might not be much physical sense in choosing negative times. Interesting is that we can obtain mean free times which are arbitrarily shorter than the time step ∆t. In fact, this is the only reason why lattice Boltzmann automata represent tractable models for fluid flow in the first place. Lattice Boltzmann automata had little advantage over molecular dynamics if we had to choose the time step of the order of τ .
42
3.3 Generalization to more than one dimension
In the last section we developed a minimal lattice Boltzmann automaton in one dimension. It is not very useful since nearly all fluidic problems of practical interest are at least two-dimensional. But we can use the one-dimensional lattice Boltzmann automaton as a primitive from which we are able to construct lattice Boltzmann automata of arbitrary dimensionality. We assume space to be isotropic. That is to say, there is no special direction. For example, the distribution of states in the north-south-direction must be the same as the distribution of states in east-west direction. Since we allow states with velocity −c, 0, and c in east-west-direction (hereafter x-direction) we also must allow states with velocities −c, 0 and c in north-south-direction (hereafter y-direction). In addition to the isotropy assumption we apply the Galilean invariance assumption stating that there is no special velocity. If there is no special velocity, then the distribution of states in x-direction has to be independent of the particle’s state in y-direction. This can obviously only be the case if there is an one-dimensional lattice Boltzmann automaton in x-direction attached to each state of the one-dimensional lattice Boltzmann automaton in y-direction. This results in a two-dimensional lattice Boltzmann automaton with all 9 combinations of −c, 0, and c in the x- and in the y-direction. This can be extended to three dimensions by using an one-dimensional lattice Boltzmann automata in z-direction and adding two-dimensional lattice Boltzmann automata to each state in z-direction. Combining the states −c, 0, and c in three dimensions results in 27 discrete states. We could proceed ad infinitum by adding higher dimensional lattice Boltzmann automata to each state of an one-dimensional lattice Boltzmann automaton. There is no obvious reason to go beyond the third dimension. However, more than three dimensions could be useful for fake internal degrees of freedom. For example, had we used an energy conserving one-dimensional lattice Boltzmann automataton and had we applied the same inductive process to extend it to higher dimensions then we could easily model internal molecular degrees of freedom by adding a dimension with the thickness of a single node and periodic boundary conditions. (There are certainly more efficient methods for modeling internal degrees of freedom, but adding dimensions could be a starting point to derive and justify these methods.) The elementary collisions are not so easily transfered from one dimension to an arbitrary number of dimensions. The reason is that there are d + 1 conserved quantities (mass and d-momenta) but 3d momentum states on a ddimensional lattice. Hence we have 3d − d − 1 elementary collisions or degrees
43
3
3.3 Generalization to more than one dimension
3 Minimal kinetic model of freedom. There is always an arbitrary number of possible bases for any multi-dimensional state space. However, the choice for the basis collisions is not at all arbitrary from the physical point of view since we have to determine 3d − d − 1 relaxation constants corresponding to the same number of transport phenomena. It is not reasonable to assume that all transport phenomena evolve on the same time scale (that all elementary collisions have the same frequency). Hence we have to determine a set of elementary collisions that distinguishes between different physical phenomena. In order to derive this basis set from first principle we assume that each elementary collision represents a proper physical law. Criteria for proper physical laws are dimensional consistency, homogeny, and rotational invariance.
3.4 Admissible operations The minimal one-dimensional model had only one degree of freedom or elementary collision. The collision vector K was determined up to a constant factor. Higher dimensional lattice Boltzmann automata have more degrees of freedom and an infinite choice of possible collision vectors. If Ki are legal collision vectors we can build arbitrary new vectors: ´ = K
X
αi Ki
(3.22)
i
with arbitrary αi . However, it turns out that we cannot use just any set of collision vectors. To understand this we have to develop a theory for admissible operations.
3.4.1 The generic collision Let us assume that the change in an arbitrary scalar state variable q due to collision is given as: ∆q = −ωP
(3.23)
where ω is an arbitrary constant and P is an potential defined as the deviation of q from its equilibrium. P = q − qe
44
(3.24)
3.4 Admissible operations
C [q] = q − ω(q − qe )
(3.25)
Equation 3.25 is the generic collision operation valid for the evolution of all considered quantities q. We have not yet determined what q looks like. In what follows we obtain constraints on q so that 3.25 is a proper collision. By that we understand a collision that is invariant under certain transformations, most notably translation and rotation. But first we need to develop some theory.
3.4.2 The generic commutative operator Let A [ · ] be a generic operator which commutes withe the collision operator: A [C [ · ]] = C [A [ · ]]
(3.26)
The collision is invariant under A [ · ] and must fulfill: A [C [q]] = A [q] − ω(A [q] − A [qe ])
A [q − ω(q − qe )] = A [q] − ω(A [q] − A [qe ])
(3.27) (3.28)
3.4.3 Invariance under translation Let A = T be a translation of the velocity coordinate system by an arbitrary vector x. Proper collisions must be independent of the coordinate system we are using and must hence be invariant under translation. Thus we have:
T [C [q]] = T [q] − ω(T [q] − T [qe ])
T [q − ω(q − qe )] = T [q] − ω(T [q] − T [qe ])
(3.29) (3.30)
The translation vector x is arbitrary but constant. So we can write:
T [q] = q + g(x)
T [C [q]] = C [q] + gc (x) T [qe ] = qe + ge (x)
(3.31) (3.32) (3.33)
45
3
Equation 3.23 is imposed on q by a collision operator C [ · ]:
3 Minimal kinetic model A translation by the zero vector is the identity vector and the additional terms must vanish in this case: g(0) = gc (0) = ge (0) = 0
(3.34)
C [q] + gc (x) = q + g(x) − ω(q + g(x) − qe − ge (x))
(3.35)
Together we have:
Since equation 3.25 must still be true we can subtract it. That leaves us with: gc (x) = g(x) − ω(g(x) − ge (x))
(3.36)
Sine equation 3.36 has to be true for any ω it must also be true for a specific ω. For ω = 1 equation 3.36 is true only if gc (x) = ge (x). Hence we have for arbitrary ω: gc (x) − g(x) = ω(gc (x) − g(x))
(3.37)
which is true only if gc (x) = g(x). Putting the pieces together we see that for the collision to be admissible it has to fulfill the following transformation constraint for any translation vector x:
T [q] = q + g(x)
(3.38)
T [qe ] = qe + g(x)
(3.40)
T [C [q]] = C [q] + g(x)
(3.39)
3.4.4 Invariance under rotation Let A = R be an arbitrary but constant rotation of the coordinate system. A proper collision is invariant under rotation:
R [C [q]] = R [q] − ω(R [q] − R [qe ])
R [q − ω(q − qe )] = R [q] − ω(R [q] − R [qe ])
(3.41) (3.42)
Since the quantity q might have directional properties (it could be a component of the velocity vector in a specific direction, for example), it is now given as a weighted sum of other quantities:
46
3.4 Admissible operations
R [C [q]] = wi C [qi ] R [qe ] = wi qei
(3.43) (3.44) (3.45)
We assume summation over index i. The wi are constant weights depending only on the rotation. Together we get: wi C [qi ] = wi qi − ω(wi qi − wi qei )
(3.46)
Since this has to be true for any combination of weights it has to be true for a single weight. So we have for arbitrary i: C [qi ] = qi − ω(qi − qei )
(3.47)
This looks very similar to the original equation 3.25. However, the relaxation constant ω is not arbitrary anymore. The lesson to be learned here is if a quantity qi can be transformed to another quantity q by rotation both quantities must evolve by the same law and must hence share the same relaxation constant ω.
3.4.5 Invariance under collisions Our last constraint deals with invariance of q under an unrelated collision. By an unrelated collision we understand a collision that acts on another observable quantity q⋆ . If we assume that q evolves due to a single collision we have to make sure that other collisions do not effect q. Let A = C⋆ be a collision operator which is unrelated to the evolution of q. Again we have: C⋆ [C [q]] = C⋆ [q] − ω(C⋆ [q] − C⋆ [qe ])
C⋆ [q − ω(q − qe )] = C⋆ [q] − ω(C⋆ [q] − C⋆ [qe ])
(3.48) (3.49)
By definition we have: C⋆ [C [q]] = C [q]
(3.50)
C⋆ [q] = q + E
(3.51)
However, in general there could be an error E due to the collision:
47
3
R [q] = wi qi
3 Minimal kinetic model For the equilibrium state we make the following ansatz: C⋆ [qe ] = qe + C
(3.52)
C [q] = q + E − ω(q + E − qe − C)
(3.53)
Together we have:
Since equation 3.25 is still valid we can subtract it to see: C = E − E/ω
(3.54)
C⋆ [C [q]] = C [q] = C⋆ [q] − ω(q − qe + E/ω)
(3.55)
Hence we have:
The lesson learned here is that if a collision C⋆ which is unrelated to the evolution equation for q adds an error E to q the error can be eliminated by adding −E/ω to the equilibrium term qe .
3.5 Elementary collisions in two dimensions We apply the theory of the last section to derive concrete collision vectors for the two-dimensional lattice Boltzmann automaton. Let the momentum state of a node be determined by the vector s: s=
r nw w sw s se e ne n
T
(3.56)
Here r denotes the occupation of the resting link while the other links are named after the cardinal direction they are pointing at counterclockwise from northwest to north. There are three conserved quantities for this lattice: The zeroth order and the two first order moments.
3.5.1 Moments Let us have a closer look at the definition of moments. We define the function f˜(x, y) as: f˜(x, y) = rδ(x)δ(y) + nwδ(x + c)δ(y − c) + wδ(x + c)δ(y)
(3.57)
+swδ(x + c)δ(y + c) + sδ(x)δ(y + c) + seδ(x − c)δ(y + c) +eδ(x − c)δ(y) + neδ(x − c)δ(y − c) + nδ(x)δ(y − c)
48
With δ being the Dirac Delta distribution. The zeroth order moment µ0 is defined to be the inegral over f˜(x, y) Z ∞Z ∞ µ0 = f˜(x, y)dxdy (3.58) −∞
−∞
In order to obtain a distribution we normalize f˜(x, y) to have integral unity: f (x, y) = f˜(x, y)/µ0 other moments are defined as: Z ∞Z µx m y n = −∞
∞
(3.59)
xm y n f (x, y)dxdy
(3.60)
−∞
The zeroth order moment can be interpreted as the mass and the first order moments µx and µy are the two components of the velocity vector: µ0 = ρ
(3.61)
µx = vx
(3.62)
µy = vy
(3.63)
Other physical quantities can also be expressed in terms of moments. We are particularly interested in the behavior of moments under translation and rotation. Translation means that we add an offset to x and y. Z ∞Z ∞ µ ˜ xm y n = (x + x0 )m (y + y0 )n f (x, y)dxdy (3.64) −∞
−∞
We can apply the binominal theorem to split the transformed moments into parts that depend on x0 and y0 and in a part that does not depend on them: n m X m!xm−i xi0 X n!y n−j y0j (3.65) i!(m − i)! j!(n − j)! j=0 i=0 ! m n j m−i i n−j X X m!x x0 n y0 n!y = xm + y + (3.66) i!(m − i)! j!(n − j)!
(x + x0 )m (y + y0 )n =
i=1
j=1
For the sake of clearness we write:
49
3
3.5 Elementary collisions in two dimensions
3 Minimal kinetic model
gx (x0 , m) =
m X m!xm−i xi
0
i=1
i!(m − i)!
n X n!y n−j y0j gy (y0 , n) = j!(n − j)!
(3.67) (3.68)
j=1
With this we have:
(x + x0 )m (y + y0 )n = xm y n + xm gy (y0 , n) + y n gx (x0 , m) + gx (x0 , m)gy (y0 , n) (3.69) Note that gx (0, m) = gy (0, n) = 0. Now we can rewrite the transformed moments (we drop the integration limits):
µ ˜ xm y n =
Z Z
Z Z
= Z Z
(xm + gx (x0 , m))(y n + gy (y0 , n))f (x, y)dxdy
(3.70)
xm y n f (x, y)dxdy+
(3.71)
(xm gy (y0 , n) + y n gx (x0 , m) + gx (x0 , m)gy (y0 , n))f (x, y)dxdy
= µxm yn + g(x0 , y0 , m, n)
(3.72)
Note again that g(0, 0, m, n) = 0. In conclusion we see that the moments comply with the translational invariance constraint developed in the last section. The function g(x0 , y0 , m, n) has some interesting properties. It is a multi-linear function in moments of order lower than the order of µxm yn . By order we denote the sum of all exponents. So µxm yn has order m + n and all moments appearing in g(x0 , y0 , m, n) have lower order. Hence, an arbitrary weighted sum of moments of the same order also comply with the translational invariance constraint and we need a further constraint to determine which is admissible and which is not. In what follows we will use rotational invariance for that. We stick to the two-dimensional case for clearness. However, the methodology is general enough for any number of dimensions. Let us introduce a new rotated orthonormal coordinate system with coordinates ξ and ζ. The relation to the original coordinate system is given as:
50
ξ = xξ x + y ξ y
(3.73)
ζ = xζ x + y ζ y
(3.74)
Orthonormality implies: x2ξ + yξ2 = 1
(3.75)
x2ζ + yζ2 x2ξ + x2ζ yξ2 + yζ2
= 1
(3.76)
= 1
(3.77)
= 1
(3.78)
xξ xζ + y ξ y ζ
= 0
(3.79)
xξ yξ + xζ yζ
= 0
(3.80)
So the moments in the new coordinate system are: Z Z (xξ x + yξ y)m (xζ x + yζ y)n f (x, y)dxdy µξ m ζ n =
(3.81)
Hence, the moment µξ m ζ n is seen to be a sum of moments in x and y of the same order (m + n). This also complies with the translational invariance condition.
3.5.2 Collision vectors In the following we apply the theory of translational and rotational invariant evolution of moments to derive admissible degrees of freedom for the two dimensional lattice Boltzmann automaton. We start by identifying collision constraints imposed by conserved quantities. For each normalized moment there is a vector M⋆ with the property: (3.82)
ρµ⋆ = s · M⋆
For the conserved quantities they read: Mρ = Mx = My =
1 1 1 1 1 1 1 1 1
T
0 −1 −1 −1 0 1 1 1 0 0 1 0 −1 −1 −1 0 1 1
(3.83) T
T
(3.84) (3.85)
51
3
3.5 Elementary collisions in two dimensions
3 Minimal kinetic model Admissible collision vectors are orthogonal to Mρ , Mx , and My . For second order moments we check the rotational constraint:
µξζ
Z Z
=
(3.86)
(xξ x + yξ )(xζ x + yζ y)f (x, y)dxdy
(3.87)
= xξ xζ (µxx − µyy ) + µxy (xξ yζ + xζ yξ )
According to the theory on rotational invariance, the quantities µxy and µxx − µyy must follow the same evolution equation since they can be transformed into each other by rotation. The trace of the second order moments is isotropic as can be verified by direct computation:
µξξ + µζζ
=
Z Z
((xξ x + yξ )2 + (xζ x + yζ y)2 )f (x, y)dxdy
(3.88)
= µxx (x2ξ + x2ζ ) +µyy (yξ2 + yζ2 ) +2µxy (xξ yξ + xζ yζ ) (3.89) | {z } | {z } | {z } =1
=0
=1
Thus, we have identified three quantities for second order moments of which two must follow the same evolution equation. The following collision vectors are linearly independent of the vectors corresponding to all lower order moment and they are linearly independent of each other: Kxy = Kxx−yy = Kxx+yy =
0 1 0 −1 0 1 0 −1 0 0 0 1 0 −1 0 1 0 −1
T
(3.90)
T
(3.91)
−4 2 −1 2 −1 2 −1 2 −1
T
(3.92)
There are only two independent moments of order 3 and symmetry constraints them to follow the same evolution equation. So we chose for the third order collision vectors: Kxxy = Kxyy =
0 −1 0 1 −2 1 0 −1 2 0 1 −2 1 0 −1 2 −1 0
T
(3.93)
T
(3.94)
(3.95)
Only one degree of freedom is left for the fourth order moment µxxyy : Kxxyy =
52
4 1 −2 1 −2 1 −2 1 −2
3.5 Elementary collisions in two dimensions
K=
Mρ Mx My Kxx+yy Kxx−yy Kxy Kxxy Kxyy Kxxyy (3.96)
K=
1 0 0 −4 0 0 0 0 4 1 −1 1 2 0 1 −1 1 1 1 −1 0 −1 1 0 0 −2 −2 1 −1 −1 2 0 −1 1 1 1 1 0 −1 −1 −1 0 −2 0 −2 1 1 −1 2 0 1 1 −1 1 1 1 0 −1 1 0 0 2 −2 1 1 1 2 0 −1 −1 −1 1 1 0 1 −1 −1 0 2 0 −2
(3.97)
A visual representation of the elementary collisions is given in figure 3.1.
3.5.3 Equilibria The generic evolution equation requires an equilibrium value qe for each quantity q. We already saw the equilibrium for the single variable in the one dimensional case. 2 2 µeq 2 = cs + µ1
(3.98)
The same must be true in any directions:
2 2 µeq xx = cs + µx
(3.99)
µ2y
(3.100)
µeq yy
=
c2s
+
In addition there are mixed moments. The momentum subspace is supposed to be homogenous. The equilibrium velocity distribution function in x-direction is independent of the velocity in y-direction. Hence, the velocity in x- and in y-direction are two independent random variables and their probability distributions must factor:
53
3
Further moments cannot be accounted for. The final scattering matrix is:
3 Minimal kinetic model
Figure 3.1: The six elementary collisions of the D2Q9 cascaded lattice Boltzmann automaton. From top left to bottom right: Kxx+yy , Kxx−yy , Kxy , Kxxy , Kxyy , and Kxxyy . The volume of the spheres indicate the amount of particles added or withdrawn.
54
µeq xm y n
=
Z Z
xm y n f eq (x, y)dxdy
(3.101)
Z Z
xm y n fxeq (x)fyeq (y)dxdy Z Z n eq m eq y fy (y)dy x fx (x)dx =
=
eq = µeq x m µy n
(3.102) (3.103) (3.104)
Equilibria for conserved quantities are the quantities themselves. All nine equilibria are:
µeq = ρ 0
µeq xx eq µxx
µeq x µeq y eq + µyy − µeq yy eq µxy µeq xxy µeq xyy µeq xxyy
(3.105) (3.106)
= vx
(3.107)
= vy = =
2c2s + vx2 vx2 − vy2
+
vy2
(3.108) (3.109) (3.110)
= vx vy = = =
(c2s (c2s (c2s
+ + +
vx2 )vy vy2 )vx vx2 )(c2s
(3.111) (3.112) +
vy2 )
(3.113)
The equilibria depend non-linearly on the fluid velocity which is measured relative to an arbitrary origin in momentum subspace. These equilibria are not independent of the coordinate system. This adds to the problem that there exists an influence of low order moments on high order moments depending on the coordinate system. We could eliminate this influence only for a special coordinate system, not for any coordinate system. Apparently, we need to choose a special coordinate system. The equilibria are independent of velocity only if we choose x0 = −µx and y0 = −µy . The corresponding moments are called central moments (denoted by κ) because the coordinate system coincides with the mean of the distribution. The equilibria for central moments are:
55
3
3.5 Elementary collisions in two dimensions
3 Minimal kinetic model
κeq = ρ 0
κeq xx κeq xx
κeq x eq κy + κeq yy − κeq yy κeq xy eq κxxy κeq xyy eq κxxyy
(3.114)
= 0
(3.115)
= 0
(3.116)
=
2c2s
(3.117)
= 0
(3.118)
= 0
(3.119)
= 0
(3.120)
= 0
(3.121)
=
c4s
(3.122)
With the usage of central moments we introduce an apparent contradiction to the requirement that all operations must be independent of the choice of the coordinate system. However, we are forced to choose a special origin for the coordinate system. The apparent contradiction is resolved by realizing that the mean of the momentum distribution function is the only possible choice for an origin. For example, zero velocity relative to the resting lattice is an arbitrary choice for an origin, at least from the physical point of view. Choosing the center of mass (mean) of the colliding particles is not an arbitrary choice. In fact, the mean is the only characteristic point of the system. Independence of the coordinate system is formally obtained as follows: The mean is determined from an arbitrary coordinate system. The coordinate system is then moved to the mean where the collisions are performed. The mean can be found from any coordinate system and is always the same point. Evolution equations which include a transformation to a characteristic coordinate system are independent of the original coordinate system and are therefore admissible physical laws with respect to translational invariance. We could further argue that choosing any other point than the mean as an origin would corrupt isotropy because any other point would be in a certain direction from the mean. However, there is no special direction in space and the only point which is not in any special direction from the only characteristic point of the collision is the characteristic point itself.
3.6 The collision cascade In this section the actual algorithm for the collision is derived.
56
We saw that the quantities for which we need to write evolution equations are moments or sums of moments of the velocity distribution function. In an arbitrary coordinate system, moments of order m do not depend on moments of order larger than m. However, moments of order m depend on moments of order smaller than m as a function of the origin of the coordinate system. We had to chose a special coordinate system with the mean as an origin because this is the only admissible choice. The single node collision operation might be written as:
with k=
(3.123)
s ← s + K·k
kρ kx ky kxx+yy kxx−yy kxy kxxy kxyy kxxyy
T
(3.124)
The evolution of low order moments effects higher order moments while the evolution of high order moments does not effect low order moments. To compensate for this crosstalk it is hence natural to perform the collisions in a structured fashion, order by order. The mass and velocity moments are conserved quantities and require no evolution equation unless external forcing like gravity is introduced. kρ = 0
(3.125)
kx = 0
(3.126)
ky = 0
(3.127)
In order to derive the evolution equations we compute the central moments of the post collision distribution function. The integral simplifies to a sum due to the discreteness of the lattice: κpost xm y n =
X i
(si + (K · k)i )(cix − vx )m (ciy − vy )n /ρ
(3.128)
Here cix and ciy are the velocity components of particles on link i in xand y-direction respectively. By setting the resulting central moments equal to their equilibria we can derive equations for k. However, this is not as straightforward as solving a set of equations. Instead we regard the moments post order by order. We start with the second order moments and solve κeq xx = κxx eq eq post and κeq yy = κyy for kxx+yy and kxx−yy :
57
3
3.6 The collision cascade
3 Minimal kinetic model
eq kxx+yy = (ρ(vx2 + vy2 ) − e − n − s − w
(3.129)
eq kxx−yy
(3.130)
−2(se + sw + ne + nw − ρ/3))/12
= (n + s − e − w + ρ(vx2 − vy2 ))/4
These are the values to drive the corresponding central moments into equilibrium. The distance from the incoming state to equilibrium represents the potential that has to be multiplied with a relaxation parameter ω⋆ . In addition, an optional truncation operation ⌊ · ⌋ is introduced that allows us to perform the collision in integer space and thereby avoiding round-off errors in the conserved quantities: kxx+yy = ⌊ωxx+yy (ρ(vx2 + vy2 ) − e − n − s − w
(3.131)
kxx−yy = ⌊ωxx−yy (n + s − e − w + ρ(vx2 − vy2 ))/4⌋
(3.132)
−2(se + sw + ne + nw − ρ/3))/12⌋
Similarly we solve: post κeq xy = κxy =
X i
(si + (K · k)i )(cix − vx )(ciy − vy )/ρ
(3.133)
Adding a relaxation constant and the truncation operation yields: kxy = ⌊ωxy ((ne + sw − nw − se) − vx vy ρ)/4⌋
(3.134)
The next central moments are third order moments and they are not independent of the lower order central moments. That is to say the k⋆ which post were already fixed appear in the equations to come. From κeq xxy = κxxy and eq post κxyy = κxyy we obtain: eq = (−((se + sw − ne − nw − 2vx2 vy ρ + vy (ρ − n − s − r))/4 kxxy
(3.135)
eq kxyy
(3.136)
+vx /2(ne − nw − se + sw))) − vy /2(−3kxx+yy − kxx−yy ) − 2vx kxy
= (−((sw + nw − se − ne − 2vy2 vx ρ + vx (ρ − w − e − r))/4
+vy /2(ne + sw − se − nw))) − vx /2(−3kxx+yy + kxx−yy ) − 2vy kxy
As shown by equation 3.55 the terms introduced by unrelated collisions must not be multiplied with the relaxation constant:
58
kxxy = ⌊ωxxy (−((se + sw − ne − nw − 2vx2 vy ρ + vy (ρ − n − s − r))/4 (3.137) + vx /2(ne − nw − se + sw))) − vy /2(−3kxx+yy − kxx−yy ) − 2vx kxy ⌋
kxyy = ⌊ωxyy (−((sw + nw − se − ne − 2vy2 vx ρ + vx (ρ − w − e − r))/4 (3.138) + vy /2(ne + sw − se − nw))) − vx /2(−3kxx+yy + kxx−yy ) − 2vy kxy ⌋
post By the same argument we obtain from κeq xxyy = κxxyy :
kxxyy = ⌊ωxxyy (1/4(ρ/9 − ne − nw − se − sw
(3.139)
+ 2(vx (ne − nw + se − sw) + vy (ne + nw − se − sw)) + 4vx vy (nw − ne + se − sw)
− vx2 (n + ne + nw + s + se + sw)
+ vy2 (3vx2 ρ − e − ne − nw − se − sw − w))) − 2kxx+yy − 2vx kxyy − 2vy kxxy + 4vx vy kxy
− (3/2kxx+yy − kxx−yy /2)(vx2 + vy2 )⌋
The post collisions state is then obtained from equation 3.123, or explicitly: r ← r + 4(−kxx+yy + kxxyy )
nw ← nw + 2kxx+yy + kxxyy + kxy − kxxy + kxyy w ← w − kxx+yy − 2kxxyy + kxx−yy − 2kxyy
sw ← sw + 2kxx+yy + kxxyy − kxy + kxxy + kxyy s ← s − kxx+yy − 2kxxyy − kxx−yy − 2kxxy
se ← se + 2kxx+yy + kxxyy + kxy + kxxy − kxyy e ← e − kxx+yy − 2kxxyy + kxx−yy + 2kxyy
ne ← ne + 2kxx+yy + kxxyy − kxy − kxxy − kxyy n ← n − kxx+yy − 2kxxyy − kxx−yy + 2kxxy
(3.140) (3.141) (3.142) (3.143) (3.144) (3.145) (3.146) (3.147) (3.148)
3.7 Endnotes The cascaded lattice Boltzmann automaton in two-dimensions was derived from first principles in this chapter. The derivation of the three-dimensional
59
3
3.7 Endnotes
3 Minimal kinetic model cascaded lattice Boltzmann automaton is conceptually identical to what is shown here but not as concise due to the requirement of 27 links and 25 elementary collisions plus equilibria. The results are presented in an appendix. In this chapter we deliberately avoided the usage of the Navier Stokes equation, the Boltzmann transport equation, and concepts like entropy. The result of the presented methodology is not only a new kind of lattice Boltzmann automaton with improved stability and accuracy properties but also the knowledge that the cascaded lattice Boltzmann automaton represents a model for hydrodynamic fluid flow in its own right. No step in the derivation of the cascaded lattice Boltzmann automaton requires the Navier Stokes equation as an justification. The cascaded lattice Boltzmann automaton can hence be seen as a completely independent model which is supposed to be equivalent to the Navier Stokes equation by virtue of describing the same phenomena. The qualitative difference from a cellular automaton that was derived in order to solve a specific equation is that each discrepancy between the cellular automaton and the modeled equations has to be considered an error of the automaton in the later case. If an equation and a cellular automaton describe the same phenomenon by different means and do not depend on each other, the discrepancies between their results could be an error of the equation as well as one of the cellular automaton. The tenet that a discretized model is necessarily inferior to the differential equation does not hold in this case. We introduced optional truncation operations for the k⋆ in order to perform the scattering with integers and thereby guarantee exact conservation of the chosen invariants. From the theoretical point of view, this is an important property of the cascade lattice Boltzmann automaton. It might, however, not be very useful for its actual application due to the simple fact that common hardware and compilers are designed for high performance floating point computation. A floating point implementation of the cascaded lattice Boltzmann automaton can perform superior to the pure integer version shown here. Hence it is stressed that the truncation is optional. Finally, it has to be mentioned that the usage of higher than second order terms in velocity for the equilibria provoked several objections from specialists in the field. It has been argued [26] that the given lattice is insufficient for a complete cancelation of third order errors. That is true but it concerns only longitudinal terms of third order. The result is that the cascaded lattice Boltzmann automaton with the D2Q9 lattice is not stable for small bulk viscosities. That is to say, the cascaded lattice Boltzmann model derived here should not be applied to simulate flow with shocks or strong acoustical components. Others [27, 28] argued that the polynomial expansion of the Maxwell-Boltzmann
60
distribution to higher than third order in Mach number results in unstable equilibria which are not mass and momentum conserving. That might be true but it does not apply to the model presented here since we did not derive the higher order terms from the Maxwell-Boltzmann distribution but by multiplication of one dimensional equilibria of second order. The difference is subtle but crucial. A polynomial expansion would typically include all terms of a given order. The fourth order terms for the D2Q9 lattice would include terms in vx4 , vx3 vy , vx2 vy2 , vx vy3 , and vy4 . However, the only term of fourth order which appears in the equilibrium above is the one coming from the multiplication of the two one-dimensional equilibria of second order: vx2 vy2 . It is true that no stable equilibrium could be derived if other terms of fourth order were included. But we were never tempted to include other terms. The method described here led us naturally to the correct solution. In general, we can say that the equilibrium function must be a polynomial with the same number of coefficients in velocity as the number of velocity states per node. The reason is the following: The momentum state is given at discrete points in momentum space. A DdQq lattice has q states per node. Let us assume that there was a better equilibrium function than a polynomial with q coefficients. We could then find a polynomial with q coefficients which was identical to the better equilibrium function at the q relevant points. For the purpose of the algorithm, the polynomial would be identical to the better equilibrium function. There is hence no point in using equilibrium functions other the polynomials with q coefficients in velocity. Note that this does not constraint the coefficients to be constants.
61
3
3.7 Endnotes
62
4
4 Properties of the cascaded lattice Boltzmann automaton Turbulence is the most important unsolved problem of classical physics. –Richard Feynman In this chapter we investigate the numerical properties of the cascaded lattice Boltzmann automaton and compare them to the SRT model. We study numerical viscosity and aliasing theoretically and numerically.
4.1 Basic differences to other lattice Boltzmann models The lattice Boltzmann automaton derived in the last chapter shares the basic properties with the original lattice Boltzmann automaton. For the 2D case we obtained the D2Q9 lattice which is also used for SRT, MRT and entropic lattice Boltzmann automata. However, our more stringent definition of Galilean invariance forbids to use lattices with inhomogeneous velocity state distributions such as the D2Q6, D2Q7, D3Q13, D3Q15, and D3Q19 lattices. An homogeneous state distribution in velocity space implies that we always need q D speeds where D is the number of dimensions and q is the number of distinguishable states in a single dimension. The cascade version of the D2Q9 lattice Boltzmann automaton has the same speed of sound and the same resting equilibrium distribution as the SRT and MRT versions. However, that is only true if the fluid is at rest. The principle difference of the derivation of the lattice Boltzmann automaton with the Chapman Enskog expansion and the with central moments method (as shown in this thesis) is that the Chapman Enskog expansion assumes small deviations from equilibrium whereas the central moments method does not relay on this assumption directly. The closure problem can be formulated in a multitude of ways. By assuming small deviations from the equilibrium (the Navier Stokes picture) we obtain a closure problem in terms of resolution. That is to say, the resolution of
63
4 Properties of the cascaded lattice Boltzmann automaton the grid has to be so high that each grid point is in near equilibrium with its neighboring grid points. We need to resolve the Kolmogorov scale. The central moments approach reformulates the problem. We do not assume closeness to a local equilibrium and do not relay on the same assumptions (and limitations) as the Navier Stokes equation. However, using Galilean invariance directly results in an infinite number of constraints. That is just another kind of closure problem, although one that does not require to resolve the Kolomgorov scale. But did we win anything after all? In essence, we need to solve the closure problem by some kind of truncation. The Navier Stokes / Chapman Enskog picture requires a truncation in physical space while the central moments ansatz requires a truncation in moment space. Both truncations are invalid due to the fact that the evolution of the fluid really depends on the states of all molecules in the system and is sensitive to the smallest of perturbations. However, gross statistical properties could be relatively independent of small perturbations. The central moments ansatz is the more statistically one. In both cases it is not possible to simply ignore the closure problem. Instead we have to make sure that there is little ”energy” left in the last resolved scales or moments. In the Navier Stokes / Chapman Enskog picture this would mean that high frequencies in the flow field have to be filtered out. This would actually require a spectral representation of this flow field. Whether spectral filtering can be applied easily or not depends on the size and and the complexity of the simulation domain. An alternative solution is to use filters with finite support. The central moments ansatz, on the other hand, is intrinsically local. Filtering in moment space means that moments which are higher than the hydrodynamic moments relax so fast that their influence is small and they can be ignored. Fast relaxation of high order moments is considerably simpler than spatial filtering. The closure problem is solved by choosing appropriate relaxation constants.
4.1.1 Transport coefficients The only transport coefficient we are actually interested in is the kinematic shear viscosity ν. It can be obtained from the speed of sound and the mean free flight time between two binary collisions: ν = c2s τbinary
(4.1)
Binary collisions are those related to the central moment κxy and the corresponding central moments obtained from the rotational invariance constraint. The relation for the mean free time depending on the relaxation constant ωxy
64
4.1 Basic differences to other lattice Boltzmann models was obtained in equation 3.21. The speed of sound can be fixed from equation √ 3.8 to be cs = 1/ 3. Hence, we obtain the usual relation for viscosity:
1 1 − ωxy 2
(4.2)
4
1 ν= 3
Finding genuine values for the other relaxation constants would be most interesting considering the difficulties imposed by the statistical properties of turbulence. However, the flexibility to match higher order moments to physical quantities cannot be provided by a minimal model. In order to close the system we have to equilibrate the highest resoled moments for reasons which we try to understand throughout this chapter. It should be stressed that this decision is made on numerical grounds and has no physical justification.
4.1.2 Algorithmic differences By looking at the scattering algorithms of the standard and the new lattice Boltzmann automaton we recognize two prominent fact: First, the standard lattice Boltzmann automaton has no terms higher than second order in velocity while the new model uses higher terms. The truncation at second order provides a formal link to the Navier Stokes equation which is itself of second order. The Chapman Enskog expansion is ignorant of any higher order terms. The second fact is that the equilibria for the standard lattice Boltzmann automata are computed from the conserved quantities alone and do not depend on the off-equilibrium state of other moments. This is a close-to-equilibrium assumption, again. In the new method we do not assume that non-conserved moments are close to their equilibrium state. We need to take their post collision states into account to compute equilibria of other moments. This requires a cascade of equilibria. The equilibrium of any moment depends on all lower order moments, conserved or not conserved. To the best of the authors knowledge, this relationship has never been recognized before and the application of the scattering cascade is the most prominent distinguishing property of the new model which is therefore called the cascade lattice Boltzmann automaton if implemented with floating point arithmetic and the cascaded digital lattice Boltzmann automaton if implemented with round-off error free integer arithmetic.
65
4 Properties of the cascaded lattice Boltzmann automaton
4.2 Effects of high order corrections on stability Before we leave our theoretical analysis of the lattice Boltzmann automaton and show computational evidence of the superiority of the cascaded variant we shall develop a more hands-on understanding of the instabilities which plague the original lattice Boltzmann automaton.
4.2.1 A thought experiment Let us start this section with a discussion on how viscosity is implemented in lattice Boltzmann automata, since this is crucial and turns out to be a bit counterintuitive. The evolution of the lattice Boltzmann automaton can be split up into a scattering step and a streaming step. Since we associate viscosity with dissipation and since we adjust viscosity with a relaxation scheme in the scattering step we could wrongfully assume that viscosity originates from scattering. However, this is not so and can easily be seen by remembering that viscosity would be maximal if we skipped scattering altogether1 : ω→0⇒ν→∞
(4.3)
So where does viscosity come from? It is a result of streaming. Momentum diffuses by streaming of particles without scattering. For an ideal gas viscosity is proportional to the mean free flight path. The fewer collisions, the higher viscosity. Scattering is basically the lattice Boltzmann variant of an anti-diffusion algorithm. For zero diffusion we choose the relaxation constant ω = 2. That means that the non-equilibrium part of the node distribution function is inverted. The non-equilibrium part of the distribution corresponds to a gradient of density or velocity in the fluid. Inverting this gradient means returning the mass or momentum to where it comes from under the constrained of Galilean invariance, as Galilean invariance is understood in the Chapman Enskog picture for the standard lattice Boltzmann automaton. The understanding of Galilean invariance in the Chapman Enskog picture turns out to be the crucial point here. The Navier Stokes equation is typically derived for the lattice Boltzmann automaton by the Chapman Enskog 1
Unfortunately this does not work for producing solid bodies in lattice Boltzmann simulations since the Knudsen number grows with decreasing ω and the hydrodynamic theory holds only for small Knudsen numbers.
66
expansion up to second order in Mach number. It turns out that some special modifications have to be applied to the equilibrium distribution in order to make this second order lattice Navier Stokes equation Galilean invariant. This means that Galilean invariance in the Chapman Enskog picture is understood as a second order Galilean invariance. All higher order moments are considered to be irrelevant. Let us now understand what second order Galilean invariance means. A distribution is said to be Galilean invariant if its ”properties” are independent of velocity. Properties are understood to be integral quantities, for example moments of the particle distribution function. For momentum distributions a moment with respect to mean velocity of the particles on the given node is a so called central moment, a moment displaced by the mean of the distribution. Second order Galilean invariance means that the ”behavoir” of second order central moments is independent of velocity. For the standard lattice Boltzmann automaton ”behavior” corresponds to the pre-computed equilibrium value of the moment and its relaxation constant. For concreteness, let us consider our D2Q9 SRT lattice Boltzmann automaton. In 2D we have three independent second order central moments: κxx , κyy , and κxy = κyx . Those are chosen to be Galilean invariant. The distribution has, of course, an infinite number of moments, but it is uniquely defined by nine moments since it has only nine degrees of freedom. We can distinguish four classes of moments for this model: Those which are conserved (ρ, vx , and vy ), those which are independently adjustable and chosen to be Galilean invariant (κxx , κyy , and κxy ), those which are independently adjustable but are not chosen to be Galilean invariant (µxxy , µxyy , and µxxyy ), and the infinite set of moments which are not independently adjustable. We shall name raw moments µ and central moments κ. The relaxation time approximation requires attractors for all adjustable moments. We stick to the standard nomenclature and call these attractors ”equilibria”. The equilibria are not necessarily provided explicitly. Our SRT lattice Boltzmann automaton uses equilibria defined on a per link basis. However, that is saying the same with other words. For our understanding it is beneficial to use the moment representation. Since corrections for the Galilean invariance are only considered up to second order, the equilibria of third order moments depend only on first order terms eq (µeq xxy = ρvy /3, µxyy = ρvx /3) and this only because they are related to the velocity moments µx and µy . The fourth order moment is supposed to depend only on mass (µeq xxyy = ρ/9). Now let us investigate whether this is a good model for turbulent fluid flow simulations. We start with a very simple example. Consider just one line of
67
4
4.2 Effects of high order corrections on stability
4 Properties of the cascaded lattice Boltzmann automaton nodes in x-direction with periodic boundary conditions in y-direction so that the northern neighbor of the node is the node itself. As initial conditions we choose a singular velocity pulse in y-direction at a single node. All other velocity components, especially those in x-direction, are zero. The relaxation rate ω is chosen close to two in order to achieve a high Reynolds number. Let us start with a scattering step. Scattering redistributes momentum on the single node. The result is symmetrical since the initial condition was symmetrical. After scattering, part of the momentum is stored in the central link (the difference between the occupation of the north and the occupation of the south channel) and part of it is stored in the diagonal links (northwest minus southwest and northeast minus southeast). Now comes the streaming step. The y-momentum stored in the diagonal links moves to the neighboring nodes. Streaming is where diffusion of momentum takes place. After streaming, the distribution of momentum in spatial space has increased. In the subsequent scattering step the non-equilibrium part of the distribution on the left and right neighboring nodes are inverted in order to return most of the momentum to where it came from. We stop the thought experiment at this stage to investigate a simulation which is just a little bit more complex. Again we start with a single pulse in y-direction on one line of nodes. This time we add an homogeneous velocity field in x-direction in order to see the difference to the two time step simulation we have just investigated. In the first scattering step we recognize a contribution from the Galilean correction in the second order central moment κxy which is triggered through the concurrence of velocity components in x- and y-direction on a single node. The effect of this correction is a rearrangement of particles in momentum space as to move the mean of the velocity pulse with the flow. In the previous simulation the mean of the y-velocity pulse stayed where it was. Now it is moving. Interestingly, the second order correction influences only the links with contributions in x and y-direction simultaneously. That is to say, momentum is redistributed from northwest-southwest to northeast-southeast. The amount of momentum on the central axis (north-south) is not affected. This is so because we said that the variance of y-momentum in x-direction, namely the moment µxxy , is independent of velocity vx . If we now look at the distribution of y-momentum over the three nodes after the streaming step we recognize the following: The momentum on the central node is unchanged as compared with the simulation without advection in x-direction. The mean of the velocity distribution has been shifted Galilean invariantly in accordance with the second order correction from κxy . This was achieved by lowering the amount of momentum on one side of the central node and increasing it on the other side of the central
68
node in accordance with the requirement that the variance of y-momentum in x-direction with respect to the central node is kept constant (see figure 4.1). But here is obviously a flaw in the method. We should assume that the variance with respect to the mean of the distribution should be the same in both cases. However, the variance with respect to the mean of the distribution is obviously smaller in the second case (with advection). Now remember that diffusion is the growth rate of variance of a distribution with respect to its mean. It is quit obvious that the diffusion coefficients in the two considered examples are not equal. The lattice Boltzmann anti-diffusion algorithm produces more anti-diffusion when the flow is subject to advection. The reason for this is that the third order moment µxxy is adjusted with respect to the grid rather than chosen to be Galilean invariant. This cannot be seen from the Chapman Enskog expansion since it is truncated after the second order, obscuring all ill effects of higher order moments. The cascaded lattice Boltzmann method does not rely on the Chapman Enskog expansion and is based on a more fundamental definition of Galilean invariance. Figure 4.2 shows the same setup simulated with the cascaded lattice Boltzmann automaton. Here, the variance does not change with velocity. The variance of the y-momentum in x-direction is nominally a third order term depending on vx2 vy . The equilibrium for the moment µxxy looks significantly different in the the Chapman Enskog based automaton (index CE) and our cascaded lattice Boltzmann automaton (index CLB): ρ vy 3 = vy κxx +2vx κxy +vx2 vy |{z} |{z}
µCE xxy = µCLB xxy
≈ρ/3
(4.4) (4.5)
≈0
The equilibrium for µCE xxy is seen to be systematically too low with respect to positive shearing in y-direction. If equation 4.5 is right then equation 4.4 implies an error of O(vx2 ) in viscosity. The viscosity can be measured by simulating the decay of a sinusoidal shear wave. Superimposing different flow fields reveals the dependence of viscosity on velocity. In figure 4.3 we see the anticipated cubic drop in viscosity for the SRT lattice Boltzmann automaton in comparison with the stable viscosity of the cascaded lattice Boltzmann automaton. Note that viscosity (in the case of equilibrated third order moments) is slightly increasing on the cascaded lattice Boltzmann automaton. This is not only a quantitative difference but also a qualitative one. Since the viscosity is increasing it cannot drop below zero.
69
4
4.2 Effects of high order corrections on stability
4 Properties of the cascaded lattice Boltzmann automaton
0.1
vx=0.0 vx=0.1
0.08
vy
0.06
0.04
0.02
0
-0.02 0
2
4
6
8
10
12
14
x
Figure 4.1: Transport of a singular velocity peak in y-direction on the D2Q9 SRT lattice Boltzmann automaton with a periodic domain of 15×1 nodes and ω = 2 for shear velocity vx = 0 and vx = 0.1, respectively. Shown is the state after two time steps. The type of Galilean invariance which comes from the Chapman Enskog expansion effects only the mean of the distribution. The mean moves with the flow by setting the speed on neighboring nodes to opposing values. The original velocity peak is still located at its origin and does not move with the flow. Diffusion is growth of variance in time. The variances in the two plots are different and so is their diffusion coefficient. The diffusion coefficient for the plot with vx = 0.1 is in fact negative and the corresponding simulation represents the simplest example of an unstable setup for the conventional lattice Boltzmann method.
70
4
4.2 Effects of high order corrections on stability
0.1
vx=0.0 vx=0.1
0.08
vy
0.06
0.04
0.02
0
-0.02 0
2
4
6
8
10
12
14
x
Figure 4.2: The same simulations as in figure 4.1 repeated with the cascaded lattice Boltzmann method with ωxy = ωxx−yy = 2 and the other relaxation constants being unity. The central moments method obtains higher orders of Galilean invariance. Not only does the mean move with the flow but the variance is also kept constant. This simulation setup is stable.
71
4 Properties of the cascaded lattice Boltzmann automaton We should be aware of the fact that the Galilean invariance error in viscosity has nothing to do with the single relaxation time approximation. It comes from the Chapman Enskog procedure and is build into the equilibrium function. It is not possible to get ride of this problem by just following a different path to the same equilibrium. With this lesson learnt we can get a little bit more abstract and ask the general question what makes lattice Boltzmann simulation unstable? We could say that all instabilities go through or result in a violation of the CFL condition. That means the following: Information is allowed to travel one lattice spacing per time step in a lattice Boltzmann simulation. The limiting factor turns out the be the speed of sound. Sound waves must be allowed to travel on the lattice. Since they are supposed to be Galilean invariant, the speed of sound added to the velocity on the node must be smaller than one lattice spacing per time step. vCF L = 1 − cs
(4.6)
If v > vCF L no physical meaningful result can be obtained from the simulation. Violation of the CFL condition might have two reasons. Firstly and trivial, the initial or boundary conditions might be chosen in a way that results in flow conditions which are too fast for the lattice Boltzmann automaton. This can be corrected by lowering the differential input pressure or the input velocity and the viscosity simultaneously in order to obtain the same Reynolds number. Physically this translates to shorter time steps. However, lowering viscosity does not work ad infinitum. The problem with low viscosity can be understood from the example given above. Momentum transport is hardwired into the streaming step. The lattice Boltzmann automaton applies an antidiffusion algorithm to undo the transport of momentum. This works quit well as long as the errors in viscosity are small compared to the nominal viscosity. The anti-diffusion algorithm is an antagonist to the transport algorithm (streaming). That is also true for the errors. In an anti-diffuison algorithm, advection tents to introduce additional anti-diffusion. It is, however, necessary that transport out-weights anti-diffusion. Negative viscosity leads, perfectly in line with mathematics and physics, to a growth of velocity at points with high velocity at the cost of points with lower velocity (or velocity in the opposite direction). This is not a ”numerical” instability due to finite floating point precision. It is a perfectly correct behavior of a fluid with negative viscosity (irrespective of the fact that negative viscosity does not exist in nature since it was not in accordance with the second law of thermodynamics).
72
4.2 Effects of high order corrections on stability 0.0011
SRT CLB CLB*
0.00105
4
0.001 0.00095
nu
0.0009 0.00085 0.0008 0.00075 0.0007 0.00065 0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
vx
Figure 4.3: Comparison of the velocity dependence of viscosity on the SRT lattice Boltzmann automaton and the cascaded lattice Boltzmann automaton. The data was obtained from measuring the decay of a sinusoidal shear wave with a wavelength of 30 lattice spacings in a periodic domain. The velocity vector points in y-direction while the wave vector is pointing in x-direction. Several homogenous flow fields are superimposed in x-direction. The nominal viscosity is ν = 0.001 (an arbitrary value) and supposed to be independent from velocity. The plot marked with CLB was obtained with equilibartion of third order moments (ωxxy = ωxyy = 1) while the plot marked CLB* was obtained with over-relaxation of third order moments (ωxxy = ωxyy = 1.9999). The viscosity of the cascaded lattice Boltzmann automaton is considerably less sensitive to the superimposed flow fields. Over-relaxation of third order moments seems to improve the results further. This comes, unfortunately, at the cost of destabilizing aliasing errors. The closure problem requires the higher moments to equilibrate fast. The resulting error in viscosity is always positive (dissipative) and hence stabilizing whereas the negative error of the SRT method is destabilizing.
73
4 Properties of the cascaded lattice Boltzmann automaton With what we know now we can draw up the following scenario for instabilities in standard lattice Boltzmann simulations at high Reynolds numbers: We have chosen the viscosity to be small and velocity to be high in order to obtain a high Reynolds number. The simulation runs for some time without noticeable problems and we see formation of vortex structures. As the vortex structures become more and more convoluted, diffusion of momentum is more and more affected by the flow speed in different directions. We saw that the anti-diffusion becomes stronger in regions were velocity is higher. Viscosity must hence drop in this regions. This increases the Reynolds number in those regions further. The more turbulent the flow gets the more the lattice Boltzmann automaton has the tendency to lower viscosity. At some point viscosity becomes negative, resulting in an exponential growth of the shear rate and velocity, making viscosity even smaller. Finally, the flow speed exceeds vCF L at some point and no physical result is possible anymore. There is an obvious solution to this problem. If there is a negative error in viscosity we can write the real viscosity ν in terms of the input viscosity νset and the error viscosity νerr (x): ν = νset − νerr (x)
(4.7)
We can add a so called eddy viscosity νeddy (x) which is adjusted locally with some kind of turbulence model. νset = ν˜set + νeddy (x) ν = ν˜set + νeddy (x) − νerr (x)
(4.8) (4.9)
It seems that it should be possible to implement a turbulence model that choses νeddy (x) = νerr (x). Unfortunately that does not work properly because viscosity is isotropic while the error in viscosity is unisotropic (there are two relevant third order moments µxxy and µxyy ). Furthermore, the error viscosity depends on the wave number while the eddy viscosity does not.
4.2.2 Aliasing From figure 4.3 we would draw the conclusion that high over-relaxation of third order moments is necessary for accurate viscosities. In fact, the graph for over-relaxed third order moments looks rather perfect compared to the SRT model and to the cascaded lattice Boltzmann model with equilibrated third order moments. Unfortunately, the cascaded lattice Boltzmann automaton
74
with over-relaxed third order moments does not hold its promises when it comes to physically more relevant simulations. The shear wave decay problem is in this respect an over-idealized test. For equilibrated third order moments (ωxxy = ωxyy = 1) the cascaded lattice Boltzmann automaton shows a slight increase of viscosity with a superimposed velocity field. This is a perfectly stabilizing error since it always increases viscosity and becomes stronger for higher velocities and higher wave numbers. The cascaded lattice Boltzmann automaton with over-relaxed third order moments has a stable viscosity but it is itself not stable for arbitrary low viscosities (at least not as stable as the equilibrated version). The problem which arises if we do not equilibrate higher order moments is a complicated one. It belongs to a broad class of problems introduced by aliasing. By aliasing we understand that two physically different observable quantities are indistinguishable in a measurement or in their numerical representation. Even though, aliasing is a severe and omnipresent problem, the author is not aware of any systematic study of it for the lattice Boltzmann automaton. We encountered aliasing already in equation 3.8 where we had the aliasing µxxx = µx c2 and chose a specific speed of sound to reduce the corresponding aliasing error from O(M a) to O(M a3 ). But this is by no means the only aliasing error. We have aliasing in each degree of freedom, in time, spatial space, and momentum space. We even have cross aliasing in mixed directions. Aliasing is a broad subject and we shall concentrate only on a specific form of aliasing which seems to be responsible for stability problems in lattice Boltzmann simulations. Aliasing is most often associated with the scrambling of wave numbers in digital signal processing. The Nyquist-Shannon theorem states that frequencies which are higher than half the sampling frequency are aliased with lower frequencies. Digital signal processing requires the removal of high frequencies prior to sampling to avoid this problem. A similar problem is present in lattice Boltzmann simulations. The velocity of the flow field is sampled with the grid frequency and must not contain any higher frequencies which would otherwise be mistaken for low frequencies. Energy which should go to the dissipative high frequencies would surface at long wavelength and with the wrong amplitude. This is, in fact, happening in the lattice Boltzmann method. But how can non resolved wavelength be present in the first place since we are not sampling a physical flow field but take simulation results which were computed ”with grid frequency”? It turns out that the state of a lattice Boltzmann node contains a big deal of
75
4
4.2 Effects of high order corrections on stability
4 Properties of the cascaded lattice Boltzmann automaton subgrid information. Spatial velocity gradients, which were necessary to solve the Navier Stokes equation, are replaced by moments of the distribution function. The second order central moment κxy is a replacement for the derivative of vy in x-direction. It is only a replacement since it is not possible to compute the actual gradient due to several aliasing effects. First we have the aliasing κxy = κyx . The gradient of vx in y is indistinguishable from the gradient of vy in x. In two dimensions, this problem could possibly be solved since we saw that the difference of two other central moments can be transformed into such a shear moment by rotation. The second degree of freedom was then κxx − κyy . Two unknown gradients and two independent degrees of freedom. Looks good. Now we consider the same problem in three dimensions. We want to replace the gradients of vx in y and z, of vy in x and z, and of vz in x and y. This are six gradients and in analogy to the two-dimensional case we would represent them by six central moments: κxy , κxz , κyz , κxx − κyy , κxx − κzz , and κyy − κzz . Aliasing strikes once more. The last expression is not independent of the the others: κyy − κzz = κxx − κzz − (κxx − κyy ). So we have actually only five independent degrees of freedom to represent 6 gradients. In addition to this we cannot distinguish gradients of velocity from gradients of pressure. Even though, our knowledge of velocity gradients is incomplete it is still present and good enough for the lattice Boltzmann method to work. What does the knowledge on velocity gradients imply for subgird wavelength contributions to the velocity field? The Nyquist-Shannon theorem assumes that we have only knowledge of the value of the sampled field. The knowledge of gradients at the same sampling points doubles the information content and we can distinguish frequencies up to the sampling frequency, provided that the knowledge of the gradients was perfect (which it is not). Lattice Boltzmann goes even a step further since we also know higher moments like κxxy which is, in principle, a replacement for the second derivative of velocity vy in direction x. Remember that neglecting κxxy causes the diffusion of momentum (viscosity) to be wrong. In the framework of differential equations a diffusion operator represents a second derivative. The analogy between third order moments and second derivatives is genuine, the same thing expressed in a different language, but still not translatable due to aliasing (note that κxxy could also be taken for a third derivative of density or for the second order mixed derivative of vx in x and y). Hence we have also knowledge of higher spatial gradients and with this we have implicit knowledge of velocity fields at subgrid resolution. We know the value, the first and the second derivative at the sampling points. The Nyquist-Shannon theorem appears to be irrelevant for us. However, our knowledge is too implicit. We do not know about any methodology to extract
76
the subgrid flow field from high order moments. This would be the solution to the grid refinement problem which we will not address in this thesis. But due to aliasing there are several possibilities how a corresponding subgird flow field might look like. Another problem is that the system is Galilean invariant only at grid spacing frequency since we sample the velocity at grid points. The point is that we know about subgrid flow fields but we do not know enough. Subgrid fields are aliased and hence dangerous because they tend to release their energy to where it does not belong. However, the solution to this problem is trivial for the lattice Boltzmann automaton: Only the derivation from equilibrium of the considered moments implies a non-zero derivative. If we equilibrate the higher order moments after each scattering event we effectively filter out all subgrid flow fields. The nice thing is that first, second, and third order moments are different entities on the lattice Boltzmann automaton and that equilibrating third order moments does not effect the actual flow field and its first derivatives. This is completely different from large eddy simulation where a spatial filter is applied to remove the high wave numbers from the actual flow field [22]. The equilibration of higher order moments is not only simpler, it also conserves momentum exactly and it implements a considerably sharp cut-off frequency with a super compact filter size. The filter acts on a single node at a time while a comparable sharp filter applied directly onto the flow field would require sampling over a considerable amount of nodes which might be impossible in proximity to boundary nodes. But where does the additional positive numerical viscosity come from? The point is that lattice Boltzmann does not work in Fourier space. Equilibration of third order moments removes the curvature (second derivative) of the velocity field at each point while the velocity value and the slope remain the same. The removal of curvature implies the introduction of very high wave numbers (beyond grid frequency) since a saw tooth signal is now superimposed onto the flow field. This is fine as long as the flow field itself does not move around. Once it moves, the saw tooth field is misaligned with the lattice and when velocity is sampled new curvature (third moments) is found and removed. The removal of the curvature is hence seen to have the following effects: It is in general dissipative and increases the viscosity. It is stronger for higher frequencies since higher frequencies have higher curvature. The second derivative of a wave equation implies that the effect should grow quadratically with the wave number k: ∂ 2 sin(kx) = −k2 sin(kx) ∂x2
(4.10)
77
4
4.2 Effects of high order corrections on stability
4 Properties of the cascaded lattice Boltzmann automaton The dissipation increases with the speed at which the flow field moves around since the misalignment of the saw tooth field with the grid after streaming depends on velocity.
4.2.3 Over-relaxation of third order moments We might ask whether equilibration of third order moments is really necessary if it causes additional errors in viscosity. What are the ill effects of the overrelaxation of third order moments? We saw that second order central moments like κxy are measures for the gradient of the velocity vy in x-direction. Over-relaxation with ωxy = 2 leads to an inversion of the central moment κxy : pre κpost xy = −κxy
(4.11)
But if κxy measures the gradient of vy in x and we invert it, did we then also invert the velocity gradient? The answer is no. In fact, we had inverted the velocity gradient if we had not inverted κxy . The reason is that κxy is anti-symmetric in x. It measures the y-momentum coming from the west minus the y-momentum coming from the east. Note that the occupation of the eastern channels comes from western neighbors and the occupation of the western channels comes from eastern neighbors. If we want no diffusion of momentum we have to return the momentum to where it came from. But this is obviously impossible because if we return particles to where they came from they must have the opposite momentum (since they move in the opposite direction). The solution to this problem lies in the background pressure. There are always particles moving everywhere and we can move negative momentum to a neighboring node by sending less particles back. This is exactly what happens if κxy is being over-relaxed. Since κxy is anti-symmetric, we can undo the deterministic drift of momentum by inverting κxy . The same logic does not hold for the third order moment κxxy which is a measure for the curvature of vy in x. It is symmetric in x and inverting it has a completely different effect. In principle κxxy measures the difference of the y-momentum at a node and on its neighbors in western and eastern directions. Inverting κxxy means that we invert the curvature at this point. If there was more momentum on the neighboring nodes in the last time step, less momentum will be returned to them in the next time step. This leads to a flipping-over of the curvature of the velocity field at very short spatial wavelength and at half the time step frequency as can be seen in figure 4.4. That is to say, a concave corner in the velocity field will flip to a convex corner and vice versa. It is
78
quite evident that such a flow field can only be steady at much larger time scales, for example if we averaged over four or more time steps. However, the lattice Boltzmann algorithm samples the flow field with time step frequency and does not apply any averaging in time. Effects like these seen in figure 4.4 are disastrous and cannot be tolerated by an algorithm that depends on the validity of the velocity field in every time step. Any over-relaxation of third order moments like κxxy will cause flipping-over of local curvature of the velocity field. On this grounds it is intuitively comprehensible that overrelaxation of third order moments is not allowed. Note that by drawing this conclusion single relaxation time approximations are ruled out on principle for all but the highest of viscosities. It would be instructive to investigate what this means for the entropic lattice Boltzmann automaton which also applies the single relaxation time assumption.
4.3 Simple tests In this section we investigate the behavior of the cascaded lattice Boltzmann automaton with some idealized tests and compare the results with SRT simulations. The examples shown here are not physically motivated benchmark tests. They are chosen to point at some algorithmic difficulties of lattice Boltzmann simulations.
4.3.1 Frozen-in velocity peak at rest At zero viscosity the fluid is free from friction. Turbulent structures should then be ”frozen” into the fluid. That is to say, at zero viscosity a velocity structure (such like a vortex) should neither dissolve nor interact with remote structures in any way. The most idealized test for such a behavior is to investigate the time evolution of a single velocity peak in a periodic domain. By this we understand the lattice Boltzmann automaton on which all nodes have velocity zero and one node has velocity different from zero. The problem is further idealized by choosing the automaton to be periodic and only one node thick in the y-direction. The velocity peak points in y-direction while all velocities in the extended x-direction are zero. Even though this is a very idealized test, it is instructive to see that the standard lattice Boltzmann method fails to pass it (see figure 4.5). After a few time steps the velocity peak has contaminated all other nodes with noise. The automaton does not converge to a steady state with a stable velocity peak. Instead, the oscillations grow in time.
79
4
4.3 Simple tests
4 Properties of the cascaded lattice Boltzmann automaton
0.12
t=2 t=4 t=6
0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 -0.04 0
2
4
6
8
10
12
14
x
Figure 4.4: The same simulation set-up as in figure 4.2 (without superimposed flow field) with over-relaxed third order moments. Shown are only even time steps since the effect of interest happens with a frequency of two time steps as explained in the text. The over-relaxation of third order moments leads to a flipping-over of the local curvature every two time steps. Concave corners are turned into convex corners and vice versa. This artifact leads to intolerable contaminations of the flow field at high frequencies. The local curvature grows with the square of the wave number. The effect might hence be relatively weak if no high frequency components are present in the flow field. However, under-resolved turbulent flow simulations always imply the existence of high frequency components. These high frequency components get hopelessly scrambled if overrelaxation of third order moments is allowed.
80
4
4.3 Simple tests
0.12
t=2 t=100 t=1000
0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 0
5
10
15
20
25
30
35
40
45
x
Figure 4.5: Time evolution of a single velocity peak in y-direction on a periodic lattice Boltzmann automaton of dimension 45 × 1 simulated with the SRT algorithm. Viscosity is set to zero (ω = 2). The automaton does not converge to a steady state.
81
4 Properties of the cascaded lattice Boltzmann automaton
0.12
t=2 t=100 t=1000
0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 0
5
10
15
20
25
30
35
40
45
x
Figure 4.6: Same setup as in figure 4.5 simulated with the cascaded lattice Boltzmann method and ωxy = ωxx−yy = ωxxy = ωxyy = 2. The result looks similar to the SRT simulation and is not stable.
The cascaded lattice Boltzmann automaton behaves similar if third order moments are maximally over-relaxed together with second order moments (ωxy = ωxx−yy = ωxxy = ωxyy = 2 and other relaxation parameter set to one, see figure 4.6). If we include the equilibration of third order moments (ωxxy = ωxyy = 1) the oscillations vanish completely. The velocity peak broadens just a little bit and reaches a steady state after a few time steps (see figure 4.7). Only close by nodes are affected by the initial blur of the peak. The equilibration of third order moments does not cause any additional viscosity in this case. The shape of the velocity profiles at time step 100 and at timesep 1000 are indistinguishable.
82
4
4.3 Simple tests
0.12
t=2 t=100 t=1000
0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 0
5
10
15
20
25
30
35
40
45
x
Figure 4.7: Same setup as in figure 4.6 with ωxy = ωxx−yy = 2 and ωxxy = ωxyy = 1. The oscillations seen in the previous simulations have disappeared. The automaton reaches a steady state after a few time steps. Time step 100 and 1000 are indistinguishable. The velocity peak is still nearly as sharp as its initial condition.
83
4 Properties of the cascaded lattice Boltzmann automaton
4.3.2 Frozen-in velocity peak in motion To make the test from the last subsection just a little bit more difficult, we add an homogenous velocity field to all nodes with vx = 0.1 in lattice units. The difficulty here is that we try to move the peak to a place in between two lattice points. This is an test for the aliasing properties of the automaton and one for Galilean invariance. Since the SRT model failed this test even without the superimposed velocity it is no surprise that it shows the same oscillation in the moving case (see figure 4.8). The same is true for the cascaded lattice Boltzmann automaton without equilibration of third order moments as seen in figure 4.9. If we turn the equilibration of third order moments on, the oscillations are much weaker (see figure 4.10). But we also see that an dealiasing viscosity comes into play. The peak dissolves over time. This is, of course, an error. But it is an error that removes energy from the simulation and is therefore stabilizing. Note that the velocity vx = 0.1 is already rather high as it is nearly a quarter of the maximally allowed velocity vCLF .
4.3.3 Step advection with finite viscosity The next test example is included because it is one of the few idealized problems for which simulation results from the entropic lattice Boltzmann methods are available in the literature. The experiment presented in [29] is similar to the one in the last subsection. On a one dimensional periodic domain with 800 lattice notes a step profile of a passive scalar is initialized from node 200 to 400. The diffusion coefficient (equivalent to our kinematic viscosity) is set to ν = 5 × 10−5 in lattice units. A homogenous flow field with vx = 0.1 is applied and the resulting profile is plotted after 3000 time steps. The article implies that this setup is comparable to a fluidic entropic lattice Boltzmann automaton. We compare the results in [29] to the standard lattice Boltzmann method (also included in the paper) and our cascaded lattice Boltzmann automaton with equilibrated high order moments. Again we use the D2Q9 lattice with a thickness of only one cell in y-direction and periodic boundary conditions. Instead of a passive scalar we advect momentum in y-direction. That our setup is reasonable close to the simulations presented in [29] is confirmed by visually comparing the results for our SRT model (figure 4.11) with the corresponding result in the paper (figure 4 in [29]). Note however, that a rigorous comparison is not possible since the two experiments in the paper were obviously not performed at the same Mach number as can be seen by the differences in the replacement of the steps after 3000 time steps. Here we present only
84
4
4.3 Simple tests
0.06
t=100
0.05 0.04 0.03
vy
0.02 0.01 0 -0.01 -0.02 -0.03 0
5
10
15
20
25
30
35
40
45
x
Figure 4.8: Same setup as in figure 4.5 with homogenous velocity vx = 0.1. Strong oscillations contaminate the result of this SRT lattice Boltzmann simulation.
85
4 Properties of the cascaded lattice Boltzmann automaton
0.06
t=100
0.05 0.04 0.03
vy
0.02 0.01 0 -0.01 -0.02 -0.03 0
5
10
15
20
25
30
35
40
45
x
Figure 4.9: Same setup as in figure 4.6 (CLB with ωxy = ωxx−yy = ωxxy = ωxyy = 2) with homogenous velocity vx = 0.1. By over-relaxing the third order central moments we obtain a result which is as noisy as the SRT simulation.
86
4
4.3 Simple tests
0.06
t=100 t=550
0.05 0.04 0.03
vy
0.02 0.01 0 -0.01 -0.02 -0.03 0
5
10
15
20
25
30
35
40
45
x
Figure 4.10: Same setup as in figure 4.7 (CLB with ωxy = ωxx−yy = 2 and ωxxy = ωxyy = 1) with homogenous velocity vx = 0.1. Now we equilibrate the third order moments in each time step and the oscillations are drastically reduced. However, a de-aliasing viscosity appears which results in the dissolution of the velocity peak. The shown flow profiles are measure 450 time steps apart. With the given velocity the peak traversed the cyclic domain 10 times.
87
4 Properties of the cascaded lattice Boltzmann automaton simulations performed at the same Mach number as in figure 6 of the paper which shows the result of the entropic lattice Boltzmann automaton. The data points in the figure in [29] were extracted electronically and the plot is reproduced in figure 4.12. By comparing this to the result from the cascaded lattice Boltzmann automaton at the same viscosity (figure 4.13) one recognizes two differences: First, simulated with the entropic lattice Boltzmann automaton the oscillations at the edges of the step are smaller (but still visible) when compared to the result from the cascaded lattice Boltzmann automaton. The second difference is that the entropic lattice Boltzmann method must have a considerably larger numerical viscosity as compared to the cascaded lattice Boltzmann method. A simple possibility to access this data from figure 4.12 is to count the ticks (or nodes) on the slope of the step in the plot after 3000 time steps. The number of ticks on the slope is a measure for its steepness and the decrease of steepness in time is a measure for the viscosity. It is evident that the entropic lattice Boltzmann automaton introduces a considerable amount of numerical viscosity in this example. The author counts 12 ticks on both slopes in the entropic simulation (figure 4.12). The number of ticks on each slope in figures 4.11 and 4.13 is between 5 and 7, depending on whether the overshooting is considered a part of the slope or not. The number of ticks in the SRT simulation in [29] is about seven on each slope, comparable with the results shown here. A more accurate method to compare the steepness of the slopes is to apply numerical differentiation to the data. We apply central differentiation to the array of values v in x: grad(vn ) =
vn+1 − vn−1 2
(4.12)
The values from figure 4.12 have to be divided by 3370 in order to obtain the same magnitude as in figure 4.13. The gradient is a direct measure for the steepness of the slope. Figures 4.14 and 4.15 show close-ups of the gradients of the entropic and the cascaded simulation, respectively. It is clearly seen that the steepness of the step in the entropic lattice Boltzmann simulation is much lower than the steepness of the step in the corresponding cascaded lattice Boltzmann simulation. This implies a much higher numerical viscosity of the entropic lattice Boltzmann automaton. To get a rough estimate of the actual value of the viscosity we can try to find a nominal viscosity for which the steepness of the step in the cascaded lattice Boltzmann method is comparable to the steepness seen in figure 4.14. Figure 4.16 shows the steepness of the slope obtained from the cascaded lattice Boltzmann method with ν = 10−3
88
4
4.3 Simple tests
0.12 0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 0
100
200
300
400 x
500
600
700
800
Figure 4.11: Transport of a velocity step profile in y-direction due to a superimposed homogenous flow field vx = 0.1 on a D2Q9 SRT lattice Boltzmann automaton of dimension 800 × 1. Time steps one and 3000 are shown. The viscosity is ν = 5 × 10−5 .
89
4 Properties of the cascaded lattice Boltzmann automaton
1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 0
100
200
300
400
500
600
700
800
x
Figure 4.12: Transport of a step profile of a passive scalar on a one-dimensional entropic lattice Boltzmann automaton with a superimposed flow field vx = 0.1. The plot is a reproduction of figure 6 in [29]. Data points were extracted electronically from the plot and might have the wrong magnitude. No label for the y-axis is provided by the authors. The article [29] implies that the presented setup is equivalent to the lattice Boltzmann simulations shown in figures 4.11 and 4.13 and should have the same transport coefficient.
90
4
4.3 Simple tests
0.12 0.1 0.08
vy
0.06 0.04 0.02 0 -0.02 0
100
200
300
400
500
600
700
800
x
Figure 4.13: Same setup as in figure 4.11 simulated with the cascaded lattice Boltzmann automaton.
91
4 Properties of the cascaded lattice Boltzmann automaton which is twenty times the nominal viscosity of the entropic lattice Boltzmann simulation. The steepness is now comparable to the entropic simulation albeit it is still slightly higher. Note that the cascaded lattice Boltzmann automaton introduces less noise to the result for the same effective viscosity. The cascaded lattice Boltzmann automaton itself is not free of numerical viscosity in this setup due to the superimposed flow field. However, numerical viscosity is nearly absent if vx = 0. Figure 4.17 shows the steepness of the slope obtained from the same setup without superimposed flow field. We see that the cascaded as well as the entropic lattice Boltzmann automaton introduce a considerable amount of numerical viscosity. The magnitude of the numerical viscosity in the cascaded method is much lower. A comment on the presented comparison between the entropic and the cascaded method has to be added. Unfortunately, the two examples do not describe exactly the same physical problem. The entropic automaton conserves only mass while the velocity is kept constant. The two primary authors of [29], Ilya Karlin and Santosh Ansumali, consider this comparison unjustified since the underlying physical problems are qualitatively different. They argue that the velocity component in y-direction introduces a pressure wave in xdirection with the result that the velocity vx is not constant anymore. Their position should be acknowledged and respected. However, the author is of the opinion that the effects of pressure waves on the result should be negligible. There is no qualitative or severe quantitative difference in the their single relaxation time simulation and the one shown here. The strength of pressure waves is significantly higher in the SRT simulation as compared to cascaded lattice Boltzmann simulations since the bulk viscosity is decoupled from the shear viscosity in the cascaded method and kept high by equilibration of the trace of the second order velocity moments. If the effect is not visible in the SRT simulation it should not be visible in the cascaded lattice Boltzmann simulation. The presence of pressure waves is by no means a sufficient explication for one order of magnitude more numerical viscosity in the entropic method as compared to the cascaded method.
4.4 Measurement of the viscosity error In this section we investigate the error introduced by the equilibration of higher order moments. In figure 4.3 we see a slight increase of viscosity with Mach number for the cascaded lattice Boltzmann automaton with equilibrated higher order moments. In order to quantify this error we simulate the time
92
4
4.4 Measurement of the viscosity error
0.01 0.005 0 -0.005
grad(v)
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035 -0.04 550
600
650
700
750
x
Figure 4.14: The steepness of the slop of the step profile in figure 4.12 (entropic simulation) is revealed by numerically differentiation in x. The magnitude of the data was scaled to the same value as for the cascaded lattice Boltzmann simulation in order to allow direct comparison to our simulations. This figure shows a close-up of the gradient of one of the flanks of the step after 3000 time steps.
93
4 Properties of the cascaded lattice Boltzmann automaton
0.01 0.005 0 -0.005
grad(v)
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035 -0.04 550
600
650 x
700
750
Figure 4.15: Gradient of the data shown in figure 4.13. This plot reveals the steepness of the flank in the cascaded lattice Boltzmann simulation with ν = 5 × 10−5 . Even though, the nominal transport coefficient is the same as in the entropic simulation shown in figure 4.14 the slope here is considerably steeper. The numerical viscosity is hence lower in this simulation.
94
4.4 Measurement of the viscosity error
4
0.01 0.005 0 -0.005
grad(v)
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035 -0.04 550
600
650 x
700
750
Figure 4.16: This plot shows the gradient of the slope of the same initial step profile as used in figures 4.11, 4.12, 4.13, 4.14, and 4.15. The cascaded lattice Boltzmann simulation was run with a nominal viscosity ν = 10−3 . The steepness of the slope (and hence the actual viscosity) is now comparable to the steepness of the slope in the entropic lattice Boltzmann simulation seen in figure 4.14. This implies that the numerical viscosity in the entropic simulation is at least 20 times as high as the nominal viscosity ν = 5 × 10−5 . Note also that the result of the cascaded lattice Boltzmann automaton is now considerably less noisy than the result of the entropic simulation.
95
4 Properties of the cascaded lattice Boltzmann automaton
0.01 0.005 0 -0.005
grad(v)
-0.01 -0.015 -0.02 -0.025 -0.03 -0.035 -0.04 250
300
350 x
400
450
Figure 4.17: This plot shows the gradient of the slope of a step profile at rest after 3000 time steps and with ν = 5 × 10−5 . The setup is physically identical to the simulations shown in figures 4.11-4.15. Numerical viscosity is very low for vx = 0. This plot shows the correct steepness for the given viscosity.
96
4.4 Measurement of the viscosity error evolution of a sinusoidal shear wave with different superimposed flow fields pointing in the direction of the wave vector.
The decay of a shear wave in a periodic domain is an important benchmark example since it is one of the very few cases for which the Navier Stokes equation has an analytical solution. In the material frame (the coordinate system moves with the mean velocity), without pressure gradients, with vy varying only in x-direction, and with all other velocities being zero with respect to the material frame, the Navier Stokes equations simplifies to the following [30]: ∂vy ∂ 2 vy =ν ∂t ∂x2 We make the ansatz vy = v sin(kx) exp(at): ∂ ∂2 v sin(kx) exp(at) = ν 2 v sin(kx) exp(at) ∂t ∂x av sin(kx) exp(at) = −k2 νv sin(kx) exp(at) 2
a = −k ν
(4.13)
(4.14) (4.15) (4.16)
So v sin(kx) exp(−νk2 t) is a solution of the Navier Stokes equation and by measuring the time decay of a sinusoidal wave with known wave number k we can determine the viscosity.
4.4.2 Determining the numerical viscosity We choose ωxy = ωxx−yy = 2 and hence ν = 0. Any remaining viscosity measured in the shear wave decay experiment is hence erroneous. From the plots of the viscosity in logarithmic scale against velocity in wave vector direction (figure 4.18) a power law behavior for long wave length is evident. The exponent can be determined by fitting the data to the power law: a b v (4.17) w2 x Where w is the wavelength of the test wave given in multiples of grid spacings. A quadratic dependance of this kind is implied by equation 4.10. Values for a and b are listed in table 4.1. The dependence on wave number seems to νnumberic =
97
4
4.4.1 Shear wave decay experiment
4 Properties of the cascaded lattice Boltzmann automaton Fit parameter of the numerical viscosity wavelength w a b 30 4.1202 3.8309 60 4.8639 3.9841 120 4.9177 3.9962 200 5.22453 4.0494 Table 4.1: Fit parameter of the viscosity measurement shown in figure 4.18 to the function νnumeric = a/w2 vxb obtained with the software Gnuplot. The exponent b is close to 4.
be a bit less strong than predicted but the tendency is clearly correct. The exponent b converges to 4 for large wavelength. The numerical viscosity is hence an O(vx4 k2 ) error with k being the wave number. The viscosity is accurate to third order in Mach number. This is a reasonable result. Given that the highest explicitly considered central moment κxxy is, in fact, in O(vx2 ) we could expect only second order accuracy. However, a third order error in vx would break the symmetry of the problem since vx3 is an odd expression. We have reason to think that the O(M a3 ) accuracy of viscosity is the final word for this type of lattice Boltzmann automata and that higher accuracies can only be obtained with larger velocity sets. It is interesting to note that the numerical viscosity seams to vanish when we apply over-relaxation to the third order moments. But we have already seen that this causes aliasing errors with disastrous results. The aliasing properties are the final limit for the accuracy to which we can resolve the flow field. It should be noted that the remaining numerical viscosity is very small. In SRT and MRT lattice Boltzmann automata it is difficult to obtain stable simulation results for ν < 10−3 [11, 31] and v > 0.2. For a relatively short wavelength of 30 lattice spacings we measure a numerical vicosity of ν ∼ 10−6 at the same Mach number and the simulation is stable. This is a three orders of magnitude improvement in Reynolds number! And it is getting better for longer wavelength and lower Mach number. Note that we gain another four orders of magnitude by reducing the velocity to the more reasonable value of 0.02.
98
0.001 0.0001
4
4.4 Measurement of the viscosity error
L=30 L=60 L=120 L=200
1e-05 1e-06
nu
1e-07 1e-08 1e-09 1e-10 1e-11 1e-12 0.01
0.1 vx
1
Figure 4.18: Measurement of the numerical viscosity in the D2Q9 cascaded lattice Boltzmann method with equilibrated third order moments and nominal viscosity set to zero. Test waves with different wave length (30, 60, 120, and 200 lattice spacings) were used in the shear wave decay experiment. For larger wave length the plots converge to parallel straight lines implying a power law dependance on the superimposed velocity in wave vector direction x. The slope fits reasonable well to 4. The numerical viscosity is hence a fourth order effect in Mach number (νnumeric = O(M a4 )).
99
4 Properties of the cascaded lattice Boltzmann automaton
4.5 Speed bounds The cascaded lattice Boltzmann automaton has superior stability properties as compared to the SRT model. It is, however, not unconditionally stable like the entropic lattice Boltzmann automaton since it is still sensible to the violation of the CFL condition. This problem turns out to be more severe than one might think. First and foremost we should recognize that the cascaded lattice Boltzmann automaton is certainly less sensitive to high Mach number flows than the SRT model under the same (namely laminar) conditions. But with the ability to reduce viscosity arbitrarily comes the desire to simulate turbulent flow. Turbulent flow has no natural speed limitation. In a laminar flow simulation we would assume a simple relationship between the maximal flow velocity and the boundary conditions (pressure difference or input velocity). The relationship would be of the kind that allows us to decrease the maximal velocity if it was found to be too high. This does not hold for turbulent flow and the reason is easily understood form common sense. Regard the atmosphere of our home planet. Nowhere on earth are severe pressure or temperature gradients which would explain (in a linear sense) the acceleration of air to several hundreds of kilometers per hour and yet we observe such strong winds. On average the atmosphere is at rest compared to the earth but turbulence allows - actually implies - strong deviations from the average. There is no reason for fluids to be slow. Slowness can only be defined with respect to a resting coordinate system in momentum space. But we put our efforts in making lattice Boltzmann independent from the coordinate system. Unfortunately, convoluted turbulent flow fields favor the development of sudden confined bursts of high velocity which are unrelated to boundary conditions. The velocity in this bursts can easily exceed the inflow velocity by several orders of magnitude. However, the fluid velocity must not exceed vCF L . In a way we have developed a faulty model. We required Galilean invariance irrespective of the finite speed with which information is allowed to travel on the lattice. In fact, we built our theory upon an outdated assumption. Galilean invariance is not considered a physical fact anymore. The system should actually be Lorenz invariant. That is to say, the velocity should increase non-linearly with the momentum and should be bounded by a maximal velocity: the speed of information, the speed of light. Such a Lorenz invariant lattice Boltzmann automaton was in fact likely to be unconditionally stable. It could also be regarded as nearly incompressible since the speed of sound was 57.7% of the speed of light. However, a Lorenz invariant lattice Boltzmann model with the speed of light being one lattice spacing per time step is
100
unlikely to be an efficient model for terrestrial applications. In principle, we had to run our simulator at very low speeds to avoid relativistic effects. For nearly all earthly applications it would not be reasonable to use the speed of light to determine the actual time step by fitting the simulated light speed to the physical one. The resulting time step would be intractably short. This would also imply severe technical difficulties in setting the low (compared to the speed of light) velocities. In the lattice Boltzmann framework, velocity is the difference between the number of particles moving from right to left and the number of particles moving from left to right. As a result, the velocity cannot be lower than the relative numeric precision of the data type. Velocities smaller than about 10−7 for integers and 10−15 for doubles cannot be modeled. A velocity constrained by numerics to be a multiple of 30 meters per second is certainly not what we want. It does not seem to be very reasonable to introduce relativity just to avoid its effects. It turns out that a crude simplification of Lorenz invariance works astonishingly well. We must (and can) assume that turbulent bursts are rare events provided that the input velocity is chosen to be sufficiently low. The fluid behaves in a Galilean invariant fashion until a velocity becomes extremely fast so that relativity comes into play. As long as the fluid is Galilean invariant its velocity depends linearly on its momentum. Lorenz invariance implies an analytic relationship between momentum and velocity that gets more non-linear for higher speeds. Instead we could assume a linear relationship between momentum and velocity up to a specific cut-off velocity which is chosen slightly below vCF L . If the linear velocity exceeds this cut-off velocity it is simply set to the cutoff velocity. This crude process removes the remaining instabilities and the reason for this is quite simple. The cascaded lattice Boltzmann automaton is non-linear only in the density and in the velocity. In most practical cases the density is rather constant. Stability problems arise from the velocity terms. With the velocity being confined by cut-off values all non-linear terms in velocity are also confined. Linear stability is then enough to imply non-linear stability. The crude cut-off limiter of velocity is unlikely to have large effects on accuracy provided that the input velocity is low and bursts are rare events. A burst is then simply smoothed out with a confined violation of Galilean invariance. Because the cut-off bound approximates Lorenz invariant behavior there is no loss of momentum and kinetic energy2 . Interestingly, this works for the cas2
Kinetic energy might be destroyed or created due to different equilibria for second order moments. Energy is in general not balanced in this lattice Boltzmann method.
101
4
4.5 Speed bounds
4 Properties of the cascaded lattice Boltzmann automaton cade lattice Boltzmann automaton but it would not work for the SRT or the entropic lattice Boltzmann automat, at least not without modifications. The assumption of a linear relationship between momentum and velocity is hardcoded into the SRT model. Changing velocity would also change momentum. For the cascaded lattice Boltzmann automaton and the MRT model this is not true. In fact, we could choose a bunch of different ways to compute velocity. Taking the mean of the momentum distribution function is just picking the most likely value. It would also be reasonable to pick a random value with a likelihood scaled with the distribution function. In the cascaded lattice Boltzmann method this would not change the momentum because nothing changes the momentum. The scattering matrix is orthogonal to the momentum vectors. The cut-off velocity bound described here is introduced only to handle a rarely occurring problem. The cascaded lattice Boltzmann automaton does not depend on it for the simulation of turbulent flow. It is not unconditionally stable without it. The author implemented the velocity bound only in the floating point version of the cascaded lattice Boltzmann automaton. The integer version, cascaded digital lattice Boltzmann, was implemented without velocity bound. Both simulators work fine up to Reynolds numbers of over one million without velocity bounds. Fatal velocity burst appeared at Reynolds numbers greater than one billion and only after billions of scattering events. In what follows it will be explicitly mentioned if a velocity bounds was used.
4.6 Cascaded digital lattice Boltzmann This chapter focused mainly on the comparison between the cascaded lattice Boltzmann automaton and the SRT scheme so far. The presented cascaded lattice Boltzmann automaton uses double precision floating point numbers as link data type just like the SRT model does in most implementations. A comparison between two schemes that use different numerical precision might lead to faulty conclusions. The SRT model dictated the data type in this case. The cascaded lattice Boltzmann automaton is not so stringent when it comes to the choice of data types. In fact, we introduced a optional truncation operation in the last chapter that allows the automaton to run entirely digital with integers as occupation numbers. From the practical point of view there might be little justification for doing so. Hardware and compilers are designed for the efficient use of floating point arithmetic. Even though, integer arithmetic is in principle simpler than floating point arithmetic it might still be slower given
102
that the hardware was not designed for this purpose. The cascaded digital lattice Boltzmann automaton still relies heavily on floating point arithmetic and converts the result for each moment into an integer afterwards. That is probably a very costly operation. However, this all depends on the hardware and while hardware changes with time theory does not. It is an interesting feature of the cascaded lattice Boltzmann model that it can be effectively implemented with integers and even if we might decide to use floating point data types in future, the way the integer arithmetic works is still instructive and might be used to increase the accuracy of the floating point version. At the time of this writing the most frequently used data type for numeric applications is a 64 bit floating point number with a precision of roughly 16 decimal digits. Numerical results in fluid dynamic simulations are in general not very accurate. Let us assume we obtained an accuracy of one per cent in our simulation. We could then say that the result of our simulation is to be found in the three leading digits of the double precision floating point number while the 13 remaining digits are effectively random numbers. The tailing digits are, however, necessary to obtain the accuracy of one per cent in the first place. As an analogy to the accumulation of round-off errors we could compare floating point numbers to a mechanical object, such as a tire of a car, which is subject to wear. A new tire is thicker than it needs to be to support the weight of a car. However, it is supposed to be able to support a car after it was subject to considerable wear. The tire is designed for a specific life span measure in kilometers. In analogy we could say that a floating point number is designed for a specific life span measure in operations. Operations on floating point numbers might cause ”wear” in terms of round-off errors. These round-off errors enter the game from the 16th decimal place in the case of double precision and whether they enter the vital decimal places at the other end of the number depends on what happens during the calculation and most notably on the total number of operations. With sixteen decimal places we have chosen to make the tire thick enough for most practical cases and we could take this as an excuse for being lazy and do not care about the accuracy of the way we apply the operations. Unfortunately, algebraically equivalent expressions might evaluate to different results depending on the order of the operations. The precision overkill minimizes this problem but this comes at a considerable cost. The interesting thing with integer arithmetic is that being lazy is not allowed anymore. We have to care about the order of the operations. In our analogy this would be like using a different material for the tire which does not wear so quickly and might therefore either be thiner or it would increase the life span of the tire but must be handled with care so that
103
4
4.6 Cascaded digital lattice Boltzmann
4 Properties of the cascaded lattice Boltzmann automaton it does not break completely. The kind of integer arithmetic used in the last chapter has some interesting features which should be summarized here. The interdependence of the different scattering operators in the lattice Boltzmann automaton is complicated and one might asked why we should bother to solve the equation analytically in the first place since there are robust methods for solving a set of linear equations numerically. The answer is, that this is true only for approximative solutions, not for integers. But the set of equations has no integer solution anyway and that is where the collision cascade comes into play. By applying the lowest scattering operator we certainly make numerical errors of some kind. We need to compensate for the application of the low order scattering operator in all higher order scattering operators. It certainly makes some difference whether we compensate ”analytically” to what the low order scattering operators should look like, or whether we compensate for what they actually are. The difference is that if we compensate for the scattering of low order moments ”as is” we hinder the numerical errors to propagate to the next stage. Numerical errors are hence cleanly confined in the way the scattering cascade works for integers. This confinement allows us to start each calculation with fresh unworn ”tires”. Suppose that we decided to use 32 bit integers as occupation numbers and we would do all intermediate calculations with 64 bit floating point numbers. For the computation of each scattering operator we would start with numbers in which nearly half of the digits were unused. The numerical wear during the relatively short calculation for just one scattering operator should be negligible under this conditions. In fact, the whole wear is concentrated in the controlled truncation at the end of the calculation. The truncation is an error but it is an error that does not propagate to other moments and it is an error that does not change the conserved quantities. In the cascaded digital lattice Boltzmann automaton the conserved quantities are hence conserved exactly in the very sense of what exactness means. (Unfortunately, some people refer to a numeric solution with an error of the order of 10−16 as being exact since this is exact up to machine precision. Here we shall understand exactness in the sense that the error is identically zero.) Note that there is an alternative to the truncation operation which was not tested by the author. The information stored in the discarded digits can be restored in a statistical sense by a process called dittering [32]. Dittering is a random rounding process weighted with the rational part of the number. For example, if we applied a dittered conversion of the number 1.67 to integer we would draw a random number Z which was with likelihood 0.67 one and with likelihood 1 − 0.67 zero. The dittered result was then ⌊1.67⌋ + Z. Compared
104
4.7 Endnotes with the truncation operation dittering has the advantage that it destroys all spurious symmetries in the simulation. The disadvantage is the call to a random number generator for each integer conversion.
4
4.7 Endnotes What we saw in this chapter was that the cascaded lattice Boltzmann automaton has superior accuracy and stability properties as compared to the original lattice Boltzmann automaton provided that we restrict the over-relaxation to the moments which adjust shear viscosity. We could have arrived at the same conclusion through basic reasoning provided that we accepted the Navier Stokes point of view that the fluid is in local equilibrium. Then we would argue as follows: The zeroth and first order moments are conserved quantities and must not be change. The second moments (without the trace) measure the stress in the fluid and are responsible for the shear viscosity. Thus, they must be allowed to over-relax. But if we assume that the fluid was in local equilibrium at each point we have to equilibrate all the other moments in each scattering step to hold their derivation from equilibrium as small as possible. The flaw in the standard lattice Boltzmann method is not only that it does not equilibrate the remaining moments. Higher moments are merely regarded as irrelevant or even unphysical. But this is not correct. High moments of the particle distribution function exist and their equilibria with respect to the non-equilibrium of low order moments have well defined forms to which we need to relax the moments in order justify a local equilibrium assumption. Equilibration of high order moments is an ad hock assumption but it is the same ad hock assumption as the local equilibrium assumption in the Navier Stokes equation. This chapter confirmed the validity of this assumption. The cascaded lattice Boltzmann automaton, which was derived without even mentioning the Navier Stokes equation, turns out the solve the Navier Stokes equation to a much higher accuracy than the method which was actually designed to solve the Navier Stokes equation.
105
106
5 Simulation of turbulent flow 5
My results are not proved, they are true, and this is much more important. –Andrei Nikolaevich Kolmogorov In this chapter we apply the three-dimensional cascaded lattice Boltzmann automaton to simulations of fully developed turbulent flow.
5.1 Under-resolved turbulence The Kolmogorov theory of turbulent flow [22] states that the smallest relevant spatial feature has the size of the Klomogorov scale η which is the length scale for which the Reynolds number is one. In order to resolve all relevant scales we need to choose a grid spacing of the order of η. Reynolds numbers of practical relevance in engineering applications like the flow around a car exceed one million. Problems like flow around airplanes and flow around buildings exceed one billion. A direct computational approach to this kind of problems at full resolution is intractable for all foreseeable future irrespective of the progress in computer hardware. But why do we need to resolve the Kolmogorov scale? Velocity fluctuations at all wavelength down to the Kolmogorov scale are coupled due to the non-linearity of the problem. Neglecting short wavelength contributions means that we withdraw energy from the system. The simulation result will be potentially incorrect. However, we could hope that the unresolved fluctuation were statistically independent of each other and averaged to zero. Then we could hope that gross statistical properties of the flow field were independent of small fluctuations and could be obtained from underresolved simulation. Whether this is true or not must certainly be judged on a case by case basis. A more practical reason for not ignoring the Kolmogorov scale is that underresolved lattice Boltzmann simulations are typically not numerically stable. However, this does not seem to be true for the cascaded lattice Boltzmann
107
5 Simulation of turbulent flow automaton. Figure 4.18 implies that we could use grid spacing which are orders of magnitude larger than the Kolmogorov scale. If we assume a numerical viscosity of ∼ 5/w2 v 4 as the limiting factor for viscosity, we could hope for lattice spacing Reynolds number of:
Re1 =
1v νnumeric
≈
w2 5v 3
(5.1)
For wavelength w = 15 and velocity v = 0.1 this would translate to a Reynolds number of 45000 per grid spacing! Is this an artifact of the overidealized shear wave decay test or does the cascaded lattice Boltzmann method hold its promise even in scientifically relevant setups? To answer this question we examine a few results of three-dimensional simulations with the cascaded lattice Boltzmann automaton.
5.2 Turbulent wake In our first setup we use the D3Q27 cascaded digital lattice Boltzmann algorithm without cut-off speed limiter to simulate the wake behind a rectangular obstacle at Reynolds number Re = 1400000 (see figure 5.1). The inflow velocity is implemented by a differential pressure between front and end of a domain with 400 × 120 × 120 nodes and is measure to be v = 0.097. Boundary conditions in the y and z-directions are periodic. The nominal viscosity is chosen to be ν = 2 × 10−6 . The obstacle has dimensions 20 × 30 nodes and the Mach number is M a = 0.168. The Reynolds number with respect to the grid spacing is Re1 = v/ν = 48500. The simulation is hence under-resolved by a factor of 48500. A small perturbation is added to the initial conditions to break the symmetry of the setup. (This procedure was found to be indispensable for turbulent simulations. It could be avoided if we used dittering.) The simulation is run for 16600 time steps. The result shown here was first presented by the author in [33]. Using the method described in appendix B we can compute physically equivalent scales. Taking the viscosity of air and letting the grid spacing be one centimeter, we obtain a velocity of 69m/s and a time step duration of 14 × 10−6 s. The simulated object measures hence 30 × 20 centimeters and the duration of the whole simulation is 0.2324s. Alternatively, letting the grid spacing be 10 centimeters results in a velocity of 6.9m/s and a duration of 23.24s.
108
5
5.2 Turbulent wake
Figure 5.1: Turbulent velocity field in the wake of a rectangular obstacle at a nominal Reynolds number Re = 1400000. The computational mesh has 400 × 120 × 120 nodes and the Mach number is M a = 0.168. A cut through the central plain is shown.
5.2.1 Energy spectrum Direct comparison to experimental data is difficult since turbulent flows behave chaotically and never reach a steady state. Similarity between turbulent flow fields can only be defined in a statistical sense. We know from the Kolmogorov theory as well as from experiments [22–24] that the spatial spectrum of kinetic energy of turbulent velocity fields behave like E ∼ k−5/3 (where k is the wave number) independent of the origin of the turbulence. This is exactly what we observe in the cascade lattice Boltzmann simulation. Figure 5.2 shows a onedimensional spectrum of kinetic energy measured perpendicular to the flow direction in the wake of the obstacle. Spatial averaging was applied to 5/12 of the simulation domain starting 40 lattice spacings behind the obstacle.
5.2.2 Convergence study A flow field like the one shown in figure 5.1 is in general not very useful since it represents a single snapshot of an unsteady wake which will never return to this state (or never in observable times) and will never reach exactly the same state in a similar experiment. We have no clue on whether the result is reasonable or not since direct comparison to experiments or other simulations is ruled out by the chaotic nature of the problem. A minimal justification for the result was to compare it with the same lattice Boltzmann simulation
109
5 Simulation of turbulent flow
0.01
k-5/3 wake L=120
0.001
E(k)
0.0001
1e-05
1e-06
1e-07 1
10 k
Figure 5.2: The one-dimensional spectrum of the kinetic energy of the simulation shown in figure 5.1. Units are arbitrary. The solid line is a guide to the eye to indicated that the spectrum follows a k−5/3 power law as predicted by the Kolmogorov theory and known from measurements of turbulent flow.
110
5
5.2 Turbulent wake
Figure 5.3: Turbulent velocity field in the wake of a rectangular obstacle at a nominal Reynolds number Re = 1400000. The computational mesh has 200×60×60 nodes and the Mach number is M a = 0.168. The viscosity was scaled to ν = 106 to obtain the same physical problem as in figure 5.1. The picture was obtained after the same physical time which accounts for half the number of time steps as compared to the finer simulation.
performed on a coarser grid. If the two results were found to be similar we could reason that refining the grid even more would not change the results any further. But if we compare figure 5.1 to the same simulation performed with only 200 × 60 × 60 nodes and with half the time steps and half the viscosity we obtain a different result (see figure 5.3). This has two obvious reasons: First, the flow field is chaotic and we would not even obtain the same results at the same resolution if we had the slightest discrepancy in the initial condition. Second, the finer simulation has eight times more nodes and resolves eight times more features. However, things are different if we do not try to compare snapshots but statistical averages of the flow fields. The statistical average of turbulent field is deterministic and different experiments or simulations can be compared to each other. The average flow field might also be of higher technical interest since we can extract values like average drag from it. There are at least three kinds of averaging: spatial averaging, temporal averaging, and ensemble averaging. The dimension over which we average is lost. Spatial averaging is hence ruled out here since it would not retain any geometrical information. In temporal averaging we loose the temporal resolution of the problem which is acceptable in the case at hand. To retain
111
5 Simulation of turbulent flow spatial and temporal resolution we had to repeat the simulation for many times with slightly different initial conditions to obtain ensembles of the flow field, which was very costly. Figure 5.4 compares the two temporally averaged flow fields. Even though, both simulations have not yet completely converged (they are not yet symmetric) large scale similarities are certainly evident. It is also possible to investigate higher temporal moments of the velocity field. Here we show only the variance (figure 5.5) as a measure of the turbulent energy. Turbulence is strongest in a certain distance behind the obstacle and gets weaker later on. The two simulations predict similar shapes of the turbulent cloud. However, the magnitude of the variance is larger in the fine simulations since more fluctuations are actually resolved.
5.3 Turbulence induced by Kelvin Helmholtz instability The next numerical experiment deals with the free decay of turbulence in a periodic domain without boundary conditions. Turbulence is first induced by two layers of constant flow in opposing directions and a small random perturbation. In between the two shear layers is a sudden inflection of the velocity which is not stable. The fluid is subject to a Kelvin Helmholtz instability which is known from ocean waves developing when the speed of the wind above water is different from the speed of the water. The presented setup does not not imply different densities for the fluids since that is not strictly necessary. For this simulation we use the floating point cascaded lattice Boltzmann algorithm with cut-off velocity vlimit = 0.4 (a velocity value which will not be reached in the simulation anyway). We chose a relatively coarse grid of 64 × 64 × 64 nodes and a nominal viscosity ν = 10−12 . The velocity in the two shear layers are initialized with vx1 = 0.01427 and vx2 = −0.01427 respectively. Visible roll-up of vortices in the inflection layer appears after 6000 time steps (see figure 5.6). The flow gets completely unstable over time and we observe free decay of turbulence which seems to have completely forgotten about the initial conditions (see figure 5.7). In order to investigate the effects of resolution we run the same simulation on a finer grid with 128 × 128 × 128 nodes and a viscosity ν = 2 × 10−12 to obtain the same physically problem. The results are, however, not the same. The time needed for the roll-up to start is pretty independent of viscosity. We see the roll-up after about 6000 time steps again irrespective of the fact that one time step in the coarse simulations corresponds to to two time steps in the fine simulation. But we have to remember that the inflection layer is now
112
5
5.3 Turbulence induced by Kelvin Helmholtz instability
Figure 5.4: The averaged turbulent velocity field in the wake of a rectangular obstacle as shown in figures 5.3 and 5.1. The top picture shows the velocity field of the coarse (200 × 60 × 60) simulation and the bottom picture shows the fine (400 × 120 × 120) simulation. The fine and the coarse simulations were allowed to run for 6160 and 3080 time steps respectively before averaging started. Samples were taken 120 and 60 time steps apart. The number of samples were 85 and 99. More samples were taken for the coarse simulation because they were easily available. Note that the fine simulation takes 16 times the time of the coarse simulation.
113
5 Simulation of turbulent flow
Figure 5.5: The variance of the temporal variations in the flow fields shown in figure 5.4 is a measure of the strength of the turbulence. Part of the flow field is not affected by turbulence. Strong turbulence is present in some proximity behind the obstacle. The higher resolved simulation at the bottom shows a much higher intensity of turbulent fluctuations.
114
5
5.3 Turbulence induced by Kelvin Helmholtz instability
Figure 5.6: Roll-up of vortices in the infection layer between two fluid layers which are moving in opposite directions. The grid has 64 × 64 × 64 nodes. The shown time steps range from 6000 to 10800.
115
5 Simulation of turbulent flow
Figure 5.7: The same simulation as shown in figure 5.6 from time step 12300 to 36300. The flow is now completely turbulent and has forgotten about its initial conditions.
116
5
5.3 Turbulence induced by Kelvin Helmholtz instability
Figure 5.8: Roll-up of vortices in the inflection layer between two fluid layers which are moving in opposite directions. The grid has 128 × 128 × 128 nodes. The shown time steps range from 5700 to 15300. This corresponds to the same physical time span as the results shown in figure 5.6. The roll-up occurs earlier here. There is significantly more detail present in this simulation as compared to the previous one.
117
5 Simulation of turbulent flow physically thiner and the initial fluctuations are physically larger. Figure 5.8 shows the same physical time span as figure 5.6. The simulation results are qualitatively similar but both contain features down to their grid resolutions. Neglecting short wavelength contributions to the flow field is hence not always possible. Figure 5.9 shows the spectra of kinetic energy of the simulations1 which comply with the Kolmogorov theory. The energy was normalized. The magnitude of the energy, measured after the same physical time, is different in the simulations since the decay started earlier in the fine simulation. It must be noted that the Kolmogorov theory is statistical in nature and states that the energy law holds on average. Any concrete flow condition contains structured vortex features which do not comply with this theory. Each individual measurement is hence necessarily noisy.
5.3.1 Resolution of turbulent flow We are interested in the effective resolution of the cascaded lattice Boltzmann automaton in the under-resolved case. In the previous simulations, the lattice spacing was much bigger than the Kolomogorov scale. All resolved wave numbers are nominally in the inertial range and should follow the energy spectrum law: E(k) = E0 k
−5/3
= E0
2π w
−5/3
(5.2)
Where E0 is a constant and w is the wavelength in multiples of grid spacings. We are interested in the smallest wavelength which complies with the energy spectrum law. We define compensated energy as E(k)k5/3 . If our result complies with the Kolmogorov theory, compensated Energy should be constant: E(k)k5/3 = E0 k−5/3+5/3 = E0
(5.3)
Figure 5.10 shows the compensated energy spectra from the free decay of turbulence induced by Kelvin Helmholtz instability versus wavelength. The compensated spectra should be horizontal. From the plots we would judge that the inertial range of turbulence goes down to six lattice spacings for both resolutions. The energy content at smaller scales is obviously too low for this Reynolds number. 1
For technical reasons, the simulations had to be repeated and were not completely identical
118
5.3 Turbulence induced by Kelvin Helmholtz instability
0.1
-5/3
5
k w=64 w=128 0.01
E(k)
0.001
0.0001
1e-05
1e-06
1e-07 1
10 k
Figure 5.9: The one-dimensional energy spectrum of the simulations shown in figures 5.7 and 5.8. Units are arbitrary. The solid line is a guide to the eye to indicated that the spectrum follows a k−5/3 power law. The wave numbers were scaled to the same range and the energy was scaled to a good superposition. The data for the coarse simulation was measured after 24000 time steps and the data for the simulation on the 128 × 128 × 128 grid was measured after 48000 time steps corresponding to the same physical time.
119
5 Simulation of turbulent flow
0.1
Ek5/3
0.01
0.001
w=64 w=128
0.0001 1
10 wavelength/grid spacing
100
Figure 5.10: Compensated spectra of kinetic energy of the decaying Kelvin Helmholtz instability (same data as in figure 5.9) versus wavelength in lattice spacings. Energy was normalized. The Fourier transform is ignorant of wavelength shorter than two lattice spacings due to the Nyquist-Shannon theorem. According to the Kolmogorov theory energy should depend on the wave number like E(k) ∼ k−5/3 . Consequently, E(k)k5/3 should be a constant and the plots should be horizontal in the inertial range, the range of turbulence which should span the whole measurable spectrum. Here it is the case for wavelength longer than six grid spacings. Six grid spacings could therefor be taken as the minimal wavelength at which we observe turbulent behavior.
120
5.4 Under-resolved laminar flow
In our last example we investigate whether the cascaded lattice Boltzmann automaton does also capture laminar flow conditions at minimal resolution. It is known [24] that laminar vortex shedding behind circular cylinders starts at Reynolds number 40. With the cascaded lattice Boltzmann automaton it is trivial to obtain much higher Reynolds numbers for a single node. Here we investigate whether an obstacle consisting of a single line of solid nodes is a sufficient approximation of a cylinder in the flow. The exact shape of the obstacle, whether it is round or square, is beyond the uncertainty of the lattice. We choose a domain with 100 × 50 × 50 nodes. The obstacle measures 1×1×30 nodes and the inflow velocity is vin = 0.0159. Two different Reynolds numbers are compared Re = 19.9 (obtained from ν = 8 × 10−4 ) and Re = 79 (obtained from ν = 2 × 10−4 ). The same pressure asymmetry is applied to the initial conditions in order to trigger the vortex generation. Both simulations were run for 100000 time steps. The results are, in fact, as anticipated. Vortex shedding starts after about 20900 time steps in the simulation with Re = 79 (see figures 5.11 and 5.12) while no vortex shedding occurs in the simulation with Re = 19.9 (see figure 5.13). Nevertheless, two stationary vortices are obviously present in the simulation, as we would expect at this Reynolds number. Their computational representation in the simulation is a negative velocity at the nodes directly behind the obstacle. The cascaded lattice Boltzmann automaton is hence seen to capture the correct fluid dynamic behavior down to a single lattice spacing in laminar flow.
5.5 Endnotes In conclusion we saw that the cascaded lattice Boltzmann automaton captures turbulent behavior at any possible Reynolds number. Accuracy is certainly an issue in highly under-resolved simulations. However, it should be stressed that highly under-resolved simulations were hitherto ruled out by instabilities. The intractability of fluid dynamic problems of scientific and engineering interest requires us for all foreseeable future and irrespective of all imaginable improvements in hardware to neglect the small scale components in our simulations. With the cascaded lattice Boltzmann automaton it becomes possible to perform under-resolved simulations without ad hock turbulence modeling and the second time due to slightly different initial conditions. The scientific result is not affected by this.
121
5
5.4 Under-resolved laminar flow
5 Simulation of turbulent flow
Figure 5.11: Velocity isosurface plots of the onset of vortex shedding behind an obstacle measuring 1× 1× 30 lattice spacings in a domain with 100 × 50 × 50 nodes. The Reynolds number is 79. Shown are time steps 20000 to 44000. Even though the object has the size of a single grid spacing, qualitatively correct fluid dynamic behavior is observed.
122
5
5.5 Endnotes
Figure 5.12: Cut through the velocity field of the same simulation as shown in figure 5.11 (Dimensions of obstacle 1 × 1 × 30, Reynolds number 79).
123
5 Simulation of turbulent flow
Figure 5.13: Flow field behind an obstacle measuring 1×1×30 lattice spacings at Reynolds number 19.9 after 100000 time steps. Two stationary vortices should form behind the obstacle at this Reynolds number. The physical size of the vortices is subgrid scale. Yet they are present in the simulations as can be seen from the fact that there is a back flow of fluid directly behind the obstacle. The blue isosurface indicates a velocity vx = −10−5 (opposite to the main flow direction). The isosurface is thinner than one single lattice spacing.
124
we should assume that this will become the main field of application for the cascaded lattice Boltzmann automaton. It goes without saying that resolved simulations should also benefit from the high accuracy of the cascaded lattice Boltzmann automaton. Nowhere did we explicitly assume in the derivation that the cascaded lattice Boltzmann automaton was supposed to run underresolved. It simply turned out that this is possible. The simulations of the minimal obstacle at Reynolds numbers 79 and 19.9 showed that we obtain the correct fluidic behavior down to the grid spacing and that the cascaded lattice Boltzmann automaton is also suitable for laminar flows. Even though the exact dimensions and the shape of the minimal obstacle are uncertain, it turned out that the transition of laminar steady flow to laminar unsteady flow happened in the right range of Reynolds numbers (the exact point of transition was not further investigated).
125
5
5.5 Endnotes
126
6 Conclusions
6
The techniques I developed for studying turbulence, like weather, also apply to the stock market. – Benoit Mandelbrot This thesis dealt with the theoretical description of simple fluids by means of an executable cellular automaton model. The subject is quite complicated and we had to focus strongly onto the mathematical theory. Now we might ask what was achieved, what has still to be done and what is the theory good for.
6.1 Efficiency In their classical paper on the multiple relaxation time (MRT) lattice Boltzmann automaton in three dimensions [10] the authors point at the superiority of their model as compared to the SRT model. They show simulation results at a grid Reynolds number Re1 = v/ν = 40 which means that the grid spacing exceeds the Kolmogorov scale η by one order of magnitude. With the grid Reynolds number being one order of magnitude larger than for the SRT model, the MRT lattice Boltzmann automaton should be 10000 times more efficient. The reason is that the same physical problem can be modeled with 1/10 of the grid length and hence with 1/10 of the number of time steps. The grid is extended in three dimensions, so the required number of nodes is 1/1000 of the nodes required for the SRT simulation. This qualifies certainly as a fundamental improvement. If we applied the same logic to the cascaded lattice Boltzmann automaton, we would arrive at an absurd conclusion. In the last chapter we saw simulations with a grid Reynolds number of Re1 = 48500, one thousand times larger than the grid Reynolds number of the MRT model. The same physical problem could be simulated with 10−9 times the number of nodes as compared to the MRT model and with 10−12 times the number of collision events. The conclusion is nonsense insofar as it is typically not possible to reduce the resolution of a given physical problem by a factor of 1000 without
127
6 Conclusions loosing relevant geometrical information. The more realistic conclusion is that the Reynolds number and the Kolmogorov scale are not the limiting factors for the applicability of the lattice Boltzmann automaton anymore. However, it is still instructive to discuss what this would mean for the comparison with MRT simulations. Given that the wake simulation from the last chapter took about 14 days on a single processor for 17000 time steps and used 5760000 nodes (exact values depend on implementation details and hardware and are not of interest for an order of magnitude calculation). If we used the MRT model and were forced to choose a grid Reynolds number of 40 we had to break up each node to 109 MRT nodes and would need 1000 times more time steps. This would be 5.76 × 1015 nodes and 17000000 time steps. Now let us apply the pessimistic assumption that the additional operations in the scattering cascade would make a single scattering event 100 times slower in the cascaded model as compared to the MRT model. Then the MRT model would still need 14 × 1010 days for the simulation given the absurd assumption that the memory management associated with 1015 nodes×15links×8bytes ∼ 1017 bytes, for storing the current state of the system only, would not cause any additional overhead. The 100000 terabyte machine had to work for 380 million years to solve this problem. To get hold of this time span we might take a look at the Devonian era 380 million years ago. This is the time when life claimed land. The first amphibian evolved from fish. The first insects and spiders appear and the earliest seed-bearing plants spread on land. Another 150 million years had to pass before the first dinosaur emerged. The span of 380 million years is the hole history of dry land life on earth. The 100000 terabytes computer would need just this time for the wake simulation which the cascaded lattice Boltzmann automaton performed in 14 days.
6.2 Turbulent flow The subject of under-resolved turbulent fluid simulations has been addressed by other means and the question will arise on how the cascaded lattice Boltzmann automaton compares to established methods of turbulence modeling. The subject of turbulence modeling is broad and we cannot discuss the pros and cons of every model here (see [22] for a thorough discussion on turbulence modeling). The intrinsic difficulty of the topic might already be anticipated from the number of different models in use. Was one of this models superior to the others in most respects, the others would be obsolete. From the theoretical point of view, turbulence models are in general not very good justified. Simple
128
turbulence models apply algebraic eddy viscosities. We have already discussed that the numerical errors that cause instabilities are unisotropic in nature and depend on the wave number while eddy viscosity is isotropic and acts on all wave numbers. More complicated models like the Reynolds averaged Navier Stokes equation approach account for the unsisotropy. The Reynolds averaged Navier Stokes equation has certain similarities to the cascaded lattice Boltzmann automaton since it solves the closure problem by assuming that higher velocity moments are in equilibrium. There are also some similarities to the method called large eddy simulation. There, a spatial filter is applied to the velocity field in order to remove short wavelength fluctuations. We recognized that equilibration of third order moments works effectively as a spatial filter for the subgrid scales. A benefit of the cascaded lattice Boltzmann automaton is that the filter is super compact (it is applied to a single node at a time). The flow field in large eddy simulations is only known down to the width of the filter. It should be noted that most turbulence models are dissipative in nature. This is especially true for all models which make use of the concept of eddy viscosity. It is tempting to speculate about a physical justification for this concept. However, we recognize that eddy viscosity is actually used for numerical stabilization of under-resolved simulations. The problem here is that if we justify eddy viscosity models on physical grounds we implicitly assume that we are able to adjust viscosity accurately in our model. This might be true for relatively high viscosities, low velocities, and low wave numbers. However, in under-resolved turbulent simulations we typically encounter viscosities which are very close to zero, severe velocity gradients, and flow structures at very high wave numbers. It cannot be honestly said that the viscosity in our model is under our control in this circumstances. In the opinion of this author it is one of the most important questions in turbulence modeling whether there exists any physical mechanism by which the discarding of high frequency components in the flow field may cause instabilities. Such a mechanism should be in contradiction to the second law of thermodynamics. Nature is in general not unstable and withdrawing energy from a system should actually make it even more stable. It is hence the opinion of this author that seeking justifications for turbulence modeling on physical grounds is at least questionable, especially if turbulence models are primarily used to stabilize otherwise unstable under-resolved simulations. We should not exclude the cascaded lattice Boltzmann automaton from what was said about turbulence modeling. But we should note that we were honest insofar as we justified noting on physical grounds. The cascaded lattice
129
6
6.2 Turbulent flow
6 Conclusions Boltzmann automaton is an idealized model. Physics was not involved in the derivation. We were not looking for physical truth but for a model that works out of pure logic. We might take it as a sign of virtue of the underlying theory that the cascaded lattice Boltzmann automaton solves the problem of turbulent flow simulations out of the box. However, that does not mean that some kind of turbulence model might not be beneficial in some cases. The role of this turbulence model was not one of stabilization but one of modeling the influence of the unresolved wave numbers on the resolved ones. In particular, it should be investigated whether it makes sense to feed the kinetic energy, which is lost due to the equilibration of high order moments, back into the system. An in-depth comparison of established turbulence models with the cascaded lattice Boltzmann automaton is certainly desired. This should be done by someone how is not preoccupied with one of the methods. The inventor of a certain scheme will always argue in favor for his own work.
6.3 Complexity The complexity of the cascaded lattice Boltzmann automaton is certainly problematic. The derivation of the scattering matrix and the collision cascade is a demanding task. Even worse is the computational effort which has to be put in the evaluation of the scattering operator. It might become difficult to apply the presented methodology to problems which include other effects like energy conservation, transport of passive or active scalars, multi-fluids and so on. The method of central moments is in principle simple but its results scale exponentially with the number of dimensions or included effects. The reason is the strong emphasis on mixed moments which grow very fast in number if new dimensions are added. It has not been investigated which mixed moments are negligible. We accepted the result of the central moments method as it was. However, the contribution of the high order terms might be very small. There is possibly a large potential for simplifications. Here it was the objective to show that the cascaded lattice Boltzmann automaton could be derived completely from first principle with all degrees of freedom constraint by Galilean invariance. However, the errors introduced by weakening some of the constraints might be acceptable. It should be emphasized that the cascaded lattice Boltzmann automaton is still simple and based upon a small number of basic concepts. The length
130
of the equations comes from the requirement to transform the center of mass coordinate system to the lattice coordinate system. It is instructive to investigate the case for which the notion of Galilean invariance was put forward in the first place. Galilei confronted the scientific community of his time with the debate on whether earth or the sun represents the center of the universe. As so many other debates in science, it was an argument on the wrong question. Neither earth nor the sun qualify as a center of the universe. The point of Galilean invariance is that a center is not necessary. The only argument in favor for a sun centered universe, at a time when the mechanisms of planetary motion were completely in the dark, was its scientific esthetic as it was simpler. It is interesting to note that Galilei had no possibility to test one theory against the other by deriving testable contradicting predictions concerning the planetary motions1 . That is so because both models where completely phenomenological descriptions of planetary motion seen from different coordinate systems. From the predictive point of view, there was no difference between them. One thing we should have learned from the Ptolemaic model is that a theory which is completely wrong might still produce correct predictions given that the number of adjustable parameters is large enough. This is, actually, the only reason why numerical modeling works in the first place. We build an idealized system that behaves the same way as some natural system. However, it sheds some light on our understanding of the problem under consideration whether we need to compile centuries of observations into our model parameters, like in the Ptolemaic model, or whether we obtain the parameters by simple reasoning. Coming back to the modeling of turbulent flow and the physical basis of turbulence models we have to recognize that turbulence models come typically with a large number of fit parameters. Of course, they might produce correct results, if the parameters are set correctly. But that can also be said for the Ptolemaic model of planetary motion. Occam’s razor would call for a model without fit parameter. The freedom from fit parameters is, therefore, one of the most important features of the cascaded lattice Boltzmann automaton. We did not compile empir1
Galilei’s insight was that the heavenly bodies were not what they seemed to be at this time. However, the existence of mountains on the moon, sunspots, and jovian moons do not qualify as evidence that earth was not the center of the universe. These facts are quite unrelated to this question. The proof that the Ptolemaic system was wrong is to be seen in his observations of the phases of venus [34]. The point here is that the mechanisms of the planetary motion were still unknown even with Galilei’s insight. The model favored by him did not improve the predictions of the motion of the heavenly bodies as compared to the predictions of the Ptolemaic model. It is hence understandable that he was not able to convince his contemporaries.
131
6
6.3 Complexity
6 Conclusions ical observations into a phenomenological model ignorant of the underlying mechanisms. We started with the knowledge of the underlying mechanisms and were forced by the nature of the cellular automaton to express them in a coordinate system which is bounded to the lattice. The conversion of the coordinate system results in a complicated model with many parameters. But we see that even if the equations of the cascaded lattice Boltzmann automaton remind us of complicated polynomial fits which are often used in engineering sciences to comply with empirical observations, each term in the equations is justified on theoretical basis.
6.4 Future challenges This thesis has not addressed certain topics which are essential for a successful application of the cascaded lattice Boltzmann automaton to problems of scientific or engineering interest. The most important are solid boundary conditions and local grid refinement. Both topics have been subject of intense studies in conjunction with other lattice Boltzmann automata and the obtained results might also suit the cascaded lattice Boltzmann automaton to some extend. However, there are certainly some challenges. The main concern in the modeling of solid boundary conditions in the standard lattice Boltzmann automaton is to capture boundaries which do not coincide with grid nodes [35–37]. This is a geometrical problem. With the high grid Reynolds numbers accessible with the cascaded lattice Boltzmann problem comes a new problem. The turbulent boundary layer on the surface on solid bodies is obviously much smaller than one lattice spacing. It is therefore necessary to included turbulent effects and surface parameters such as roughness into the boundary conditions. The subject of local grid refinement has been addressed by several authors [38–42]. The most common methods can be classified as finite volume based and interpolation based. The subject has probably not yet settled completely for the standard lattice Boltzmann automaton and it certainly has not sattled for the cascaded lattice Boltzmann automaton. The problem is the same as with the boundary conditions. The existing methods were developed for laminar flow conditions. Laminar flow is relatively smooth at short wavelength. Transfer of data from fine to coarse grids and vice versa is relatively straightforward, if velocity and pressure fields are smooth. Under turbulent conditions, things are quite different. We saw that turbulent effects are present down to the lattice spacing itself. For example, if a single vortex on the finer grid measures only two lattice spacings in diameter, it is simply impossible to transfer
132
it to a coarser grid. It must be necessary to apply same kind of filtering prior to transition. Some of the existing methods apply averaging which works as a primitive filter. However, averaging as well as interpolation causes additional numerical viscosity. Again, this is a bigger problem for the cascaded lattice Boltzmann automaton than for other methods since the nominal viscosity in the cascaded lattice Boltzman automaton is much lower. At grid interfaces the flow would experience a jump in viscosity by many orders of magnitude. However, we might be able to exploit the subgrid information coming from the higher order moments. This would be a conceptually new method of grid coupling and it would only be possible for the cascaded lattice Boltzmann automaton since only the cascaded lattice Boltzmann automaton keeps high order moments as physical (Galilean invariant) entities. The main difficulty with this approach is that the subgrid information is statistical in nature and cannot be translated to an unique subgrid flow field. There are always several possibilities. However, it should be possible to translate a patch of fine grid into a single node on a coarse grid by coding velocity gradients on the patch into higher order moments since the transition form a fine grid to a coarse grid is one in which information is destroyed. By coming from the coarse grid to the fine grid we might lend some entropy maximization methods from the entropic lattice Boltzmann automaton to find a reasonable approximation of the velocity gradients on the fine grid complying with the given higher order moments on the coarse gird. The subject is certainly a complicated one and only intense scientific work can show whether this is the way to go or not. A technical challenge is to replace the temporal and spatial averaging of the flow fields shown in the last chapter by ensemble averages. Then we could investigate the build-up of turbulence and its evolution in a temporally and spatially resolved fashion. This would certainly provide us with new insights into the nature of turbulence and had lots of practical applications in flow control. We could, for example, locate the critical points in space and time at which two nearly identical flows diverge. This would be the most vulnerable spots, the places where the butterfly had to flap its wings to decided over thunderstorm or no thunderstorm. At this points we had a tremendous influence on the flow. Whether this influence was deterministic and usable is a question which the ensemble averaged cascaded lattice Boltzmann automaton could answer. The application of ensemble averaging does not require any improvement of the theory. It simply requires more computational power. However, ensemble averaging might, in the long run, even be simpler, faster, and cheaper than spatial or temporal averaging. The reason is that ensembles are completely independent of each other and the corresponding simulations
133
6
6.4 Future challenges
6 Conclusions can be run in parallel without any need for communication between the jobs. Temporal averaging, on the other hand, requires one and the same job to run for a long time since turbulent features might be very persistent (the great red spot on Jupiter is such a turbulent feature which is known to exist for several centuries). With the introduction of grid computing into the scientific workflow comes to opportunity to lend a large number of processors for a short time. Ensembles can then be calculated independently and quickly since long simulations for temporal averaging are not necessary anymore. Finally, there are a bunch of other topics of scientific interest. The method of central moments must be applied to a velocity set that allows for energy conservation. According to Noether’s theorem [43] it should then be necessary to add invariance under time shift to the symmetry constraints. A minimal model for energy conservation in 1D has four speeds, since there are three conserved quantities. Applying the homogenous velocity set constraint we see that we need 43 = 64 speeds in three dimensions for a model of an ideal gas without internal degrees of freedom. This seems to be quite costly but it would be instructive to see whether the method of central moments could deliver such a model and whether this model turned out to be superior to other models for thermal flows. It would be desirable to have a cascaded lattice Boltzmann automaton that allows for the transport of passive or active scalars. In principle it is possible to use the computed flow field to move entities by interpolation, but this is not desirable due to the high numerical diffusion associated with interpolation. The cascaded lattice Boltzmann automaton solves the problem of passive transport with a very low numerical viscosity (note the small numerical viscosity we experienced when we moved momentum in y-direction with a flow field in x-direction). The numerical diffusion of any passive value would be the same as the small numerical viscosity if we modeled the new passive entity as a new dimension of the automaton. This would introduce many new mixed moments. It must be investigated which of the mixed moments could be neglected without introducing numerical viscosity. Other important topics include moving boundaries, multiphase flow, granular flow, non-Newtonian fluids, magneto hydrodynamics and the application to other transport phenomena like electrons and holes in semiconductors, phonons in solids, photons in semi-transparent media and electromagnetic waves interacting with soft material as seen in applications of magnetic resonance imaging.
134
6.5 Fields of applications
Turbulence is omnipresent in nature and it is an impossible task to name an exhaustive number of scientific fields that might benefit from the cascaded lattice Boltzmann method. Considering the pure sciences, it is evident that turbulence is by itself a subject of considerable interest which can only benefit from improvements in computational methods. Progress on a large number of topics in pure sciences is inhibited by our lack of understanding of turbulence. The new method could be applied to astrophysical problems, for example for investigating the turbulent interaction of solar wind with the ionosphere of the earth (albeit this would require some extension). The molten interior of earth is subject to turbulent flow which has profound implications on the evolution of its magnetic properties. Less exotic and somewhat more important applications can be seen in atmospheric and oceanic flows. The investigation of possible changes in the climate is one of the most outstanding scientific tasks in terms of its importance as well as in terms of the intractability. Climate simulations are necessarily under-resolved by many orders of magnitude. The subject requires considerably improvements of computational techniques. The same is true for the short term simulations associated with the weather forecast. An intermediate problem of significant importance is the simulation of micro climates in conjunction with civil engineering. For example, it was of considerable practical interest to simulate the erosion of coastlines in order to optimize the arrangement and design of coast protecting structures. Coast protecting structures might be very expensive to build and put in the wrong place they might worsen erosion by inducing turbulence. Well placed structures can induce sedimentation which might result in protective sandbanks which are much larger than anything which could be made by man. A similar problem was to investigate the flow around buildings in the planing phase. There are two points of interest: What does the micro climate do to the building and what does the building do to the micro climate? The first question is of interest for the civil engineer who wants that the building, for example a bridge, is not negatively effected by severe wind loads. She or he might then design the building to fit to the preferred wind directions. The second point is of importance for the environment. The planed constructions should not have negative effects on the micro climate in the area. For example, it should not stop vital fresh air supplies to nearby cities and cause the development of smog. On a little smaller scale but still at Reynolds numbers exceeding one billion, one would like to optimize the design of large buildings like bridges
135
6
6.5 Fields of applications
6 Conclusions and the structures on top of them to reduce wind induced oscillations. For underwater structures in proximity or contact to the ground, such as poles of bridges, undersea cables, and pipelines, it is instructive to investigate the turbulence induced by the obstacle in order to optimize their design for a minimum for erosion in the turbulent wake since this could eventually cause the collapse of the supporting ground which might result in the destruction of the structure. But turbulence plays in important role at much smaller scales of engineering interest. It is obvious that automotive design as well as airplane design depends heavily on the availability of efficient and valid models for turbulent flow. This is true for the external as well as for the internal components of vehicles. The efficiency of motors depends on several fluidic components which are all subject to turbulence. Air must be brought to the combustion chamber efficiently. Inside the combustion chamber, turbulence is required for an efficient mixing of fuel and air. The combustion process by itself is turbulent. Finally, the combustion products have to be removed from the combustion chamber efficiently. This is true for the petrol engine of a car, the Diesel engine of a ship and the jet engine of an aircraft. Objects might be optimized for high turbulence or low turbulence. For example we might want to reduce turbulence in gas pipelines since turbulence induces additional pressure drops. But we would certainly try to induce turbulence wherever mixing or cooling is required. In both cases we need efficient and valid models for the simulation of turbulent flow. Without genuine models, the engineer might arrive at a reasonable design based on her or his experience. But engineering experience cannot be automatized. With a trustworthy model for turbulent flow comes the possibility to apply automated methods for optimal design, like shape and topology optimization techniques, to engineering problems which could otherwise only be solved approximately by inspiration or by design iteration in hardware. The low numerical viscosity of the cascaded lattice Boltzmann automaton and the implied high accuracy is also beneficial when no real turbulence is possible like, for example, in micro fluidic applications. Even laminar vortex shedding drives some computational tools to its limits. The cascaded lattice Boltzmann automaton can be used to simulate unsteady flow at a minimal resolution and hence with minimal cost. Optimization of micro fluidic structures, such like micro mixers, will benefit from the quick simulations. With the higher efficiency comes the opportunity to use many iterations of the optimization cycle in order to obtain better designs. Finally it should be noted that there might be applications for the cascaded
136
6.6 Endnotes
6
lattice Boltzmann automaton which are neither scientific in nature nor of engineering interest. There is, potentially, a large market for realistic simulation tools for turbulent fluids in artistic communities. Movie makers as well as computer game designers want to capture the effects of water flow, smoke, and fire with computational methods. The accuracy requirements of the models seem to be trivial at scientific standards. However, lack of accuracy tends to introduce artificial viscosity and inhibits turbulence. Customers have experience with real world turbulence and recognize the weak performance of the applied models quickly.
6.6 Endnotes In conclusions, we have obtained an executable simulation model for simple fluids from first principles. We found insight into the mechanisms of numerical instabilities in such models and found simple ways to cure them. The limits for accuracy, which we could not push any further, turned out to be quite fundamental ones. Turbulent fluid motion was captured down to a few lattice spacings. We recognized that information we had on scales smaller than the lattice spacing is incomplete and must be discarded. But even with the discarding of subgrid information the new model turned out to have intrinsic capabilities for the simulation of turbulent flow. The range of accessible Reynolds numbers in lattice Boltzmann simulations has been enlarged by several orders of magnitude. The obtained improvements in terms of computational efficiency are so large that they cannot be attributed to a simple extension of the known theory. The method of central moments differs substantially from previous techniques used to derive lattice Boltzmann automata. The availability of an efficient tool for the simulation of turbulent flow might have profound implications on many fields of pure and applied sciences in which progress is currently inhibited by our lack of understanding of turbulence. Finally it should be noted that fluid dynamics is not necessarily the only subject for which it makes sense to derive executable cellular automaton models and that the method of central moments might be applied to other problems. The essence of the method of central moments is to establish invariance constraints to a system that seems to depend on the coordinate system. If a system is not invariant under any transformation of the coordinate system, it must be possible to obtain characteristics of the system that specify a special coordinate system in which the system evolution has to be described. The system is then invariant under transformations of the coor-
137
6 Conclusions dinate system, if the characteristic coordinate system is unique and can be obtained from any coordinate system. For the lattice Boltzmann automaton the characteristic point is the mean of the velocity distribution, the only special point in the system. Other systems might have other characteristic points and may also include characteristic directions and distances. However, the methodology should be quite universal. As a final remark we should note that the improvements of the lattice Boltzmann automaton introduced here are mostly trivial and far from being new (a notable exception is the scattering cascade). Others used complete homogenous velocity sets like the D3Q27 lattice. Others tried higher order equilibria. Others equilibrated higher order moments. The difficulties we encountered are related to the non-linear nature of turbulence and the multi-causality of numerical instabilities. The important point here is that none of the introduced corrections lead to a significant improvement one their own. Our analytical mind is used to gradual improvements. We would, for example, compare the SRT model on a D3Q19 lattice to a SRT model on a D3Q27 lattice. If we found that we were able to increase the lattice Reynolds number by one order of magnitude, we might proceed with the D3Q27 lattice. However, in reality we would not find a significant improvement and would instead try to increase the polynomial order for the equilibrium for the D3Q19 lattice since our linear mind had already ruled out any benefits from the D3Q27 lattice. Once again we would not find a significant improvement over the standard model and would abandon this idea, too. What we needed to understand was that each source of instability strikes roughly at the same point, namely when the energy cascaded of turbulence reaches length and time scales which are comparable to the grid spacings and the time steps. Therefore, stability is only obtained by eliminating all sources of instability simultaneously. The difficulty of the subject discussed in this thesis is that we could not proceed by trial and error. There is no path of gradual advancement coming from the standard lattice Boltzmann automaton to the new model. We were blinded by the complexity of the problem and cold logic was our only guide in the maze of non-linearity. The nature of turbulence, the most important unsolved problem of classical physics, remains still in the dark. But at least we can say that we had a first sensation of light in the distance. We found a direction and made the first step.
138
Appendices
139
A
A Minimal cascaded lattice Boltzmann automaton in 3D These considerations justify the view that a considerable mathematical effort towards a detailed understanding of the mechanism of turbulence is called for. The entire experience with the subject indicates that the purely analytical approach is beset with difficulties, which at this moment are still prohibitive. The reason for this is probably as was indicated above: That our intuitive relationship to the subject is still too loose – not having succeeded at anything like deep mathematical penetration in any part of the subject, we are still quite disoriented as to the relevant factors, and as to the proper analytical machinery to be used. Under these conditions there might be some hope to ’break the deadlock’ by extensive, but well-planned, computational efforts. It must be admitted that the problems in questions are too vast to be solved by a direct computational attack, that is, by an outright calculation of a representative family of special cases. There are, however, strong indications that one could name certain strategic points in this complex, where relevant information must be obtained by direct calculations. If this is properly done, and the operation is then repeated on the basis of broader information then becoming available, etc., there is a reasonable chance of effective real penetrations in this complex of problems and gradually developing a useful, intuitive relationship to it. This should, in the end, make an attack with analytical methods, that is truly more mathematical, possible. – John von Neumann This appendix lists the scattering matrix and the equilibria for the minimal cascaded lattice Boltzmann automaton in three dimensions. The model can be derived the same way as we derived the two-dimensional model. Only the
141
A Minimal cascaded lattice Boltzmann automaton in 3D results are shown since the derivation is lengthy and does not provide new theoretical insights. It should be noted that the rotational invariance constraint for higher order moments is trivially met if all moments of a given order relax with the same relaxation constant. This allows us to be less stringent in the choice of the elementary collisions for higher order moments.
A.1 Scattering matrix The scattering matrix contains the vectors for the conserved moments and the vectors for the elementary collisions in the following order: Mρ , Mx , My , Mz , Kxy , Kxz , Kyz , Kxx−yy , Kxx−zz , Kxx+yy+zz , Kxyy+xzz , Kxxy+yzz , Kxxz+yyz , Kxyy−xzz , Kyzz−xxy , Kxxz−yyz , Kxyz , Kxxyy+xxzz+yyzz , Kxxyy+xxzz−yyzz , Kxxyy−xxzz , Kxxyz , Kxyyz , Kxyzz , Kxyyzz , Kxxyzz , Kxxyyz , and Kxxyyzz . The matrix reads:
142
2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 −1 −1 −1 0 1 1 1 0 0 −1 0 1 0 0 −1 0 1 0 −1 1 1 −1 −1 1 1 −1
0 1 0 −1 −1 −1 0 1 1 1 0 −1 0 0 1 0 −1 0 0 1 1 1 1 −1 −1 −1 −1
0 0 0 0 0 0 0 0 0 1 1 1 1 1 −1 −1 −1 −1 −1 −1 −1 1 1 −1 −1 1 1
0 1 0 −1 0 1 0 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 −1 0 0 −1 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 −1 0 1 0 0 1 0 −1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 −1 0 1 0 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0 0 0 0 0 0 −1 0 0 0 0 −1 0 0 0 0 0 0 0 0
−30 8 −11 8 −11 8 −11 8 −11 8 8 8 8 −11 8 8 8 8 −11 0 0 0 0 0 0 0 0
0 −1 4 −1 0 1 −4 1 0 0 −1 0 1 0 0 −1 0 1 0 0 0 0 0 0 0 0 0
0 1 0 −1 4 −1 0 1 −4 1 0 −1 0 0 1 0 −1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 −4 −1 −1 −1 −1 4 0 0 0 0 0 0 0 0
0 −1 0 −1 0 1 0 1 0 0 1 0 −1 0 0 1 0 −1 0 0 0 0 0 0 0 0 0
0 −1 0 1 0 1 0 −1 0 1 0 −1 0 0 1 0 −1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 −1 1 −1 1 0 1 −1 1 −1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 −1 1 −1 −1 1 −1 1
12 1 −4 1 −4 1 −4 1 −4 1 1 1 1 −4 1 1 1 1 −4 0 0 0 0 0 0 0 0
0 1 −4 1 2 1 −4 1 2 −2 1 −2 1 2 −2 1 −2 1 2 0 0 0 0 0 0 0 0
0 1 0 1 −2 1 0 1 −2 0 −1 0 −1 2 0 −1 0 −1 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 −2 0 2 0 0 2 0 −2 0 0 −1 −1 1 1 1 1 −1 −1
0 0 0 0 0 0 0 0 0 0 2 0 −2 0 0 −2 0 2 0 1 −1 1 −1 1 −1 1 −1
0 2 0 −2 0 2 0 −2 0 0 0 0 0 0 0 0 0 0 0 −1 1 1 −1 1 −1 −1 1
0 2 −4 2 0 −2 4 −2 0 0 2 0 −2 0 0 2 0 −2 0 −1 1 1 −1 −1 1 1 −1
0 −2 0 2 −4 2 0 −2 4 −2 0 2 0 0 −2 0 2 0 0 1 1 1 1 −1 −1 −1 −1
0 0 0 0 0 0 0 0 0 −2 −2 −2 −2 4 2 2 2 2 −4 −1 −1 1 1 −1 −1 1 1
−8 −2 4 −2 4 −2 4 −2 4 −2 −2 −2 −2 4 −2 −2 −2 −2 4 1 1 1 1 1 1 1 1
3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5
A.1 Scattering matrix
143
A
A Minimal cascaded lattice Boltzmann automaton in 3D
A.2 Length of collision vectors For the scattering process we need to compute the length of the scattering vectors. The derivation is the same as for the 2D model. We solve: κpost = xm y n z l
X (si + (K · k)i )(cix − vx )m (ciy − vy )n (ciz − vz )l /ρ
(A.1)
i
for k. The equilibria for the one dimensional second order central moments are κxx = κyy = κzz = c2s for normalized density. Here we assume density ρ. The speed of sound for p this model is fixed to the same value as in the one-dimensional case (cs = 1/3). The equilibria for the remaining second order central moments are zero. This gives: kxy =⌊ων (ne + neb + nef − nw − nwb − nwf − se − seb−
(A.2)
kxz =⌊ων (−eb + ef − neb + nef + nwb − nwf
(A.3)
kyz =⌊ων (−nb − neb + nef + nf − nwb + nwf + sb + seb
(A.4)
sef + sw + swb + swf − vx vy ρ)/4)⌋
− seb + sef + swb − swf + wb − wf − vx vz ρ)/4⌋
− sef − sf + swb − swf − vz vy ρ)/4⌋
kxx−yy =⌊ων 1/6(−b − e − f + nb + ne + nf + nw + sb + se
(A.5)
+ sf + sw − w + 2(−eb − ef + n + s − wb − wf )
+ ρ(vz2 − 2vy2 + vx2 ))⌋
kxx−zz = ⌊ων 1/6(−e + eb + ef − n + nb + nf − s + sb + sf − w
(A.6)
+ wb + wf + 2(b + f − ne − nw − se − sw)
+ ρ(vx2 + vy2 − 2vz2 ))⌋
kxx+yy+zz = ⌊ωBU LK 1/126(−b − e − f − n − s − w + 2(−eb − ef
(A.7)
− nb − ne − nf − nw − sb − se − sf − sw − wb − wf )
+ 3(−neb − nef − nwb − nwf − seb − sef − swb − swf )
+ ρ(1 + vy2 + vz2 + vx2 ))⌋
For simplification we use only two relaxation constants ων for the kinematic viscosity and ωBU LK for the bulk viscosity. The bulk viscosity is typically
144
not considered since this would imply the need for energy conservation. In the nearly incompressible case we would choose ωBU LK = 1 to equilibrate the trace of the second order moments. The same is true for all remaining moments. In the following all scattering constants are omitted since we assume equilibration of all higher order moments. For third order moments all equilibria are zero and we get:
kxyy+xzz =⌊(1/8(nw + sw + wf + wb − eb
(A.8)
− ef − ne − se + vx (b + eb + ef + 84kxx+yy+zz
+ f + n + ne + nw + s + se + sw + wb + wf
+ 2(nb + neb + nef + nf + nwb + nwf + sb + seb + sef + sf + swb + swf + (−kxx−yy − kxx−zz ))))
+ 1/4(−neb − nef + nwb + nwf − seb − sef + swb + swf
− vy (−ne − neb − nef + nw + nwb + nwf + se + seb + sef
− sw − swb − swf + 4kxy )
− vz (eb − ef + neb − nef − nwb + nwf + seb − sef − swb
+ swf − wb + wf + 4kxz )) − 1/4vx ρ(vy2 + vz2 ))⌋
kxxy+yzz =⌊(1/8(sb + sf + se + sw − nw − ne
(A.9)
− nf − nb + vy (b + e + 84kxx+yy+zz
+ f + nb + ne + nf + nw + sb + se + sf + sw + w + 2(eb + ef + neb + nef + nwb + nwf + seb + sef + swb + swf + wb + wf + kxx−yy ))) + 1/4(−neb − nef − nwb − nwf + seb + sef + swb + swf
− vx (−ne − neb − nef + nw + nwb + nwf + se + seb + sef
− sw − swb − swf + 4kxy )
− vz (nb + neb − nef − nf + nwb − nwf − sb − seb
+ sef + sf − swb + swf + 4kyz )) − 1/4vy ρ(vz2 + vx2 ))⌋
145
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D kxxz+yyz =⌊(1/8(eb + nb + sb + wb − ef − nf
(A.10)
− sf − wf + vz (e + eb + ef + n + nb + nf + s + sb + sf +
w + wb + wf + 84kxx+yy+zz
+ 2(ne + neb + nef + nw + nwb + nwf + se + seb + sef + sw + swb + swf + kxx−zz ))) + 1/4(−nef + neb + nwb − nwf + seb − sef + swb − swf − vx (eb − ef + neb − nef − nwb + nwf + seb − sef
− swb + swf − wb + wf + 4kxz )
− vy (nb + neb − nef − nf + nwb − nwf − sb − seb + sef + sf − swb + swf + 4kyz )) − 1/4vz ρ(vx2 + vy2 ))⌋
kxyy−xzz =⌊(1/8(eb + ef − ne + nw − se + sw − wb − wf
(A.11)
+ vx (−b − eb − ef − f + n + ne + nw + s + se
+ sw − wb − wf + 2(kxx−zz − kxx−yy )))
+ 1/4(vz XZ − vy XY + ρvx (vz2 − vy2 )))⌋
kyzz−xxy =⌊(1/8(ne − nb − nf + nw + sb − se + sf − sw
(A.12)
+ vy (−e + b + f + nb − ne + nf − nw + sb − se
+ sf − sw − w + 2(−kxx−yy − 2kxx−zz )))
+ 1/4(vx XY − vz Y Z + ρvy (vx2 − vz2 )))⌋
kxxz−yyz =⌊(1/8(eb − ef − nb + nf − sb + sf + wb − wf
(A.13)
+ vz (e + eb + ef − n − nb − nf − s − sb − sf
+ w + wb + wf + 2(kxx−zz + 2kxx−yy ))) + 1/4(vy Y Z − vx XZ + ρvz (vy2 − vx2 )))⌋
kxyz =⌊1/8(neb − nef − nwb + nwf − seb + sef + swb − swf
(A.14)
− vx Y Z − vy XZ − vz XY − 2ρvx vy vz )⌋
For fourth order moments we need to consider the non-zero equilibrium eq eq eq 2 4 κeq xxyy = κxxzz = κyyzz = (κxx ) = cs . This gives 1/9 in the normalized case (ρ/9 without normalization of the moments). The equilibrium of all other fourth order central moments is zero.
146
kxxyy+xxzz+yyzz =⌊1/12(ρ/3 − 96kxx+yy+zz /
(A.15)
− eb − ef − nb − ne − nf − nw − sb − se − sf − sw − wb − wf
− 3(nwf + nwb + nef + neb + swf + swb
+ sef + seb) + 2(vx X + vy Y + vz Z)
+ vx2 (−84kxx+yy+zz − b − eb − ef − f
− n − ne − nw − s − se − sw − wb − wf
+ 2((kxx−yy + kxx−zz )
− nb − neb − nef − nf − nwb − nwf − sb − seb
− sef − sf − swb − swf ))
+ vy2 (−84kxx+yy+zz − b − e − f − nb
− ne − nf − nw − sb − se − sf − sw − w
+ 2(−kxx−yy − eb − ef − neb − nef
− nwb − nwf − seb − sef − swb − swf − wb − wf ))
+ vz2 (−84kxx+yy+zz − e − eb − ef − n
− nb − nf − s − sb − sf − w − wb − wf
+ 2(−kxx−zz − ne − neb − nef − nw
− nwb − nwf − se − seb − sef − sw − swb − swf )) + 4(vx vy XY + vx vz XZ + vy vz Y Z) + 3ρ(vx2 vy2 + vx2 vz2 + vy2 vz2 ))⌋
147
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D kxxyy+xxzz−yyzz =⌊1/12(−eb − ef − ne − nw − se − sw − wb − wf
(A.16)
+ 2(nb + nf + sb + sf + vx X
+ vy (ne − neb − nef + nw − nwb − nwf − se
+ seb + sef − sw + swb + swf
+ 2(sf + sb − nb − nf − (2kxxy+yzz + 6kyzz−xxy ))) + vz (ef − eb + neb − nef + nwb − nwf
+ seb − sef + swb − swf − wb + wf
+ 2(nb − nf + sb − sf − (2kxxz+yyz − 6kxxz−yyz ))))
+ vx2 (−b − eb − ef − f − n − ne
− nw − s − se − sw − wb − wf − 84kxx+yy+zz
− 2(nb + neb + nef + nf + nwb + nwf + sb + seb
+ sef + sf + swb + swf − (kxx−yy + kxx−zz )))
+ vy2 (eb − e + ef − ne + neb + nef
− nw + nwb + nwf − se + seb
+ sef − sw + swb + swf − w + wb + wf + 42kxx+yy+zz
+ 2(b + f + nb + nf + sb + sf − (kxx−yy + 3kxx−zz ))) + vz2 (ne − e − eb − ef + neb + nef + nw + nwb + nwf + se + seb
+ sef + sw + swb + swf − w − wb − wf + 42kxx+yy+zz
+ 2(n + nb + nf + s + sb + sf − (kxx−zz + 3kxx−yy )))
+ 4(vx (vy XY + vz XZ)) − 8vy vz Y Z
+ (−6vy2 vz2 + 3vx2 (vy2 + vz2 ))ρ)⌋
148
kxxyy−xxzz =⌊1/12(−nb − ne − nf − nw − sb − se − sf − sw
(A.17)
+ 2(eb + ef + wb + wf
+ vx (ne − neb − nef − nw + nwb + nwf + se − seb
− sef − sw + swb + swf
+ 2(wb + wf − eb − ef − (2kxyy+xzz − 6kxyy−xzz ))) + vy Y
+ vz (nf − nb + neb − nef + nwb − nwf − sb + seb
− sef + sf + swb − swf
+ 2(eb − ef + wb − wf − (2kxxz+yyz + 6kxxz−yyz ))))
+ vx2 (nb − n − ne + neb + nef + nf − nw + nwb + nwf
− s + sb − se + seb + sef + sf − sw + swb + swf + 42kxx+yy+zz
+ 2(b + eb + ef + f + wb + wf + (kxx−yy − 2kxx−zz )))
− vy2 (b + e + f + nb + ne + nf
+ nw + sb + se + sf + sw + w + 84kxx+yy+zz + 2(eb + ef + neb + nef + nwb + nwf + seb + sef + swb + swf + wb + wf + kxx−yy )) + vz2 (ne − n − nb + neb + nef − nf + nw + nwb + nwf
− s − sb + se + seb + sef − sf + sw + swb + swf + 42kxx+yy+zz
+ 2(e + eb + ef + w + wb + wf + (3kxx−yy + 2kxx−zz ))) + 4vy (vx XY + vz Y Z) − 8vx vz XZ + (−6vx2 vz2 + 3(vx2 + vz2 )vy2 )ρ)⌋ kxxyz =⌊1/8(neb − nef + nwb − nwf − seb + sef − swb + swf
(A.18)
+ vy Zp + vz Yn + 2vx (XY Z + vy XZ + vz XY )
+ vx2Y Z + vy vz P A + ρ3vx2 vy vz )⌋ kxyyz =⌊1/8(neb − nef − nwb + nwf + seb − sef − swb + swf
(A.19)
+ vx Zn + vz Xp + 2vy (XY Z + vx Y Z + vz XY )
+ vy2 XZ + vx vz P C + ρ3vy2 vx vz )⌋ kxyzz =⌊1/8(nwb − neb − nef + nwf + seb + sef − swb − swf
(A.20)
+ vx Yp + vy Xn + 2vz (XY Z + vy XZ + vx Y Z)
+ vz2 XY + vx vy P B + ρ3vz2 vx vy )⌋ (A.21)
149
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D All equilibria of fifth order central moments are zero. This gives:
kxyyzz =⌊1/8(nwb − neb − nef + nwf − seb − sef + swb + swf − vx A − 2(vy XY ZZ + vz XY Y Z) −
(A.22)
vy2 Xn
− vz2 Xp + 2vx (−vy Yp − vz Zn )
− 4vy vz (XY Z + vx Y Z) − vx (vz2 P C + vy2 P B) − 2(vy2 vz XZ + vy vz2 XY ) − 4vx vy2 vz2 ρ)⌋
kxxyzz =⌊1/8(seb − neb − nef − nwb − nwf + sef + swb + swf − vy C − 2(vx XY ZZ + vz XXY Z) −
(A.23)
vx2 Yp
− vz2 Yn + 2vy (−vx Xn − vz Zp )
− 4vx vz (XY Z + vy XZ) − vy (vx2 P B + vz2 P A) − 2(vx2 vz Y Z + vx vz2 XY ) − 4vy vx2 vz2 ρ)⌋
kxxyyz =⌊1/8(neb − nef + nwb − nwf + seb − sef + swb − swf − vz CA − 2(vx XY Y Z + vy XXY Z) −
(A.24)
vx2 Zn
− vy2 Zp + 2vz (−vx Xp − vy Yn )
− 4vx vy (XY Z + vz XY ) − vz (vx2 P C + vy2 P A) − 2(vx2 vy Y Z + vx vy2 XZ) − 4vx2 vy2 vz ρ)⌋
The only sixth order moment that we are able to fit has equilibrium c6s (1/27
150
or ρ/27 in the normalized and non normalized case respectively): kxxyyzz =⌊1/8(ρ/27 − neb − nef − nwb − nwf − seb − sef − swb − swf (A.25) + 2(vx (neb + nef − nwb − nwf + seb + sef − swb − swf
+ 8kxyyzz )
+ vy (neb + nef + nwb + nwf − seb − sef − swb − swf + 8kxxyzz )
+ vz (−neb + nef − nwb + nwf − seb + sef − swb + swf + 8kxxyyz )) + vx2 A + vy2 C + vz2 CA
+ 4(vx vy XY ZZ + vx vz XY Y Z + vy vz XXY Z) + 2(vx2 vy Yp + vx2 vz Zn + vy2 vz Zp + vx vy2 Xn + vx vz2 Xp + vz2 vy Yn ) + 8vx vy vz XY Z + vx2 vz2 P C + vx2 vy2 P B + vy2 vz2 P A + 4vx vy vz (vz XY + vy XZ + vx Y Z) + 5ρvx2 vy2 vz2 )⌋ To simplify the equations we used some substitutions:
XY = − ne − neb − nef + nw + nwb + nwf + se + seb
(A.26)
XZ =eb − ef + neb − nef − nwb + nwf + seb − sef − swb
(A.27)
Y Z =nb + neb − nef − nf + nwb − nwf − sb − seb + sef
(A.28)
X =eb + ef + ne − nw + se − sw − wb − wf + 8kxyy+xzz
(A.29)
Y =nb + ne + nf + nw − sb − se − sf − sw + 8kxxy+yzz
(A.30)
Z =ef − eb − nb + nf − sb + sf − wb + wf + 8kxxz+yyz
(A.31)
+ sef − sw − swb − swf + 4kxy
+ swf − wb + wf + 4kxz
+ sf − swb + swf + 4kyz
+ 2(neb + nef − nwb − nwf + seb + sef − swb − swf )
+ 2(neb + nef + nwb + nwf − seb − sef − swb − swf )
+ 2(nef − neb − nwb + nwf − seb + sef − swb + swf )
151
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D Xn =eb + ef + neb + nef − nwb − nwf + seb + sef − swb
(A.32)
Xp =ne + neb + nef − nw − nwb − nwf + se + seb + sef
(A.33)
Yn =ne + neb + nef + nw + nwb + nwf − se − seb − sef
(A.34)
Yp =nb + neb + nef + nf + nwb + nwf − sb − seb − sef
(A.35)
Zn =nef − nb − neb + nf − nwb + nwf − sb − seb + sef
(A.36)
Zp =nef − eb + ef − neb − nwb + nwf − seb + sef − swb
(A.37)
− swf − wb − wf + 4(kxyy+xzz − kxyy−xzz )
− sw − swb − swf + 4(kxyy+xzz + kxyy−xzz )
− sw − swb − swf + 4(kxxy+yzz − kyzz−xxy )
− sf − swb − swf + 4(kxxy+yzz + kyzz−xxy )
+ sf − swb + swf + 4(kxxz+yyz − kxxz−yyz )
+ swf − wb + wf + 4(kxxz+yyz + kxxz−yyz )
XY Z = − neb + nef + nwb − nwf + seb − sef − swb + swf + 8kxyz (A.38)
P A = − 42kxx+yy+zz − e − eb − ef − ne − neb − nef − nw − nwb
(A.39)
− nwf − se − seb − sef − sw − swb − swf − w − wb − wf
− 2(kxx−yy + kxx−zz )
P B = − 42kxx+yy+zz − b − eb − ef − f − nb − neb − nef − nf − nwb (A.40) − nwf − sb − seb − sef − sf − swb − swf − wb − wf
+ 2kxx−zz
P C = − 42kxx+yy+zz − n − nb − ne − neb − nef − nf − nw − nwb (A.41) − nwf − s − sb − se − seb − sef − sf − sw − swb − swf
+ 2kxx−yy
152
A =4kxxyy+xxzz−yyzz − 32kxx+yy+zz − nb − neb − nef − nf − nwb (A.42) − nwf − 4kxxyy+xxzz+yyzz − sb − seb − sef − sf − swb − swf
C =4(kxxyy−xxzz − kxxyy+xxzz+yyzz ) − eb − ef − 32kxx+yy+zz
− neb − nef − nwb − nwf − seb − sef − swb − swf − wb − wf
CA = − 4(kxxyy+xxzz−yyzz + kxxyy−xxzz + kxxyy+xxzz+yyzz )
(A.43)
− 32kxx+yy+zz − ne − neb − nef − nw − nwb − nwf − se − seb − sef − sw − swb − swf
XY ZZ =nwb − neb − nef + nwf + seb + sef − swb − swf − 8kxyzz (A.44) XY Y Z =neb − nef − nwb + nwf + seb − sef − swb + swf − 8kxyyz (A.45) XXY Z =neb − nef + nwb − nwf − seb + sef − swb + swf − 8kxxyz (A.46) The final result is given by:
or explicitly:
s ← s + K·k
r ← r + (12kxxyy+xxzz+yyzz − 30kxx+yy+zz − 8kxxyyzz )
nw ← nw + kxxyy−xxzz + kxxyy+xxzz−yyzz − kxyy−xzz − kyzz−xxy
(A.47)
(A.48) (A.49)
− kxyy+xzz + kxxy+yzz + kxy + kxxyy+xxzz+yyzz
+ 8kxx+yy+zz + 2(−kxxyyzz − kxxyyz + kxyyzz + kxyzz )
w ← w − 2kxxyy+xxzz−yyzz + 4kxyy+xzz − 11kxx+yy+zz
(A.50)
+ kxx−yy + kxx−zz − 4kxxyy+xxzz+yyzz + 4(−kxyyzz + kxxyyzz )
sw ← sw + kxxyy+xxzz−yyzz + kxxyy−xxzz − kxyy−xzz + kyzz−xxy
(A.51)
− kxyy+xzz − kxxy+yzz − kxy + kxxyy+xxzz+yyzz
+ 8kxx+yy+zz + 2(−kxxyyzz + kxxyyz + kxyyzz − kxyzz )
s ← s − 2kxxyy−xxzz + 4kxxy+yzz − 11kxx+yy+zz − kxx−yy
(A.52)
− 4kxxyy+xxzz+yyzz + 4(−kxxyyz + kxxyyzz )
153
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D se ← se + kxxyy+xxzz−yyzz + kxxyy−xxzz + kxyy−xzz + kyzz−xxy
(A.53)
+ kxyy+xzz − kxxy+yzz + kxy + kxxyy+xxzz+yyzz
+ 8kxx+yy+zz + 2(−kxxyyzz + kxxyyz − kxyyzz + kxyzz ) e ← e − 2kxxyy+xxzz−yyzz − 4kxyy+xzz − 11kxx+yy+zz + kxx−yy
(A.54)
ne ← ne + kxxyy−xxzz + kxxyy+xxzz−yyzz + kxyy+xzz + kxxy+yzz
(A.55)
+ kxx−zz − 4kxxyy+xxzz+yyzz + 4(kxyyzz + kxxyyzz )
+ kxyy−xzz − kyzz−xxy − kxy + kxxyy+xxzz+yyzz
+ 8kxx+yy+zz + 2(−kxxyyzz − kxxyyz − kxyyzz − kxyzz ) n ← n − 2kxxyy−xxzz − 4kxxy+yzz − 11kxx+yy+zz − kxx−yy
(A.56)
nf ← nf − kxxyy+xxzz−yyzz + kyzz−xxy − kxxz−yyz + kxxy+yzz
(A.57)
− 4kxxyy+xxzz+yyzz + 4(kxxyyz + kxxyyzz )
+ kxxz+yyz − kyz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz − kxxyyz − kxxyyz − kxxyz )
wf ← wf − kxxyy−xxzz + kxyy−xzz + kxxz−yyz − kxyy+xzz
(A.58)
+ kxxz+yyz + kxz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz + kxyyzz − kxxyyz + kxyyz ) sf ← sf − kxxyy+xxzz−yyzz − kyzz−xxy − kxxz−yyz − kxxy+yzz
(A.59)
+ kxxz+yyz + kyz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz + kxxyyz − kxxyyz + kxxyz ) ef ← ef − kxxyy−xxzz − kxyy−xzz + kxxz−yyz + kxyy+xzz
(A.60)
+ kxxz+yyz − kxz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz − kxyyzz − kxxyyz − kxyyz )
f ← f + 2kxxyy+xxzz−yyzz + 2kxxyy−xxzz − 4kxxz+yyz
(A.61)
− 11kxx+yy+zz − kxx−zz − 4kxxyy+xxzz+yyzz + 4(kxxyyzz + kxxyyz )
154
nb ← nb − kxxyy+xxzz−yyzz + kyzz−xxy + kxxz−yyz
(A.62)
+ kxxy+yzz − kxxz+yyz + kyz + kxxyy+xxzz+yyzz
+ 8kxx+yy+zz + 2(−kxxyyzz − kxxyyz + kxxyyz + kxxyz ) wb ← wb − kxxyy−xxzz + kxyy−xzz − kxxz−yyz − kxyy+xzz
(A.63)
− kxxz+yyz − kxz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz + kxyyzz + kxxyyz − kxyyz )
sb ← sb − kxxyy+xxzz−yyzz − kyzz−xxy + kxxz−yyz − kxxy+yzz
(A.64)
− kxxz+yyz − kyz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz + kxxyyz + kxxyyz − kxxyz )
eb ← eb − kxxyy−xxzz − kxyy−xzz − kxxz−yyz + kxyy+xzz
(A.65)
− kxxz+yyz + kxz + kxxyy+xxzz+yyzz + 8kxx+yy+zz
+ 2(−kxxyyzz − kxyyzz + kxxyyz + kxyyz )
b ← b + 2kxxyy+xxzz−yyzz + 2kxxyy−xxzz + 4kxxz+yyz
(A.66)
− 11kxx+yy+zz − kxx−zz − 4kxxyy+xxzz+yyzz + 4(−kxxyyz + kxxyyzz ) nwb ← nwb + kxyz − kxxyz + kxyyz − kxyzz
(A.67)
neb ← neb − kxyz − kxxyz − kxyyz + kxyzz
(A.68)
nef ← nef + kxyz + kxxyz + kxyyz + kxyzz
(A.69)
nwf ← nwf − kxyz + kxxyz − kxyyz − kxyzz
(A.70)
− (kxxyyz + kxyyzz − kxxyyz ) + kxxyyzz
− (kxxyyz − kxyyzz − kxxyyz ) + kxxyyzz
− (−kxxyyz − kxyyzz − kxxyyz ) + kxxyyzz
− (−kxxyyz + kxyyzz − kxxyyz ) + kxxyyzz
155
A
A.2 Length of collision vectors
A Minimal cascaded lattice Boltzmann automaton in 3D swb ← swb − kxyz + kxxyz + kxyyz + kxyzz
(A.71)
seb ← seb + kxyz + kxxyz − kxyyz − kxyzz
(A.72)
sef ← sef − kxyz − kxxyz + kxyyz − kxyzz
(A.73)
swf ← swf + kxyz − kxxyz − kxyyz + kxyzz
(A.74)
− (kxxyyz + kxyyzz + kxxyyz ) + kxxyyzz
− (kxxyyz − kxyyzz + kxxyyz ) + kxxyyzz
− (−kxxyyz − kxyyzz + kxxyyz ) + kxxyyzz
− (−kxxyyz + kxyyzz + kxxyyz ) + kxxyyzz
156
B
B Mapping lattice units to the real world The coefficients of a complete equation are dimensionless numbers, i. e., if the quantities Q are measured by an absolute system of units, the coefficients of the equation do not depend on the size of the fundamental units but only on the fixed interrelations of the units which characterize the system and differentiate it from any other system. – E. Buckingham
In this appendix we discuss how the lattice units of the lattice Boltzmann automaton can be scaled to real world units. Scale invariance is a fundamental property of physical laws. Scale is only introduced via model parameters [44]. The two basic parameters of the lattice Boltzmann automaton is its mean free time between binary collisions τbinary and the speed of sound cs . Only the mean free time is adjustable. The lattice Boltzmann speed of sound is typically not matched to the physical speed of sound unless the specific problem is of acoustic nature. Note that lattice Boltzmann automata without energy conservation capture linear acoustic effects at best. If we consider the flow condition in the considered problem to be nearly incompressible, it is best praxis, in terms of accuracy, to choose the velocity as low as possible in order to avoid compressibility errors. In this cases we introduce the physical scale by choosing an appropriate kinematic viscosity. We can write the viscosity in different forms:
157
B Mapping lattice units to the real world
ν = c2s τbinary 1 2 1 − = κxx c ∆t ωxy 2 2 1 1 ∆l = κxx − ∆t ωxy 2 ∆t 1 1 − c∆l = κxx ωxy 2
(B.1) (B.2) (B.3) (B.4)
The kinematic viscosity is hence given in units c∆l. Mapping a real world problem onto the lattice Boltzmann automaton requires choices for the particle speed c and the lattice spacing ∆l. Let us assume we wanted to simulate a car driving with 100 km/h (27.8 m/s) with a resolution of 0.1 m. It is necessary to choose the particle speed much higher than the highest velocity in the simulation. One order of magnitude is the minimum. Say, we decided to choose c = 278m/s and ∆l = 0.1m. The kinematic viscosity of air is ν = 14.23 × 10−6 m2 /s = 0.5119 × 10−6 c∆l. The rest is simple algebra. Since we know κxx = 1/3 we can solve for ωxy : −6
0.5119 × 10
c∆l = κxx
1 1 − ωxy 2
ωxy = 1.99999386
c∆l
(B.5) (B.6)
The duration of one time step in this case is ∆t = ∆l/c = 0.36 × 10−3 s.
158
Bibliography [1] R. Benzi, S. Succi, and M. Vergassola, “The lattice boltzmann equation: theory and applications,” Physical Reports, vol. 222, pp. 145–197, Dec 1992. [2] S. Chen and G. D. Doolen, “Lattice boltzmann method for fluid flows,” Annual Review of Fluid Mechanics, vol. 30, pp. 329–364, Jan 1998. [3] U. Frisch, B. Hasslacher, and Y. Pomeau, “Lattice-gas automata for the navier-stokes equation,” Phys. Rev. Lett., vol. 56, pp. 1505–1508, Apr 1986. [4] D. d’Humières, M. Bouzidi, and P. Lallemand, “Thirteen-velocity threedimensional lattice boltzmann model,” Phys. Rev. E, vol. 63, p. 066702, May 2001. [5] P. Lallemand and L.-S. Luo, “Theory of the lattice boltzmann method: Acoustic and thermal properties in two and three dimensions,” Physical Review E (Statistical, Nonlinear, and Soft Matter Physics), vol. 68, no. 3, p. 036706, 2003. [6] Y.-H. Qian and S.-Y. Chen, “Dissipative and dispersive behaviors of lattice-based models for hydrodynamics,” Phys. Rev. E, vol. 61, pp. 2712– 2716, Mar 2000. [7] S. Succi, The Lattice Boltzmann Equation for Fluid Dynamics and Beyond. Numerical Mathematics and Scientific Computation, Oxford University Press, 2001. [8] D. A. Wolf-Gladrow, Lattice gas cellular automata and lattice Boltzmann models: an introduction. Lecture notes in mathematics, Springer, 2000. [9] P. L. Bhatnagar, E. P. Gross, and M. Krook, “A model for collision processes in gases. i. small amplitude processes in charged and neutral one-component systems,” Phys. Rev., vol. 94, pp. 511–525, May 1954.
159
Bibliography [10] D. d Humieres, I. Ginzburg, M. Krafczyk, P. Lallemand, and L.-S. Luo, “Multiple-relaxation-time lattice boltzmann models in three dimensions,” Phil. Trans. R. Soc. Lond. A, vol. 360, pp. 437–451, Mar 2002. [11] P. Lallemand and L.-S. Luo, “Theory of the lattice boltzmann method: Dispersion, dissipation, isotropy, galilean invariance, and stability,” Phys. Rev. E, vol. 61, pp. 6546–6562, Jun 2000. [12] B. M. Boghosian, P. J. Love, P. V. Coveney, I. V. Karlin, S. Succi, and J. Yepez, “Galilean-invariant lattice-boltzmann models with h theorem,” Physical Review E (Statistical, Nonlinear, and Soft Matter Physics), vol. 68, no. 2, p. 025103, 2003. [13] S. Ansumali and I. V. Karlin, “Stabilization of the lattice boltzmann method by the h theorem: a numerical test,” Phys. Rev. E, vol. 62, pp. 7999–8003, Dec 2000. [14] S. Ansumali and I. V. Karlin, “Single relaxation time model for entropic lattice boltzmann methods,” Phys. Rev. E, vol. 65, p. 056312, May 2002. [15] S. Ansumali and I. V. Karlin, “Kinetic boundary conditions in the lattice boltzmann method,” Phys. Rev. E, vol. 66, p. 026311, Aug 2002. [16] S. Ansumali, Minimal kinetic modeling of hydrodynamics. PhD thesis, Eidgenoessische Technische Hochschule ETH Zuerich, Zuerich, 2004. [17] S. Wolfram. US patent No 4,809,202: Method and apparatus for simulating systems described by partial differential equations, 1989. [18] G. Doolen. Talk DSFD 2006 conference, 2006. [19] S. Wolfram. Talk DSFD 2006 conference, 2006. [20] S. Wolfram, “Cellular automaton fluids: Basic theory,” Journal of Statistical Physics, vol. 45, pp. 471–526, Nov 1986. [21] R. Courant, K. Friedrichs, and H. Lewy, “On the partial difference equations of mathematical physics,” IBM Journal of Research and Development, vol. 11, no. 2, pp. 215–324, 1967. [22] S. B. Pope, Turbulent Flows. Cambrige University Press, 2000. [23] P. A. Davidson, Turbulence an introduction for scientists and engineers. Oxford University Press, 2004.
160
Bibliography [24] U. Frisch, Turbulence. Cambrige University Press, 1995. [25] C. A. J. Fletcher, Computational Techniques for Fluid Dynamics 1. Springer, 1997. [26] D. d’Humières. Private communications, 2006. [27] I. Karlin. Private communications, 2006. [28] X. Shan. Private communications, 2006. [29] I. V. Karlin, S. Ansumali, C. E. Frouzakis, and S. S. Chikatamarla, “Elements of the lattice boltzmann method i: linear advection equation,” Communications in Computational Physics, vol. 1, pp. 616–655, Aug 2006. [30] J. P. Boon and S. Yip, Molecular Hydrodynamics. McGraw-Hill, 1980. [31] S. Succi. Private communications, 2006. [32] R. Zhang. Private communications, 2006. [33] M. Geier, A. Greiner, and J. G. Korvink, “Cascaded digital lattice boltzmann automata for high reynolds number flow,” Physical Review E (Statistical, Nonlinear, and Soft Matter Physics), vol. 73, no. 6, p. 066705, 2006. [34] S. Singh, Big Bang: The Origin of the Universe. Fourth Estate, 2005. [35] R. Verberg and A. J. C. Ladd, “Lattice-boltzmann model with sub-gridscale boundary conditions,” Phys. Rev. Lett., vol. 84, pp. 2148–2151, Mar 2000. [36] I. Ginzburg and D. d’Humières, “Local second-order boundary methods for lattice boltzmann models,” Journal of Statistical Physics, vol. 84, pp. 927–971, September 1996. [37] I. Ginzburg and D. d’Humieres, “Multireflection boundary conditions for lattice boltzmann models,” Physical Review E (Statistical, Nonlinear, and Soft Matter Physics), vol. 68, no. 6, p. 066614, 2003. [38] O. Filippova and D. Hänel, “Grid refinement for lattice-bgk models,” Journal of Computational Physics, vol. 147, pp. 219–228, Nov 1998.
161
Bibliography [39] C.-L. Lin and Y. G. Lai, “Lattice boltzmann method on composite grids,” Phys. Rev. E, vol. 62, pp. 2219–2225, Aug 2000. [40] A. Dupuis and B. Chopard, “Theory and applications of an alternative lattice boltzmann grid refinement algorithm,” Physical Review E (Statistical, Nonlinear, and Soft Matter Physics), vol. 67, no. 6, p. 066707, 2003. [41] M. Rhode, Extending the lattice-Boltzmann method. PhD thesis, Technische Universiteit Delft, Delft, 2004. [42] M. Rheinländer, “A consistent grid coupling method for lattice-boltzmann schemes,” Journal of Statistical Physics, vol. 121, pp. 49–74, October 2005. [43] E. Noether, “Invariante variationsprobleme,” Nachr. v. d. Wiss. zu Göttingen, vol. 2, pp. 235–257, 1918. [44] E. Buckingham, “On physically similar systems; illustrations of the use of dimensional equations,” Phys. Rev., vol. 4, pp. 345–376, Oct 1914.
162
Index
airplane design, 136 aliasing, 40, 75, 98 test, 84 Ansumali, Santosh, 92 anti-diffusion, 66, 69, 72 artistic applications of lattice Boltzmann, 137 atmospheric flow, 135 automative design, 136 average of turbulent flow field, 111, 113 ensemble, 133 Boltzmann transport equation, 20 boundary condition pressure, 23 wall, 23, 132 Buckingham, E., 157 Burnett equations, 21 cellular automata, 8, 13 central difference, 27 central moments, 55, 67 CFL condition, 24, 72, 100 chaotic flow field, 111 Chapman Enskog expansion, 8, 20, 31, 34, 63 civil engineering, 135 climate changes, 135
closure problem, 29, 33, 63 coast protecting structures, 135 collision cascade, 65 collision invariants, 39 collision operator, generic, 45 collisions, 38 combustion, 136 complexity, 130 D1Q3 lattice, 38 D2Q7 lattice, 14 D2Q9 lattice, 14 D3Q13 lattice, 15 D3Q15 lattice, 15 D3Q19 lattice, 15 D3Q27 lattice, 15 Devonian era, 128 eddy viscosity, 74, 129 educated guess, 10 elementary collision 1D, 39 2D, 52, 54 3D, 142 energy conservation, 23, 134 energy spectrum, 109, 110, 118, 119 compensated, 118, 120 entropic lattice Boltzmann automata, 18, 84
163
Index entropy, 18 and closure, 31, 32 equilibrium, 39 local, 105 unstable, 61 equivalent scales, 108, 157 erosion, 135 Euler equation, 30 exactness, 104 Feynman, Richard, 9, 63 finite difference, 27 finite elements, 30 fire, 137 flow control, 133 Frisch, Uriel, 20 Galilean invariance, 43 Chapman Enskog picture, 66 of entropy, 19, 31 of viscosity, 73 test, 84 Galilei, Galileo, 131 grid computing, 134 grid refinement, 132 Hasslacher, Brosl, 20 hexagonal lattice, 14 ideal gas, 23 incompressibility assumption, 24, 100 instability, 24, 72 integer, 17, 60, 102 internal degrees of freedom, 43 isotropy, 14 Karlin, Ilya, 92 Kelvin Helmholtz instability, 112, 115–117 Knudsen number, 8, 20
164
Kolmogorov Andrei Nikolaevich, 107 length, 26, 30, 64, 107 theory of turbulence, 107, 109 Lamb, Horace, 7 laminar flow, 121 large eddy simulation, 77, 129 lattice, 14 lattice Boltzmannn automata, 13 lattice gas automata, 13 patent, 20 Lorenz invariance, 100 Mach number, 8, 30 Mandelbrot, Benoit, 127 Maxwell-Boltzmann distribution, 17, 22, 61 mean free path, 30, 66 mean free time, 41, 64 micro fluidics, 136 model performance, 9 moment space, 18 moments, 48 momentum states, 13 multiple relaxation time operators, 18, 127 Navier Stokes equation, 7, 20, 26, 65 one-dimensional, 29 Neumann, John von, 141 Noether’s theorem, 134 Nyquist-Shannnon theorem, 75 Occam’s razor, 131 oceanic flow, 135 over-relaxation, 78 particle, 13, 37
Index polynomial expansion, 61 Pommeau, Yves, 20 Popper, Karl, 13 porper physical law, 44 resolution of turbulence, 118 reversibility, 33 Reynolds average Navier Stokes equation, 129 Reynolds number, 26 per grid spacing, 108 rotation, 46 of moments, 51 scale invariance, 157 scattering rate, 41 scattering step, 16, 39 Schrödinger equation, 9 Schrödinger, Erwin, 37 shear wave decay experiment, 69, 97 single relaxation time operators, 17 skewness, 40 smoke, 137 solar wind, 135 space, 37 spectral elements, 30 speed bounds, 100 speed of sound, 23, 30, 40, 65 square lattice, 14 state vector D2Q9, 21 stencil low pass characteristic, 28 streaming step, 16, 38 symmetry break of, 108
time, 37 topology optimization, 136 translation, 45 of moments, 49 trustworthiness, 9 turbulence, 25, 100 boundary layer, 132 free decay, 112, 116 in wake, 108 modeling, 128 velocity bursts, 100 variance of turbulent flow field, 114 viscosity, 23, 64, 66 2nd order error, 69 bulk, 60, 92, 144 de-aliasing, 77, 84, 92, 98, 99 numerical, 28, 88, 97 vortex shedding, 121–123 weather forecast, 135 wind induced oscillations, 136 Wolfram, Stephan, 20
temperature, 23 thermodynamics, second law, 19, 72, 129
165