Skip to content

[PyFR] [package list]

PyFR/2.0.3-cpeGNU-24.03-rocm (PyFR-2.0.3-cpeGNU-24.03-rocm.eb)

Install with the EasyBuild-user module:

eb PyFR-2.0.3-cpeGNU-24.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 PyFR/2.0.3-cpeGNU-24.03-rocm.

EasyConfig:

# Created for LUMI by Orian Louant
easyblock = 'PythonBundle'

name = 'PyFR'
version = '2.0.3'
versionsuffix = '-rocm'

local_Mako_version            = '1.3.5'
local_h5py_version            = '3.11.0'
local_METIS_version           = '5.1.0'
local_libspatialindex_version = '1.9.3'

local_pathspec_version          = '0.12.1'
local_trove_classifiers_version = '2024.7.2'
local_hatchling_version         = '1.25.0'
local_hatch_vcs_version         = '0.4.0' 
local_platformdirs_version      = '4.2.2'
local_GiMMiK_version            = '3.2.1'
local_Rtree_version             = '1.3.0'
local_pytools_version           = '2024.1.13'

local_pathspec_checksum          = 'a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712'
local_trove_classifiers_checksum = '8328f2ac2ce3fd773cbb37c765a0ed7a83f89dc564c7d452f039b69249d0ac35'
local_hatchling_checksum         = '7064631a512610b52250a4d3ff1bd81551d6d1431c4eb7b72e734df6c74f4262'
local_hatch_vcs_checksum         = '093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7' 
local_platformdirs_checksum      = '38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3'
local_pytools_checksum           = 'c78f5e29fa8492cd69860d4c89b5533e0bfbe694f2fa397b04eaf0cf92409d65'
local_GiMMiK_checksum            = '048644bd71497eb07e144f2c22fdee49ba23e1cde5fb954c3c30c4e3ea23687a'
local_RTree_checksum             = 'b36e9dd2dc60ffe3d02e367242d2c26f7281b00e1aaf0c39590442edaaadd916'
local_PyFR_checksum              = '04fc479f8e49f7c4233338a70adacad615d0228a65242bb4563b0b3ee1f2c676'

homepage = 'https://www.pyfr.org/'

whatis = ['Description: PyFR is a framework for solving advection-diffusion type problems']

description = """
 PyFR is an open-source Python based framework for solving advection-diffusion
 type problems on streaming architectures using the Flux Reconstruction approach
 of Huynh. The framework is designed to solve a range of governing systems on
 mixed unstructured grids containing various element types. It is also designed
 to target a range of hardware platforms via use of an in-built domain specific
 language derived from the Mako templating engine. PyFR has the following 
 capabilities:

  - Governing Equations - Euler, Navier Stokes
  - Dimensionality - 2D, 3D
  - Element Types - Triangles, Quadrilaterals, Hexahedra, Prisms, Tetrahedra, Pyramids
  - Platforms - CPU Clusters, Nvidia GPU Clusters, AMD GPU Clusters
  - Spatial Discretisation - High-Order Flux Reconstruction
  - Temporal Discretisation - Explicit and Implicit (via Dual Time-Stepping)
  - Precision - Single, Double
  - Mesh Files Imported - Gmsh (.msh)
  - Solution Files Exported - Unstructured VTK (.vtu, .pvtu)
"""

toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'usempi': True}

builddependencies = [
  ('buildtools-python', '%(toolchain_version)s', '-cray-python%(pyshortver)s', True)
]

dependencies = [
    ('cray-python',     EXTERNAL_MODULE),
    ('rocm',            EXTERNAL_MODULE),
    ('Mako',            local_Mako_version),
    ('libspatialindex', local_libspatialindex_version),
    ('h5py',            local_h5py_version, '-parallel'),
    ('METIS',           local_METIS_version),

]

exts_default_options = {
    'source_urls': [PYPI_SOURCE],
    'use_pip': True,
    'use_pip_for_deps':  False,
    'download_dep_fail': True,
    'sanity_pip_check': False,
}

exts_list = [
    ('pathspec', local_pathspec_version, {
        'checksums' : [local_pathspec_checksum],
    }),
    ('trove_classifiers', local_trove_classifiers_version, {
        'checksums'   : [local_trove_classifiers_checksum],
    }),
    ('hatchling', local_hatchling_version, {
        'checksums' : [local_hatchling_checksum],
    }),
    ('hatch_vcs', local_hatch_vcs_version, {
        'checksums'   : [local_hatch_vcs_checksum],
    }),
    ('platformdirs', local_platformdirs_version, {
        'checksums' : [local_platformdirs_checksum],
    }),
    ('pytools', local_pytools_version, {
        'checksums' : [local_pytools_checksum],
    }),
    ('gimmik', local_GiMMiK_version, {
        'checksums' : [local_GiMMiK_checksum],
    }),
    ('rtree', local_Rtree_version, {
        'checksums' : [local_RTree_checksum],
    }),
    (name, version, {
        'source_tmpl' : 'v%(version)s.tar.gz',
        'source_urls' : ['https://github.com/PyFR/PyFR/archive/refs/tags/'],
        'checksums'   : [local_PyFR_checksum],
    }),
]

modluafooter = """
setenv("PYFR_METIS_LIBRARY_PATH", pathJoin(os.getenv("EBROOTMETIS"), "lib/libmetis.so"))
"""

moduleclass = 'phys'

[PyFR] [package list]