SOMD basics
March 9, 2023 · View on GitHub
SOMD is an ab-initio molecular dynamics (AIMD) package designed for the SIESTA DFT code. The SOMD code provides some useful subroutines (potential calculator interfaces, integrators, barostats, etc.) to perform standard Born-Oppenheimer molecular dynamics (BOMD) simulations. Thus, SOMD itself should be regarded as a library, just like the OpenMM package. And you should write proper python scripts to assemble the provided subroutines into meaningful simulation protocols.
Module structures
The SOMD code contains four main submodules: constants, core, potentials
and apps.
- The
constantsmodule contains physical constants and default values of SOMD. - The
coremodule contains core components of SOMD, e.g., the internal representation of an atomic system, the integrators, etc. - The
potentialsmodule contains interfaces to various potential calculators. - The
appsmodule contains some useful applications, e.g., the trajectory writers, system data loggers, pre-defined simulation protocols, etc. (Note that the barostats are regarded as applications as well, because the first-order barostats implemented in SOMD behave like other post-integration-step applications.)
somd
├── constants <-- Physical constants and default values.
├── core <-- Core components.
│ ├── systems <-- Representations of the simulated systems.
│ ├── groups <-- Atom groups.
│ ├── integrators <-- Integrators to propagate the systems.
│ └── potential_base <-- Base class of all potential calculator interfaces.
├── potentials <-- Potential calculator interfaces.
│ ├── SIESTA <-- SIESTA wrapper.
│ ├── DFTD3 <-- DFTD3 wrapper.
│ ├── DFTD4 <-- DFTD4 wrapper.
│ ├── NEP <-- NEP_CPU wrapper.
│ ├── PLUMED <-- PLUMED wrapper.
│ ...
├── apps <-- Useful applications based on the SOMD core.
│ ├── barostats <-- Barostats.
│ ├── trajectories <-- Trajectory writers.
│ ├── loggers <-- System data loggers.
│ ├── simulations <-- Wrapper class of the simulation processes.
│ ├── active_learning <-- Wrapper class of the active learning processes.
│ ...