You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper.md
+33-47Lines changed: 33 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,55 +31,42 @@ bibliography: paper.bib
31
31
32
32
# Summary
33
33
34
-
The forces on stars, galaxies, and dark matter under external gravitational
35
-
fields lead to the dynamical evolution of structures in the universe. The orbits
36
-
of these bodies are therefore key to understanding the formation, history, and
37
-
future state of galaxies. The field of "galactic dynamics," which aims to model
38
-
the gravitating components of galaxies to study their structure and evolution,
39
-
is now well-established, commonly taught, and frequently used in astronomy.
40
-
Aside from toy problems and demonstrations, the majority of problems require
41
-
efficient numerical tools, many of which require the same base code (e.g., for
42
-
performing numerical orbit integration).
34
+
Atomic simulations are a key component of modern day materials science in both academia and industry. However, simulation protocols and workflows used by researchers are typically difficult to transfer to systems using different inputs, packages and environments. This leads to poor reproducability and inefficient transfer of code from one researcher to the next. In addition, there exists a zoo of tools and packages for atomic simulation with more being developed every day. There is however no unifying framework that can encompass all these tools without significant software development or using bulky workflow managers.
43
35
44
36
# Statement of need
45
37
46
-
`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python
47
-
enables wrapping low-level languages (e.g., C) for speed without losing
48
-
flexibility or ease-of-use in the user-interface. The API for `Gala` was
49
-
designed to provide a class-based and user-friendly interface to fast (C or
50
-
Cython-optimized) implementations of common operations such as gravitational
51
-
potential and force evaluation, orbit integration, dynamical transformations,
52
-
and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and
53
-
interfaces well with the implementations of physical units and astronomical
54
-
coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and
55
-
`astropy.coordinates`).
56
-
57
-
`Gala` was designed to be used by both astronomical researchers and by
58
-
students in courses on gravitational dynamics or astronomy. It has already been
59
-
used in a number of scientific publications [@Pearson:2017] and has also been
60
-
used in graduate courses on Galactic dynamics to, e.g., provide interactive
61
-
visualizations of textbook material [@Binney:2008]. The combination of speed,
62
-
design, and support for Astropy functionality in `Gala` will enable exciting
63
-
scientific explorations of forthcoming data releases from the *Gaia* mission
64
-
[@gaia] by students and experts alike.
38
+
Atomic SIMulation Tools (`ASIMTools`) is a lightweight workflow and simulation manager for reproducible atomistic simulations that can be transferred across environments, calculators and structures implemented in Python. By using in-built or user-defined scripts and utilities, users can run/build their own simulation recipes and automatically scale them on slurm based clusters or locally on their console. The core idea is to separate the dependence of the atomistic potential/calculator, the simulation environment and the simulation protocol thereby allowing the same simulation to be run with different calculators, structures or on different computers with just a change of parameter.Input and output yaml files follow a standard format based providing a simple interface that also acts as a record of the parameters used in a simulation without having to edit python scripts.
39
+
40
+
`ASIMTools` is for users interested in performing atomistic calculations on
41
+
UNIX-like operating systems and/or on slurm based High Performance Computing
42
+
clusters. By defining simulation protocols as functions in "scripts",
43
+
simulation protocols can be easily added to the library of provided scripts and
44
+
iterated on. This will allow the community to develop a robust set of shareable
45
+
simulation protocols. The flexibility of ASIMTools allows integration of any
46
+
kind of simulation tools such as pymatgen, LAMMPS etc. with examples provided.
47
+
With the scripts defined, users only need to provide a set of inputs in the form of yaml files that define the parameters used for each simulation and are therefore a record.
48
+
49
+
# State of the Field
50
+
There exist a number of popular workflow tools for atomistic simulations such as Aiida `[@author:2001]`, Fireworks `[@author:2001]` and many more. These tools provide frameworks for constructing complex workflows with different underlying principles. Some managers enforce strict rules that ensure that data obeys FAIR principles and emphasize data provenance and reproducibility. These methods however tend to be fairly large packages with steep learning curves. ASIMTools provides a simple interface as a starting point that can transform any code into ASIMTools compatible code by simply wrapping it in a function that returns a Python dictionary. Any such code can work in ASIMTools and with a few extra steps, the protocol can be made to support an arbitrary calculator and input structure.
51
+
52
+
In some workflow managters, such as Atomic Simulation Recipes `[@author:2001]`. Once workflows are built, it can often be difficult to quickly change and iterate over key parameters such as the choice of atomistic calculator or structure as they are intrinsically built into the code. This is particularly challening in an age where machine learning models are becoming more popular. Workflows involving machine learning interaction potentials tend to require the ability to repeat the same calculations on different examples, using different calculators on different hardware iteratively. This is where the value of ASIMTools lies in contrast to more established workflows. ASIMTools is not designed to replace the more powerful workflow managers but rather to supplement them. This is achieved by providing unified inputs that can be easily integrated into, for example, Aiida as Python functions/scripts while also being a stand-alone lightweight workflow manager.
53
+
54
+
# Example
55
+
We present two examples of simulation protocols, more can be found in the
56
+
ASIMTools documentation.
57
+
58
+
## Calculating the energy and forces of an atomic configuration
59
+
Most atomic simulations invlolve evaluations of energies, forces, dipoles etc. of an atomic configuration. In Figure. \autoref{fig:singlepoint} we show how the `singlepoint` script, provided in
60
+
ASIMTools can be used and the input files needed to run the script with arbitrary input structure, calculator or environment.
61
+
62
+
{ width=100% }
65
63
66
64
# Mathematics
67
65
68
66
Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$
@@ -94,19 +81,18 @@ For a quick reference, the following citation commands can be used:
94
81
-`[@author:2001]` -> "(Author et al., 2001)"
95
82
-`[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
96
83
97
-
# Figures
84
+
# Author Contribution Statement
98
85
99
-
Figures can be included like this:
100
-

101
-
and referenced from text using \autoref{fig:example}.
86
+
Conceptualization by Keith Phuthi. Coding and development by Keith Phuthi and Emil Annevelink. Paper writing by Keith Phuthi and Emil Annevelink. Project management by all.
87
+
<!-- # Figures
102
88
103
-
Figure sizes can be customized by adding an optional second parameter:
104
-
{ width=20% }
89
+
Figures can be included like this:
90
+
{ width=100% }
91
+
and referenced from text using \autoref{fig:example}. -->
105
92
106
93
# Acknowledgements
107
94
108
-
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
109
-
Oh, and support from Kathryn Johnston during the genesis of this project.
95
+
We acknowledge contributions Victor Azumah, Kian Pu, Ziqi Wang and Hancheng Zhao.
0 commit comments