X1, X2 :
the structures to align. X1 will be left unchanged.
permlist : a list of lists
A list of lists of atoms which are interchangable.
e.g. for a 50/50 binary mixture:
permlist = [range(1,natoms/2), range(natoms/2,natoms)]
user_algoriithm : None or callable
you can optionally pass which algorithm to use to optimize the permutations the structures
gen_cost_matrix : None or callable
user function to generate the cost matrix
recalculate_distance : callable
function to compute the distance of the optimized coords. If None is passed
then the distance is not recalculated and the returned distance is unreliable.
reshape : boolean
shall coordinate reshaping be performed.
box_lengths : float array
array of floats giving the box lengths for periodic boundary conditions.
Set to None for no periodic boundary conditions.
