Metadata-Version: 2.0
Name: atomman
Version: 0.6
Summary: Atomistic Manipulation Toolkit
Home-page: https://github.com/usnistgov/atomman
Author: Lucas Hale
Author-email: lucas.hale@nist.gov
License: UNKNOWN
Keywords: atom,atomic,atomistic,molecular dynamics
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Dist: DataModelDict
Requires-Dist: matplotlib
Requires-Dist: numericalunits
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: xmltodict

AtomMan
=======

Atomistic Manipulation Toolkit

AtomMan: the Atomistic Manipulation Toolkit is a Python library for 
creating, representing, manipulating, and analyzing large-scale atomic 
systems of atoms. The focus of the package is to facilitate the rapid design 
and development of simulations that are fully documented and easily adaptable 
to new potentials, configurations, etc.  

The code has no requirements that limit which systems it can be used on, i.e.
it should work on Linux, Mac and Windows computers.

The latest release can be installed using pip::

    pip install atomman

The code and all documentation is hosted on GitHub and can be directly 
downloaded at: `https://github.com/usnistgov/atomman`_.  

Documentation and examples in the form of Jupyter Notebooks for the various 
components of the code can be found by clicking on the links in the description 
below. 

1. The core of atomman features:

    - Classes for representing an atomic system:

        + `Box`_ class defining a general parallelopid with instant conversions
          to/from lattice vector, unit cell, and LAMMPS-style parameter 
          representations.

        + `Atoms`_ class that stores the per-atom positions and properties for
          a collection of atoms. The underlying structure of the class uses 
          Numpy arrays and views to efficiently store the values and allow for 
          fast calculations.

        + `System`_ class that combines an Atoms object and a System object, 
          along with handling periodic boundaries.

    - Full `unit conversion`_ capabilities.

2. The lammps module provides tools for setting up, running, and analyzing 
   LAMMPS simulations directly from Python.  

    - `General LAMMPS`_ functionality, such as creating systems in LAMMPS,
      writing input files, reading/writing atom and dump files, calling LAMMPS
      to run, and recieving LAMMPS errors and log file thermo data.

    - `Potential`_ class for reading LAMMPS-potential data models.  This class
      and the data models allow for the modular treatment of any LAMMPS 
      implemented interatomic potentials. In other words, it allows for 
      potentials to be easily swapped.

    - `atom_data`_ load() and dump() functions allow for reading/writing of 
      LAMMPS atom coordination files. These functions work with any LAMMPS 
      atom_style and units options.

    - `atom_dump`_ load() and dump() functions allow for reading/writing of 
      LAMMPS dump coordination files. Additional JSON files are created that 
      define the proper conversion of the dump files to Python, and provide 
      metadata information to the terms (units, complete name, data structure, 
      etc).      

3. The defects module the following components:

    - `point`_ defect creation. Add vacancies, substitutionals, positional 
      interstitials, and dumbbell interstitials to a system.

    - `Stroh`_ method calculation. Solve the anisotropic elasticity solution
      for a perfectly straight dislocation of any character using the Stroh
      method. Once solved, the elastic energy coefficient and position-based
      displacements and stresses can be obtained. Dislocation monopole systems
      can be constructed using the Stroh displacements.

4. The models module has tools for reading in Systems:

    - crystal reads in a atomic-system data model file and returns a System. 

    - cif has two functions for reading CIF crystallographic files. 

        + cif_cell() reads a CIF file and returns a System and list of 
          elements.

        + cif_load() reads a CIF file and returns a DataModelDict 
          representation of all of the lines.

5. The convert module has tools for converting Systems to other codes:

    - ase_Atoms: from_ase_Atoms() and to_ase_Atoms() convert between 
      ase.Atoms classes and atomman.System classes. NOTE: ase has requirements
      that are not compatible with Windows systems. 

    - pymatgen_Structure: from_pymatgen_Structure() and 
      to_pymatgen_Structure() convert between 
      pymatgen.Structure classes and atomman.System classes. NOTE: pymatgen has 
      requirements that are not compatible with Windows systems. 

6. The tools module collects all of the additional features that don't have 
   homes anywhere else.

   - `ElasticConstants`_ class for interacting and transforming representations
     of the elastic constant tensor.

   - nlist function for constructing neighbor lists. 

   - other tools for system manipulation, calculations, etc. 

.. _https://github.com/usnistgov/atomman: https://github.com/usnistgov/atomman
.. _Box: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.Box.ipynb
.. _Atoms: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.Atoms.ipynb
.. _System: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.System.ipynb
.. _unit conversion: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.unitconvert.ipynb
.. _General LAMMPS: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.lammps.ipynb
.. _Potential: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.lammps.Potential.ipynb
.. _atom_data: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.lammps.atom_data.ipynb
.. _atom_dump: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.lammps.atom_dump.ipynb
.. _point: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.defect.point.ipynb
.. _ElasticConstants: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.tools.ElasticConstants.ipynb
.. _Stroh: https://github.com/usnistgov/atomman/blob/master/Notebooks/atomman.defect.Stroh.ipynb



