# IT4Innovations 2017

easyblock = 'CmdCp'

name = 'LAMMPS'
version = '20181212'

homepage = 'http://lammps.sandia.gov'
description = """LAMMPS is a classical molecular dynamics code,
and an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator.
Has potentials for solid-state materials (metals, semiconductors) and soft
matter (biomolecules, polymers) and coarse-grained or mesoscopic systems.
It can be used to model atoms or, more generically, as a parallel particle simulator at the atomic,
meso, or continuum scale.
"""

toolchain = {'name': 'intel', 'version': '2017c'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['https://github.com/lammps/lammps/archive']
sources = ['stable_12Dec2018.tar.gz']

patches = ['LAMMPS-20181212-lompstub.patch']

dependencies = [
    ('tbb', '2017.6.196', '', True),
    ('gperftools', '2.7', '', True),
]

builddependencies = [
    ('Py', '3.6', '', True),
    ('CMake', '3.13.1', '', True),
]

commands = "cd src && export LC_ALL='en_US.utf8' && "
commands += "make lib-reax args='-m ifort' && "
commands += "make lib-meam args='-m ifort' && "
commands += "make yes-reax && make yes-meam && "
commands += "make yes-kokkos && "
commands += "make yes-user-phonon && make yes-misc && make yes-user-meamc && "
commands += "make yes-kspace && make yes-manybody && make yes-molecule && "
commands += "make yes-qeq && make yes-rigid && make yes-user-misc && "
commands += "make yes-user-reaxc && make yes-user-omp && "
commands += "make -j 16 intel_cpu_intelmpi && mv lmp_intel_cpu_intelmpi lammps"

cmds_map = [('.*', commands)]

files_to_copy = [
    (['src/lammps'], 'bin'),
]

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

moduleclass = 'chem'
