Code Monkey home page Code Monkey logo

lbxflow's Introduction

lbxflow

Modelling two-dimensional complex flow using the lattice Boltzmann method

lattice Boltzmann method

Lattice Boltzmann method is a computational technique that streams and collides "psuedo particles", or particle frequency distributions, on a lattice to approximate hydrodynamics.

Dependencies

  • Julia language
  • Python language

Julia language

  • PyCall
  • PyPlot
  • HDF5
  • JLD
  • ArgParse
  • ProfileView
  • Roots
  • FastAnonymous

Python language

  • PyYaml (python library)
  • numpy (python library)
  • matplotlib (python library)

Quick Start

Install the both the julia language and python. Note: the install script assumes an Ubuntu environment and that pip is installed.

git clone https://github.com/grasingerm/lbxflow.git
cd lbxflow
julia scripts/install_dependencies.jl
julia lbxflow.jl --help
julia lbxflow.jl -vf example_sims/poiseuille/poiseuille_velocity-profile.yaml

Documentation

An introductory tutorial is available in the doc directory. Currently documentation is sparse, but the source files are all well documented and I am responsive to questions and feedback. Example input files are available in the example_sims directory.

Bugs

Please report all bugs and issues using the github ticketing system.

TODO list

  • add capability for 3D simulations
  • add animations and plots using gnuplot and Gadfly
  • implement free surface flow
  • break collision functions down into forcing method, constitutive eqn, etc.
  • create alt. stream/collide methods using grids of obstacle flags
  • write user documentation
  • parallelize streaming and collision steps, multiscale mapping, and BCs
  • wrap simulation code in a module
  • profile simulation steps to identify bottlenecks
  • write some tests?
  • write mrt collision functions with "hard coded" default inverse transformation matrix
  • verify Newtonian Poiseuille flow
  • debug BCs at inlet/outlet (bounceback, periodic)
  • implement MRT scheme for Bingham plastic flow
  • clean up api
  • make an autosave feature
  • should be able to "catch" from exceptions and/or keyboard interrupt
  • should be able to restart from interrupted model where left off
  • clean up existing BCs / more general BCs
  • develop post processing and animations
  • implement HB-Bingham constitutive model used in Fluent

lbxflow's People

Contributors

grasingerm avatar sdoveracker avatar

Watchers

 avatar  avatar  avatar

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.