Skip to content

Code used for my PhD thesis, "Topology optimization and lattice Boltzmann methods"

License

Notifications You must be signed in to change notification settings

northgaard/LBM-TopOpt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Code used for my PhD thesis, "Topology optimization and lattice Boltzmann methods"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published