programming

How to automate testing with CMake, CTest, and gtest

In this article, we will have a look at how we can integrate unit, integration, and system tests with CMake. We will see that CMake comes with additional helper utilities, one of which is CTest. We use CMake to register all tests and then compile them into individual executables, and we use CTest to run …

How to automate testing with CMake, CTest, and gtest Read More »

How to add external libraries into your CFD solver using CMake

After having reviewed how to compile your own library with CMake in the previous article, including what steps to take so that other people can consume your library in their project, we reverse the role in this article and look at how we can use someone else’s library in our project. In the process, we …

How to add external libraries into your CFD solver using CMake Read More »

How to compile, install, and use custom libraries with CMake

In this article, we will look at how we can use CMake to compile and install a library we have developed, be it a static, dynamic, or header-only library. We look at all the steps we need to take to make the installation successful, which will contain steps to automatically generate files that other projects …

How to compile, install, and use custom libraries with CMake Read More »

Advanced CMake features to power up your CFD development

In this article, we look at some more advanced concepts in CMake that will help you automate your build process from start to end. We first look at programming with variables, conditional statements, and loops, and then look at functions and macros, configure files, generator expressions, and finally policies. If you master these concepts, you …

Advanced CMake features to power up your CFD development Read More »

How to use Makefiles to automate CFD solver compilations

In this article, we take a look at automating the software build stage using build and systems. We look at what options are available to us and why CMake, in particular, stands out as the most suitable choice for build automation. It enjoys the largest user base among all build systems, and chances are that …

How to use Makefiles to automate CFD solver compilations Read More »

Can ChatGPT write fully functional CFD solvers?

In this article, we’ll explore ChatGPT’s capabilities to write CFD solvers from scratch. We’ll explore two types of applications: a simple model equation commonly used to study numerical schemes and a 2D CFD solver that hard-codes initial and boundary conditions but otherwise implements enough logic to be classified as a fully functioning CFD solver. We …

Can ChatGPT write fully functional CFD solvers? Read More »

Documenting code; why bother and how to do it right

In this article, we will explore the three main components that makeup code documentation. We will explore why providing documentation is important and how it improves the chance that others will start using your code. We also look at situations where writing documentation for the sake of it may lead to pointless documentation and this …

Documenting code; why bother and how to do it right Read More »