Skip to content

[Trilinos] [package list]

Trilinos/15.1.1-cpeGNU-24.03-OpenMP (Trilinos-15.1.1-cpeGNU-24.03-OpenMP.eb)

Install with the EasyBuild-user module:

eb Trilinos-15.1.1-cpeGNU-24.03-OpenMP.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider Trilinos/15.1.1-cpeGNU-24.03-OpenMP.

EasyConfig:

#DOC Trilinos, compiled with the multi-threaded LibSci libraries.

easyblock = 'CMakeMake'

local_Boost_version        = '1.83.0'
local_SCOTCH_version       = '7.0.4'
local_ParMETIS_version     = '4.0.3'
local_MUMPS_version        = '5.6.1'
local_SuperLU_DIST_version = '9.0.0'
local_MATIO_version        = '1.5.27'
local_cURL_version         = '8.3.0'

name =          'Trilinos'
version =       '15.1.1'
versionsuffix = '-OpenMP'

homepage = 'https://trilinos.org'

whatis = [
    "Description: Trilinos is an object-oriented collection of reusable scientific libraries"
]

description = """
The Trilinos Project is an effort to develop algorithms and enabling technologies
within an object-oriented software framework for the solution of large-scale, complex multi-physics
engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.
"""

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

local_version = version.replace('.','-')

sources = [{
    'filename':          SOURCE_TAR_GZ,
    'download_filename': f'trilinos-release-{local_version}.tar.gz',
    'source_urls':       ['https://github.com/trilinos/Trilinos/archive/refs/tags'],
}]

checksums = ['2108d633d2208ed261d09b2d6b2fbae7a9cdc455dd963c9c94412d38d8aaefe4']

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

dependencies = [
    ('cray-python',              EXTERNAL_MODULE),
    ('cray-libsci',              EXTERNAL_MODULE),
    ('cray-hdf5-parallel',       EXTERNAL_MODULE),
    ('cray-netcdf-hdf5parallel', EXTERNAL_MODULE),
    ('cray-parallel-netcdf',     EXTERNAL_MODULE),
    ('Boost',                    local_Boost_version),
    ('SCOTCH',                   local_SCOTCH_version),
    ('ParMETIS',                 local_ParMETIS_version),
    ('MUMPS',                    local_MUMPS_version,        '-OpenMP'),
    ('SuperLU_DIST',             local_SuperLU_DIST_version, '-OpenMP'),
    ('MATIO',                    local_MATIO_version),
    ('cURL',                     local_cURL_version),
]

local_packages = [
    'Amesos',
    'Amesos2',
    'Anasazi',
    'AztecOO',
    'Belos',
    'Epetra',
    'Isorropia',
    'Teko',
    'Piro',
    'EpetraExt',
    'Galeri',
    'Ifpack',
    'Ifpack2',
    'Intrepid',
    'Kokkos',
    'Komplex',
    'ML',
    'MueLu',
    'NOX',
    'Pamgen',
    'Phalanx',
    'Pliris',
    'ROL',
    'RTOp',
    'Sacado',
    'Shards',
    'ShyLU',
    'STK',
    'STKSearch',
    'STKTopology',
    'STKUtil',
    'Stokhos',
    'Stratimikos',
    'Teuchos',
    'Thyra',
    'Tpetra',
    'TrilinosCouplings',
    'Triutils',
    'Xpetra',
    'Zoltan',
    'Zoltan2',
    'SEACAS',
    'SEACASExo2mat',
    'SEACASMat2exo',
]

local_disabled_packages = []

configopts = ' '.join([
    '-D CMAKE_CXX_COMPILER="$CXX"',
    '-D CMAKE_C_COMPILER="$CC"',
    '-D CMAKE_Fortran_COMPILER="$FC"',
    '-D TPL_ENABLE_MPI=ON',
    '-D Trilinos_ENABLE_OpenMP=ON',
    '-D BUILD_SHARED_LIBS=ON',
    '-D TPL_ENABLE_BLAS=ON',
    '-D TPL_ENABLE_LAPACK=ON',
    '-D TPL_ENABLE_SCALAPACK=ON',
    '-D BLAS_LIBRARY_NAMES=""',
    '-D LAPACK_LIBRARY_NAMES=""',
    '-D SCALAPACK_LIBRARY_NAMES=""',
    '-D TPL_ENABLE_Scotch=ON',
    '-D TPL_ENABLE_SuperLU=OFF',
    '-D TPL_ENABLE_SuperLUDist=ON',
    '-D TPL_SuperLUDist_INCLUDE_DIRS=$EBROOTSUPERLU_DIST/include',
    '-D SuperLUDist_LIBRARY_DIRS=$EBROOTSUPERLU_DIST/lib',
    '-D HAVE_SUPERLUDIST_ENUM_NAMESPACE=YES',
    '-D HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG=YES',
    '-D TPL_ENABLE_METIS=ON',
    '-D TPL_METIS_INCLUDE_DIRS=$EBROOTPARMETIS/include',
    '-D METIS_LIBRARY_DIRS=$EBROOTPARMETIS/lib',
    '-D TPL_ENABLE_ParMETIS=ON',
    '-D TPL_ParMETIS_INCLUDE_DIRS=$EBROOTPARMETIS/include',
    '-D ParMETIS_LIBRARY_DIRS=$EBROOTPARMETIS/lib',
    '-D ParMETIS_LIBRARY_NAMES="parmetis;metis"',
    '-D TPL_ENABLE_MUMPS=ON',
    '-D TPL_MUMPS_INCLUDE_DIRS=$EBROOTMUMPS/include',
    '-D MUMPS_LIBRARY_DIRS=$EBROOTMUMPS/lib',
    '-D TPL_ENABLE_Matio=ON',
    '-D TPL_Matio_INCLUDE_DIRS=$EBROOTMATIO/include',
    '-D Matio_LIBRARY_DIRS=$EBROOTMATIO/lib',
    '-D TPL_ENABLE_HDF5=ON',
    '-D TPL_HDF5_INCLUDE_DIRS=$HDF5_DIR/include',
    '-D HDF5_LIBRARY_DIRS="$HDF5_DIR/lib"',
    '-D TPL_ENABLE_Netcdf=ON',
    '-D TPL_Netcdf_INCLUDE_DIRS="$CRAY_NETCDF_HDF5PARALLEL_DIR/include;$CRAY_PARALLEL_NETCDF_DIR/include"',
    '-D Netcdf_LIBRARY_DIRS="$CRAY_NETCDF_HDF5PARALLEL_DIR/lib;$CRAY_PARALLEL_NETCDF_DIR/lib"',
    '-D TPL_ENABLE_Boost=ON',
    '-D TPL_Boost_INCLUDE_DIRS=$EBROOTBOOST/include',
    '-D TPL_ENABLE_X11=OFF',
    '-D TPL_ENABLE_MPI=ON',
    '-D MPI_EXEC:STRING=srun',
    '-D MPI_EXEC_NUMPROCS_FLAG:STRING="-n"',
    '-D Kokkos_ENABLE_Serial:BOOL=ON',
    '-D Tpetra_INST_SERIAL:BOOL=ON',
    '-D Kokkos_ENABLE_OpenMP:BOOL=ON',
    '-D CMAKE_CXX_STANDARD:STRING=17',
]) + ' '


for local_pkg in local_packages:
    configopts += '-D Trilinos_ENABLE_%s=ON ' % local_pkg

for local_pkg in local_disabled_packages:
    configopts += '-D Trilinos_ENABLE_%s=OFF ' % local_pkg

sanity_check_paths = {
    'files': ['include/Trilinos_version.h'],
    'dirs':  ['include', 'lib'],
}

moduleclass = 'numlib'

[Trilinos] [package list]