Code Monkey home page Code Monkey logo

boltzmann's Introduction

Boltzmann Fluid Simulations for HPC

Introduction

This project contains a number of implementations in C/C++ of a Boltzmann fluid simulation optimised for different environments / platforms in addition to the original serial implementation of the d2q9-bgk lattice Boltzmann scheme.

Each subsequent implementation of the code was arrived at by making changes to the preceeding version, starting with the original serial sub-optimal version, in the order listed in this table:

Executable Name Description
boltzmann-original Original serial version of the code
boltzmann-serial Optimised (still serial) version of the original serial code
boltzmann-openmp Pararelised version of the code using OpenMP
boltzmann-mpi Distributed version of the code using MPI
boltzmann-opencl Graphics Processing Unit version of the code implemented using OpenCL

Building and Running the Code

Each of the projects can be built and run individually using CMake, e.g.

cd boltzmann-mpi
cmake .
make

Please note that unlike the code, which has been run on a number of operating systems and GPU devices, the CMake build files have only been tested on MacOS.

Some of the sub-projects have pre-requisites and specific build instructions wich are described in separate documentation files:

Documentation

This repository also includes a number of short papers describing how the optimisations, paralisation and distribution of the original across a number of nodes was achieved.

  1. Parallelising the Lattice Boltzman scheme
  2. Distributed Lattice Boltzman using MPI
  3. Lattice Boltzman simulation in OpenCL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.