Skip to main content

A material interface lattice match generator package

Project description

GPLv3 workflow Latest Release Paper Documentation Status FPM CMAKE GCC compatibility

Ab Initio Restructuring Tool Enabling Modelling of Interface Structures

by Ned Thaddeus Taylor and Steven Paul Hepplestone, The ARTEMIS Research Group (Hepplestone Research Group)

New Repository Location

This repository has been migrated from the University of Exeter GitLab to GitHub to facilitate community interaction and support. The latest version, updates, and collaboration now take place on this GitHub repository.

GitLab Repository (Archived): https://git.exeter.ac.uk/hepplestone/artemis

Why the Migration?

It was decided that this project should be migrated to allow for better community support (i.e. allowing community users to raise issues). All information has been ported over where possible.


ARTEMIS is a software package for the generation and modelling of interfaces between materials.

ARTEMIS is both a Fortran and a Python library, with the option of a Fortran executable. The code relies on recent Fortran features, so has no backwards compatibility with Fortran95.

Documentation

NOTE: The ReadtheDocs is still under development. More guides will be added in the coming weeks and months.

Tutorials and documentation will be provided on the docs website. The methodology is detailed in the paper.

Refer to the API Documentation section later in this document to see how to access the API-specific documentation.

The Fortran executable/app currently has the most extensive documentation. This can be found in two forms:

  1. The PDF manual
  2. The executable help function (--help and --search flags)

Requirements

  • Fortran compiler supporting Fortran 2018 standard or later
  • fpm or CMake (fpm works only for Fortran installation)

Python-specific installation:

  • Python 3.11 or later (might work on earlier, have not tested)
  • NumPy.f2py
  • f90wrap
  • cython
  • scikit-build-core
  • meson
  • make or ninja
  • CMake
  • ASE

The library bas been developed and tested using the following Fortran compilers:

  • gfortran -- gcc 11.4.0
  • gfortran -- gcc 13.2.0
  • gfortran -- gcc 14.1.0
  • gfortran -- gcc 14.2.0

The library is known to not currently work with the intel Fortran compilers.

Installation

The Python library is not yet directly available from PyPi (this will be made available with the first Python library full release). For now, local pip installation is required.

First, use the following commands to download the ARTEMIS repository:

 git clone https://github.com/ExeQuantCode/artemis.git
 cd artemis

Depending on what language will be used in, installation will vary from this point.

Python

For Python, the easiest installation is through pip:

pip install .

Another option is installing it through cmake, which involves:

mkdir build
cd build
cmake ..
make install

Then, the path to the install directory (${HOME}/.local/artemis) needs to be added to the include path. NOTE: this method requires that the user manually installs the ase, numpy and f90wrap modules for Python.

Fortran

For Fortran, either fpm or cmake are required.

fpm

fpm installation is as follows:

fpm build --profile release

This will install both the Fortran library and the Fortran application for ARTEMIS. The library can then be called from other fpm-built Fortran programs through normal means (usually referencing the location of ARTEMIS in the program's own fpm.toml file). The application can be run using

fpm run

cmake

cmake installation is as follows:

mkdir build
cd build
cmake [-DBUILD_PYTHON=Off] ..
make install

The optional filed (dentoted with [...]) can be used to turn off installation of the Python library. This will build the library in the build/ directory. All library files will then be found in:

${HOME}/.local/artemis

Inside this directory, the following files will be generated:

include/artemis.mod
lib/libartemis.a

How-to

Until recently, ARTEMIS has existed solely as a Fortran executable. This version of the code is currently best documented, but this will change in the near future as the Python library is tested more. To get an example input file, run the following command:

artemis -d example.in

This will generate the file example.in, with the structure of the ARTEMIS input file.

To get descriptions of the tags within the input file, run either command:

artemis --help [all|<TAGNAME>]  
artemis --search <STRING>

Websites

Group webpage: http://www.artemis-materials.co.uk

Group wiki: http://www.artemis-materials.co.uk/HRG

Guide and documentation: https://artemis-materials.readthedocs.io/en/latest/

API documentation

NOTE: API documentation is not yet set up. It is planned to be implemented in an upcoming release to work alongside the ReadtheDocs and Python library.

Contributing

Please note that this project adheres to the Contributing Guide. If you want to contribute to this project, please first read through the guide. If you have any questions, bug reports, or feature requests, please either discuss then in issues.

For any serious or private concerns, please use the following email address: support@artemis-materials.co.uk

License

This work is licensed under a GPL v3 license.

Developers

  • Ned Thaddues Taylor
  • Francis Huw Davies
  • Isiah Edward Mikel Rudkin
  • Steven Paul Hepplestone

Contributers

  • Conor Jason Price
  • Tsz Hin Chan
  • Joe Pitfield
  • Edward Allery Baker
  • Shane Graham Davies

Advisors

  • Elizabeth L. Martin

References

If you use this code, please cite our paper:

@article{Taylor2020ARTEMISAbInitio,
  title = {ARTEMIS: Ab initio restructuring tool enabling the modelling of interface structures},
  volume = {257},
  ISSN = {0010-4655},
  url = {http://dx.doi.org/10.1016/j.cpc.2020.107515},
  DOI = {10.1016/j.cpc.2020.107515},
  journal = {Computer Physics Communications},
  publisher = {Elsevier BV},
  author = {Taylor,  Ned Thaddeus and Davies,  Francis Huw and Rudkin,  Isiah Edward Mikel and Price,  Conor Jason and Chan,  Tsz Hin and Hepplestone,  Steven Paul},
  year = {2020},
  month = dec,
  pages = {107515}
}

This README has been copied from the RAFFLE repository, with permission from the creator (Ned Taylor).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

artemis_materials-2.0.0.dev1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

artemis_materials-2.0.0.dev1-cp313-cp313-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

artemis_materials-2.0.0.dev1-cp312-cp312-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

artemis_materials-2.0.0.dev1-cp311-cp311-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

File details

Details for the file artemis_materials-2.0.0.dev1.tar.gz.

File metadata

  • Download URL: artemis_materials-2.0.0.dev1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for artemis_materials-2.0.0.dev1.tar.gz
Algorithm Hash digest
SHA256 f054c11bb2e547dba5f013d3f97e33123bc8745148e5ad170d07e1c086715bf4
MD5 ce8ee2679f6342ff5134d2a194345c17
BLAKE2b-256 2e9459dfa4c79ebaca93ae201c0e46951de79d14f600b4ee76a84790fa544385

See more details on using hashes here.

File details

Details for the file artemis_materials-2.0.0.dev1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for artemis_materials-2.0.0.dev1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 62a07a247ec5f1b1e395d43463102de71968cfc73244cda0add8215f5c28a207
MD5 e2d575910156736e90687a16336f45e9
BLAKE2b-256 f180233253a2fd28147d2022e446f612317ba9027f687081c909b20ed2d2eeb6

See more details on using hashes here.

File details

Details for the file artemis_materials-2.0.0.dev1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for artemis_materials-2.0.0.dev1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a70431e0319e6cf2099ef1b0d66de8dce668d917157202dd3521d90893c22d28
MD5 3062b20a357c1b9fb834f8dcdbd0e7a2
BLAKE2b-256 d5a7145cedfa15f090c0864c29c1f9bdac58df9bbff8c8315584b85807385b8b

See more details on using hashes here.

File details

Details for the file artemis_materials-2.0.0.dev1-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for artemis_materials-2.0.0.dev1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8b5e062be2d5b267c826b17c22babb00c294a47230a24be2751d780159c7c943
MD5 6880569ee471b97e824681b08922e9cd
BLAKE2b-256 8d3473cc2749d1eda297145b8ca98b2860048870ceaec5167898d38efa0a84dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page