Skip to content
/ ASE.jl Public
forked from JuliaMolSim/ASE.jl

Julia Bindings for Atomic Simulation Environment

License

Notifications You must be signed in to change notification settings

dussong/ASE.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASE.jl

Julia Bindings for the Atomic Simulation Environment (ASE)

Build Status

Summary

Provides Julia wrappers for a limited subset of ASE's functionality, to be used within JuLIP.jl. On top of JuLIP.jl, which is a pure Julia library, ASE.jl also provides an interface to ASE, via [PyCall.jl].

Getting Started

To install

Pkg.add("ASE")

Quick test

using ASE
at = bulk("Cu", cubic=true) * 2        # generate periodic Cu supercell
deleteat!(at, 1)                       # vacancy defect
@pyimport ase.calculators.emt as emt   # import the EMT model
calc = ASECalculator(emt.EMT())        # wrap it into a Julia Object
@show energy(calc, at)                 # compute the energy
# -------------------------------------------
#  or to use more of the JuLIP framework:
# -------------------------------------------
set_calculator!(at, calc)
set_constraint!(at, FixedCell(at))
minimise!(at)
@show energy(at)

Note that in ASE.jl a bulk cell is generated using bulk("Cu") while in JuLIP.jl it is generated using bulk(:Cu). Conversion between ASE.ASEAtoms and JuLIP.Atoms is via

at1 = bulk(:Si)          # JuLIP.Atoms
at2 = ASEAtoms(at1)      # ASE.ASEAtoms
at3 = Atoms(at2)         # JuLIP.Atoms
@assert at1 == at3

TODO

  • better integration with JuLIP, i.e. work with JuLIP.Atoms instead of ASEAtoms, but this will require rewriting the ASECalculators a bit
  • provide more convenience functions to call ASE functionality

About

Julia Bindings for Atomic Simulation Environment

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 83.8%
  • Python 16.2%