Skip to content

[iPIC3D] [package list]

iPIC3D/20260205-cpeCray-25.03-rocm (iPIC3D-20260205-cpeCray-25.03-rocm.eb)

Install with the EasyBuild-user module:

eb iPIC3D-20260205-cpeCray-25.03-rocm.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider iPIC3D/20260205-cpeCray-25.03-rocm.

EasyConfig:

# #
# Author:    Bibek Chapagain <bibek.chapagain@bsc.es>
# Adapted for LUMI by Jakob Struye <jakob.struye@uantwerpen.be>
# Developed by the EPICURE project (https://epicure-hpc.eu/)
# #
easyblock= 'CMakeMake'

name =          'iPIC3D'
version =       '20260205'
versionsuffix = '-rocm'

homepage = 'https://kth-hpc.github.io/iPIC3D/'

whatis = [
    'Description: iPIC3D is a parallel 3D implicit Particle-In-Cell code'
]

description = """
iPIC3D is a three-dimensional parallel PIC code. On multiprocessor architectures, 
the domain decomposition technique is used to divide the computational workload among processors. 
For implicit PIC where the cost of particle moving and of field solving are of the same order 
(unlike explicit PIC where most of the cost resides with the particles), it is crucial that both field 
solving and particle moving be parallelized efficiently. An important aspect of efficiency is the need 
to retain the particles and cells belonging to a subdomain on the same processor.
""" 

toolchain = {'name': 'cpeCray', 'version': '25.03'}
toolchainopts = {'pic': True, 'usempi': True, 'openmp': True}

sources = [
    {
        'filename': 'iPIC3D-GPU-SPACE-CoE',
        'git_config': {
            'url': 'https://github.com/Pranab-JD',
            'repo_name': 'iPIC3D-GPU-SPACE-CoE',
            'commit': 'f6fa4affafada4936fa2b1c71dd82b99c488de1c',
            'keep_git_dir': False,
        }
    },
]

configopts = (
    "-DHIP_ON=ON "
    "-DCMAKE_C_COMPILER=cc "
    "-DCMAKE_CXX_COMPILER=CC "
    "-DCMAKE_HIP_COMPILER=CC"
)

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True),
]

dependencies = [
    ('rocm',    EXTERNAL_MODULE),
    ('cray-hdf5', EXTERNAL_MODULE),
]

buildininstalldir = True

# Matches: mkdir build && cd build
separate_build_dir = True

# Skip non-existent "make install"
skipsteps = ['install']

postinstallcmds = [
    "mkdir -p %(installdir)s/bin",
    "mkdir -p %(installdir)s/lib",

    "cp $(find %(builddir)s -type f -name iPIC3D | head -n 1) %(installdir)s/bin/",
    "find %(builddir)s -name '*.so' -exec cp {} %(installdir)s/lib/ \\;",

    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../iPIC3D-GPU-SPACE-CoE && cp LICENSE NOTICE README.md %(installdir)s/share/licenses/%(name)s',
]

sanity_check_paths = {
    'files': ['bin/iPIC3D'],
    'dirs':  ['bin'],
}

moduleclass = 'phys'

[iPIC3D] [package list]