Skip to content

Commit d779f64

Browse files
committed
docs
1 parent d58e1be commit d779f64

3 files changed

Lines changed: 33 additions & 47 deletions

File tree

figures/singlepoint.pdf

66.6 KB
Binary file not shown.

paper.bib

Whitespace-only changes.

paper.md

Lines changed: 33 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -31,55 +31,42 @@ bibliography: paper.bib
3131

3232
# Summary
3333

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.
4335

4436
# Statement of need
4537

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+
![Schematic showing the connection between the modular input yaml files. The sim_input.yaml is the main imput file which specifies the environment, calculator (if used) and script to be run.\label{fig:singlepoint}](figures/singlepoint.pdf){ width=100% }
6563

6664
# Mathematics
6765

6866
Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$
6967

7068
Double dollars make self-standing equations:
7169

72-
$$\Theta(x) = \left\{\begin{array}{l}
73-
0\textrm{ if } x < 0\cr
74-
1\textrm{ else}
75-
\end{array}\right.$$
76-
77-
You can also use plain \LaTeX for equations
78-
\begin{equation}\label{eq:fourier}
79-
\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx
80-
\end{equation}
81-
and refer to \autoref{eq:fourier} from text.
82-
8370
# Citations
8471

8572
Citations to entries in paper.bib should be in
@@ -94,19 +81,18 @@ For a quick reference, the following citation commands can be used:
9481
- `[@author:2001]` -> "(Author et al., 2001)"
9582
- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
9683

97-
# Figures
84+
# Author Contribution Statement
9885

99-
Figures can be included like this:
100-
![Caption for example figure.\label{fig:example}](figure.png)
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
10288
103-
Figure sizes can be customized by adding an optional second parameter:
104-
![Caption for example figure.](figure.png){ width=20% }
89+
Figures can be included like this:
90+
![Schematic showing the connection between the modular input yaml files. The sim_input.yaml is the main imput file which specifies the environment, calculator (if used) and script to be run.\label{fig:singlepoint}](figures/singlepoint.pdf){ width=100% }
91+
and referenced from text using \autoref{fig:example}. -->
10592

10693
# Acknowledgements
10794

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.
11096

11197
# References
11298
Example paper.bib file:

0 commit comments

Comments
 (0)