#### Every month we feature an addition to our software library. What is a software module? answer here.

### EESSI-based GitHub Action for Continuous Integration

March 26, 2021 Description This module sets up the European Environment for Scientific Software Installations (EESSI) for use in GitHub Workflows. The European Environment for Scientific Software Installations (EESSI) is a collaboration between a number of academic and industrial partners in the HPC community to set up a shared stack of scientific …Read More »### March Module of the Month: DL_MESO (DPD) on Kokkos for enhanced performance portability

March 26, 2021 This work relates to the implementation of a performance portable version of DL_MESO (DPD) using the Kokkos library. It focuses on porting to DL_MESO (DPD) the first and second loops of the Verlet Velocity (VV) scheme for the time marching scheme. This allows to run DL_MESO on NVidia GPUs as …Read More »### March Module of the Month: n2p2 – Improved link to HPC MD software

March 26, 2021 This module improves the connection of n2p2 to HPC software, in particular to LAMMPS, by creating a pull request to the official LAMMPS repository. Furthermore, the build process for the n2p2 interface library is enhanced to allow for a selective activation of different interfaces. A first application is also …Read More »### February Module of the Month: ALL library implementation in HemeLB, a CoE collaboration

February 26, 2021 This module describes the work done in E-CAM in cooperation with the HemeLB code from the CompBioMed Centre of Excellence. HemeLB is a high performance lattice-Boltzmann solver optimised for simulating blood flow through sparse geometries, such as those found in the human vasculature. The code is used within the …Read More »### January Module of the Month: MaZe, Mass-Zero Constrained Dynamics for Orbital Free Density Functional Theory

January 29, 2021 Description The program performs Orbital-Free Density Functional Theory Molecular Dynamics (OF-DFT-MD) using the Mass-Zero (MaZe) constrained molecular dynamics approach described in [1]. This method enforces, at each time step, the Born-Oppenheimer condition that the system relaxes instantaneously to the ground state through the formalism of massless constraints. The adiabatic separation …Read More »### December Module of the Month: Load balancing for multi-GPU DL_MESO

December 15, 2020 Description This module concerns the implementation of the E-CAM Load Balancing Library (ALL) in the multi-GPU version of DL_MESO_DPD code. The intention is to allow for better performance when modelling complex systems with DL_MESO_DPD, like large proteins or lipid bilayers, redistributing the work load across the GPUs. ALL provides …Read More »### November Module of the Month: PerGauss, Periodic Boundary Conditions for gaussian bases

November 25, 2020 Description The module PerGauss (Per iodic Gauss ians) consists on an implementation of periodic boundary conditions for gaussian bases for the Quantics program package. In quantum dynamics, the choice of coordinates is crucial to obtain meaningful results. While xyz or normal mode coordinates are linear and do not need a periodical treatment, particular angles, …Read More »### Dask-traj

October 8, 2020 For analysis of molecular dynamics (MD) simulations MDTraj is a fast and commonly used analysis. However MDTraj has some restrictions such as (1) the whole trajectory needs to fit into memory, or gathering results becomes inconvenient; (2) the result of the computation also need to fit into memory, and (3) all …Read More »### CLstunfti: An extendable Python toolbox to compute scattering of electrons with a given kinetic energy in liquids and amorphous solids

September 23, 2020 Description CLstunfti is an extendable Python toolbox to compute scattering of electrons with a given kinetic energy in liquids and amorphous solids. It uses a continuum trajectory model with differential ionization and scattering cross sections as input to simulate the motion of the electrons through the medium. Originally, CLstunfti …Read More »### Minimal distance segment to segment with Karush-Kuhn-Tucker conditions

July 21, 2020 Description The module minDist2segments_KKT returns the minimal distance between two line segments. It uses the Karush-Kuhn-Tucker conditions (KKT) for the minimization under constraints. Practical application We use the present module to avoid topology violations in an entangled polymer system. To preserve the topology in a system of entangled polymers we need to …Read More »### E-CAM High Throughput Computing Library

May 31, 2020 This module is the first in a sequence that will form the overall capabilities of the E-CAM High Throughout Computing (HTC) library. In particular this module deals with creating a set of decorators to wrap around the Dask-Jobqueue Python library, which aspires to make the development time cost of leveraging it lower …Read More »### Automated high-throughput Wannierisation, a successful collaboration between E-CAM and the MaX Centre of Excellence

April 11, 2020 Maximally-localised Wannier functions (MLWFs) are routinely used to compute from first- principles advanced materials properties that require very dense Brillouin zone (BZ) integration and to build accurate tight-binding models for scale-bridging simulations. At the same time, high-thoughput (HT) computational materials design is an emergent field that promises to accelerate the …Read More »### QMCPack Interfaces for Electronic Structure Computations

February 14, 2020 Quantum Monte Carlo (QMC) methods are a class of ab initio, stochastic techniques for the study of quantum systems. While QMC simulations are computationally expensive, they have the advantage of being accurate, fully ab initio and scalable to a large number of cores with limited memory requirements. These features make …Read More »### PANNA: Properties from Artificial Neural Network Architectures

December 5, 2019 PANNA is a package for training and validating neural networks to represent atomic potentials. It implements configurable all-to-all connected deep neural network architectures which allow for the exploration of training dynamics. Currently it includes tools to enable original[1] and modified[2] Behler-Parrinello input feature vectors, both for molecules and crystals, but …Read More »### Pyscal- A python module for structural analysis of atomic environments

November 21, 2019 Description pyscal is a python module for the calculation of local atomic structural environments including Steinhardt’s bond orientational order parameters[1] during post-processing of atomistic simulation data. The core functionality of pyscal is written in C++ with python wrappers using pybind11 which allows for fast calculations and easy extensions in python. Practical Applications Steinhardt’s order …Read More »### Multi-GPU version of DL_MESO_DPD

September 6, 2019 This module implements the first version of the DL_MESO_DPD Mesoscale Simulation Package, with multiple NVidia Graphical Processing Units (GPUs). In this module the main framework of a multi-GPU version of the DL_MESO_DPD code has been developed. The exchange of data between GPUs overlaps with the computation of the forces for …Read More »### Integrating LAMMPS with OpenPathSampling

August 16, 2019 This module shows how LAMMPS can be used as Molecular Dynamic (MD) engine in OpenPathSampling (OPS) and it also provide a benchmark for the impact of OPS overhead over the MD engine. Practical application and exploitation of the code OpenPathSampling uses OpenMM as default engine for calculating the sampled trajectories. …Read More »### FFTXlib, a rewrite and optimisation of earlier versions of FFT related routines inside QE pre-v6

August 16, 2019 FFTXlib is mainly a rewrite and optimisation of earlier versions of FFT related routines inside Quantum ESPRESSO (QE) pre-v6; and finally their replacement. Despite many similarities, current version of FFTXlib dramatically changes the FFT strategy in the parallel execution, from 1D+2D FFT performed in QE pre v6 to a 1D+1D+1D …Read More »### Extension of the ParaDiS code to include precipitate interactions, and code optimisation to run on HPC environment

June 17, 2019 Here present two featured software modules of the month: ParaDiS with precipitates ParaDiS with precipitates optimized to HPC environment that provide extensions to the ParaDIS Discrete dislocation dynamics (DDD) code (LLNL, http://paradis.stanford.edu/) where dislocation/precipitate interactions are included. Module 2 was built to run the code on an HPC environment, by optimizing …Read More »### DBCSR@MatrixSwitch, an optimised library to deal with sparse matrices

May 14, 2019 MatrixSwitch is a module which acts as an intermediary interface layer between high-level and low-level routines dealing with matrix storage and manipulation. It allows a seamlessly switch between different software implementations of the matrix operations. DBCSR is an optimized library to deal with sparse matrices, which appear frequently in many kind of …Read More »### Abrupt GC-AdResS: A new and more general implementation of the Grand Canonical Adaptive Resolution Scheme (GC-AdResS)

April 9, 2019 The Grand Canonical Adaptive resolution scheme (GC-AdResS) gives a methodological description to partition a simulation box into different regions with different degrees of accuracy. For more details on the theory see Refs. [1,2,3]. In the context of an E-CAM pilot project focused on the development of the GC-AdResS scheme, an …Read More »### Porting of electrostatics to the GPU version of DL_MESO_DPD

March 11, 2019 The porting of DL_MESO_DPD [1,2] to graphic cards (GPUs) was reported in deliverable D4.2 of E-CAM[3] (for a single GPU) and deliverable D4.3 [4] (for multiple GPUs) (Figure 1), and has now been extended to include electrostatics, with two alternative schemes as explained below. This work was recently reported on …Read More »### CTMQC, a module for excited-state nonadiabatic dynamics

February 7, 2019 CTMQC is a module for excited-state nonadiabatic dynamics. It is used to simulate the coupled dynamics of electrons and nuclei (ideally in gas phase molecular systems) in response to, for instance, an initial electronic excitation. The CTMQC module is based on the coupled-trajectory mixed quantum-classical (CT-MQC) algorithm [1,2] that …Read More »### SCDM_WFs

January 3, 2019 Module SCDM_WFs implements the selected columns of the density matrix (SCDM) method [1] for building localized Wannier Functions (WFs). Wannier90 [2] is a post-processing tool for the computation of the Maximally Localised Wannier Functions (MLWFs) [3,4,5], which have been increasingly adopted by the electronic structure community for different purposes. The reasons are manifold: …Read More »### QQ-Interface (Quantics-QChem-Interface)

December 3, 2018 The QQ-Interface module connects the full quantum nonadiabatic wavefunction propagation code Quantics to the time-dependent density functional theory (TDDFT) module of the electronic structure program Q-Chem. Q-Chem provides analytic gradients, Hessians and derivative couplings at TDDFT level. With this module, it is possible to use the Q-Chem TDDFT module for excited state direct …Read More »### PLUMED wrapper for OpenPathSampling

November 1, 2018 PLUMED is a widely used and versatile rare-event sampling and analysis code that can be used with various Molecular Dynamics (MD) engines. It has a very intuitive and versatile syntax for the definition of Collective Variables (CVs), and a wide variety of sampling methods, which accounts for its widespread use. …Read More »### Improving I/O of DL_MESO_DPD files using SIONlib

October 3, 2018 This module implements the SIONlib library to optimize the I/O (writing/reading) of the trajectory files generated by DL_MESO_DPD, the Dissipative Particle Dynamics (DPD) code from the DL_MESO package. SIONlib is a library for writing and reading binary data to/from several thousands of processors into one or a small number …Read More »### PaPIM: A code for Quantum Time Correlation Functions

September 7, 2018 PaPIM code is a package to study the (quantum) properties of materials, and in particular time correlation functions, via the so-called mixed quantum-classical methods. In these schemes, quantum evolution is approximated by appropriately combining a set of classical trajectories for the system. Several quantum effects, for example, the possibility …Read More »### Spring shooting – A module for improving efficiency of transition path sampling

August 6, 2018 Transition path sampling is most efficient when paths are generated from the top of the free energy barrier. However, complex (biomolecular) activated processes, such as nucleation or protein binding/unbinding, can have asymmetric and peaked barriers. Using uniform selection on these type of processes will not be efficient, as it, …Read More »### Symmetry Adapted Wannier Functions – a Component of the Wannier90

July 2, 2018 Symmetry Adapted Wannier Functions is a module within Wannier90 which is devoted to the construction of Wannier function (WF) with a given symmetry. The procedure implemented in this module enables one to control the symmetry and center of the WFs and also simplifies the minimisation of the spread functional …Read More »### PIM_wd: Module for sampling of the quantum Wigner distribution

June 7, 2018 The PIM_wd module implements the exact quantum Wigner probability distribution function sampling algorithm of the Phase Integration Method [1], and is the main subroutine for the quantum correlation function calculations in the PaPIM code. The module samples the thermal Wigner density using a generalised Monte Carlo scheme for sampling …Read More »### Coarse-Graining module, a Component of the Hierarchical Equilibration Strategy for Polymer Melts

May 14, 2018 To study the properties of polymer melts by numerical simulations, equilibrated configurations must be prepared. However, the relaxation time for high molecular weight polymer melts is huge and increases, according to reptation theory, with the third power of the molecular weight. Hence, an effective method for decreasing the equilibration time …Read More »### Contact Map – a package for analyzing and exploring contacts, from a trajectory generated by MD

April 4, 2018 Contacts can be an important tool for defining (meta)stable states in processes involving biomolecules. For example, an analysis of contacts can be particularly useful when defining bound states during a binding processes between proteins, DNA, and small molecules (such as potential drugs). The contacts analyzed by the contact_map package …Read More »### LocConQubit, a module for the construction of controlled pulses on isolated qubit systems using the Local Control Theory

March 16, 2018 The LocConQubit module implements the Local Control Theory[1,2], an algorithm for on-the-fly construction of a time-dependent potential that drives the evolution of a Hamiltonian towards one of its eigenstates. The algorithm is applicable to any Hamiltonian that is separable into a time-dependent and into a time-independent part, where the …Read More »### GRASP Sampling – a module to build a representative data set for a fitting procedure

February 7, 2018 GRASP_sampling performs a stratified sampling of the configurations, described by vectors, of a system to build a representative training set in a fitting procedure. Given a list of candidate configurations, and selected the size (N) of the training set required, the module executes the combinatorial optimization that maximizes the following …Read More »### Geomoltools: A set of software modules to easily manipulate molecular geometries

January 11, 2018 Geomoltools is a set of eight pre- and post-treatment Fortran codes that can be used to easily manipulate molecular geometries, allowing to minimize the average energy obtained for a range of internuclear distances for the dimers of each element, and decrease the computational cost of a DFT calculation. The set …Read More »### Path density for OpenPathSampling

November 7, 2017 Module path density implements path density calculations for the OpenPathSampling (OPS) package, including a generic multidimensional sparse histogram, and plotting functions for the two-dimensional case. Path density plots provide a way to visualize kinetic information obtained from path sampling, such as the mechanism of a rare event. In addition, the …Read More »### Second-Order Differencing Scheme

November 6, 2017 This module, SodLib, provides exact wavefunction propagation using the second-order differencing (SOD) integrator scheme to solve the time-dependent Schrödinger equation as described by Leforestier et al, J. Comp Phys, 94, 59-80, 1991. Within this scheme the time interval is determined through dividing hbar by the eigenvalue of the Hamiltonian operator …Read More »### First GPU version of the DL_MESO_DPD code

October 30, 2017 DL_MESO_DPD, is the Dissipative Particle Dynamics (DPD) code from the mesoscopic simulation package DL_MESO [1], developed by Dr. Michael Seaton at Daresbury Laboratory (UK). This open source code is available from Science and Technology Facilities Council (STFC) under both academic (free) and commercial (paid) licenses. E-CAM’s Work-package 4 (WP4), Meso …Read More »### LibOMM : Orbital Minimization Method Library

September 12, 2017 Purpose The library LibOMM solves the Kohn-Sham equation as a generalized eigenvalue problem for a fixed Hamiltonian. It implements the orbital minimization method (OMM), which works within a density matrix formalism. The basic strategy of the OMM is to find the set of Wannier functions (WFs) describing the occupied subspace …Read More »### Analysis of charge dipole moments in DL_MESO_DPD

July 14, 2017 The present module, gen_dipole.f90, is a generalization of the dipole.f90 post-processing utility of DL_MESO_DPD, the Dissipative Particle Dynamics (DPD) code from the DL_MESO package. It processes the trajectory (HISTORY) files to obtain the charge dipole moments of all the (neutral) molecules in the system. It produces files dipole_* containing the …Read More »### Solvers for quantum atomic radial equations

July 14, 2017 SQARE (solvers for quantum atomic radial equations) is a library of utilities intended for dealing with functions discretized on radial meshes, wave-equations with spherical symmetry and their corresponding quantum states. The utilities are segregated into three levels: radial grids and functions, ODE solvers, and states. For more information see modules …Read More »### ClassMC

June 5, 2017 Module ClassMC samples the system phase space using the classical Boltzmann distribution function and calculates the time correlation functions from the sampled initial conditions. For more information check the module documentation here.Read More »### Direct MD (on-the-fly) flux/rate in OpenPathSampling

June 5, 2017 This module, based on OpenPathSampling, calculates the flux out of a state and through an interface, or the rate of the transition between two states, while running a trajectory. For more information check the module documentation here. Read More »