Skip to content

A lightweight Python package for converting between fractional and Cartesian coordinates, supporting both forward and inverse transformations.

License

Notifications You must be signed in to change notification settings

n-deveaux/Frac-to-cart-coordinates

Repository files navigation

Frac-to-cart-coordinates

The Frac-to-cart-coordinates package allows users to easily convert atomic coordinates from Cartesian to fractional format and vice versa, based on the unit cell parameters.

Overview

In crystallography, atomic positions within a crystal's unit cell can be described using:

  • Fractional coordinates $(x/a, y/b, z/c)$, which refer to the natural axes (a, b, c), scaled by their respective unit cell lengths.
  • Orthogonal coordinates $(X, Y, Z)$, which use a right-angled Cartesian system with distances measured in Ångstroms.

For triclinic unit cells, the relationship between these coordinate systems involves a transformation matrix with non-trivial elements.

This implementation follows the methodology described on Jon Cooper's website, fractorth. It relies on the fundamental principles of spherical trigonometry (see implementation_details).

Installation

Run the following command in your terminal:

pip install Frac-to-cart-coordinates

Make sure you have numpy installed and Python 3.6 or higher.

Usage

Importing the Module

from Fractocart import convert_to_fractional_coordinates, convert_to_cartesian_coordinates

Functions

  1. Convert to Fractional Coordinates

    fractional_coords = convert_to_fractional_coordinates(cartesian_coords, unit_cell)
  2. Convert to Cartesian Coordinates

    cartesian_coords = convert_to_cartesian_coordinates(fractional_coords, unit_cell)

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository, then clone the fork (see there).
  2. Create a feature branch (git checkout -b feature-name).
  3. Commit your changes (git commit -m "Add new feature").
  4. Push to the branch (git push origin feature-name).
  5. Open a merge request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A lightweight Python package for converting between fractional and Cartesian coordinates, supporting both forward and inverse transformations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published