# IT4Innovation # PH 2025 easyblock = 'ConfigureMake' name = 'CASTEP' version = '25.12' homepage = 'http://www.castep.org' description = """ CASTEP is an electronic structure materials modelling code based on density functional theory (DFT), with functionality including geometry optimization molecular dynamics, phonons, NMR chemical shifts and much more. """ toolchain = {'name': 'foss', 'version': '2023b'} download_instructions = """CASTEP is proprietary software, available under a free-of-charge license for academic use only. Visit http://www.castep.org and navigate to "Getting Castep" to apply for a license.""" sources = [SOURCE_TAR_GZ] checksums = ['e21177bfe4cb3f3d098b666c90771e3da2826503b002b8e325e3ca1e230cfc7d'] dependencies = [ ('Perl', '5.38.0'), ('Python', '3.11.5'), ('SciPy-bundle', '2023.11'), # for elastic constants and castepconv utility ] skipsteps = ['configure'] _generic_opts = ' COMMS_ARCH=mpi FFT=fftw3 MATH_LIBS="-lflexiblas" ' buildopts = _generic_opts + 'FFTLIBDIR=$FFT_LIB_DIR MATHLIBDIR=$BLAS_LIB_DIR' buildopts += ' castep tools utilities' preinstallopts = 'mkdir -p %(installdir)s/bin &&' installopts = _generic_opts + 'INSTALL_DIR="%(installdir)s/bin"' installopts += ' install-castep install-tools install-utilities' sanity_check_paths = { 'files': ['bin/%s' % x for x in ['castep.mpi', 'optados.mpi', 'orbitals2bands', 'dispersion.pl', 'elastics.py', 'ceteprouts.pm']], 'dirs': [], } sanity_check_commands = [ 'castep.mpi --help', 'optados.mpi --help', ] moduleclass = 'phys'