Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

TCLB Solver Header

TCLB Solver ZENADO DOIArticle

TCLB is a MPI+CUDA, MPI+CPU or MPI+HIP high-performance Computational Fluid Dynamics simulation code, based on the Lattice Boltzmann Method. It provides a clear interface for calculation of complex physics, and the implementation of new models.

Stable release(master branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

Current release(develop branch):
Open in GitHub Codespaces
CPU build statusCUDA build statusHIP build statuscodecovdocumentation

How to use it

Install

git clone https://github.com/CFD-GO/TCLB.git
cd TCLB

Configure

make configure
./configure

Compile

make d2q9

Run

CLB/d2q9/main example/flow/2d/karman.xml

More information

Documentation

The documentation (including tutorials) is published at docs.tclb.io.

For the develop version, the most recent documentation can be found at develop.docs.tclb.io.

You can contribute to the documentation at CFD-GO/TCLB_docs.

Supported architectures

This code is designed to run on Linux with CUDA. We strongly recommend using Linux for compilation, computation and postprocessing.

Nevertheless, TCLB can be compiled on Windows using the Windows Subsystem for Linux, with CUDA supported on some system configurations (see nVidia's website for more info). It also can be compiled on MacOS (CPU only). Both Debian and Red Hat based Linux distributions are supported by the install.sh script described below, as is MacOS (with brew package manager).

Dependencies

For the code to compile and work you'll need a few things:

Optionally, you may need:

  • To integrate TCLB with R, you'll need R package rinside
  • To integrate TCLB with Python, you'll need python, numpy with libraries and headers
  • To develop a model using Python, you'll need python, sympy and R package reticulate

You can install many of these with the provided tools/install.sh script (note that this requires sudo):

sudo tools/install.sh essentials # Installs essential system packages needed by TCLB
sudo tools/install.sh r # Installs R
sudo tools/install.sh openmpi # Installs OpenMPI
tools/install.sh rdep # Installs needed R packages
sudo tools/install.sh cuda # Installs CUDA (we recommend to do it on your own)
sudo tools/install.sh python-dev # Installs Python libraries with headers

You can run the tools/install.sh script with the --dry option, which will print the commands to run, so you can run them on your own. We do not recommend running anything with sudo without checking

develop Branch:

If you want a more recent version, you could try the development branch with git checkout develop

CPU

To compile the code for CPU, you can use the --disable-cuda option for ./configure:

./configure --disable-cuda

HIP

To compile the code for AMD GPUs (ROCm), you can use the --enable-hip option for ./configure:

./configure --enable-hip

Parallel run

To run TCLB in parallel (both on multiple CPU and multiple GPU), you can use the standard syntax of MPI parallel run:

mpirun -np 8 CLB/d2q9/main example/flow/2d/karman.xml

Running on clusters

To assist with using TCLB on HPC clusters (SLURM/PBS), there are scripts provided in the TCLB_cluster repository.

LBM-DEM computation

TCLB code can be coupled with Discrete Element Method (DEM) codes, to enable computation of flow with particles.

The DEM codes that TCLB can be integrated with are:

Refer to the documentation for instructions on compilation and coupling.

About

Authors

TCLB began development in 2012 with the aim at providing a framework for efficient CFD computations with LBM, mainly for research.

Author: Łukasz Łaniewski-Wołłk

Major contributors:

Contributors:

Developed at:

Citation

Please use appropriate citations if using this software in any research publication. The publication should cite the original paper about TCLB and papers which describe the used LBM models. You can find the list of TCLB publications at docs.tclb.io/general-info/publications/. You can also find the information about published articles in the source code of the models. The code can be cited additionally, by its Zenodo DOI.

License

This software is distributed under the GPL v3 License.

If you need this software under a different license, please contact the main author.

Contact: lukasz.laniewski(monkey)pw.edu.pl

About

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code

Topics

Resources

Contributing

Stars

206 stars

Watchers

13 watching

Forks

Releases

Used by

Contributors

Languages