# Is there a performance difference when using fractional coordinates instead of Cartesian coordinates?

In general, the CIF file with the crystal structure uses fractional coordinates for setting the atoms positions. In this type of coordinates, the atom positions are relative to the cell parameters.

Another way to setting up the atom positions is to use Cartesian coordinates. In this type of coordinate, the atoms have absolute positions, i.e., don't depend on cell parameters.

In many DFT codes, you can use both type of coordinates to represent your system in the input files.

My question: is there any performance difference in using one type over the other one?

PS: in general, I work with systems where I have to add a vacuum region that, a priori, I don't know how big will be, so, I use Cartesian coordinates.

• It's always recommended to use fractional coordinates, if possible, in DFT codes. In my experience, I've found that certain packages (like QE) sometimes don't recognize the high symmetries in the initial structure during structure optimization (i.e. relaxing) calculations. As you might know already, these symmetries are crucial to speed up the calculation. I would recommend you stick to fractional coordinates especially if you're starting with structure optimization. May 24, 2020 at 23:02
• Right, as I'm investigating them more, fractional coordinates are based off symmetries with only a few independent degrees of freedom (according to this article I'm reading typically 1-10) this of course is a dramatic improvement over 3N degrees of freedom but is only useful if you maintain symmetry. May 25, 2020 at 0:09
• @CodyAldaz changing coordinate system doesn't change the number of degrees of freedom May 26, 2020 at 16:44
• @marcin yes you're correct, was confused because the authors said those exact words. However I was looking at how fractional coordinates work and it ends up with 3N fractional coordinates. May 26, 2020 at 16:49

I'm unfamiliar with this exactly but my gut feeling is fractional coordinates are better because they represent the physical crystal more intuitively than Cartesians. I couldn't find an exact paper on a comparison between Cartesians and fractional coordinates.

However, the following lists some tangential evidence that fractional coordinates are better:

1. This site has exercises to compare redundant and fractional coordinate optimization. It's worthwhile to note that they don't even mention Cartesian optimization as an option suggesting that it's not a very popular option in this package. Other ab initio packages for periodic systems also use fractional coordinates more frequently than Cartesian coordinates (e.g. VASP).
2. Any time you can cast the optimization problem into a coordinate system that makes more physical sense than it can be incredibly beneficial. For example delocalized internal coordinates and redundant internal coordinates are much more efficient for molecular optimization than Cartesian coordinates because they represent molecules better (e.g. both of these coordinate systems are made using bonds, angles and torsions -- chemical concepts).

3. This work [1] combines fractional coordinates with delocalized coordinates and saw 2-10 x less iterations than pure Cartesians. However, it's unclear exactly where the performance boost came from delocalized coordinates or fractional coordinates or some combination of both. Nevertheless, very cool!

References: [1] Bučko, T., Hafner, J. & Ángyán, J. G. Geometry optimization of periodic systems using internal coordinates. J. Chem. Phys. 122, (2005).

If the question is how the file format and storage of the coordinates in that file format affects the performance – it doesn't.

On the other hand, the internal representation of atoms in a program can affect the performance, so the author of the program probably designed it carefully. Calculation of distances between atoms or angles is better done in Cartesian (orthogonal) coordinates. Finding symmetry mates of atoms – in fractional. Classical molecular dynamics program would probably store Cartesian coordinates. I don't know about DFT.

If the program uses internally Cartesian coordinates and the input file has fractional ones, it must convert them. But the cost of such conversion is negligible. It's much faster than reading and parsing the input CIF file.

To elaborate more, conversion to fractional coordinates (called sometimes fractionalization) can be implemented as multiplication by 3x3 matrix (called fractionalization matrix). Conversion in the other direction – as multiplication by orthogonalization matrix (inverse of the fractionalization matrix). The matrices are calculated from the unit cell parameters.