Skip to content

JuliaMolSim/AtomsCalculators.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AtomsCalculators

Stable Dev Build Status

Overview

AtomsCalculators.jl provides a unified calculation interface for atomistic simulation engines within the JuliaMolSim ecosystem. It extends the core abstractions of AtomsBase.jl to standardize how energies, forces, virials, and related quantities are computed and accessed.

The goal of this package is to enable interoperability between different simulation backends while maintaining a clean, extensible API for scientific workflows.

Design Principles

  • Backend-agnostic abstraction: Decouple physical models from simulation drivers.
  • Extensibility: Allow new calculators to be integrated with minimal boilerplate.
  • Composability: Support integration with molecular dynamics and geometry optimization routines.
  • Testability: Provide utilities for validating calculator implementations.

Features

  • Unified API for energies, forces and virials
  • Support for molecular dynamics with Molly
  • Geometry optimization workflows
  • Utilities for extending and testing calculator implementations
  • Integration to ASE using i-PI style socket interconnect with IPICalculator.jl. This is also Molssi Driver interface compatible.

Usage Example

With an existing AtomsBase.AbstractSystem (sys) and calculator (calc) that implements the interface:

using AtomsCalculators

E = AtomsCalculators.potential_energy(sys, calc)
F = AtomsCalculators.forces(sys, calc)
V = AtomsCalculators.virial(sys, calc)

ef = AtomsCalculators.energy_forces(sys, calc)
# Access combined output
E2 = ef.energy
F2 = ef.forces

Documentation

Full documentation is available at: https://JuliaMolSim.github.io/AtomsCalculators.jl/stable/

Ecosystem

AtomsCalculators.jl is part of the JuliaMolSim ecosystem and builds on AtomsBase.jl to provide higher-level simulation functionality.

About

A Julian abstract interface for atomistic calculators.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages