Posts in 2023
  • A reflection system for MeshFreeFoam: Part 3

    Thursday, October 05, 2023 in Discussions

    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 …

    Read more

  • A reflection system for MeshFreeFoam: Part 2

    Monday, October 02, 2023 in Discussions

    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 …

    Read more

  • A reflection system for MeshFreeFoam: Part 1

    Friday, September 29, 2023 in Discussions

    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 …

    Read more

  • Lazy Evaluation: Part 1

    Wednesday, September 27, 2023 in Discussions

    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 …

    Read more

  • Optimization notes: Part 1

    Tuesday, August 29, 2023 in Discussions

    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 …

    Read more

  • Introducing unit tests with foamUT

    Tuesday, August 29, 2023 in Discussions

    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 …

    Read more

  • Runtime selection mechanism for `MeshFreeFoam`

    Monday, August 28, 2023 in Discussions

    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 …

    Read more

  • Design of domain shapes

    Wednesday, August 23, 2023 in Discussions

    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, …

    Read more

  • Managing dependency software for `meshfreeFoam`

    Friday, August 18, 2023 in Discussions

    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? …

    Read more

  • The very first issues I ran into with this documentation project

    Friday, August 18, 2023 in Discussions

    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 …

    Read more