Draft:Atomistic Structure Learning Algorithm
Draft article not currently submitted for review.
This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after six months. To edit or make changes to this draft, simply click on the "Edit" tab at the top of the window. To be accepted, a draft should:
It is strongly discouraged to write about either yourself or your business or employer. If you do so, you must declare it. Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Last edited by Jendrik Leiv Nissen (talk | contribs) 3 months ago. (Update) |
Comment: In accordance with Wikipedia's Conflict of interest guideline, I disclose that I have a conflict of interest regarding the subject of this article. Jendrik Leiv Nissen (talk) 15:00, 13 February 2026 (UTC)
\section{Overview}
The Atomic Simulation Environment (ASE) is a python framework to set up, manipulate, run, visualize and analyze atomistic simulations for a vast range of scientific purposes. ASE is here fully scripted in Python utilizing its strong syntax combined with the NumPy array library which makes it possible to compute highly complex simulation tasks. As a multifunctional interface, ASE provides for the integration of many external electronic structure codes, which allows for calculations of energy, forces, stresses and other quantities. Furthermore ASE provides native modules for performing many standard simulation tasks such as structure optimization, molecular dynamics, handling of constraints and performing nudged elastic band calculations.
\section{ASE in detail}
\subsection{Need and Purpose}
Over the past decades the scope of many areas within solid state physics, especially those concerning the understanding of the behaviour and properties of materials at the nanoscale level have developed immensely. These advances can be observed on the experimental side, as techniques like scanning probe microscopy and electron microscopy have now moved to information at the sub-nanometer scale. As well as on the theroretical side where computational methods for describing materials at the electronic have been refined so far that they can be seen as valuable source to obtain reliable atomic scale information. With such rapid changes a framework is needed not only to function as an unoffical state of the art environment, but also as a universal interface to integrate different libraries, calculators and databases. This is the purpose of ASE.
\subsection{Objects in ASE}
The core feature of ASE is the Atoms object. It represents a collection of atoms of any chemical species with given Cartesian positions. Depending on the type of simulation, the atoms may have more properties such as velocities, masses, or magnetic moments. They may also have a simulation cell given by three vectors and can represent crystals, surfaces, chains, or the gas phase, by prescribing periodic or non-periodic boundary conditions along the directions of each cell vector. The Atoms object can now be used for all of ASE's own functions, as well as being inherited through the interface by supporting databases and extensions. It represents a unique and singular entity upon which all further calculations are called. ASE provides a variety of modules to generate many kinds of structures, most notably bulk crystals, surfaces, or nanoparticles, and can read and write a large number of different file formats. Such structures may now further be manipulated by a bandwidth of operations ranging from rotations, translations, repetition as a supercell, to simply manually modify the values of the positions array. Complex systems can be formed by combining (adding) several atoms objects.
Atoms can be equipped with calculators. A calculator is a black box that can take atomic numbers and positions from the atoms and calculate the energy and forces, and possibly other properties such as the stress tensor. There exists an abundance of such calculators - all taking into account and ignoring certain physical properties of the Hamiltonian Tensor which has to be solved in order to gain a structures energy value.Among the most important stand ASE calculators for many different electronic structure, (semi-)empirical, tight-binding and classical (reactive) interatomic potential codes. Some calculator interfaces are maintained and distributed as a part of ASE, while others are included with the external codes themselves, and a few are distributed by third parties.
\subsection{Structure Generation}
The two most important classes of structures shall be briefly introduced here, for a more detailed explanation consult the ASE tutorial database.
\begin{lstlisting}[language=Python, caption=Simple ASE functions] from ase import Atoms a = Atoms() # empty a.extend(Atoms(Xe10)) # append 10 xenon atoms a.append(H) # append hydrogen atom print(a[0]) # first atom print(a[1]) # second atom del a[-3:] # delete three last atoms \end{lstlisting}
The example below shows the manual definition of H2 and how to retrieve H2O from the G2 collection:
\begin{lstlisting}[language=Python, caption=H2] import numpy as np
from ase import Atoms h2 = Atoms(H2, [(0, 0, 0), (0, 0, 0.74)]) from ase.build import molecule water = molecule(H2O)
a = 3.6 cu = Atoms(Cu, [(0, 0, 0)],
cell=[(0, a / 2, a / 2),
(a / 2, 0, a / 2),
(a / 2, a / 2, 0)],
pbc=[True, True, True])
\end{lstlisting}
Surfaces, undoubtedly one of ASE's most important structures, are genereated via:
\begin{lstlisting}[language=Python, caption=Surface in ASE]
- FCC (111) surface of platinum with absorbed N2
from ase.build import fcc111, add_adsorbate, molecule slab = fcc111(Pt, size=(4, 4, 4), a=4.0, vacuum=6.0) add_adsorbate(slab, molecule(N2), height=3.0, position=ontop) add_adsorbate(slab, molecule(N2), height=3.0, offset=(2, 2),
position=ontop)
\end{lstlisting}
ASE currently recognizes 65 file formats for storing atomic configurations. Among these is the simple XYZ format, as well as many less well-known formats. ASE also provides two native file formats in which all items in an \texttt{Atoms} object—including momenta, masses, constraints, and calculated properties such as energies and forces—can be stored. The two native file formats are the compact \texttt{traj} format and a larger but human-readable \texttt{JSON} format. The \texttt{traj} format is tightly integrated with other parts of ASE, such as structure optimizers. A \texttt{traj} file can contain one or more \texttt{Atoms} objects, but all objects must have the same number and kind of atoms in the same order. The \texttt{JSON} file format can also contain more than one \texttt{Atoms} object, but it imposes no restrictions on their contents. Reading and writing of atomic configurations is handled by the \texttt{read()} and \texttt{write()} functions from the \texttt{ase.io} module. The \texttt{write()} function can also be used to generate images in formats such as PNG, SVG, EPS, and PDF.
\section{Energy Calculations}
\subsection{Atomic Hamiltonian}
The Atomic Simulation Environment, serves as a framework for energy calculations made for different atoms, molecules or surfaces. In order to use ASE for this purpose the energy Hamiltonian, given by the specified Atoms object has to be solved. The total non-relativistic Hamiltonian of a system of electrons (of coordinates $r_i$, mass m, momenta $p_i$, and charge -e) and nuclei (of coordinates $R_I$, mass M, momenta $P_I$ and charge $z_I$ e) that are mutually interacting via Coulomb forces, can be written as:
\begin{equation} H_{tot} = \sum_{i}^{} \frac{\textbf{p}_i^2}{2m} + \sum_{I}^{} \frac{\textbf{P}_i^2}{2M_I} + \sum_{i}^{} V_{nucl}(\textbf{r}_i) + \frac{1}{2} \sum_{i \neq j }^{} \frac{e^2}{\left | \textbf{r}_i - \textbf{r}_j\right |} + \frac{1}{2} \sum_{I \neq J }^{} \frac{z_I z_J e^2}{\left | \textbf{R}_I - \textbf{R}_J\right |} \end{equation}
\noindent with
\begin{equation} V_{nucl}(\textbf{r}) = - \sum_{I}^{} \frac{z_I e^2}{\left | \textbf{r} - \textbf{R}_I\right |}. \end{equation}
\noindent The terms that appear in this Hamiltonian are in order - the kinetic energy of the electrons, the kinetic energy of the nuclei, the electron-nucleus attractive potential energy, the electron-electron, and nucleus-nucleus repulsive potential energies. The previously named calculators used on the Atoms object now have to come into play in order to solve this and gain the energy value.
\section{ASE in use}
One of the key questions concerning atomistic structure generation revolves around the question of nuclear stability. This is of utmost interest as such a stability criteria allows for the energetically correct construction and simulation of a molecule or surface. ASE is employed in the quest for stability in the University of Aarhus native AGOX - The Atomistic Global Optimization X - a numerical based global optimization algorithm. The two essential steps for AGOX, like any other global optimization algorithm, is the generation of structure candidate, followed by the evaluation of the candidate within the target potential.
\subsection{ASLA}
References
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
