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:
Python Interface Guide for workflow-oriented Python usage
Binary Interface for command-line execution
MATLAB Interface for integration into existing MATLAB or Octave workflows
Repository Setup
Clone the repository from GitHub:
git clone https://github.com/computationalradiationphysics/haseongpu.git
cd haseongpu
Dependencies
Required software:
cmakeninjaPython >= 3.11withpipA C++20-capable compiler, tested with:
gcc >= 12clang >= 17
Optional backend/runtime dependencies:
cuda >= 12.5tested up tocuda 13.2hip/rocm >= 6.2.4tested up torocm 7.2hwlocunless disabled
Optional software and tools:
OpenMPI >= 4.0MATLAB or Octave
ParaViewfor visualization of.vtkoutput
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:
Clone the repository
Install the required dependencies
Decide which interface to use
Follow installation steps provided on the page of the chosen interface
Verify the setup with one of the provided interface-specific examples
Use HASEonGPU in the target workflow
Next Step
Proceed to one of the interface pages listed above, depending on the intended usage path.