Abstract
In this work we present flow simulations in laminar and turbulent regime within a representative elementary volume of a simplified porous media by solving the Navier–Stokes equations and a Low-Re turbulence \(k{-}\epsilon\) model. Numerical solution was achieved with an implementation of the SIMPLE algorithm for pressure velocity coupling of variables, and the solution of the tridiagonal systems of algebraic equations was accomplished by a parallelized ADI scheme based on the Thomas algorithm. Implementation of the numerical solution was done with an in-house C code which combined OMP and CUDA technologies for computations based on CPU and GPU, respectively. Exponential structured grids were employed in the wall vicinity to capture the turbulence behavior. Results indicate that similar profiles for velocity, pressure, turbulent kinetic energy and its dissipation were found. Several CUDA grids were tested and their performances measured over two GPUs: GTX 680 and GTX TITAN. Considerable speedup was achieved by the GPUs over the CPU schemes even without the use of the device shared memory which was not explored due to the nature of the algorithm.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig1_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig2_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig3_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig4_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig5_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig6_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig7_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig8_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig9_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig10_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig11_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig12_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig13_HTML.gif)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs40430-017-0882-x/MediaObjects/40430_2017_882_Fig14_HTML.gif)
Similar content being viewed by others
Abbreviations
- a, b :
-
FVM coefficients
- c :
-
Dimensionless constant
- \(\varvec{D}\) :
-
Deformation tensor (1/s)
- f :
-
Damping function
- \(\varvec{g}\) :
-
Gravitational acceleration (m/s\(^2\))
- \(\varvec{I}\) :
-
Identity tensor
- k :
-
Turbulent kinetic energy (m\(^2\)/s\(^2\))
- L :
-
Length (m)
- n :
-
Coordinate normal to nearest wall (m)
- p :
-
Pressure (Pa)
- \(P_{\rm k}\) :
-
Production of turbulent kinetic energy (m\(^2\)/s\(^3\))
- q :
-
Ratio of rms values \({\text{ rms }}_\phi /({\text{ rms }}_\phi )_{\min }\)
- R :
-
Dimensionless constant
- r :
-
Growth ratio for distance
- S :
-
Generic source term
- t :
-
Time (s)
- \(\varvec{u}\) :
-
Velocity (m/s)
- \(\epsilon\) :
-
Relative to dissipation of turbulent kinetic energy
- E:
-
East coordinate
- k :
-
Relative to turbulent kinetic energy
- \(\mu\) :
-
Relative to turbulent viscosity
- N:
-
North coordinate
- n:
-
Normal
- nb:
-
Neighbors (E, W, N, S)
- P:
-
Central coordinate
- p:
-
Relative to continuity equation
- S:
-
South coordinate
- t:
-
Turbulent
- u :
-
Relative to x velocity component
- v :
-
Relative to y velocity component
- W:
-
West coordinate
- \(\alpha\) :
-
Relaxation factor
- \(\beta\) :
-
Exponential grid parameter
- \(\epsilon\) :
-
Dissipation of turbulent kinetic energy (m\(^2\)/s\(^3\))
- \(\Gamma\) :
-
Generic transport property
- \(\gamma\) :
-
Exponential grid parameter
- \(\nu\) :
-
Kinematic viscosity (m\(^2\)/s)
- \(\phi\) :
-
Generic variable
- \(\rho\) :
-
Density (kg/m\(^3\))
- \(\sigma\) :
-
Dimensionless constant
- \(\tau\) :
-
Mechanistic momentum flux (Pa)
- \((\cdot )'\) :
-
Time fluctuation
- \(\overline{(\cdot )}\) :
-
Time average
- T:
-
Transpose
References
Abe K, Kondoh T, Nagano Y (1994) A new turbulence model for predicting fluid flow and heat transfer in separating and reattaching flows—I. Flow field calculations. Int J Heat Mass Transf 37(1):139–151
Anderson J (1995) Computational fluid dynamics: the basics with applications, 1st edn. Mc Graw Hill, New York
Arul S, Dash M (2013) Parallel computations for hierarchical agglomerative clustering using CUDA. Parallel Cloud Comput 3:1–11
Asouti VG, Trompoukis XS, Kampolis IC, Giannakoglou KC (2011) Unsteady CFD computations using vertex-centered finite volumes for unstructured grids on graphics processing units. Int J Numer Methods Fluids 67(2):232–246. doi:10.1002/fld.2352
Bakhoda A, Yuan GL, Fung WWL, Wong H, Aamodt TM (2009) Analyzing CUDA workloads using a detailed GPU simulator. Performance analysis of systems and software, ISPASS. In: IEEE international symposium on performance analysis of systems and software pp 163–174
Che S, Boyer M, Meng J, Tarjan D, Sheaffer JW, Skadron K (2008) A performance study of general-purpose applications on graphics processors using CUDA. J Parallel Distrib Comput 68:1370–1380
Corrigan A, Camelli F, Lohner R, Mut F (2012) Semi-automatic porting of a large scale Fortran CFD code to GPUs. Int J Numer Methods Fluids 69:314–331
Engsig-Karup AP, Madsen MG, Glimberg SL (2012) A massively parallel GPU-accelerated model for analysis of fully nonlinear free surface waves. Int J Numer Methods Fluids 70(1):20–36. doi:10.1002/fld.2675
Franco EE, Barrera HM, Lafn S (2015) 2d lid-driven cavity flow simulation using gpu-cuda with a high-order finite difference scheme. J Braz Soc Mech Sci Eng 37(4):1329–1338. doi:10.1007/s40430-014-0260-x
Hanjalic K, Launder B (2011) Modelling turbulence in engineering and the environment. Cambridge University Press, Cambridge
Hwu WM, Rodrigues C, Ryoo S, Stratton J (2009) Compute unified device architecture application suitability. Comput Sci Eng 11(3):16–26. doi:10.1109/MCSE.2009.48
Komatitsch D, MichTa D, Erlebacher G (2009) Porting a high-order finite-element earthquake modeling application to NVIDIA graphics cards using CUDA. J Parallel Distrib Comput 69:451–460
Ma Z, Wang H, Pu S (2014) GPU computing of compressible flow problems by a meshless method with space-filling curves. J Comput Phys 263:113–135
Mattila K, Puurtinen T, Hyväluoma J, Surmas R, Myllys M, Turpeinen T, Robertsén F, Westerholm J, Timonen J (2016) A prospect for computing in porous materials research: very large fluid flow simulations. J Comput Sci 12:62–76
McKee SA (2004) Reflections on the memory wall. In: Proceedings of the 1st conference on computing frontiers, CF ’04, p. 162. ACM, New York, NY, USA. doi:10.1145/977091.977115
Myre J, Walsh S, Lilja D, Saar M (2011) Performance analysis of single-phase, multiphase, and multicomponent lattice-Boltzmann fluid flow simulations on GPU clusters. Concurr Comput Pract Exp 23:332–350
Nakayama A, Kuwahara F (1999) A macroscopic turbulence model for flow in a porous medium. J Fluids Eng 121:427–433
Nakayama A, Kuwahara F (2005) Three dimensional numerical models for periodically fully-developed heat and fluid flows within porous media. In: Ingham D, Pop I (eds) Transport phenomena in porous media III. Pergamon, Oxford, pp 174–200
Nita C, Itu LM, Suciu C (2013) GPU accelerated fluid flow computations using the lattice Boltzmann method. Eng Sci 6:67–74
Patankar S (1980) Numerical heat transfer and fluid flow, 1st edn. Hemisphere Publishing Corporation, Philadelphia
Pedras M, de Lemos M (2001) Macroscopic turbulence modeling for incompressible fow through undeformable porous media. Int J Heat Mass Transf 44:1081–1093
Pedras M, de Lemos M (2003) Macroscopic turbulence model adjustment for a porous medium modeled as an infinite array of tranversaly-displaced elliptic rods. Rev Eng Termica 4:73–78
Ryoo S, Rodrigues CI, Stone SS, Stratton JA, Ueng SZ, Baghsorkhi SS, Wen-Mei WH (2008) Program optimization carving for GPU computing. J Parallel Distrib Comput 68(10):1389–1401. doi:10.1016/j.jpdc.2008.05.011
Salvadore F, Bernardini M, Botti M (2013) GPU accelerated flow solver for direct numerical simulation of turbulent flows. Comput Phys 235:129–142
Tanno I, Hashimoto T, Yasuda T, Tanaka Y, Morinishi K, Satofuka N (2013) Simulation of turbulent flow by lattice Boltzmann method and conventional method on a GPU. Comput Fluids 80:453–458
Zhang Y, Cohen J, Owens J (2010) Fast tridiagonal solvers on the GPU. SIGPLAN Not 45(5):127–136. doi:10.1145/1837853.1693472
Author information
Authors and Affiliations
Corresponding author
Additional information
Technical Editor: Jader Barbosa Jr.
Rights and permissions
About this article
Cite this article
Henríquez-Vargas, L., Villaroel, E., Gutierrez, J. et al. Implementation of a parallel ADI algorithm on a finite volume GPU-based elementary porous media flow computation. J Braz. Soc. Mech. Sci. Eng. 39, 3965–3979 (2017). https://doi.org/10.1007/s40430-017-0882-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s40430-017-0882-x