Skip to main content
Log in

Implementation of a parallel ADI algorithm on a finite volume GPU-based elementary porous media flow computation

  • Technical Paper
  • Published:
Journal of the Brazilian Society of Mechanical Sciences and Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

Abbreviations

ab :

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 (EWNS)

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

  1. 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

    Article  MATH  Google Scholar 

  2. Anderson J (1995) Computational fluid dynamics: the basics with applications, 1st edn. Mc Graw Hill, New York

    Google Scholar 

  3. Arul S, Dash M (2013) Parallel computations for hierarchical agglomerative clustering using CUDA. Parallel Cloud Comput 3:1–11

    Google Scholar 

  4. 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

    Article  MathSciNet  MATH  Google Scholar 

  5. 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

  6. 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

    Article  Google Scholar 

  7. 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

    Article  MATH  Google Scholar 

  8. 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

    Article  MathSciNet  MATH  Google Scholar 

  9. 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

    Article  Google Scholar 

  10. Hanjalic K, Launder B (2011) Modelling turbulence in engineering and the environment. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  11. 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

    Article  Google Scholar 

  12. 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

    Article  Google Scholar 

  13. 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

    Article  MathSciNet  MATH  Google Scholar 

  14. 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

    Article  Google Scholar 

  15. 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

  16. 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

    Article  Google Scholar 

  17. Nakayama A, Kuwahara F (1999) A macroscopic turbulence model for flow in a porous medium. J Fluids Eng 121:427–433

    Article  Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. Nita C, Itu LM, Suciu C (2013) GPU accelerated fluid flow computations using the lattice Boltzmann method. Eng Sci 6:67–74

    Google Scholar 

  20. Patankar S (1980) Numerical heat transfer and fluid flow, 1st edn. Hemisphere Publishing Corporation, Philadelphia

    MATH  Google Scholar 

  21. Pedras M, de Lemos M (2001) Macroscopic turbulence modeling for incompressible fow through undeformable porous media. Int J Heat Mass Transf 44:1081–1093

    Article  MATH  Google Scholar 

  22. 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

    Google Scholar 

  23. 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

    Article  Google Scholar 

  24. Salvadore F, Bernardini M, Botti M (2013) GPU accelerated flow solver for direct numerical simulation of turbulent flows. Comput Phys 235:129–142

    Article  MathSciNet  Google Scholar 

  25. 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

    Article  MathSciNet  MATH  Google Scholar 

  26. Zhang Y, Cohen J, Owens J (2010) Fast tridiagonal solvers on the GPU. SIGPLAN Not 45(5):127–136. doi:10.1145/1837853.1693472

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to L. Henríquez-Vargas.

Additional information

Technical Editor: Jader Barbosa Jr.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s40430-017-0882-x

Keywords

Navigation