Visual Simulation of a Multi-Species Coloured Lattice Gas...

7
Visual Simulation of a Multi-Species Coloured Lattice Gas Model T.S. Lyes, M.G.B. Johnson and K.A. Hawick Computer Science, Institute for Information and Mathematical Sciences, Massey University, North Shore 102-904, Auckland, New Zealand email: { t.s.lyes, m.johnson, k.a.hawick }@massey.ac.nz Tel: +64 9 414 0800 Fax: +64 9 441 8181 March 2012 ABSTRACT Understanding complex fluid flow patterns is still a com- putationally challenging problem and visualising com- puter simulations in this area is an important tool in in- vestigating emergent complexity in fluid systems. Mix- ing and unmixing of complex multi-species fluid systems is particularly difficult to tackle using conventional field equational methods. We describe our multi-species lattice gas software for simulating and visualising multi-species fluid systems. We describe how a coloured lattice gas model was developed and run on a graphical processing unit using NVIDIA’s compute unified device architecture (CUDA) to yield a speed up over a typical CPU perfor- mance of one hundred fold. This then supports simu- lation of system sizes large enough to reveal interesting emergent complexity, and we present some initial scien- tific observations. KEY WORDS lattice gas; coloured; FHP-3; CFHP; OpenGL; cellular automata; simulation; 1 Introduction Simulating the dynamics of fluid flow can often be a very complicated task. Lattice gas cellular automatons (LGCA’s) [1–3] can be used to approximate the behav- ior of fluid flows with a certain degree of accuracy - they may fail to model all physical dynamics of fluids at a mi- croscopic level, however they can produce satisfactory re- sults on a macroscopic level. Many variations of LGCA approaches, including using a lattice Boltzmann approach [4–6], have already been developed and improved upon to produce faster, more complex and more accurate results. More complex geometric arrangements such as reflecting boundaries, barriers, monolayer deposition [7] and the im- position of gravitational bias [8] are also possible. Simulation work with large scale lattice gas models Figure 1: A coloured lattice gas visualization [9, 10] has important impications for studies of complex- ity and emergence on logarithmic length scales. Work is reported in the literature on the stability limits of lattice gas models [11] and lattice gas models are also of use in modeleing crowd dynamics [12]. Our particular inter- est is in modelling multi-species systems lattice gas sys- tems [13–15] where a fluid or some other modelled mi- croscopic constituents either separate out from a random initial state or mix and co-dissolve under the right param- eteric circumstances. In a previous study [16], a LGCA was used to sim- ulate a lattice gas on a graphics processing unit (GPU), as LGCA models are highly parallelisable [17–21]. This allowed for better levels of optimization and execution speed of the LGCA, as well enabling the model to be sim- ulated at a larger scale. A method of visualizing the lattice gas behavior on the fly, however, was not developed, and

Transcript of Visual Simulation of a Multi-Species Coloured Lattice Gas...

Page 1: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

Visual Simulation of a Multi-Species Coloured Lattice Gas Model

T.S. Lyes, M.G.B. Johnson and K.A. HawickComputer Science, Institute for Information and Mathematical Sciences,

Massey University, North Shore 102-904, Auckland, New Zealandemail: { t.s.lyes, m.johnson, k.a.hawick }@massey.ac.nz

Tel: +64 9 414 0800 Fax: +64 9 441 8181

March 2012

ABSTRACTUnderstanding complex fluid flow patterns is still a com-putationally challenging problem and visualising com-puter simulations in this area is an important tool in in-vestigating emergent complexity in fluid systems. Mix-ing and unmixing of complex multi-species fluid systemsis particularly difficult to tackle using conventional fieldequational methods. We describe our multi-species latticegas software for simulating and visualising multi-speciesfluid systems. We describe how a coloured lattice gasmodel was developed and run on a graphical processingunit using NVIDIA’s compute unified device architecture(CUDA) to yield a speed up over a typical CPU perfor-mance of one hundred fold. This then supports simu-lation of system sizes large enough to reveal interestingemergent complexity, and we present some initial scien-tific observations.

KEY WORDSlattice gas; coloured; FHP-3; CFHP; OpenGL; cellularautomata; simulation;

1 IntroductionSimulating the dynamics of fluid flow can often be a

very complicated task. Lattice gas cellular automatons(LGCA’s) [1–3] can be used to approximate the behav-ior of fluid flows with a certain degree of accuracy - theymay fail to model all physical dynamics of fluids at a mi-croscopic level, however they can produce satisfactory re-sults on a macroscopic level. Many variations of LGCAapproaches, including using a lattice Boltzmann approach[4–6], have already been developed and improved upon toproduce faster, more complex and more accurate results.More complex geometric arrangements such as reflectingboundaries, barriers, monolayer deposition [7] and the im-position of gravitational bias [8] are also possible.

Simulation work with large scale lattice gas models

Figure 1: A coloured lattice gas visualization

[9, 10] has important impications for studies of complex-ity and emergence on logarithmic length scales. Work isreported in the literature on the stability limits of latticegas models [11] and lattice gas models are also of usein modeleing crowd dynamics [12]. Our particular inter-est is in modelling multi-species systems lattice gas sys-tems [13–15] where a fluid or some other modelled mi-croscopic constituents either separate out from a randominitial state or mix and co-dissolve under the right param-eteric circumstances.

In a previous study [16], a LGCA was used to sim-ulate a lattice gas on a graphics processing unit (GPU),as LGCA models are highly parallelisable [17–21]. Thisallowed for better levels of optimization and executionspeed of the LGCA, as well enabling the model to be sim-ulated at a larger scale. A method of visualizing the latticegas behavior on the fly, however, was not developed, and

Page 2: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

thus has become one of the goals of this paper.Most standard LGCA models apply to a lattice con-

taining only one type of gas (commonly referred to as a’species’). There do exist, however, some models whichtake into account the option of having multiple speciespresent in the same lattice. Such models are good for sim-ulating diffusion effects between multiple gases, and canproduce some interesting results depending on the proper-ties of each species of gas. Models which deal with mul-tiple species of gases are often called ”coloured” models,as different particles can be represented visually using dif-ferent colours. While accounting for a second species ofparticle will affect the overall performance of the model,there are ways to reduce this impact.

In tis article we present a coloured LGCA based on thecode from [16], which may be visually monitored on-the-fly while also being able to be parallelized easily for per-formance investigation. Firstly, a more in-depth explana-tion of the LGCA models used will be given in Section 2as well as a description of the OpenGL [22] and ComputeUnified Device Architecture (CUDA) [23] technologiesused in Section 3. In Section 4 some screenshots of theresulting lattice gases will be shown, along with descrip-tions and additional information. In Section 5 some theperformance results are put forth, and some coding issuesand difficulties will also be discussed. Finally, conclu-sions and future work will be offered in Section 6.

2 The LGCA ModelsWhile many models exist for using LGCAs to simu-

late fluid flow, the FHP-3 model [1] (named after Frisch,Hasslacher and Poumeau, who first introduced the model)allows for superior efficiency in simulation. The model’sdefining characteristics are the triangular lattice structure,allowing for 6 channel directions (right, right-up, right-down, left, left-up and left-down), as well as a stationaryparticle channel, for each site in the lattice. The state ofeach site in the lattice at any given time will be determinedby the state of the site particle itself, as well as the veloc-ity vectors propagating from each of the site’s 6 surround-ing neighbours, based on a certain set of defined collisionrules (see Figure 2 for an example). A single site parti-cle may have up to eight inputs - six neighbor velocitychannels, one stationary channel, and one barrier channel.Therefore, each site can be neatly stored as one byte - onebit representing each channel. To further aid in compu-tational efficiency, four 8-bit sites can be bit-packed intoone 32-bit integer, rather than using one integer for eachsite.

The CFHP model [1], or known simply as a ”coloured”lattice gas, is a variation of the regular FHP-3 LGCA,in which particles may belong to two different species

Figure 2: An example of some FHP-3 model collisionrules

(colours). In a standard LGCA, every particle is de-signed to be mechanically identical. This remains truein a coloured LGCA - all particles remain identical inall ways except colour. This means the CFHP modelneed not create a larger, more complex set of collisionrules to compensate for two different particles in the lat-tice. Indeed, the CFHP model uses exactly the same setof rules as the FHP-3 model. How, then, does one keeptrack of the colour of each particle in the lattice? Thenumber of coloured particles need only be conserved ineach collision. Before any collision rules are applied toeach site, the number N of each coloured particle can becounted. Once the collision rules have been applied usingthe standard FHP-3 collision ruleset, the colour attributecan be randomly assigned to N number of channels usinga lookup table. This need only be done with one of thetwo colours, as the second colour will automatically beassigned to those channels not randomly assigned the firstcolour attribute. Put simply, if the particle is not red, it isblue.

In working with the code for the coloured lattice gas,it was decided that we would develop an OpenGL ren-dering system that would allow us to visualize the latticegas in real time, with the ability to monitor the differentcolours separate from each other. The resulting programallowed for visualization of the lattice in five different ren-dering methods - original single-colour lattice, red latticeonly, blue lattice only, combined red and blue lattice, anda combined red and blue lattice using arrows to visualizethe velocity vectors. The program was intended to investi-gate how a particles of two different species might behave,given they follow the same rules. Additionally, it was de-cided that an interesting add-on to the project would be tointroduce some directional bias into the species (for ex-

Page 3: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

R-UL

R-DR

R-RI

R-UR

R-DL

R-LE

B-LE

B-DL

B-DR

B-UL

B-UR

B-RI

Figure 3: An CFHP model lattice setup - notice each di-rection has two channels, one for red particles and one forblue particles

ample, one species might be inclined to move downwardas it could be heavier). Without changing any of the rule-sets, the bias could simply be applied during the lookuptable generation for the randomization of the colour as-signment.

3 OpenGL Lattice Rendering andCUDA

The code to simulate the coloured lattice gas was writ-ten both as a sequential OpenGL program for visualiza-tion purposes, and in CUDA for performance monitor-ing. The coloured lattice would be expected to run slowerthan the single-species lattice, as there is extra work incounting coloured channels and assigning random chan-nels coloured attributes.

As opposed to the single-species lattice, the colouredlattice used three different arrays to store the lattice data- a ”master” array on which the collision rule set was ap-plied, and two arrays containing the information neededfor the red and the blue lattices. This allowed for easy ac-cess by OpenGL when rendering only the red or only theblue lattice, while additionally removing the need to addextra rules to the rule set to be applied to the master latticein order to account for the different coloured particles.

The lattice itself was displayed in a 256x256 OpenGLwindow, primarily using OpenGL points to represent theparticles in the lattice. To visualize the movement of theparticles, each OpenGL point was coloured according to

Figure 4: Sample screen dump of the lattice rendered us-ing arrows

the represented point’s velocity vector. This velocity vec-tor was computed as an average vector over a block of4x4 neighbouring lattice points. These coloured pointswere not always easy to interpret, so it was decided to al-low the lattice to be rendered using arrows as well. Thearrows would point in the direction of the velocity vector,while the magnitude of the vector determined the lengthof the arrow. To avoid clutter in the OpenGL window,the amount of arrows in the display was reduced from256x256 to 16x16 with the vectors averaged over a largerarea, while keeping the original lattice precision the same.Rather than colour the arrows the same as their OpenGLpoint counterparts, they were coloured a flat red or blue,depending on which species the particle belonged to atthat particular point on the lattice. Figure 4 shows an ex-ample of what the lattice would look like rendered as ar-rows.

The bulk of the code for the lattice gas was contained inthe Kernel function, which was used to perform both thecollision and propagation phases of the lattice gas. It wasused in OpenGL as the update function after every displaycall. This function was converted nicely into CUDA code,as each cell in the lattice operated independently for eachtime step. Cells in the lattice were also bit-packed to im-prove performance. The CUDA version of the code wasused solely for performance checking, as any renderingwould have slowed it down. The kernel itself followedan algorithm roughly resembling the following algorithm(Algorithm 1).

The coloured lattice was simulated twice, once using

Page 4: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

Algorithm 1 a typical coloured lattice gas kernelfor all cells in lattice do

count red particlesdetermine input channelsperform bit-packing (unpack)apply collision rulerandomize colour channelsconserve red particlesapply colour channelsperform bit-packing (pack)

end forupdate main lat, red lat, blue lat

the standard rule set, and once using a biased rule set.Similar to [16], a barrier was added to allow for observa-tion of the behavior around impassible cells. The barrierwas set up as a vertical line of cells centered horizontallyin the lattice, roughly one fifth of the width from the lefthand side. To allow for the most efficient demonstrationof the gas interaction with the barrier, initial particle ve-locities were set to be perpendicular to the barrier, towardsthe right. Additionally, the lattice particles would wraparound right-to-left.

4 Visualisation ResultsThe particles in each screenshot are coloured in rela-

tion to their velocity. Darker areas of the lattice indicatean absence or lower concentration of particles in that par-ticular area - this usually occurs around barriers. For eachof the red and blue lattices a separate colour spectrum wasused to represent the velocities of the particles. While vi-sualisation of each coloured lattice on its own presentedno problems, rendering both red and blue lattices togetherpresented some visualisation problems as it is difficult insome places to distinguish the red lattice’s green particlesfrom the blue lattice’s teal particles (and several other sim-ilar colour match ups as well). For reference and compar-ison, a visualization of the single-species lattice gas wasalso shown.

Each lattice configuration was simulated for 4096 timesteps, while being observed and captured at the start, mid-dle and end points of the simulation. The resulting screen-shots were produced.

Both the standard and biased versions of the latticewere initialized exactly the same. Figure 5 shows thisinitial configuration. All particles above half the heightof the lattice were initialized red, and all below were ini-tialized as blue. In the early stages of the project, the redand blue particles were assigned random initial positionsin the lattice - this configuration, however, produced nomeaningful results, as interactions between red and blueparticles were almost imperceptible, and diffusion behav-

Figure 5: Initial configuration of the lattice. From top-leftto bottom-right: the standard single colour lattice, bothcoloured lattices, red only and blue only

ior could not be observed (as both species were alreadyfully diffused). The barrier cannot be seen yet in this ex-ample, as initial particle velocities have yet to take effect.

Figure 6 shows the state of the lattice at the half-waypoint of the simulation. This version uses the standardrule set. In these figures the barrier to the left has be-come clearly visible and the particles have begun to movearound it. It is interesting to watch the behavior of the redand the blue lattices on their own. Although the majorityof each species’ fellow particles remain concentrated attheir respective sides, some particles are still forced in theopposite direction by the barrier and other incoming par-ticles from the left. This can be shown by a ”hook” likeshape created as the particles are pushed down and aroundthe edge of the barrier (this is more clear in the red latticeas the colour is lighter). This type of behavior occurs be-cause the particles have no cohesion between others of thesame species, and instead operate independently of eachother. Both lattices display some slight diffusion as someblue particles begin to slowly move upward, and in turnsome red particles slowly move downward.

Figure 7 shows the final product of the lattice gas sim-ulation after 4096 steps. The flow of the gas has now be-come much more apparent due to the colour change of theparticles and the shape of the gas flow behind (to the right)of the barrier. The behavior of the red and blue lattices isalso more apparent, as they form stronger curves aroundthe barrier and the diffusion between the two species hasincreased.

The biased rule set was set up to increase the chance

Page 5: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

Figure 6: State of the lattice at time step 2048 (half -way point of the simulation) using standard rules. Fromtop-left to bottom-right: the standard single colour lattice,both coloured lattices, red only and blue only

Figure 7: Final state of the lattice (after 4096 time steps)using standard rules. From top-left to bottom-right: thestandard single colour lattice, both coloured lattices, redonly and blue only

Figure 8: Half-way state (time step 2048) of the latticeusing a biased rule set. From top-left to bottom-right: thestandard single colour lattice, both coloured lattices, redonly and blue only

that a red particle would move in a downward directionrather than any other. In the lattice configuration, thismeant that both the left-down and right-down channelswould have an increased chance to be assigned the colourred, although the chances of assigning either left-downor right-down still remained equal. This bias was cho-sen over the other directional channels because it wouldgive more obvious results - a bias towards the right or leftmight simply appear to increase or decrease particle ve-locity in that direction. The downward bias was appliedonly to the red particle species.

Figure 8 shows the half-way state of the biased lattice.Notice how the shape of the single-species lattice is iden-tical to that in Figure 6, however the shapes of the red andblue lattices are radically different. Red particles, whileinitially starting at the top (see Figure 5) have moved to-wards the bottom of the lattice, being completely replacedby blue particles at the extreme top of the lattice. Conse-quently, blue particles appear to have been ”pushed” up-wards by the red - a large area at the bottom of the latticenow contains solely red particles. This area has a curious”hump” shape, as while the red particles are biased down-wards, they are still effected by the right-ward velocityand barrier and are thus collecting mostly at the bottomjust to the right of the barrier. Both these behaviors formwhat seems to look like ”layers” when both lattices arerendered together.

Finally, Figure 9 shows the final result of the biasedcoloured lattice gas simulation. The red particles have

Page 6: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

Figure 9: Final state of the lattice (after 4096 time steps)using a biased rule set. From top-left to bottom-right: thestandard sin¡gle colour lattice, both coloured lattices, redonly and blue only

almost completely migrated to the bottom of the lattice,while the blue have almost completely moved to the top- essentially the positions of the two species have beeninverted. The effect of the velocity and barrier is still ap-parent, however the particles seem to be less inclined toseparate - for example, the curve of the red particles mov-ing up over the barrier is much sharper than the latticeusing non-biased rules (Figure 7) and once the particlesmove over the edge of the barrier, they curve sharply backdown towards the bottom.

5 DiscussionThe program running the coloured lattice when notice-

ably slower than the single-species lattice when they wereboth run sequentially using OpenGL to display the latticeafter every time step. Due to the fact that the OpenGL ren-dering only used simple GL points with no 3d graphics orcostly effects, the slowdown was probably due to the ex-tra work being performed by the kernel during the updatephase (as opposed to the display phase). To mitigate theoverhead of copying to, and displaying the lattice on theCPU we could implement the OpenGL rendering directlyon the GPU.

Any attempt to increase the lattice size would make thesimulation run too slow to be viewed in real-time speed- while running nicely at a lattice size of 256x256, an in-crease in lattice size to 512x512 would display at aroundtwo frames (time steps) per second which is watchable but

slow, while increasing the size to 1024x1024 would dis-play one frame every five seconds. It is clear that increas-ing the size of the lattice needs parallelization to make thesimulation run smoothly in real time.

The following table shows the results of the perfor-mance testing using the CUDA version of the colouredlattice gas. The graphics card used for the performancetest was the NVidia Quadro 4000. It was tested usingdifferent sizes of the lattice (256x256 up to 4096x4096),recording the average time taken in seconds to executeeach kernel once. As expected, the coloured lattice tooklonger than the standard lattice in all lattice sizes, al-though it is almost unnoticeable in the smaller sizes (256and 512). As the lattice gets larger, the time gap be-tween the two lattices becomes exponentially larger untilthe coloured lattice is almost half a second slower than thesingle species lattice for each kernel execution.

Lattice size Standard Model Coloured Modelseconds seconds

per frame per frame256 0.0084 0.0101512 0.0131 0.0189

1024 0.0315 0.05372048 0.1044 0.19633072 0.2181 0.42904096 0.3996 0.7895

Table 1: Performance results of standard lattice gas vs.coloured lattice gas models, parallelized using CUDAwith global memory. Times accurate to approximately±0.00005.

From these results we can also see the power and speed-up gained by using CUDA and the graphics card - as men-tioned earlier, if we assume negligible time cost from ren-dering, a single kernel execution on a 1024x1024 latticerun sequentially would take approximately five seconds.Compared to the 0.0537 seconds for a 1024x1024 latticeon the GPU, the parallelized lattice is almost 100 timesfaster. The coloured model adds only a manageable over-head cost.

6 ConclusionsWe have developed a two-dimensional coloured lattice

gas model, using OpenGL to render the model and ob-serve it’s behaviour in real-time. The model is able toeasily be parallelized in CUDA for improved performanceand scaling. For additional performance improvement,four cells in the lattice have been bit-packed into one 32-bit integer. The program allows up to two species of par-ticle to exist in the lattice and each species may be viewed

Page 7: Visual Simulation of a Multi-Species Coloured Lattice Gas ...worldcomp-proceedings.com/proc/p2012/CSC3337.pdf · Simulation work with large scale lattice gas models Figure 1: A coloured

separately as needed. The behaviours of different speciescan be biased as required by generating a separate colourrandomization lookup table with an increased chance toassign the colour to the desired direction channel or chan-nels.

This encoding approach to the multi specied latticegas makes good use of memory and hence aids cache-locality. Preliminary observations suggest the model islarge enough to support measurements of thermodynamicmixing properties and experimental comparisons with re-alistic complex fluis.

We plan on extending this work into creating a three-dimensional lattice gas model and visualizing it in thesame way, as well as models with varied densities. Thiswould be expected to work well on a GPU architectureas well, although it is unsure whether the memory con-straints which may arise in a three dimensional model willbe manageable.

References[1] Rivet, J.P., Boon, J.P.: Lattice Gas Hydrodynamics. Num-

ber ISBN 0-521-019710. Cambridge (2001)[2] Advisory Group for Aerospace Research and Develop-

ment: Special Course on Modern Theoretical and Ex-perimental approaches to Turbulent Flow Structure andits Modelling, 7 Rue Ancelle, 92200 Neuilly Sur Seine,France, Advisory Group for Aerospace Research and De-velopment, NATO (1987) AGARD Report No 755.

[3] Wylie, B.J.: Application of Two-Dimensional CellularAutomaton Lattice-Gas Models to the Simulation of Hy-drodynamics. PhD thesis, Physics Department, EdinburghUniversity (1990)

[4] R.Benzi, S.Succi, M.Vergassola: The lattice boltzmannequation: theory and applications. Rome Preprint ROM2F-92-10 (1992)

[5] D’Ortona, U., Salin, D., Cieplak, M., Rybka, R.B., Ba-navar, J.R.: Two-color nonlinear boltzmann cellular au-tomata: Surface tension and wetting. Phys. Rev. E 51(1995) 3718–3728

[6] Gonnella, G., Lamura, A., Sofonea, V.: Lattic boltzmannsimulation of thermal nonideal fluids. Phys. Rev. E 76(2007) 036703

[7] Hocker, T., Aranovich, G.L., Donuhue, M.D.: Monolayeradsorption for the subcritical lattice gas and partially mis-cible binary mixtures. Journal of Colloid and Interface Sci-ence 211 (1999) 61–80

[8] Hawick, K.: Visualising multi-phase lattice gas fluidlayering simulations. In: Proc. International Confer-ence on Modeling, Simulation and Visualization Methods(MSV’11), Las Vegas, USA (2011)

[9] Wolf-Gladrow, D.A.: Lattice-Gas Cellular Automata andLattice Boltzmann Models - An Introduction. Springer(2005)

[10] Hernandez-Machado, A., Sancho, J.M.: From lattice-gas models to nonlinear diffusion models: A derivation of

macroscopic equations and fluctuations. Phys. Rev. A 42(1990) 6234–6237

[11] Bernardin, D., Sero-Guillaume, O.E.: Exact stability re-sults in stochastic lattice gas cellular automata. J. Stat.Phys. 81 (1995) 409–443

[12] Moore, B., Ali, S., Mehran, R., Shah, M.: Visual crowdsurveillance through a hydrodynamics lens. Communica-tions of teh ACM 54 (2011) 64–73

[13] Blaak, R., Dubbeldam, D.: Coupling of thermal and massdiffusion in regular binary thermal lattice gases. Phys. Rev.E 64 (2001) 062102–1–4

[14] Blaak, R., Dubbeldam, D.: Regular binary thermal lattice-gases. J. Stat. Phys. 108 (2002) 283–315

[15] Nagl, C., Schuster, R., Renisch, S., Ertl, G.: Regular mix-ing in a two-dimensional lattice system: The coadsorptionof n and o on ru(0001). Phys. Rev. Lett. 81 (1998) 3483–3486

[16] Johnson, M., Playne, D., Hawick, K.: Data-parallelismand gpus for lattice gas fluid simulations. In: Proc. In-ternational Conference on Parallel and Distributed Pro-cessing Techniques and Applications (PDPTA’10). Num-ber CSTN-109, Las Vegas, USA (2010) PDP4521.

[17] Fan, Z., Qiu, F., Kaufman, A., Yoakum-Stover, S.: Gpucluster for high performance computing. In: SC ’04 Pro-ceedings of the 2004 ACM/IEEE conference on Super-computing. Number ISBN 0-7695-2153-3 (2004)

[18] Kaufman, A., Fan, Z., Petkov, K.: Implementing the lat-tice boltzmann model on commodity graphics hardware. J.Stat. Mech: Theory and Experiment P06016 (2009) 1–27

[19] Zhou, J., Zhong, C., Xie, J., Yin, S.: Multiple-gpus algo-rithm for lattice boltzmann method. In: Proc. Int. Symp. onInformation Science and Engineering (ISISE’08), Shang-hai (2008) 793–796

[20] Obrecht, C., Kuznik, F., Tourancheau, B., Roux,J.J.: Multi-gpu implementation of the lattice boltzmannmethod. Computers and Mathematics with ApplicationsIn Press (2011) 1–10

[21] Bernaschi, M., Fatica, M., Melchionna, S., Succi, S., Kaxi-ras, E.: A flexible high-performance lattice boltzmann gpucode for the simulations of fluid flows in complex geome-tries. Concurrency and Computations: Practice and Expe-rience 22 (2010) 1–14

[22] Wright, R.S., Haemel, N., Sellers, G., Lipchak, B.:OpenGL Superbible. Fifth edn. Number ISBN 978-0-321-71261-5. Pearson (2011)

[23] NVIDIA R© Corporation: CUDATM 3.1 ProgrammingGuide. (2010) Last accessed August 2010.