Coder Social home page Coder Social logo

turbogap's Introduction

The TurboGAP code

TurboGAP (c) 2018-2023 by Miguel A. Caro and others (see "contributors" below for detailed authorship info).

www.turbogap.fi

Contributors, copyright and license

The following people, listed chronologically, have contributed code or ideas to the TurboGAP code. Those whose names are in bold have contributed code to the master branch (relevant for purpose of copyright; each file in the TurboGAP repo that contains code has a copyright statement at the beginning).

  • Miguel A. Caro (Aalto University)
  • Patricia Hernández-León (Aalto University)
  • Suresh Kondati Natarajan (formerly @ Aalto University)
  • Albert P. Bartók-Pártay (Warwick University)
  • Eelis V. Mielonen (formerly @ Aalto University)
  • Heikki Muhli (Aalto University)
  • Mikhail Kuklin (formerly @ Aalto University)
  • Gábor Csányi (University of Cambridge)
  • Jan Kloppenburg (Aalto University)
  • Richard Jana (Aalto University)
  • Tigany Zarrouk (Aalto University)
  • Uttiyoarnab Saha (Aalto University)

TurboGAP is licensed under the Academic Software License (ASL), an "available source" non-commercial license. This means that you are free to use and distribute the code for non-commercial academic research (or teaching) under the terms of the license. See LICENSE.md for details. If you want to obtain a commercial license for TurboGAP, please contact Miguel Caro ([email protected]).

Some third-party code is included with TurboGAP for convenience, under the src/third_party directory. These codes are licensed independently from TurboGAP and their respective licenses have been verified to be compatible for redistribution with TurboGAP. They may be redistributed separately from TurboGAP under their respective licenses. Refer to each piece of software in that subdirectory for further information.

The soap_turbo submodule, under src/soap_turbo, is a separate distribution from TurboGAP, but it is required for running TurboGAP, since it contains the soap_turbo routines. These routines are copyright (c) of Miguel A. Caro and they are also distributed under the ASL. Therefore, you can freely use this code for non-commercial academic research or teaching. If you want to obtain a commercial license for soap_turbo please contact Miguel Caro ([email protected]).

Overview of the code

The TurboGAP code consists of a series of Fortran routines written by Dr. Miguel A. Caro and others. These routines are designed to efficiently and accurately build many-body atomic descriptors and carry out other related computations employed in machine-learning approaches to atomistic modeling, such as to run molecular dynamics simulations. The main current functionality is the computation of SOAP-type descriptors [1], which were originally introduced by Bartók, Csányi et al. [2] in the context of the Gaussian Approximation Potential framework [3].

TurboGAP is a primitive but efficient interface to the soap_turbo library. This native interface is currently restricted to limited functionality but reasonably fast (can outperform QUIP+LAMMPS in most situations); however it may be buggy, is undocumented, and can be "temperamental". If you want to use soap_turbo routines to run molecular dynamics or to carry out other simulations involving heavy use of CPU power, without the worries of using the native interface, you are advised to use QUIP. However, some new or experimental features (e.g., full support for van der Waals corrections) may only be available via the native interface. If you're feeling adventurous, and know what you're doing, you are more than welcome to use the TurboGAP interface, and feedback can be sent to Miguel Caro ([email protected]) or left on the Issues section of the Github page.

[1] M.A. Caro. Phys. Rev. B 100, 024112 (2019).
[2] A.P. Bartók, R. Kondor, G. Csányi. Phys. Rev. B 87, 184115 (2013).
[3] A.P. Bartók, M.C. Payne, R. Kondor, G. Csányi. Phys. Rev. Lett. 104, 136403 (2010).

Installation

For more detailed info on download, installation, etc., you can visit the TurboGAP wiki.

To get the TurboGAP code and the necessary soap_turbo routines, do a recursive git clone:

git clone --recursive http://github.com/mcaroba/turbogap.git /turbogap/source/directory

Where /turbogap/source/directory is the directory where you're putting the TurboGAP source code. To build the TurboGAP binary and library, you need to select the options that best match your architecture, by editing this line in the Makefile:

include makefiles/Makefile.Ubuntu_gfortran_mpi

A list of example makefiles is provided under the makefiles/ directory. Once you are happy with your Makefile, to build the code just type

make

Then add /turbogap/source/directory/bin/ to your path. If you need to rebuild the code, you can make clean; make or make deepclean; make.

Running TurboGAP

TurboGAP can be used to run static (single-point) calculations (turbogap predict) or molecular dynamics (turbogap md). For details, documentation and up-to-date information refer to the TurboGAP wiki.

Attribution

When using TurboGAP, you should give attribution to the TurboGAP author(s). The appropriate way to do that is to provide a link to the TurboGAP website and, if you publish results obtained using TurboGAP or the soap_turbo library, even if it is through one of its external interfaces, you should cite:

Miguel A. Caro. Optimizing many-body atomic descriptors for enhanced computational performance of machine learning based interatomic potentials. Phys. Rev. B 100, 024112 (2019).

In addition, you should cite any other relevant literature and code websites (e.g., the original SOAP/GAP papers) as appropriate.

turbogap's People

Contributors

janklinux avatar mcaroba avatar mikhailkuklin avatar richardjana avatar sahaua avatar tiganyz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

turbogap's Issues

Different results when running the process on 2 CPU cores and 4 CPU cores

Greetings! I've been trying to use the TurboGAP code to do molecular dynamics fueled by the GAP provided in this repository and related paper. I'm running a melting process on a supercomputer, and the code seems to produce different results depending on the number of cores used. The related files can be found here.

The issue seems to stem from the process producing 0 or NaN for forces in the first step. When trying to use more cores, the issue is consistently reproduced. Any and all help with troubleshooting this issue would be greatly appreciated!

additional information from init.xyz lost in MD run

When running MD with TurboGAP, additional information from the initial structure file is lost. This applies both to data from the info line in extxyz files as well as per-atom arrays.
I believe that, for easier workflows, keeping this information in the output trajectory written by TurboGAP would be beneficial. (Of course, such information could be added back to the trajectory by the user in post-processing. This is just for convenience.) One example for a use case would be tags, indicating groups of atoms from the original structure (that would not be obvious from looking at the final structure of a MD run).

New make_gap.py generates only one Hirshfeld alphase

By default the new make_gap generates only alphas_hirshfeld.dat. In my case it means, that I get alphas only for C or H. Could you please @richardjana fix it? Previous script was generating the alphas_hirshfel_1.dat and alphas_hirshfeld_2.dat if several species found.

Hamiltonian-MC MD moves don't perform any MD steps

@TiganyZ When I try to run swap and MD moves the MD moves only "perform" 0 MD steps, even though I'm requesting more:

n_mc_types = 2
mc_types = swap MD
thermostat = 'none'
md_nsteps = 20
md_step = 2.
t_beg = 900.
t_end = 900.

I get this kind of output and then no more MD steps follow:

 Hybrid md step: energy =         -425.40117480 , iteration         0 /       20

Is this an wrong usage issue or a possible bug?

convergence when fix_atoms set

When fix_atoms is set, those atoms need to be excluded when evaluating the convergence by forces, now the code does not converge because of them being included

Path to gap_files is not added in new make_gap_files.py

Hi,

in the generated potential.gap file, the path to gap_files/ is not added. For example,
gap_beg distance_2b
species1 = H
species2 = H
delta = 0.5
sigma = 0.5
rcut = 4.0
desc_sparse = "CH.xml.sparseX.GAP_2022_3_16_120_6_53_52_4881"
alphas_sparse = "alphas_distance_2b_1.dat"
gap_end

@richardjana

Implement or add a testing framework

As discussed in some previous meetings, it would be a good idea to collect our testing procedures so they can be run in a more automatic, systematic fashion (especially as regression tests, i.e. to make sure new changes don't break previously working functionality). Organizing these tests so that they can be run automatically usually requires quite a bit of extra code to set up and run the tests, and to check their results. Luckily, we don't have to reinvent the wheel here, as many so-called unit testing frameworks have already been implemented in Fortran. One that looks good is test-drive - it's pure Fortran and can be integrated into the project fairly easily (by copying in one .F90 file).

However, this also brings in the issues of third-party dependency management, which hasn't really been touched on in the TurboGAP code development AFAICT. There's also the issue of possible license incompatibility -- @mcaroba do you know whether we can include and redistribute the code (which is Apache 2.0 and MIT licensed) under TurboGAP's current ASL license?

Thoughts/suggestions welcome.

Issue with the new soap_turbo_radial.f90 file

Could you please check the file: turbogap/src/soap_turbo/src/soap_turbo_radial.f90? For a binary collision simulation, there seems to be a problem running on Triton, but not in desktop. The previous version of this file is working fine on both Triton and desktop.

No turbosoap branch in GAP

Dear sir,
When I use the commond "git clone -b turbosoap https://github.com/libAtoms/GAP.git" , an error occurred.

$ git clone -b turbosoap https://github.com/libAtoms/GAP.git
Cloning into 'GAP'...
fatal: Remote branch turbosoap not found in upstream origin

Is there a new command to download it?

Best regards,
Hao Wang

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.