Page 1 of 1

Using spgroup correctly

Posted: Fri Jun 05, 2020 5:58 pm
by ssh77
Hi,

Using xred and adding all positions for all atoms and providing typat for each atom does not result in any error but when I want to avoid adding each position of all the atoms using spgroup I get this:
There is a problem with the input file : maybe
a disagreement between the declared dimension of the array,
and the number of data actually provided.
Action: correct your input file, and especially the keywork XRED

I have tried different ways of fixing it by changing typat from 4*1 4*2 4*2 to only 1 2 2 but it doesn't help. I have tried to check input files from different tutorials and cannot understand why it doesn't work. Each atom has 4 i miultiplicity so there are 4 of each. In this test I tried MnO2 to simplify but still try to understand how the input file parameters are connected and how they should be manipulated correctly.

I attach the input file, hopefully it is something very obvious that I have missed.

This is the cif file of the MnO2:
# generated using pymatgen
data_MnO2
_symmetry_space_group_name_H-M Pnma
_cell_length_a 9.44849993
_cell_length_b 2.92155351
_cell_length_c 4.58575959
_cell_angle_alpha 90.00000000
_cell_angle_beta 90.00000000
_cell_angle_gamma 90.00000000
_symmetry_Int_Tables_number 62
_chemical_formula_structural MnO2
_chemical_formula_sum 'Mn4 O8'
_cell_volume 126.58667490
_cell_formula_units_Z 4
loop_
_symmetry_equiv_pos_site_id
_symmetry_equiv_pos_as_xyz
1 'x, y, z'
2 '-x, -y, -z'
3 '-x+1/2, -y, z+1/2'
4 'x+1/2, y, -z+1/2'
5 'x+1/2, -y+1/2, -z+1/2'
6 '-x+1/2, y+1/2, z+1/2'
7 '-x, y+1/2, -z'
8 'x, -y+1/2, z'
loop_
_atom_site_type_symbol
_atom_site_label
_atom_site_symmetry_multiplicity
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_occupancy
Mn Mn0 4 0.134761 0.750000 0.478910 1
O O1 4 0.036581 0.250000 0.287517 1
O O2 4 0.216024 0.250000 0.691604 1

Many thanks!
ssh77

Re: Using spgroup correctly

Posted: Mon Jun 08, 2020 9:36 am
by ebousquet
Dear ssh77,
Abinit works with the unit cell and not the asymmetric unit cell (i.e. with only minimal Wyckoff sites) such that you have to list all the atoms of the unit cell and not the asymmetric ones. Well, I guess this is your problem.
Best wishes,
Eric

Re: Using spgroup correctly

Posted: Mon Jun 08, 2020 2:06 pm
by ssh77
Dear Eric
So you mean that I have to list all atoms in the unit cell at all times? I thought the spgroup was able to use symmetry operators and construct the whole cell by providing the Wyckoff positions of the assymetric cell.
Is spgroup only used to specifically designate a space group type to the calculation and not for the generation of the unit cell?

Thanks!
ssh77

Re: Using spgroup correctly

Posted: Wed Jun 10, 2020 8:32 am
by ebousquet
ssh77 wrote:
Mon Jun 08, 2020 2:06 pm
Dear Eric
So you mean that I have to list all atoms in the unit cell at all times? I thought the spgroup was able to use symmetry operators and construct the whole cell by providing the Wyckoff positions of the assymetric cell.
Yes, you have to list all atoms of the unit cell, Abinit does not reconstruct them from Wyckoff sites. You can use Abipy or qAgate to do it, they will build the input for you providing a cif file.
ssh77 wrote:
Mon Jun 08, 2020 2:06 pm
Is spgroup only used to specifically designate a space group type to the calculation and not for the generation of the unit cell?
Yes, this is it, spgroup is just there to be sure you are running in a given space group such that the code will stop if it is not the case.

Best,
Eric

Re: Using spgroup correctly

Posted: Fri Jun 12, 2020 12:27 pm
by ssh77
Thanks!
That answers my questions.
How does one close the thread?
ssh77

Re: Using spgroup correctly

Posted: Fri Jun 19, 2020 4:35 am
by gmatteo
It is possible to use the asymmetric part of the cell (see https://docs.abinit.org/topics/SmartSymm/)
but I usually prefer to use abipy (that uses the CIF parser of pymatgen) to build the unit cell in the Abinit convention from CIF with e.g

abistruct.py convert FILE.cif