c++

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 »

How to annotate C++ code for automatic code documentation

In this article, we look at how we can annotate our code so it can be picked up by a documentation tool to provide automatic code documentation for us. There are good and bad ways to do this, and unfortunately, more often than not, code documentation is a dreaded task by programmers and is done …

How to annotate C++ code for automatic code documentation 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 »

What is test coverage and how to use LCOV/GCOV for testing

In this final article on software testing, we look at test coverage. We discuss first what it is and what a good test coverage looks like. We then jump straight into an example and learn how to use gcov and lcov, two popular tools for reporting test coverage, and see how we can compute test …

What is test coverage and how to use LCOV/GCOV for testing Read More »

How to use mocking in CFD test code using gtest and gmock

In this article, we look at the last remaining topic in our series on software testing; Mocking. This aspect plays a a very big role in the testing of web and mobile applications, but not so much for console applications such as CFD solvers. However, there are specific use cases where mocking can help us …

How to use mocking in CFD test code using gtest and gmock Read More »