Skip to content

Getting Started

shaia edited this page Mar 4, 2026 · 2 revisions

Getting Started

This guide will help you build the CFD library and run your first simulation.

Prerequisites

  • CMake 3.10 or higher
  • C Compiler: GCC, Clang, or MSVC
  • Build system: Make, Ninja, or Visual Studio
  • Optional: CUDA Toolkit (for GPU acceleration)
  • Optional: Python 3.x (for visualization scripts)

Building

Quick Build with Script

# Clone the repository
git clone https://github.com/shaia/CFD.git
cd CFD

# Build (CPU only)
./build.sh build

# Build with tests
./build.sh build-tests

# Run tests
./build.sh test

Manual Build

mkdir build && cd build
cmake ..
cmake --build . --config Release

Build with GPU Support

cmake -DCFD_ENABLE_CUDA=ON -B build
cmake --build build --config Release

Build Options

Option Default Description
CFD_ENABLE_CUDA OFF Enable CUDA GPU acceleration
BUILD_TESTS OFF Build test executables
BUILD_DOCS OFF Build Doxygen documentation
CFD_CUDA_ARCHITECTURES 60;70;75;80;86;89;90 Target GPU architectures

Running Examples

After building, examples are in the build/ directory:

# On Windows
cd build/Release
./minimal_example.exe
./basic_simulation.exe

# On Linux/macOS
cd build
./minimal_example
./basic_simulation

Output files are created in output/.

Your First Simulation

Create a file my_simulation.c:

#include "cfd/api/simulation_api.h"
#include <stdio.h>

int main() {
    // Create a 50x50 grid on a 1x1 domain (nz=1 for 2D)
    simulation_data* sim = init_simulation(50, 50, 1, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0);

    if (!sim) {
        printf("Failed to create simulation\n");
        return 1;
    }

    // Configure output
    simulation_set_run_prefix(sim, "my_first_sim");
    simulation_register_output(sim, OUTPUT_VELOCITY_MAGNITUDE, 5, "velocity");
    simulation_register_output(sim, OUTPUT_CSV_TIMESERIES, 1, "timeseries");

    printf("Running simulation...\n");

    // Run 50 time steps
    for (int step = 0; step < 50; step++) {
        run_simulation_step(sim);
        simulation_write_outputs(sim, step);

        if (step % 10 == 0) {
            printf("Step %d complete\n", step);
        }
    }

    printf("Simulation complete!\n");
    printf("Output files in: output/my_first_sim_*/\n");

    free_simulation(sim);
    return 0;
}

Add to CMakeLists.txt:

add_executable(my_simulation my_simulation.c)
target_link_libraries(my_simulation PRIVATE CFD::Library)

Build and run:

cmake --build build
./build/my_simulation

Visualizing Results

With ParaView (Recommended)

  1. Open ParaView
  2. File > Open > Select VTK files from output directory
  3. Apply to load
  4. Use "Contour" or "Glyph" filters for visualization

With Python

pip install matplotlib numpy

# Simple visualization
python visualization/simple_viz.py

# Advanced visualization
python visualization/visualize_cfd.py

Next Steps

Clone this wiki locally