Andrew Moa Blog Site

Matrix multiplication operation (I) - using OpenMP to speed up loop calculation

Speaking of matrices, anyone who studies science and engineering will think of the fear of being dominated by linear algebra classes. Matrix multiplication operations are indispensable for various industrial and scientific research numerical calculations, and are also used in various benchmarking software. The time consumption of matrix multiplication operations is also an important indicator for judging the floating-point operation performance of computers. The purpose of this article is to verify the performance differences of various implementation methods through matrix multiplication operations, and compare the performance differences of different computing platforms to provide a reference for high-performance computing development.
42 minutes to read
Andrew Moa

Exploring Rust Graphical Interface Libraries

Recently, I plan to refactor the code I wrote previously using Rust, which involves the question of how to choose a GUI interface. Rust has only been officially released for ten years, and is not as good as the old C/C++ in GUI development. There are many well-known and time-tested GUI interface libraries such as wxWidgets, qt, gtk+, etc. This article selects several Rust GUI libraries and simply implements a boundary layer calculator for horizontal comparison.
15 minutes to read
Andrew Moa

Use VSCode to develop STAR-CCM+ user library: build dynamic link library through Fortran

Although the official STAR-CCM+ documentation specifically states that FORTRAN is not supported under Windows1. But in fact, as long as the compiler supports it, user library compiled using Fortran under Windows can be loaded and run normally in STAR-CCM+.

1. Build CMake Project

First, we refer to the tutorial case in the official documentation 2 and build a CMake project. The project structure is as follows:

STARCCM_FORTRAN_SAMPLE
   CMakeLists.txt	# CMake Configuration File
   README.md	# Description document, not required
├───.vscode
      launch.json	# Automatically generated file when starting debug mode, not required
      settings.json	# Define CMake related variables
└───src
        initVelocity.f
        StarReal.f.in
        sutherlandViscosity.f
        uflib.f
        zeroGradT.f

The main content of CMake configuration file CMakeLists.txt is as follows:

7 minutes to read
Andrew Moa