Is there a program to classify and compare structures with different composition?

I want to compare e.g. structure_1 with composition [2,1,4] and structure_2 with composition [16,8,32]. Maybe both structures are the same but the second one is a supercell of the other.

I'm considering the case in which the number of atoms is different, but with the same proportion of each one (the numbers of atoms of each type in one structure are integer multiples of the numbers of atoms of each type in the other structure). I need a program that is able to identify a supercell and determine whether its unit cell is an integer multiple of another structure's unit cell or not.

Automatically noticing that a given structure is a supercell and then being able to extract the unit cell for comparison would be nice. I have created a lot of structures with varying composition and probably most of them are the same but in different "sizes" or "volumes", so I need to know which ones are truly useful and new.

Can I use CrystalFp library to analyze different structures (e.g. of Ca2Si04) that don't have the same number of atoms? I have been reading and I do not know whether CrystalFp can do this if the structures have different compositions. If not, what about other programs?


1 Answer 1


You may want to look into cluster expansion codes because they generally have a robust structure generation/mapping system. The general idea with this type of code is that you start with a particular primitive structure and then create different unique atomic orderings and supercells of that structure. What you want to do is the reverse, i.e. take a lot of supercells and see if they map back onto a structure that you provide. Depending on how complicated your structures are, some of these might be overkill. For example if your structures are simple supercells with no lattice or atomic distortions, then you don't need a very advanced mapping tool.

Here are a few:


  • mmaps program lets you map unrelaxed (i.e. perfect) structures onto a reference lattice.


  • Can import through the CLI or map structures directly using the Python interface. Structures do not have to be unrelaxed, so it can handle lattice deformation, atomic deformation, vacancies, etc. Uses POSCARs for structures.


  • Can import structures through the Python interface. It looks like there is a two-step import process that requires structures to be unrelaxed at first. Uses ASE for structures.


  • Can import structures through the Python interface. Structures can have vacancies, atomic displacements, and lattice distortions. Uses ASE for structures.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .