A reflection system for MeshFreeFoam: Part 3
Thursday, October 05, 2023 in Discussions
8 minute read
The previous post outlined the main challenges in implementing a decent reflection system for OpenFOAM while preserving the benefits of the runtime selection mechanism. In this post, I describe the final state of the system and its limitations, along …
A reflection system for MeshFreeFoam: Part 2
Monday, October 02, 2023 in Discussions
3 minute read
The previous post a few days ago introduced the idea of leveraging a reflection system to automatically build UIs for MeshFreeFoam classes that stay up to date with code changes. In this post, I outline what’s currently possible, what’s …
A reflection system for MeshFreeFoam: Part 1
Friday, September 29, 2023 in Discussions
2 minute read
Motivation Lazy evaluation is not the only thing I envy in .Net languages. It’s one of two things, the other being their runtime reflection systems. This feature is not exclusive to .Net languages; it’s found in all reflective languages …
Lazy Evaluation: Part 1
Wednesday, September 27, 2023 in Discussions
6 minute read
Motivation I used to think of OpenFOAM’s tmp class template as a memory management thing (which is correct). After having some suspicions, I had a discussion with @holger on the details of using tmp to get things out of function scope. As …
Optimization notes: Part 1
Tuesday, August 29, 2023 in Discussions
less than a minute
KdTree and radius-based searches When it comes to k-nearest neighbor (KNN) searches with unsorted radius queries in C++, I’ve decided to utilize nanoflann as the backend for these operations. Their API is user-friendly, but there’s a …
Introducing unit tests with foamUT
Tuesday, August 29, 2023 in Discussions
less than a minute
Well, there are three clear objects for unit testing: Making sure new code does not break older functionality Making sure new functionality works as expected Making sure important dependency APIs have not changed without us noticing To this end, I …
Runtime selection mechanism for `MeshFreeFoam`
Monday, August 28, 2023 in Discussions
less than a minute
In short, I’ll stick with OpenFOAM’s way of doing things when it comes to: RunTime Selection of models The plugin system (Function Objects) Issue 01: Dependency on the OpenFOAM version I have decided to run with the master branch from …
Design of domain shapes
Wednesday, August 23, 2023 in Discussions
2 minute read
A few design goals govern how MeshFreeFoam shapes are implemented, with the most important ones being: Support for dynamically loaded models, starting from STL files Support for basic geometric operations (adding, subtracting, scaling, rotating, …
Managing dependency software for `meshfreeFoam`
Friday, August 18, 2023 in Discussions
3 minute read
Dependency management is always a hustle. For my PhD project, I would need to live through this hell for around three years. Specifically, OpenFOAM libraries are dependencies for me and that is a big deal for few reasons: Which OpenFOAM fork to use? …
The very first issues I ran into with this documentation project
Friday, August 18, 2023 in Discussions
2 minute read
There are basically three main issues: Documenting C++20 (specifically: concepts) At the time of writing, Hyde doesn’t support C++ concepts yet, which I plan to use extensively. The code still compiles (because clang can compile it) but Hyde …