Saturday, October 27, 2018

Lattice Boltzmann method (D2Q9) - modelling fluid flow in a pipe with an obstacle - Serial and parallel approach

based on the kinetic theory and easy to be parallelized.
The Lattice Boltzmann method (LBM) has become an attractive and promising approach in computational fluid dynamics (CFD). Easy of implementation, extensibility, and high level of parallelism are the major reasons for LBM increasing popularity. Here, we present a serial and parallel codes examples of a bi-dimensional pipe flow with an internal obstacle using LBM - D2Q9, where:

Lx = Mesh size in x direction
Ly = Mesh size in y direction
vxFlow = 0.02  Flow velocity in x direction
vyFlow = 0.00  Flow velocity in y direction
Re = 25 Reynolds number

with: no-slip wall boundary condition

The codes calculates:
- Macroscopic variables ;
- Dirichlet boundary condition;
- Calculates the Zou/He boundary condition;
- Calculates the collision step;
- Calculate microscopic boundary condition (bounce back);
- Calculates the streaming step;

Serial:

Fortran .f90  / .C



Parallel:

OpenMP: latticeBoltzmann_OpenMP.c

Pthreads: latticeBoltzmann_Pthreads.c

MPI: latticeBoltzmannMPI.c


Wednesday, April 11, 2018

Minicurso II: Introdução à solução numérica de Equações Diferenciais Parciais


ERMAC 2018

Minicurso II: Introdução à solução numérica de Equações Diferenciais Parciais

UFLA – Lavras – 04/04/2018 – 06/04/2018 – Minicurso 4 horas

Resumo: A solução numérica de Equações Diferenciais Parciais (EDPs) é de grande importância em diversas áreas, tais como, matemática aplicada, física, engenharia e computação. Em particular, destaca-se a simulação computacional de problemas na área de dinâmica dos fluidos que envolve a derivação de soluções numéricas das Equações de Navier-Stokes e da Conservação de Massa, que modelam o escoamento de fluidos. No presente minicurso será apresentado o método de diferenças finitas para a discretização de EDPs, por meio da resolução numérica de equações modelo 1D e exemplos de simulações numéricas de EDPs 1D, 2D e 3D. Este minicurso fará uso da ferramenta Jupyter Notebook que são páginas visíveis em um browser (ex.: Firefox, Chrome, etc) possibilitando misturar texto, código executável em Python, gráficos, figuras etc. Este tipo de página é um recurso que permite o estudo interativo, onde o aluno pode alterar e executar o código na própria máquina e já observar o resultado em tempo real.

Material desenvolvido e adaptado a partir do Practical Numerical Methods with Python  project "Copyright (c) Barbagroup"