<- Back to overview

Getting Started

This guide covers setting up HASEonGPU and choosing an interface for a simulation workflow. For a compact project overview, see HASEonGPU Documentation. For the ASE model and estimator, see Theory and Model.

HASEonGPU supports multiple usage paths:

Repository Setup

Clone the repository from GitHub:

git clone https://github.com/computationalradiationphysics/haseongpu.git
cd haseongpu

Dependencies

Required software:

  • cmake

  • ninja

  • Python >= 3.11 with pip

  • A C++20-capable compiler, tested with:

    • gcc >= 12

    • clang >= 17

Optional backend/runtime dependencies:

  • cuda >= 12.5 tested up to cuda 13.2

  • hip/rocm >= 6.2.4 tested up to rocm 7.2

  • hwloc unless disabled

Optional software and tools:

  • OpenMPI >= 4.0

  • MATLAB or Octave

  • ParaView for visualization of .vtk output

Hardware requirements:

  • NVIDIA GPU with CUDA support

  • For GPU execution, a CUDA-capable device is required

Additional Notes

For Windows-specific installation notes [deprecated], see Windows Notes.

Compilation Notes

A manual compilation step is available, but is not required for every workflow.

For example, when using the Python interface, the C++ backend is built under the hood during installation. For details on manual compilation, see Compilation.

Choose an Interface

Python Interface Guide

The Python interface guide is the recommended starting point for most new users. It explains the high-level workflow and shows how to assemble geometry, material data, pump settings, ASE configuration, and time stepping in Python.

Continue with Python Interface Guide. When you need exact signatures or generated member lists, use the Python API Reference.

Binary Interface

The binary interface is useful for running HASEonGPU directly from the command line or as an entry point for constructing a custom API call.

Continue with Binary Interface.

MATLAB Interface

The MATLAB-compatible interface is mainly intended for existing MATLAB or Octave workflows. For new workflows, the Python interface is usually the better choice.

Continue with MATLAB Interface.

Typical Workflow

A typical HASEonGPU setup consists of the following steps:

  1. Clone the repository

  2. Install the required dependencies

  3. Decide which interface to use

  4. Follow installation steps provided on the page of the chosen interface

  5. Verify the setup with one of the provided interface-specific examples

  6. Use HASEonGPU in the target workflow

Next Step

Proceed to one of the interface pages listed above, depending on the intended usage path.