Skip to content

Latest commit

 

History

History
29 lines (16 loc) · 2.15 KB

README.md

File metadata and controls

29 lines (16 loc) · 2.15 KB

About

This repository contains the code I developed as part of my PhD thesis, "Topology optimization and lattice Boltzmann methods".

Usage

The code is not in a "plug and play" state to use as a library, as it was developed with myself as the sole user. Similarly, it contains bits of code that were never finished. However, bits and pieces of the code might be useful for others to incorporate into their own research projects.

Potentially useful code for others

The following bits of code might be of interest to others:

  • The topOpt folder contains a low overhead implementation of a memory efficient checkpointing algorithm for adjoint computations. See original paper by Wang et al for theoretical details.
  • MPISplit.cc contains the implementation of a helper class used to solve multiple systems in parallel in separate MPI communicators, useful for robust topology optimization.

These can both be used in another context than lattice Boltzmann, e.g. for topology optimization for other kinds of physics or for other kinds of optimization problems.

Dependencies

The code depends on PETSc, and optionally on CoDiPack for differentiation of arbitrary lattice Boltzmann models using automatic differentiation.

My papers

Contact

In case any of the above is potentially useful to you, feel free to open an issue in case you need help.