Digamos que tengo un archivo CIF que describe algún material en términos de su grupo espacial de simetría, parámetros de red y posiciones de los átomos en la celda. Un ejemplo sencillo podría ser,
data_global
_chemical_name 'Graphene'
_cell_length_a 2.46
_cell_length_b 2.46
_cell_length_c 1
_cell_angle_alpha 90
_cell_angle_beta 90
_cell_angle_gamma 120
_symmetry_space_group_name_H-M 'P 3 m 1'
loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
C 0.00000 0.00000 0.00000
C 0.33333 0.66667 0.00000
Me gustaría extraer de esto los vectores de la red Bravais y los vectores base de los átomos. Para este ejemplo específico, esto podría parecer,
2.456 0.0 0.0
-1.228 2.126 0.0
C
0.0 0.0 0.0
0.0 1.418 0.0
donde las dos primeras líneas dan los dos vectores de la red (en alguna base), mientras que las dos siguientes dan las posiciones de los átomos en la celda unidad.
He intentado utilizar Abrir Babel para ello, convirtiendo el formato CIF en uno VASP. Esto funciona bien para el ejemplo anterior, pero falla para un material como el sulfuro de estaño (SnS), que tiene una estructura similar a la del fósforo negro -cuatro átomos en una celda unitaria, de los cuales sólo dos aparecen explícitamente en el Archivo CIF . Las posiciones de los otros dos están implícitas en el grupo de simetría, y programas como Mercurio visualizar correctamente la estructura basada en el archivo CIF. Sin embargo, al convertir el CIF en VASP sólo se obtienen dos de los cuatro átomos de la celda unitaria. He probado todos los demás formatos en Open Babel, sin éxito.
¿Existe una forma fiable de convertir un archivo CIF en una descripción en términos de una red Bravais más vectores base de átomos?