https://github.com/JuliaMolSim/ASE.jl
Julia Bindings for Atomic Simulation Environment
https://github.com/JuliaMolSim/ASE.jl
julia julia-language julialang
Last synced: 3 months ago
JSON representation
Julia Bindings for Atomic Simulation Environment
- Host: GitHub
- URL: https://github.com/JuliaMolSim/ASE.jl
- Owner: JuliaMolSim
- License: other
- Created: 2018-03-05T11:30:47.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-11-10T00:52:04.000Z (over 4 years ago)
- Last Synced: 2025-02-01T21:15:02.597Z (3 months ago)
- Topics: julia, julia-language, julialang
- Language: Julia
- Size: 249 KB
- Stars: 36
- Watchers: 4
- Forks: 12
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ASE.jl
Julia Bindings for the [Atomic Simulation Environment (ASE)](https://wiki.fysik.dtu.dk/ase/)
[](https://travis-ci.org/JuliaMolSim/ASE.jl)
### Summary
Provides Julia wrappers for a limited subset of ASE's functionality, to be used within
[JuLIP.jl](https://github.com/libAtoms/JuLIP.jl). On top of `JuLIP.jl`, which is
a pure Julia library, `ASE.jl` also provides an interface to ASE, via [PyCall.jl](https://github.com/JuliaPy/PyCall.jl).### Getting Started
To install
```julia
Pkg.add("ASE")
```Quick test
```Julia
using ASE
at = bulk("Cu", cubic=true) * 2 # generate periodic Cu supercell
deleteat!(at, 1) # vacancy defect
emt = pyimport("ase.calculators.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