Skip to content
forked from ludwig-cf/ludwig

A lattice Boltzmann code for complex fluids

License

Notifications You must be signed in to change notification settings

Scolymus/ludwig

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ludwig

A lattice Boltzmann code for complex fluids

Ludwig is a parallel code for the simulation of complex fluids, which include mixtures, colloidal suspensions, gels, and liquid crystals. It takes its name from Ludwig Boltzmann, as it uses a lattice Boltzmann method as a basis for numerical solution of the Navier Stokes equations for hydrodynamics. It typically combines hydrodynamics with a coarse-grained order parameter (or order parameters) to represent the "complex" part in a free energy picture.

The code is written in standard ANSI C, and uses the Message Passing Interface for distributed memory parallelism. Threaded parallelism is also available via a lightweight abstraction layer ("Target Data Parallel" or "TargetDP") which currently supports either OpenMP or CUDA (NVIDIA GPUs) from a single source.

Installation

Copy a config file from the config directory to the top level directory and make any changes required. E.g.,

$ cp config/lunix-gcc-default.mk config.mk
$ cd tests
$ make compile-mpi-d3q19

This should produce an execuatable ./src/Ludwig.exe.

Usage

Full documentation is available in the docs directory.

Contributing

If you would like to contribute, please consider a pull request.

Help

For bug reports, problems, and other issues, please open a new issue.

About

A lattice Boltzmann code for complex fluids

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.9%
  • Makefile 1.4%
  • C++ 0.8%
  • Shell 0.6%
  • Fortran 0.5%
  • Python 0.4%
  • Other 0.4%