Chipsff
Evaluation of universal machine learning force-fields https://doi.org/10.1021/acsmaterialslett.5c00093
Install / Use
/learn @usnistgov/ChipsffREADME
CHIPS-FF

Overview
The chipsff repository provides a comprehensive framework for performing materials simulations with machine learning force fields (MLFFs). Simulations include structural relaxation, vacancy and surface energy calculations, interface analysis, elastic properties, phonons and thermal properties. The code supports multiple universal MLFFs and integrates with the JARVIS database and the Atomic Simulation Environment (ASE) to facilitate various materials simulations and workflows.
Features
- Structural Relaxation: Optimize atomic structures using various MLFF calculators and optimization algorithms.
- Energy-Volume (E-V) Curve: Fit the E-V curve using an equation of state (EOS) to obtain bulk modulus and equilibrium energy and volume.
- Elastic Properties: Calculate elastic tensors.
- Vacancy and Surface Energy Calculations: Compute vacancy formation energies and surface energies for different types of vacancies and surface terminations.
- Phonon Analysis: Generate phonon band structures, density of states (DOS), and thermal properties using Phonopy.
- Thermal Conductivity: Calculate thermal conductivity using third order force constants from Phono3py.
- Thermal Expansion: Perform thermal expansion calculations using the Quasi-Harmonic Approximation (QHA).
- Molecular Dynamics (MD) Simulations: Conduct MD simulations to melt and quench structures, and calculate Radial Distribution Functions (RDFs).
- Support for Multiple Calculators: Seamlessly switch between different MLFF calculators such as
alignn_ff,chgnet,sevenn,mace,matgl, custom, etc. - Automatic Error Calculation: Direct comparison to density functional theory (DFT) calculations from JARVIS-DFT.
Installation
Clone the repository:
git clone https://github.com/usnistgov/chipsff
Set up a conda environment:
conda env create -f environment.yml -n chipsff
conda activate chipsff
Install the CHIPS-FF package:
cd chipsff
pip install -e .
Examples
| Notebooks | Google Colab | Descriptions |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Structure optimization | | Examples for comparing errors in lattice parameter predictions, bulk modulus, elastic constants, etc. |
| Scaling/timing comparison |
| Examples of analyzing scaling and timing comparisons. |
Requirements
The following libraries and tools are required:
python >= 3.9numpymatplotlibpandasscikit-learnasephonopyphono3pyjarvis-toolsintermath5pyplotlyruamel
Universal MLFFs Implemented
alignn_ffchgnetsevennmacematglorbfairchem
Note: Some calculators may have additional dependencies or require specific versions of libraries. Please refer to their respective documentation for setup instructions. To install the intermat package, see here.
Input File Parameters
The input configuration file is a JSON file that specifies all required settings for performing materials simulations. Below is a detailed explanation of each parameter and its expected values.
Primary Parameters
-
jid(string): The JARVIS ID of the material to analyze (e.g.,"JVASP-1002"). This identifier is used to fetch structural data from the JARVIS database. -
jid_list(list of strings): A list of multiple JARVIS IDs for batch analysis (e.g.,["JVASP-1002", "JVASP-816", "JVASP-867"]). Only used if analyzing multiple materials. -
film_idandsubstrate_id(list of strings): Lists of JARVIS IDs for film and substrate materials, respectively, in an interface analysis (e.g.,["JVASP-1002"]and["JVASP-816"]). -
calculator_type(string): Specifies the MLFF calculator to use for analysis. Each calculator corresponds to a different machine learning force field or calculation model. -
calculator_types(list of strings): A list of calculators to use for batch processing (e.g.,["alignn_ff", "chgnet"]). Only required if analyzing multiple calculators for batch processing. -
chemical_potentials_file(string): Path to the JSON file containing chemical potentials for elements (e.g.,"chemical_potentials.json"). Required for formation energy and defect calculations. If an entry is missing for a particular element or MLFF calculator, it will be automatically calculated and stored in the chemical_potentials.json file.
Structural and Interface Settings
-
film_indexandsubstrate_index(string): Miller indices for the film and substrate in interface analysis, respectively. Example:"1_1_0"for both film and substrate. -
use_conventional_cell(boolean): Determines whether to use a conventional cell for the simulation. Set totrueto use the conventional cell structure, orfalsefor the primitive cell.
Properties to Calculate
properties_to_calculate(list of strings): Specifies which properties to calculate during the workflow. Each string represents a calculation or analysis task. Options include:"relax_structure": Perform initial structural relaxation."calculate_formation_energy": Calculate formation energy per atom."calculate_ev_curve": Fit the energy-volume (E-V) curve."calculate_elastic_tensor": Compute the elastic tensor."run_phonon_analysis": Run phonon band structure and thermal property calculations."analyze_defects": Calculate vacancy formation energies."analyze_surfaces": Calculate surface energies."analyze_interfaces": Perform interface analysis."run_phonon3_analysis": Run calculations for thermal conductivity."calculate_thermal_expansion": Calculate the thermal expansion coefficient."general_melter": Perform MD melting and quenching simulations."calculate_rdf": Calculate the Radial Distribution Function (RDF) for a quenched structure.
Relaxation and Analysis Settings
Bulk Relaxation Settings
bulk_relaxation_settings(dictionary): Configures the relaxation process for bulk structures. Contains:filter_type(string): Specifies the filter type in ASE. Options include"ExpCellFilter"(exponential cell filter) and other filters.relaxation_settings(dictionary): Contains relaxation parameters:constant_volume(boolean): Iftrue, keeps the volume constant during relaxation.fmax(float): Convergence criterion for force (e.g.,0.05).steps(int): Maximum number of optimization steps (e.g.,200).
Phonon Settings
phonon_settings(dictionary): Configures phonon calculation parameters. Contains:dim(list of integers): Specifies the supercell dimensions for phonon calculations (e.g.,[2, 2, 2]).distance(float): Specifies the displacement distance for finite-displacement phonon calculations (e.g., `0.
