Currently, the dimension of the _atom_site_fourier_wave_vector.q_coeff and _atom_site_fourier_wave_vector.q_coeff_seq_id data items are assigned by a dREL code snippet that equates it to the value of _cell.modulation_dimension. This seems very reasonable, however, it also imposes that all values of these items in a data block would be exactly of that size (no larger, no smaller). The category usage examples, provided in the dictionary, however, do not follow this rule. Take, for example, the ATOM_SITE_OCC_FOURIER category usage example:
#\#CIF_2.0
# - - - - data truncated for brevity - - - -
_cell.modulation_dimension 2
loop_
_cell_wave_vector.seq_id
_cell_wave_vector.xyz
1 [0.00338(6) 0.15278(14) -0.0138(3)]
2 [0.63105(7) 1.07460(17) -0.4438(3)]
# - - - - data truncated for brevity - - - -
# ...
loop_
_atom_site_Fourier_wave_vector.seq_id
_atom_site_Fourier_wave_vector.xyz
_atom_site_Fourier_wave_vector.q_coeff_seq_id
_atom_site_Fourier_wave_vector.q_coeff
1 [0.00338 0.15278 -0.0138] [1] [1]
2 [0.63105 1.07460 -0.4438] [2] [1]
3 [0.00676 0.30556 -0.0276] [1] [2]
4 [0.01014 0.45834 -0.0414] [1] [2]
5 [0.01352 0.61112 -0.0552] [1] [2]
6 [0.63443 1.22738 -0.4576] [1 2] [1 1]
# - - - - data truncated for brevity - - - -
Note, that rows 1-5 all have a 1 element lists as values of *.q_coeff_seq_id and *.q_coeff while row has 6. From the strict validation point of view, values 1-5 do not fully conform to the specification.
I assume that users will not want to always explicitly write out all coefficients when their zero, e.g. [2] [1] would have to be changed to [1 2] [0 1], therefore the simplest way to resolve this would be to explicitly declare both lists as always having an unspecified number of elements [].
Currently, the dimension of the
_atom_site_fourier_wave_vector.q_coeffand_atom_site_fourier_wave_vector.q_coeff_seq_iddata items are assigned by a dREL code snippet that equates it to the value of_cell.modulation_dimension. This seems very reasonable, however, it also imposes that all values of these items in a data block would be exactly of that size (no larger, no smaller). The category usage examples, provided in the dictionary, however, do not follow this rule. Take, for example, theATOM_SITE_OCC_FOURIERcategory usage example:Note, that rows 1-5 all have a 1 element lists as values of
*.q_coeff_seq_idand*.q_coeffwhile row has 6. From the strict validation point of view, values 1-5 do not fully conform to the specification.I assume that users will not want to always explicitly write out all coefficients when their zero, e.g.
[2] [1]would have to be changed to[1 2] [0 1], therefore the simplest way to resolve this would be to explicitly declare both lists as always having an unspecified number of elements[].