All Projects → ludwig-cf → ludwig

ludwig-cf / ludwig

Licence: other
A lattice Boltzmann code for complex fluids

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to ludwig

scala-parallel-programming
coursera
Stars: ✭ 17 (-51.43%)
Mutual labels:  parallel-computing
matrix multiplication
Parallel Matrix Multiplication Using OpenMP, Phtreads, and MPI
Stars: ✭ 41 (+17.14%)
Mutual labels:  parallel-computing
neqsimpython
NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. This project is a Python interface to NeqSim.
Stars: ✭ 22 (-37.14%)
Mutual labels:  fluid-dynamics
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (-31.43%)
Mutual labels:  parallel-computing
PSyclone
Domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran
Stars: ✭ 67 (+91.43%)
Mutual labels:  parallel-computing
muster
Massively Scalable Clustering
Stars: ✭ 22 (-37.14%)
Mutual labels:  parallel-computing
raccoon
Massively parallel FEM code for phase-field for fracture by Dolbow Lab at Duke University
Stars: ✭ 21 (-40%)
Mutual labels:  parallel-computing
sph opengl
SPH simulation in OpenGL compute shader.
Stars: ✭ 57 (+62.86%)
Mutual labels:  parallel-computing
explicitSolidDynamics
Cell centred code for explicit solid dynamics in OpenFOAM
Stars: ✭ 43 (+22.86%)
Mutual labels:  parallel-computing
phantom
Phantom Smoothed Particle Hydrodynamics and Magnetohydrodynamics code
Stars: ✭ 52 (+48.57%)
Mutual labels:  fluid-dynamics
exadg
ExaDG - High-Order Discontinuous Galerkin for the Exa-Scale
Stars: ✭ 62 (+77.14%)
Mutual labels:  fluid-dynamics
rans-uncertainty
Uncertainty Quantification of RANS Data-Driven Turbulence Modeling
Stars: ✭ 44 (+25.71%)
Mutual labels:  fluid-dynamics
VoxelTerrain
This project's main goal is to generate and visualize terrain built using voxels. It was achieved using different approaches and computing technologies just for the sake of performance and implementation comparison.
Stars: ✭ 37 (+5.71%)
Mutual labels:  parallel-computing
Draco
DRACO: Byzantine-resilient Distributed Training via Redundant Gradients
Stars: ✭ 21 (-40%)
Mutual labels:  parallel-computing
Fluid Simulation
Self advection, external force and pressure solve to a velocity field represented by a MaC grid.
Stars: ✭ 107 (+205.71%)
Mutual labels:  fluid-dynamics
boxtree
Quad/octree building for FMMs in Python and OpenCL
Stars: ✭ 52 (+48.57%)
Mutual labels:  parallel-computing
xcast
A High-Performance Data Science Toolkit for the Earth Sciences
Stars: ✭ 28 (-20%)
Mutual labels:  parallel-computing
auryn
Auryn: A fast simulator for spiking neural networks with synaptic plasticity
Stars: ✭ 77 (+120%)
Mutual labels:  parallel-computing
UnsteadyFlowSolvers.jl
Solvers for problems involving unsteady fluid flow
Stars: ✭ 18 (-48.57%)
Mutual labels:  fluid-dynamics
sph vulkan
SPH simulation in Vulkan compute shader.
Stars: ✭ 29 (-17.14%)
Mutual labels:  parallel-computing

Ludwig

A lattice Boltzmann code for complex fluids

Build Status CII Best Practices

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/unix-gcc-default.mk config.mk
$ make serial
$ make
$ make test

Note that the tests expect standard C assertions to be active; for production runs, one should add the standard preprocessor option -DNDEBUG to the compiler options in the config.mk file.

If a parallel build is wanted omit the serial step, for example,

$ cp config/unix-mpicc-default.mk config.mk
$ make
$ make test

Full details of the build process are available at https://ludwig.epcc.ed.ac.uk/.

Background and Tutorial

Background documentation on the LB model and various free energy choices is available in the docs directory.

$ cd docs
$ make

will produce a pdf version of the LaTeX source.

A short tutorial, which includes some examples in which the results are visualised, is also provided:

$ cd docs/tutorial
$ make

to produce a pdf of the tutorial instructions.

Contributing

If you would like to contribute, please consider a pull request. See CONTRIBUTING.md for further details of testing and development.

Attribution

DOI

Recent release versions have a Zenodo-provided DOI. Please consider using the appropriate DOI as a reference if you use Ludwig in your publications.

Help

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].