diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index be199da..7253b83 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,7 +38,26 @@ jobs: steps: - name: checkout uses: actions/checkout@v4 - + # Checkout local version of master files to enable parallel updating. + # Remove this after testing + - name: Checkout CIF master files + uses: actions/checkout@v4 + with: + repository: COMCIFS/cif_core + ref: master + path: cif-dictionaries/cif_core + - name: Checkout multiblock files + uses: actions/checkout@v4 + with: + repository: COMCIFS/MultiBlock_Dictionary + ref: main + path: cif-dictionaries/multiblock + - name: Checkout Twinning dictionary + uses: actions/checkout@v4 + with: + repository: COMCIFS/Twinning_Dictionary + ref: main + path: cif-dictionaries/twinning - name: check_ddlm uses: COMCIFS/dictionary_check_action@main id: ddlm_check diff --git a/cif_ms.dic b/cif_ms.dic index adf83a7..e3906f8 100644 --- a/cif_ms.dic +++ b/cif_ms.dic @@ -20,113 +20,131 @@ data_CIF_MS - _dictionary.title CIF_MS - _dictionary.formalism Modulated - _dictionary.class Instance - _dictionary.version 3.2.1 - _dictionary.date 2024-05-17 - _dictionary.uri http://www.iucr.org/cif/dic/cif_ms.dic - _dictionary.ddl_conformance 3.13.1 - _dictionary.namespace ModStruct - _description.text + _dictionary.title CIF_MS + _dictionary.formalism Modulated + _dictionary.class Instance + _dictionary.version 3.2.5 + _dictionary.date 2025-10-31 + _dictionary.uri http://www.iucr.org/cif/dic/cif_ms.dic + _dictionary.ddl_conformance 4.1.0 + _dictionary.namespace ModStruct + _description.text ; - The DICTIONARY group encompassing the definitions of data items - for the study of modulated structures with the Crystallographic - Information Framework (CIF). + The DICTIONARY group encompassing the definitions of data items + for the study of modulated structures with the Crystallographic + Information Framework (CIF). ; save_CIF_MS_HEAD - _definition.id CIF_MS_HEAD - _definition.scope Category - _definition.class Head - _definition.update 2024-05-17 - _description.text + _definition.id CIF_MS_HEAD + _definition.scope Category + _definition.class Head + _definition.update 2024-08-09 + _description.text ; - The CIF_MS_HEAD category is the top-level category for all categories - in the CIF_MS dictionary. Head categories from other dictionaries are - reparented to this category. + Encompasses groups of categories applicable to modulated structures. ; - _name.category_id CIF_MS - _name.object_id CIF_MS_HEAD + _name.category_id CIF_MS + _name.object_id CIF_MS_HEAD + _import.get [ - {'dupl':Ignore 'file':cif_core.dic 'mode':Full 'save':CIF_CORE_HEAD} + {'dupl':Ignore 'file':multi_block_core.dic 'mode':Full + 'save':MULTIBLOCK_CORE} + {'dupl':Ignore 'file':cif_twin.dic 'mode':Full 'save':TWIN_GROUP} ] save_ -save_atom_site.displace_modulation_flag +save_ATOM_SITE - _definition.id '_atom_site.displace_modulation_flag' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_modulation_flag' - _description.text + _definition.id ATOM_SITE + _definition.scope Category + _definition.class Loop + _definition.update 2025-10-31 + _description.text +; + The CATEGORY of data items used to describe atom site information + used in crystallographic structure studies. Items in this + dictionary enhance those in cif_core.cif to cover modulated + structures. ; + _name.category_id ATOM + _name.object_id ATOM_SITE + loop_ + _category_key.name + '_atom_site.label' + '_atom_site.structure_id' + +save_ + +save_atom_site.displace_modulation_flag + + _definition.id '_atom_site.displace_modulation_flag' + _alias.definition_id '_atom_site_displace_modulation_flag' + _definition.update 2014-06-27 + _description.text +; A code that signals whether the structural model includes the modulation of the positional coordinates of a given atom site. ; - _name.category_id atom_site - _name.object_id displace_modulation_flag - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id atom_site + _name.object_id displace_modulation_flag + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ - _enumeration_set.state - _enumeration_set.detail - yes 'displacive modulation' - y 'abbreviation for "yes"' - no 'no displacive modulation' - n 'abbreviation for "no"' - _enumeration.default no + _enumeration_set.state + _enumeration_set.detail + yes 'displacive modulation' + y 'abbreviation for "yes"' + no 'no displacive modulation' + n 'abbreviation for "no"' + + _enumeration.default no save_ save_atom_site.occ_modulation_flag - _definition.id '_atom_site.occ_modulation_flag' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_occ_modulation_flag' - _description.text + _definition.id '_atom_site.occ_modulation_flag' + _alias.definition_id '_atom_site_occ_modulation_flag' + _definition.update 2014-06-27 + _description.text ; - A code that signals whether the structural model includes the modulation of the occupation of a given atom site. ; - _name.category_id atom_site - _name.object_id occ_modulation_flag - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id atom_site + _name.object_id occ_modulation_flag + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ - _enumeration_set.state - _enumeration_set.detail - yes 'occupational modulation' - y 'abbreviation for "yes"' - no 'no occupational modulation' - n 'abbreviation for "no"' - _enumeration.default no + _enumeration_set.state + _enumeration_set.detail + yes 'occupational modulation' + y 'abbreviation for "yes"' + no 'no occupational modulation' + n 'abbreviation for "no"' -save_ + _enumeration.default no +save_ save_atom_site.subsystem_code - _definition.id '_atom_site.subsystem_code' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_subsystem_code' - _description.text + _definition.id '_atom_site.subsystem_code' + _alias.definition_id '_atom_site_subsystem_code' + _definition.update 2014-06-27 + _description.text ; - A code that links a given atom or rigid-group site to one of the subsystems present in a composite. This code provides an alternative description for composites which is less explicit @@ -134,11605 +152,16828 @@ save_atom_site.subsystem_code this dictionary of audit_link.*). It must match one of the labels specified for _cell_subsystem.code. ; - _name.category_id atom_site - _name.object_id subsystem_code - _name.linked_item_id '_cell_subsystem.code' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site + _name.object_id subsystem_code + _name.linked_item_id '_cell_subsystem.code' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code save_ +save_atom_site.u_modulation_flag -save_atom_site.U_modulation_flag - - _definition.id '_atom_site.U_modulation_flag' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_modulation_flag' - _description.text + _definition.id '_atom_site.U_modulation_flag' + _alias.definition_id '_atom_site_U_modulation_flag' + _definition.update 2014-06-27 + _description.text ; - A code that signals whether the structural model includes the modulation of the ADP of a given atom site. ; - _name.category_id atom_site - _name.object_id U_modulation_flag - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id atom_site + _name.object_id U_modulation_flag + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ - _enumeration_set.state - _enumeration_set.detail - yes 'modulation of ADP' - y 'abbreviation for "yes"' - no 'no modulation of ADP' - n 'abbreviation for "no"' - _enumeration.default no + _enumeration_set.state + _enumeration_set.detail + yes 'modulation of ADP' + y 'abbreviation for "yes"' + no 'no modulation of ADP' + n 'abbreviation for "no"' -save_ + _enumeration.default no +save_ -save_ATOM_SITE_DISPLACE_FOURIER +save_ATOM_SITE_ANHARMONIC_ADP - _definition.id ATOM_SITE_DISPLACE_FOURIER - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text -; - - Data items in the ATOM_SITE_DISPLACE_FOURIER category record - details about the Fourier components of the displacive modulation - of an atom site in a modulated structure. In the case of rigid - groups, items in this category would only include the - translational part of the modulation. The rotational part would - appear in a separate list of items belonging to the - ATOM_SITE_ROT_FOURIER category. The (in general complex) - coefficients of each Fourier component belong to the child category - ATOM_SITE_DISPLACE_FOURIER_PARAM and may be listed separately. + _definition.id ATOM_SITE_ANHARMONIC_ADP + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_FOURIER - loop_ - _category_key.name '_atom_site_displace_Fourier.id' + Data items in the ATOM_SITE_ANHARMONIC_ADP category record details + about the anharmonic corrections of ADPs of an atom site. + Among the different expansions used to handle those corrections + (see for example, Kuznetsov, 1960, Kuhs, 1992, Brown et al., 2014 + and references therein) the Gram-Charlier parameterization has been + chosen, as it is the one implemented in the package JANA (Petricek et al., + 2014, Petricek et al., 2023). Within this approximation the generalized + ADPs are written as: + + T(H) = Ta(H)[1 - iC^jkl h_jh_kh_l + D^jklm h_jh_kh_lh_m + + + i E^jklmn h_jh_kh_lh_mh_n - F^jklmnp h_jh_kh_lh_mh_nh_p ...] + + where Ta(H) is the ADP in the harmonic approximation. C^jkl, D^jklm, + D^jklm, F^jklmn, ... are the contravariant components of the + corresponding symmetrical (for all permutations of indices) tensors + of order 3, 4, 5, 6, ... h_j represents the Miller indices, with j=1,2,3. + + In this version of the dictionary, by practical reasons, tensors + of order higher than 6 have not been considered. Owing to the atomic + environment variation induced by the modulation, the components of + the tensors describing the anharmonicity could become also modulated. + In that case, the additional modulation parameters would be + described by items belong to the _ATOM_SITE_ANHARMONIC_ADP_FOURIER + category. -save_ + References: Kuznetsov, P.I., Stratonovich, R.L. & Tikhonov, V.I. (1960). + Theory of Probability & Its Applications 5(1), 80-97. + DOI 10.1137/1105007 + Quasi-Moment Functions in the Theory of Random Processes + Kuhs, W.F. (1998). Acta Cryst. A 48(2), 80-98. + DOI 10.1107/S0108767391009510 + Generalized atomic displacements in crystallographic + structure analysis -save_atom_site_displace_Fourier.atom_site_label + Brown, P.J., Fox, A.G., Maslen, E.N., O'Keefe, M.A. & + Willis, B.T.M. (2014). International Tables for + Crystallography Volume C: Mathematical, physical and + chemical tables. Edited by E. Prince, 554-585, + DOI 10.1107/97809553602060000600 + Intensity of diffracted intensities + + Petricek, V., Dusek, M. & Palatinus, L. (2014). + Z. Kristallogr. 229(5), 345-352. DOI 10.1515/zkri-2014-1737 + Crystallographic Computing System JANA2006: General features + + Petricek, V., Palatinus, L., Plasil, J. & Dusek, M. (2023). + Z. Kristallogr. 238(7-8), 271-282. DOI 10.1515/zkri-2023-0005 + Jana2020 - a new version of the crystallographic computing + system Jana - _definition.id '_atom_site_displace_Fourier.atom_site_label' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_atom_site_label' - _description.text ; + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_ANHARMONIC_ADP - Modulation parameters are usually looped in separate lists. - Modulated parameters are the atom positions (displacive - modulation), the atomic occupation (occupational modulation) - and/or the anisotropic (or isotropic) ADP. - _atom_site_displace_Fourier.atom_site_label is the - code that identifies an atom or rigid group in a loop in which - the Fourier components of its displacive modulation are listed. - In the case of a rigid group, this list would only include the - translational part of its displacive modulation. The rotational - part (if any) would appear in a separate list (see - _atom_site_rot_Fourier.atom_site_label). This code must match - the _atom_site.label of the associated coordinate list and - conform to the rules described in _atom_site.label. + loop_ + _category_key.name + '_atom_site_anharmonic_ADP.atom_site_label' + '_atom_site_anharmonic_ADP.tens_elem' + + loop_ + _description_example.case +; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + _cell.modulation_dimension 1 + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.U_iso_or_equiv + _atom_site.site_symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + Co1 Co 0.5 0 0 0.0259(10) 4 1 d + O1 O 0.59580(13) -0.07083(9) -0.21413(13) 0.0280(4) 8 1 d + O2 O 0.77265(13) -0.05973(9) -0.41846(12) 0.0272(3) 8 1 d + O3 O 0.47451(14) 0.15486(9) -0.12793(12) 0.0274(3) 8 1 d + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_anharmonic_ADP.atom_site_label + _atom_site_anharmonic_ADP.tens_elem + _atom_site_anharmonic_ADP.coeff + Co1 C111 0 + Co1 C112 0 + Co1 C113 0 + Co1 C122 0 + Co1 C123 0 + Co1 C133 0 + Co1 C222 0 + Co1 C223 0 + Co1 C233 0 + Co1 C333 0 + O2 C111 -0.0014(13) + O2 C112 -0.0008(4) + O2 C113 -0.0002(7) + O2 C122 0.0002(3) + O2 C123 0.0002(2) + O2 C133 -0.0011(6) + O2 C222 0.0001(4) + O2 C223 0.0002(3) + O2 C233 0.0005(3) + O2 C333 0.0016(10) + O1 C111 0.0045(9) + O1 C112 -0.0003(3) + O1 C113 -0.0011(5) + O1 C122 0.0010(3) + O1 C123 -0.0006(2) + O1 C133 0.0012(6) + O1 C222 -0.0001(4) + O1 C223 -0.0006(3) + O1 C233 -0.0001(4) + O1 C333 -0.0039(13) + O3 C111 0.0011(9) + O3 C112 0.0008(3) + O3 C113 0.0006(5) + O3 C122 0.0000(3) + O3 C123 0.0006(2) + O3 C133 0.0007(5) + O3 C222 0.0002(5) + O3 C223 0.0003(3) + O3 C233 0.0003(4) + O3 C333 0.0004(10) + N2 C111 0.0030(12) + N2 C112 0 + N2 C113 0.0004(8) + N2 C122 0.0009(4) + N2 C123 0 + N2 C133 0.0017(10) + N2 C222 0 + N2 C223 0.0005(4) + N2 C233 0 + N2 C333 0.0006(17) + + # - - - - data truncated for brevity - - - - + + #======================================================================= + + Example based on the article: + Laura Canadillas-Delgado, Lidia Mazzuca, Oscar Fabelo and + Juan Rodriguez-Carvajal (2019) IUCrJ. 6, 105-115. + doi:10.1107/S2052252518015026 + Incommensurate structures of the [CH~3~NH~3~][Co(COOH)~3~] compound +; +; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + _cell.modulation_dimension 1 + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.adp_type + _atom_site.U_iso_or_equiv + _atom_site.site_symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + _atom_site.refinement_flags_posn + _atom_site.disorder_assembly + _atom_site.disorder_group + Pr1 Pr 0.16224(4) 0.5 0 Uani 0.00926(12) 4 1 d . . . + Sb1 Sb 0.5 0.5 0.0234(5) Uani 0.0511(8) 4 0.5 d . . . + O1 O 0.2504(3) 0 0 Uani 0.0112(9) 4 1 d . . . + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_anharmonic_ADP.atom_site_label + _atom_site_anharmonic_ADP.tens_elem + _atom_site_anharmonic_ADP.coeff + Sb D1111 0.00057(8) + Sb D1112 0 + Sb D1113 0 + Sb D1122 0.0072(7) + Sb D1123 0 + Sb D1133 0.008(2) + Sb D1222 0 + Sb D1223 0 + Sb D1233 0 + Sb D1333 0 + Sb D2222 0.98(6) + Sb D2223 0 + Sb D2233 -0.82(9) + Sb D2333 0 + Sb D3333 0.24(12) + + # - - - - data truncated for brevity - - - - + + #===================================================================== + + Example based on the article: + Oxana V. Magdysyuk, Jurgen Nuss and Martin Jansen (2013) + Acta Cryst. B 69, 547-555. doi:10.1107/S2052519213029436 + Modulated crystal structure of Pr~2~SbO~2~ +; +; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.adp_type + _atom_site.U_iso_or_equiv + _atom_site.site_symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + Hf1 Hf 0 0 0 Uani 0.012(4) 4 1 d + Pb1 Pb 0.0292(5) 0.75 0.50222(6) Uani 0.0220(6) 8 0.5 d + O1 O 0 0.75 0.0467(11) Uani 0.009(3) 4 1 d + O2 O 0.25 0.0227(6) 0.25 Uani 0.0197(19) 8 1 d + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_anharmonic_ADP.atom_site_label + _atom_site_anharmonic_ADP.tens_elem + _atom_site_anharmonic_ADP.coeff + Hf1 F111111 0.13(5) + Hf1 F111112 0 + Hf1 F111113 0 + Hf1 F111122 0.005(5) + Hf1 F111123 -0.0012(6) + Hf1 F111133 -0.007(8) + Hf1 F111222 0 + Hf1 F111223 0 + Hf1 F111233 0 + Hf1 F111333 0 + Hf1 F112222 0.018(8) + Hf1 F112223 0.0000(3) + Hf1 F112233 0.0002(15) + Hf1 F112333 0.0000(4) + Hf1 F113333 0.003(8) + Hf1 F122222 0 + Hf1 F122223 0 + Hf1 F122233 0 + Hf1 F122333 0 + Hf1 F123333 0 + Hf1 F133333 0 + Hf1 F222222 0.08(6) + Hf1 F222223 0.045(5) + Hf1 F222233 0.004(4) + Hf1 F222333 0.0003(8) + Hf1 F223333 0.005(5) + Hf1 F233333 0.003(2) + Hf1 F333333 0.09(2) + + # - - - - data truncated for brevity - - - - + + #====================================================================== + + Example based on the article: + Alexei Bosak, Volodymir Svitlyk, Alla Arakcheeva, Roman Burkovskiy, + Vadim Diadkin, Krystian Roleder and Dmitry Chernyshov (2020) + Acta Cryst. B 76, 7-12. doi:10.1107/S205252061901494X + Incommensurate crystal structure of PbHfO~3~ +; + +save_ + +save_atom_site_anharmonic_adp.atom_site_label + + _definition.id '_atom_site_anharmonic_ADP.atom_site_label' + _definition.update 2025-10-20 + _description.text ; - _name.category_id atom_site_displace_Fourier - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Word + The code that identifies an atom in a loop in which the Gram-Charlier + tensor components describing the anharmonic corrections of ADPs + are listed. This code must match the _atom_site.label of the + associated coordinate list and conform to the rules described in + _atom_site.label. +; + _name.category_id atom_site_anharmonic_ADP + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ +save_atom_site_anharmonic_adp.coeff -save_atom_site_displace_Fourier.axis - - _definition.id '_atom_site_displace_Fourier.axis' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_axis' - _description.text + _definition.id '_atom_site_anharmonic_ADP.coeff' + _definition.update 2024-04-11 + _description.text +; + The contravariant component of the symmetric tensor given by + _atom_site_anharmonic_ADP.tens_elem, appearing in the Gram-Charlier + expansion of the atomic anharmonic ADPs. ; + _name.category_id atom_site_anharmonic_ADP + _name.object_id coeff + _units.code none - A label identifying the displacement component of a given atom - or rigid group that is being parameterized by Fourier series. a, - b and c are the basic lattice vectors of the reference structure. - For composites they refer to the reference structure of each - subsystem. a~1~, a~2~ and a~3~ are defined by the - items belonging to the ATOM_SITES_AXES category, through - _atom_site_displace_Fourier.matrix_seq_id. - Use of _atom_sites_displace_Fourier.axes_description is deprecated - and retained only for backward compatibility. + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] + +save_ +save_atom_site_anharmonic_adp.coeff_su + + _definition.id '_atom_site_anharmonic_ADP.coeff_su' + _definition.update 2024-08-02 + _description.text ; - _name.category_id atom_site_displace_Fourier - _name.object_id axis - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - x 'displacement along the a axis' - y 'displacement along the b axis' - z 'displacement along the c axis' - a1 'displacement along an arbitrary a1 axis' - a2 'displacement along an arbitrary a2 axis' - a3 'displacement along an arbitrary a3 axis' + Standard uncertainty of _atom_site_anharmonic_ADP.coeff +; + _name.category_id atom_site_anharmonic_ADP + _name.object_id coeff_su + _name.linked_item_id '_atom_site_anharmonic_ADP.coeff' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ +save_atom_site_anharmonic_adp.tens_elem -save_atom_site_displace_Fourier.id + _definition.id '_atom_site_anharmonic_ADP.tens_elem' + _definition.update 2024-08-06 + _description.text +; + A label identifying each anharmonic ADP tensor element of a given + atom. +; + _name.category_id atom_site_anharmonic_ADP + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code - _definition.id '_atom_site_displace_Fourier.id' - _definition.update 2014-06-27 loop_ - _alias.definition_id - '_atom_site_displace_Fourier_id' - _description.text + _enumeration_set.state + _enumeration_set.detail + C111 'average value or modulation components of C111' + C112 'average value or modulation components of C112' + C113 'average value or modulation components of C113' + C122 'average value or modulation components of C122' + C123 'average value or modulation components of C123' + C133 'average value or modulation components of C133' + C222 'average value or modulation components of C222' + C223 'average value or modulation components of C223' + C233 'average value or modulation components of C233' + C333 'average value or modulation components of C333' + D1111 'average value or modulation components of D1111' + D1112 'average value or modulation components of D1112' + D1113 'average value or modulation components of D1113' + D1122 'average value or modulation components of D1122' + D1123 'average value or modulation components of D1123' + D1133 'average value or modulation components of D1133' + D1222 'average value or modulation components of D1222' + D1223 'average value or modulation components of D1223' + D1233 'average value or modulation components of D1233' + D1333 'average value or modulation components of D1333' + D2222 'average value or modulation components of D2222' + D2223 'average value or modulation components of D2223' + D2233 'average value or modulation components of D2233' + D2333 'average value or modulation components of D2333' + D3333 'average value or modulation components of D3333' + E11111 'average value or modulation components of E11111' + E11112 'average value or modulation components of E11112' + E11113 'average value or modulation components of E11113' + E11122 'average value or modulation components of E11122' + E11123 'average value or modulation components of E11123' + E11133 'average value or modulation components of E11133' + E11222 'average value or modulation components of E11222' + E11223 'average value or modulation components of E11223' + E11233 'average value or modulation components of E11233' + E11333 'average value or modulation components of E11333' + E12222 'average value or modulation components of E12222' + E12223 'average value or modulation components of E12223' + E12233 'average value or modulation components of E12233' + E12333 'average value or modulation components of E12333' + E13333 'average value or modulation components of E13333' + E22222 'average value or modulation components of E22222' + E22223 'average value or modulation components of E22223' + E22233 'average value or modulation components of E22233' + E22333 'average value or modulation components of E22333' + E23333 'average value or modulation components of E23333' + F111111 'average value or modulation components of F111111' + F111112 'average value or modulation components of F111112' + F111113 'average value or modulation components of F111113' + F111122 'average value or modulation components of F111122' + F111123 'average value or modulation components of F111123' + F111133 'average value or modulation components of F111133' + F111222 'average value or modulation components of F111222' + F111223 'average value or modulation components of F111223' + F111233 'average value or modulation components of F111233' + F111333 'average value or modulation components of F111333' + F112222 'average value or modulation components of F112222' + F112223 'average value or modulation components of F112223' + F112233 'average value or modulation components of F112233' + F112333 'average value or modulation components of F112333' + F113333 'average value or modulation components of F113333' + F122222 'average value or modulation components of F122222' + F122223 'average value or modulation components of F122223' + F122233 'average value or modulation components of F122233' + F122333 'average value or modulation components of F122333' + F123333 'average value or modulation components of F123333' + F133333 'average value or modulation components of F133333' + F222222 'average value or modulation components of F222222' + F222223 'average value or modulation components of F222223' + F222233 'average value or modulation components of F222233' + F222333 'average value or modulation components of F222333' + F223333 'average value or modulation components of F223333' + F233333 'average value or modulation components of F233333' + F333333 'average value or modulation components of F333333' + +save_ + +save_ATOM_SITE_ANHARMONIC_ADP_FOURIER + + _definition.id ATOM_SITE_ANHARMONIC_ADP_FOURIER + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text ; - - A code identifying each component of the displacive modulation of - a given atom or rigid group when the modulation is expressed in - terms of Fourier series. In the case of a rigid group, it - applies only to the translational part of the distortion. + Data items in the ATOM_SITE_ANHARMONIC_ADP_FOURIER category record + details about the Fourier components of the tensors that describe + the modulation of the anharmonic ADPs in a modulated structure. +; + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_ANHARMONIC_ADP_FOURIER + _category_key.name '_atom_site_anharmonic_ADP_Fourier.id' + _description_example.case +; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + _cell.modulation_dimension 1 + + loop_ + _cell_wave_vector.seq_id + _cell_wave_vector.x + _cell_wave_vector.y + _cell_wave_vector.z + 1 0.000000 0.000000 0.143000 + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.U_iso_or_equiv + _atom_site.site_symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + Co1 Co 0.5 0 0 0.0259(10) 4 1 d + O1 O 0.59580(13) -0.07083(9) -0.21413(13) 0.0280(4) 8 1 d + O2 O 0.77265(13) -0.05973(9) -0.41846(12) 0.0272(3) 8 1 d + O3 O 0.47451(14) 0.15486(9) -0.12793(12) 0.0274(3) 8 1 d + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_Fourier_wave_vector.seq_id + _atom_site_Fourier_wave_vector.q1_coeff + 1 1 + 2 2 + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_anharmonic_ADP_Fourier.id + _atom_site_anharmonic_ADP_Fourier.atom_site_label + _atom_site_anharmonic_ADP_Fourier.tens_elem + _atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id + _atom_site_anharmonic_ADP_Fourier_param.cos + _atom_site_anharmonic_ADP_Fourier_param.sin + 1 Co1 C111 1 0 -0.008(4) + 2 Co1 C112 1 0 0.0031(15) + 3 Co1 C113 1 0 0.0012(19) + 4 Co1 C122 1 0 -0.0018(11) + 5 Co1 C123 1 0 0.0009(9) + 6 Co1 C133 1 0 0.0004(19) + 7 Co1 C222 1 0 0.0013(17) + 8 Co1 C223 1 0 -0.0002(11) + 9 Co1 C233 1 0 0.0027(13) + 10 Co1 C333 1 0 0.005(3) + 11 O2 C111 1 -0.0016(13) 0.0020(14) + 12 O2 C112 1 -0.0001(5) 0.0003(5) + + #====================================================================== + + Example based on the article: + Laura Canadillas-Delgado, Lidia Mazzuca, Oscar Fabelo and + Juan Rodriguez-Carvajal (2019) IUCrJ. 6, 105-115. + doi:10.1107/S2052252518015026 + Incommensurate structures of the [CH~3~NH~3~][Co(COOH)~3~] compound +; + +save_ + +save_atom_site_anharmonic_adp_fourier.atom_site_label + + _definition.id + '_atom_site_anharmonic_ADP_Fourier.atom_site_label' + _definition.update 2025-10-20 + _description.text +; + The code the that identifies an atom in a loop in which the Fourier + components of the tensors that parameterize its anharmonic ADP + modulation are listed. This code must match the _atom_site.label of + the associated coordinate list and conform to the rules described + in _atom_site.label. ; - _name.category_id atom_site_displace_Fourier - _name.object_id id - _type.purpose Key - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_Fourier + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ -save_atom_site_displace_Fourier.matrix_seq_id +save_atom_site_anharmonic_adp_fourier.id - _definition.id '_atom_site_displace_Fourier.matrix_seq_id' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_Fourier.id' + _definition.update 2024-04-13 + _description.text ; - - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + A code identifying each Fourier component used to describe + the modulation of the tensors that parameterize an anharmonic + ADP. ; - _name.category_id atom_site_displace_Fourier - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_Fourier + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ -save_atom_site_displace_Fourier.wave_vector_seq_id +save_atom_site_anharmonic_adp_fourier.tens_elem - _definition.id '_atom_site_displace_Fourier.wave_vector_seq_id' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_wave_vector_seq_id' - _description.text + _definition.id '_atom_site_anharmonic_ADP_Fourier.tens_elem' + _definition.update 2024-08-06 + _description.text +; + A label identifying the anharmonic ADP tensor elements of a + given atom whose modulation is being parameterized by Fourier + series. This code must match one of the codes listed in + _atom_site_anharmonic_ADP.tens_elem. ; + _name.category_id atom_site_anharmonic_ADP_Fourier + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code - A numeric code identifying the wave vectors of the Fourier terms - used in the structural model to describe the displacive - modulation of an atom or rigid group. In the case of a rigid - group, it applies only to the translational part of the - distortion. This code must match - _atom_site_Fourier_wave_vector.seq_id. + loop_ + _enumeration_set.state + _enumeration_set.detail + C111 'average value or modulation components of C111' + C112 'average value or modulation components of C112' + C113 'average value or modulation components of C113' + C122 'average value or modulation components of C122' + C123 'average value or modulation components of C123' + C133 'average value or modulation components of C133' + C222 'average value or modulation components of C222' + C223 'average value or modulation components of C223' + C233 'average value or modulation components of C233' + C333 'average value or modulation components of C333' + D1111 'average value or modulation components of D1111' + D1112 'average value or modulation components of D1112' + D1113 'average value or modulation components of D1113' + D1122 'average value or modulation components of D1122' + D1123 'average value or modulation components of D1123' + D1133 'average value or modulation components of D1133' + D1222 'average value or modulation components of D1222' + D1223 'average value or modulation components of D1223' + D1233 'average value or modulation components of D1233' + D1333 'average value or modulation components of D1333' + D2222 'average value or modulation components of D2222' + D2223 'average value or modulation components of D2223' + D2233 'average value or modulation components of D2233' + D2333 'average value or modulation components of D2333' + D3333 'average value or modulation components of D3333' + E11111 'average value or modulation components of E11111' + E11112 'average value or modulation components of E11112' + E11113 'average value or modulation components of E11113' + E11122 'average value or modulation components of E11122' + E11123 'average value or modulation components of E11123' + E11133 'average value or modulation components of E11133' + E11222 'average value or modulation components of E11222' + E11223 'average value or modulation components of E11223' + E11233 'average value or modulation components of E11233' + E11333 'average value or modulation components of E11333' + E12222 'average value or modulation components of E12222' + E12223 'average value or modulation components of E12223' + E12233 'average value or modulation components of E12233' + E12333 'average value or modulation components of E12333' + E13333 'average value or modulation components of E13333' + E22222 'average value or modulation components of E22222' + E22223 'average value or modulation components of E22223' + E22233 'average value or modulation components of E22233' + E22333 'average value or modulation components of E22333' + E23333 'average value or modulation components of E23333' + F111111 'average value or modulation components of F111111' + F111112 'average value or modulation components of F111112' + F111113 'average value or modulation components of F111113' + F111122 'average value or modulation components of F111122' + F111123 'average value or modulation components of F111123' + F111133 'average value or modulation components of F111133' + F111222 'average value or modulation components of F111222' + F111223 'average value or modulation components of F111223' + F111233 'average value or modulation components of F111233' + F111333 'average value or modulation components of F111333' + F112222 'average value or modulation components of F112222' + F112223 'average value or modulation components of F112223' + F112233 'average value or modulation components of F112233' + F112333 'average value or modulation components of F112333' + F113333 'average value or modulation components of F113333' + F122222 'average value or modulation components of F122222' + F122223 'average value or modulation components of F122223' + F122233 'average value or modulation components of F122233' + F122333 'average value or modulation components of F122333' + F123333 'average value or modulation components of F123333' + F133333 'average value or modulation components of F133333' + F222222 'average value or modulation components of F222222' + F222223 'average value or modulation components of F222223' + F222233 'average value or modulation components of F222233' + F222333 'average value or modulation components of F222333' + F223333 'average value or modulation components of F223333' + F233333 'average value or modulation components of F233333' + F333333 'average value or modulation components of F333333' + +save_ + +save_atom_site_anharmonic_adp_fourier.wave_vector_seq_id + + _definition.id + '_atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id' + _definition.update 2025-10-28 + _description.text ; - _name.category_id atom_site_displace_Fourier - _name.object_id wave_vector_seq_id - _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + A numeric code identifying the wave vectors of the Fourier terms + used to describe the modulation functions corresponding to the + anharmonic ADP tensors of an atom. This code must match + _atom_site_Fourier_wave_vector.seq_id. +; + _name.category_id atom_site_anharmonic_ADP_Fourier + _name.object_id wave_vector_seq_id + _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Integer + _enumeration.range 0: + _units.code none save_ +save_ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM -save_ATOM_SITE_DISPLACE_FOURIER_PARAM + _definition.id ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-02 + _description.text +; + Data items in the ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM category + record details about the coefficients of the Fourier series used to + describe the modulation of the anharmonic ADP tensor components + in a modulated structure. The Fourier components are defined in + the parent category ATOM_SITE_ANHARMONIC_ADP_FOURIER. Notice that + items in this category may be listed together with those of the + ATOM_SITE_ANHARMONIC_ADP_FOURIER category. To simplify the + description, below is explained the one-dimensional case. + + The modulation of the anharmonic ADP tensor elements (listed under + _atom_site_anharmonic_ADP_Fourier.tens_elem) are parameterized by + Fourier series. Each term of the series commonly adopts two + different representations: the sine-cosine form, + T(j...)cn cos(2\\p n x4)+T(j...)sn sin(2\\p n x4), + and the modulus-argument form, + |T(j...)n| cos[2\\p n x4+\\q(j...l)n], + where x4=q*(r+T)+t. q is the modulation wave vector and r and T + stand for a phase reference position and a lattice translation of + the reference structure, respectively. The phase reference position + can be chosen as the average position of the modulated atom, if + not in a rigid group or, in case of rigid groups a common point + for all atoms in the group. t is an arbitrary phase, irrelevant for + incommensurate modulated structures, but essential in the + commensurate case (see _atom_sites_modulation.global_phase_t_). +; + _name.category_id ATOM_SITE_ANHARMONIC_ADP_FOURIER + _name.object_id ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM + _category_key.name '_atom_site_anharmonic_ADP_Fourier_param.id' + _description_example.case +; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + _cell.modulation_dimension 1 + + loop_ + _cell_wave_vector.seq_id + _cell_wave_vector.x + _cell_wave_vector.y + _cell_wave_vector.z + 1 0.000000 0.000000 0.143000 + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.U_iso_or_equiv + _atom_site.site_symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + Co1 Co 0.5 0 0 0.0259(10) 4 1 d + O1 O 0.59580(13) -0.07083(9) -0.21413(13) 0.0280(4) 8 1 d + O2 O 0.77265(13) -0.05973(9) -0.41846(12) 0.0272(3) 8 1 d + O3 O 0.47451(14) 0.15486(9) -0.12793(12) 0.0274(3) 8 1 d + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_Fourier_wave_vector.seq_id + _atom_site_Fourier_wave_vector.q1_coeff + 1 1 + 2 2 + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_anharmonic_ADP_Fourier.id + _atom_site_anharmonic_ADP_Fourier.atom_site_label + _atom_site_anharmonic_ADP_Fourier.tens_elem + _atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id + 1 Co1 C111 1 + 2 Co1 C112 1 + 3 Co1 C113 1 + 4 Co1 C122 1 + 5 Co1 C123 1 + 6 Co1 C133 1 + 7 Co1 C222 1 + 8 Co1 C223 1 + 9 Co1 C233 1 + 10 Co1 C333 1 + 11 O2 C111 1 + 12 O2 C112 1 + + loop_ + _atom_site_anharmonic_ADP_Fourier_param.id + _atom_site_anharmonic_ADP_Fourier_param.cos + _atom_site_anharmonic_ADP_Fourier_param.sin + 1 0 -0.008(4) + 2 0 0.0031(15) + 3 0 0.0012(19) + 4 0 -0.0018(11) + 5 0 0.0009(9) + 6 0 0.0004(19) + 7 0 0.0013(17) + 8 0 -0.0002(11) + 9 0 0.0027(13) + 10 0 0.005(3) + 11 -0.0016(13) 0.0020(14) + 12 -0.0001(5) 0.0003(5) + + # - - - - data truncated for brevity - - - - + + #====================================================================== + + Example based on the article: + Laura Canadillas-Delgado, Lidia Mazzuca, Oscar Fabelo and + Juan Rodriguez-Carvajal (2019) IUCrJ. 6, 105-115. + doi:10.1107/S2052252518015026 + Incommensurate structures of the [CH~3~NH~3~][Co(COOH)~3~] compound +; + +save_ + +save_atom_site_anharmonic_adp_fourier_param.cos + + _definition.id '_atom_site_anharmonic_ADP_Fourier_param.cos' + _definition.update 2025-10-20 + _description.text +; + The cosine coefficient [T(j...)cn], corresponding to the Fourier term + defined by _atom_site_anharmonic_ADP_Fourier.atom_site_label, + _atom_site_anharmonic_ADP_Fourier.tens_elem and + _atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id cos + _units.code none + + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] - _definition.id ATOM_SITE_DISPLACE_FOURIER_PARAM - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 - _description.text + _method.purpose Evaluation + _method.expression ; + With p as atom_site_anharmonic_ADP_Fourier_param - Data items in the ATOM_SITE_DISPLACE_FOURIER_PARAM category - record details about the coefficients of the Fourier series - used to describe the displacive modulation of an atom or rigid - group. In the case of rigid groups, items in this category would - only include the translational part of the modulation. The - rotational part would appear in a separate list of items - belonging to the ATOM_SITE_ROT_FOURIER_PARAM category. The - Fourier components are defined in the parent category - ATOM_SITE_DISPLACE_FOURIER. Notice that items in this category - may be listed together with those of the ATOM_SITE_DISPLACE_FOURIER - category. + atom_site_anharmonic_ADP_Fourier_param.cos = \ + p.modulus*Cos(TwoPi*p.phase) ; - _name.category_id ATOM_SITE_DISPLACE_FOURIER - _name.object_id ATOM_SITE_DISPLACE_FOURIER_PARAM - loop_ - _category_key.name '_atom_site_displace_Fourier_param.id' save_ +save_atom_site_anharmonic_adp_fourier_param.cos_su -save_atom_site_displace_Fourier_param.cos - - _definition.id '_atom_site_displace_Fourier_param.cos' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_param_cos' - _description.text + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.cos_su' + _definition.update 2024-08-02 + _description.text ; + Standard uncertainty of _atom_site_anharmonic_ADP_Fourier_param.cos +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id cos_su + _name.linked_item_id '_atom_site_anharmonic_ADP_Fourier_param.cos' + _units.code none - The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.cos) is usually parameterized - by Fourier series. Each term of the series commonly adopts two - different representations: the sine-cosine form, - Ac cos(2\\p k r)+As sin(2\\p k r), - and the modulus-argument form, - |A| cos(2\\p k r+\\f), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_displace_Fourier_param.cos is the - cosine coefficient (Ac) corresponding to the Fourier term defined - _atom_site_displace_Fourier.atom_site_label, - _atom_site_displace_Fourier.axis and - _atom_site_displace_Fourier.wave_vector.seq_id. Atomic or rigid-group - displacements must be expressed as fractions of the unit - cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the ATOM_SITES_AXES - category, through _atom_site_displace_Fourier.matrix_seq_id. - Use of _atom_sites_displace_Fourier.axes_description is deprecated - and retained only for backward compatibility. + _import.get [{'file':templ_attr.cif 'save':general_su}] -; - _name.category_id atom_site_displace_Fourier_param - _name.object_id cos - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ - _method.purpose - _method.expression - Evaluation -; - With p as atom_site_displace_Fourier_param +save_ - atom_site_displace_Fourier_param.cos = p.modulus*Cos(TwoPi*p.phase) -; +save_atom_site_anharmonic_adp_fourier_param.id + _definition.id '_atom_site_anharmonic_ADP_Fourier_param.id' + _definition.update 2024-04-13 + _description.text +; + A code identifying the (in general complex) coefficient of each + term present in the Fourier series describing the modulation of + the ADP. This code must match _atom_site_anharmonic_ADP_Fourier.id. +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id id + _name.linked_item_id '_atom_site_anharmonic_ADP_Fourier.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code save_ +save_atom_site_anharmonic_adp_fourier_param.modulus + + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.modulus' + _definition.update 2025-10-20 + _description.text +; + The modulus [|T(j...)n|] of the complex amplitudes corresponding to + the Fourier term defined by + _atom_site_anharmonic_ADP_Fourier.atom_site_label, + _atom_site_anharmonic_ADP_Fourier.tens_elem and + _atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id modulus + _enumeration.range 0.0: + _units.code none -save_atom_site_displace_Fourier_param.id + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] - _definition.id '_atom_site_displace_Fourier_param.id' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_param_id' - _description.text + _method.purpose Evaluation + _method.expression ; + With p as atom_site_anharmonic_ADP_Fourier_param - A code identifying the (in general complex) coefficient of each - term present in the Fourier series describing the displacive - modulation of a given atom or rigid group. In the case of a rigid - group, it applies only to the translational part of the - distortion. This code must match _atom_site_displace_Fourier.id. + atom_site_anharmonic_ADP_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) ; - _name.category_id atom_site_displace_Fourier_param - _name.object_id id - _name.linked_item_id '_atom_site_displace_Fourier.id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code save_ +save_atom_site_anharmonic_adp_fourier_param.modulus_su -save_atom_site_displace_Fourier_param.modulus - - _definition.id '_atom_site_displace_Fourier_param.modulus' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_param_modulus' - _description.text -; - - The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.modulus) is usually - parameterized by Fourier series. Each term of the series commonly - adopts two different representations: the sine-cosine form, - Ac cos(2\\p k r)+As sin(2\\p k r), - and the modulus-argument form, - |A| cos(2\\p k r+\\f), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_displace_Fourier_param.modulus is - the modulus (|A|) of the complex amplitude corresponding to the - Fourier term defined by - _atom_site_displace_Fourier.atom_site_label, - _atom_site_displace_Fourier.axis and - _atom_site_displace_Fourier.wave_vector_seq_id. Atomic or rigid-group - displacements must be expressed as fractions of the unit - cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the ATOM_SITES_AXES - category, through _atom_site_displace_Fourier.matrix_seq_id. - Use of _atom_sites_displace_Fourier.axes_description is deprecated - and retained only for backward compatibility. + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.modulus_su' + _definition.update 2024-08-02 + _description.text ; - _name.category_id atom_site_displace_Fourier_param - _name.object_id modulus - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0: - loop_ - _method.purpose - _method.expression - Evaluation + Standard uncertainty of _atom_site_anharmonic_ADP_Fourier_param.modulus ; - With p as atom_site_displace_Fourier_param - - atom_site_displace_Fourier_param.modulus = Sqrt(p.cos**2 + p.sin**2) -; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id modulus_su + _name.linked_item_id + '_atom_site_anharmonic_ADP_Fourier_param.modulus' + _units.code none + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ +save_atom_site_anharmonic_adp_fourier_param.phase -save_atom_site_displace_Fourier_param.phase - - _definition.id '_atom_site_displace_Fourier_param.phase' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_param_phase' - _description.text + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.phase' + _definition.update 2025-10-20 + _description.text +; + _The phase [\q(j...)n/2\\p], in cycles, of the complex amplitude + corresponding to the Fourier term defined by + _atom_site_anharmonic_ADP_Fourier.atom_site_label, + _atom_site_anharmonic_ADP_Fourier.tens_elem and + _atom_site_anharmonic_ADP_Fourier.wave_vector_seq_id. ; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id phase + _enumeration.range -1.0:1.0 + _units.code cycles - The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.phase) is usually parameterized - by Fourier series. Each term of the series commonly adopts two - different representations: the sine-cosine form, - Ac cos(2\\p k r)+As sin(2\\p k r), - and the modulus-argument form, - |A| cos(2\\p k r+\\f), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_displace_Fourier_param.phase is the - phase (\f/2\\p) in cycles of the complex amplitude corresponding\ - to the Fourier term defined by - _atom_site_displace_Fourier.atom_site_label, - _atom_site_displace_Fourier.axis and - _atom_site_displace_Fourier.wave_vector_seq_id. + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] + + _method.purpose Evaluation + _method.expression ; - _name.category_id atom_site_displace_Fourier_param - _name.object_id phase - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 - _units.code cycles - loop_ - _method.purpose - _method.expression - Evaluation + With p as atom_site_anharmonic_ADP_Fourier_param + + atom_site_anharmonic_ADP_Fourier_param.phase = \ + Phase(Complex(p.cos,-p.sin))/TwoPi ; - With p as atom_site_displace_Fourier_param - atom_site_displace_Fourier_param.phase = Phase(Complex(p.cos,-p.sin)/2/Pi -; +save_ +save_atom_site_anharmonic_adp_fourier_param.phase_su -save_ + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.phase_su' + _definition.update 2024-08-02 + _description.text +; + Standard uncertainty of _atom_site_anharmonic_ADP_Fourier_param.phase +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id phase_su + _name.linked_item_id + '_atom_site_anharmonic_ADP_Fourier_param.phase' + _units.code cycles + _import.get [{'file':templ_attr.cif 'save':general_su}] -save_atom_site_displace_Fourier_param.sin +save_ - _definition.id '_atom_site_displace_Fourier_param.sin' - _definition.update 2017-09-28 - loop_ - _alias.definition_id - '_atom_site_displace_Fourier_param_sin' - _description.text -; +save_atom_site_anharmonic_adp_fourier_param.sin - The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.sin) is usually parameterized - by Fourier series. Each term of the series commonly adopts two - different representations: the sine-cosine form, - Ac cos(2\\p k r)+As sin(2\\p k r), - and the modulus-argument form, - |A| cos(2\\p k r+\\f), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_displace_Fourier_param.sin is the - sine coefficient (As) corresponding to the Fourier term defined - _atom_site_displace_Fourier.atom_site_label, - _atom_site_displace_Fourier.axis, and - _atom_site_displace_Fourier.wave_vector_seq_id. Atomic or rigid-group - displacements must be expressed as fractions of the unit - cell or in angstroms if the modulations are referred to some - special axes defined by - the items belonging to the ATOM_SITES_AXES - category, through _atom_site_displace_Fourier.matrix_seq_id. - Use of _atom_sites_displace_Fourier.axes_description is deprecated - and retained only for backward compatibility. + _definition.id '_atom_site_anharmonic_ADP_Fourier_param.sin' + _definition.update 2025-10-20 + _description.text ; - _name.category_id atom_site_displace_Fourier_param - _name.object_id sin - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ - _method.purpose - _method.expression - Evaluation + The sine coefficient [T(j...)sn] corresponding to the Fourier term + defined by _atom_site_anharmonic_ADP_Fourier.atom_site_label, + _atom_site_anharmonic_ADP_Fourier.tens_elem and + _atom_site_anharmonic_AD_Fourier.wave_vector_seq_id. ; - With p as atom_site_displace_Fourier_param + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id sin + _units.code none - atom_site_displace_Fourier_param.sin = -p.modulus*Sin(TwoPi*p.phase) -; + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] + + _method.purpose Evaluation + _method.expression +; + With p as atom_site_anharmonic_ADP_Fourier_param + atom_site_anharmonic_ADP_Fourier_param.sin = \ + -p.modulus*Sin(TwoPi*p.phase) +; save_ -save_ATOM_SITE_DISPLACE_LEGENDRE +save_atom_site_anharmonic_adp_fourier_param.sin_su - _definition.id ATOM_SITE_DISPLACE_LEGENDRE - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text -; - - The set of harmonic functions used in the Fourier series describing the - Modulation functions is orthogonal and complete in the interval [0,1). - However within the x4 interval defined by a Crenel function orthogonality - is no longer preserved and therefore the Fourier coefficients are correlated - and the refinement becomes fragile. There are several ways to avoid this - technical problem (see Petricek et al., 2016). One of them is to use - orthogonal or orthogonalized sets of functions defined within the Crenel - interval. This procedure is more robust than the orthogonalization of harmonics - described in *_ORTHO. categories. Moreover these sets of functions are - complete. Two different sets of orthogonal or orthogonalized functions have - been implemented in JANA2006: Legendre polynomials and the so-called X- - harmonics. Legendre polynomials are orthogonal in the Crenel interval and can - be easily calculated by the recurrence relation: + _definition.id + '_atom_site_anharmonic_ADP_Fourier_param.sin_su' + _definition.update 2024-08-02 + _description.text +; + Standard uncertainty of _atom_site_anharmonic_ADP_Fourier_param.sin +; + _name.category_id atom_site_anharmonic_ADP_Fourier_param + _name.object_id sin_su + _name.linked_item_id '_atom_site_anharmonic_ADP_Fourier_param.sin' + _units.code none - P~0~(x) = 1 - P~1~(x) (x) = x - (n+1)P~n+1~(x) = (2n+1)x P~n~(x) - nP~n-1~(x) + _import.get [{'file':templ_attr.cif 'save':general_su}] - Notice that Legendre polynomials are restricted to one-dimensional cases and - include as a particular case the sawtooth modulation. +save_ - Data items in the ATOM_SITE_DISPLACE_LEGENDRE category record - details about the Legendre polynomials used to describe the displacive - modulations when the atomic domain of a given atom is restricted - by a Crenel function. In the case of rigid groups, items in this category would - only include the translational part of the modulation. The rotational - part would appear in a separate list of items belonging to the - ATOM_SITE_ROT_LEGENDRE category. The coefficients of each Legendre function - belong to the category ATOM_SITE_DISPLACE_LEGENDRE_PARAM and are listed - separately. - - References: Petricek, V., Van Der Lee & Evain, M. (1995). - Acta Cryst. A51, 529-535. DOI 10.1107/S0108767395000365 - On the Use of Crenel Functions for Occupationally Modulated - Structures +save_ATOM_SITE_ANHARMONIC_ADP_LEGENDRE - Petricek, V., Eigner, V., Dusek, M. & Cejchan, A. (2016). Z. - Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 - Discontinuous modulation functions and their application for - analysis of modulated structures with the computing system JANA2006 + _definition.id ATOM_SITE_ANHARMONIC_ADP_LEGENDRE + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_LEGENDRE - loop_ - _category_key.name '_atom_site_displace_Legendre.id' - + Data items in the ATOM_SITE_ANHARMONIC_ADP_LEGENDRE category record + details about the Legendre polynomials used to describe the + modulations of the anharmonic ADP tensor elements when the atomic + domain of a given atom is restricted by a crenel function. +; + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_ANHARMONIC_ADP_LEGENDRE + _category_key.name '_atom_site_anharmonic_ADP_legendre.id' + save_ -save_atom_site_displace_Legendre.atom_site_label +save_atom_site_anharmonic_adp_legendre.atom_site_label - _definition.id '_atom_site_displace_Legendre.atom_site_label' - _definition.update 2017-09-28 - _description.text + _definition.id + '_atom_site_anharmonic_ADP_legendre.atom_site_label' + _definition.update 2025-10-20 + _description.text ; - - Modulation parameters are usually looped in separate lists. - Modulated parameters are the atom positions (displacive - modulation), the atomic occupation (occupational modulation) - and/or the anisotropic (or isotropic) ADP. - _atom_site_displace_Legendre.atom_site_label is the - code that identifies an atom or rigid group in a loop in which - the Legendre components of its displacive modulation are listed. - In the case of a rigid group, this list would only include the - translational part of its displacive modulation. The rotational - part (if any) would appear in a separate list (see - _atom_site_rot_Legendre.atom_site_label). This code must match - the _atom_site.label of the associated coordinate list and - conform to the rules described in _atom_site.label. + The code the identifies an atom in a loop in which the Legendre + components of the tensors that parameterize its anharmonic ADP + modulation are listed. This code must match the _atom_site.label of + the associated coordinate list and conform to the rules described + in _atom_site.label. ; - _name.category_id atom_site_displace_Legendre - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Word + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ -save_atom_site_displace_Legendre.axis +save_atom_site_anharmonic_adp_legendre.coeff - _definition.id '_atom_site_displace_Legendre.axis' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_Legendre.coeff' + _definition.update 2024-05-02 + _description.text ; - - A label identifying the displacement component of a given atom - or rigid group that is being parameterized by Legendre polynomials. - a, b and c are the basic lattice vectors of the reference - structure. For composites they refer to the reference structure of - each subsystem. a~1~, a~2~ and a~3~ are defined by the - items belonging to the ATOM_SITES_AXES category, through - _atom_site_displace_Legendre.matrix_seq_id. + The coefficient corresponding to the Legendre polynomial defined by + _atom_site_anharmonic_ADP_Legendre.atom_site_label, + _atom_site_anharmonic_ADP_Legendre.tens_elem and + _atom_site_anharmonic_ADP_Legendre.order. ; - _name.category_id atom_site_displace_Legendre - _name.object_id axis - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - x 'displacement along the a axis' - y 'displacement along the b axis' - z 'displacement along the c axis' - a1 'displacement along an arbitrary a1 axis' - a2 'displacement along an arbitrary a2 axis' - a3 'displacement along an arbitrary a3 axis' + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id coeff + _units.code none + + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] save_ -save_atom_site_displace_Legendre.coeff +save_atom_site_anharmonic_adp_legendre.coeff_su - _definition.id '_atom_site_displace_Legendre.coeff' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_Legendre.coeff_su' + _definition.update 2024-08-02 + _description.text ; - The coefficient corresponding to the Legendre function - defined by _atom_site_displace_Legendre.atom_site_label, - _atom_site_displace_Legendre.axis and _atom_site_displace_Legendre.order. - Atomic or rigid-group displacements must be expressed as fractions - of the unit cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the - ATOM_SITES_AXES category, through _atom_site_rot_Legendre.matrix_seq_id. + Standard uncertainty of _atom_site_anharmonic_ADP_Legendre.coeff ; - _name.category_id atom_site_displace_Legendre - _name.object_id coeff - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id coeff_su + _name.linked_item_id '_atom_site_anharmonic_ADP_Legendre.coeff' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ -save_atom_site_displace_Legendre.id - _definition.id '_atom_site_displace_Legendre.id' - _definition.update 2017-09-28 - _description.text -; +save_atom_site_anharmonic_adp_legendre.id - A code identifying each component of the displacive modulation of - a given atom or rigid group when the modulation is expressed in - terms of Legendre polynomials. In the case of a rigid group, it - applies only to the translational part of the distortion. + _definition.id '_atom_site_anharmonic_ADP_Legendre.id' + _definition.update 2024-05-02 + _description.text ; - _name.category_id atom_site_displace_Legendre - _name.object_id id - _type.purpose Key - _type.source Related - _type.container Single - _type.contents Code + A code identifying each component used to describe the modulation + of the tensors, expressed in terms of Legendre polynomials, that + parameterize an anharmonic ADP. +; + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ -save_atom_site_displace_Legendre.matrix_seq_id +save_atom_site_anharmonic_adp_legendre.order - _definition.id '_atom_site_displace_Legendre.matrix_seq_id' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_Legendre.order' + _definition.update 2025-10-28 + _description.text ; - - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + The order of the Legendre polynomial. ; - _name.category_id atom_site_displace_Legendre - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id order + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.range 0: + _units.code none save_ -save_atom_site_displace_Legendre.order +save_atom_site_anharmonic_adp_legendre.tens_elem - _definition.id '_atom_site_displace_Legendre.order' - _definition.update 2019-09-25 - _description.text + _definition.id '_atom_site_anharmonic_ADP_Legendre.tens_elem' + _definition.update 2024-05-02 + _description.text +; + A label identifying the anharmonic ADP tensor elements of a given + atom whose modulation is being parameterized by Legendre polynomials. + This code must match one of the codes listed in + 'atom_site_anharmonic_ADP.tens_elem. ; + _name.category_id atom_site_anharmonic_ADP_Legendre + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code - The order of the Legendre polynomial. + loop_ + _enumeration_set.state + _enumeration_set.detail + C111 'average value or modulation components of C111' + C112 'average value or modulation components of C112' + C113 'average value or modulation components of C113' + C122 'average value or modulation components of C122' + C123 'average value or modulation components of C123' + C133 'average value or modulation components of C133' + C222 'average value or modulation components of C222' + C223 'average value or modulation components of C223' + C233 'average value or modulation components of C233' + C333 'average value or modulation components of C333' + D1111 'average value or modulation components of D1111' + D1112 'average value or modulation components of D1112' + D1113 'average value or modulation components of D1113' + D1122 'average value or modulation components of D1122' + D1123 'average value or modulation components of D1123' + D1133 'average value or modulation components of D1133' + D1222 'average value or modulation components of D1222' + D1223 'average value or modulation components of D1223' + D1233 'average value or modulation components of D1233' + D1333 'average value or modulation components of D1333' + D2222 'average value or modulation components of D2222' + D2223 'average value or modulation components of D2223' + D2233 'average value or modulation components of D2233' + D2333 'average value or modulation components of D2333' + D3333 'average value or modulation components of D3333' + E11111 'average value or modulation components of E11111' + E11112 'average value or modulation components of E11112' + E11113 'average value or modulation components of E11113' + E11122 'average value or modulation components of E11122' + E11123 'average value or modulation components of E11123' + E11133 'average value or modulation components of E11133' + E11222 'average value or modulation components of E11222' + E11223 'average value or modulation components of E11223' + E11233 'average value or modulation components of E11233' + E11333 'average value or modulation components of E11333' + E12222 'average value or modulation components of E12222' + E12223 'average value or modulation components of E12223' + E12233 'average value or modulation components of E12233' + E12333 'average value or modulation components of E12333' + E13333 'average value or modulation components of E13333' + E22222 'average value or modulation components of E22222' + E22223 'average value or modulation components of E22223' + E22233 'average value or modulation components of E22233' + E22333 'average value or modulation components of E22333' + E23333 'average value or modulation components of E23333' + F111111 'average value or modulation components of F111111' + F111112 'average value or modulation components of F111112' + F111113 'average value or modulation components of F111113' + F111122 'average value or modulation components of F111122' + F111123 'average value or modulation components of F111123' + F111133 'average value or modulation components of F111133' + F111222 'average value or modulation components of F111222' + F111223 'average value or modulation components of F111223' + F111233 'average value or modulation components of F111233' + F111333 'average value or modulation components of F111333' + F112222 'average value or modulation components of F112222' + F112223 'average value or modulation components of F112223' + F112233 'average value or modulation components of F112233' + F112333 'average value or modulation components of F112333' + F113333 'average value or modulation components of F113333' + F122222 'average value or modulation components of F122222' + F122223 'average value or modulation components of F122223' + F122233 'average value or modulation components of F122233' + F122333 'average value or modulation components of F122333' + F123333 'average value or modulation components of F123333' + F133333 'average value or modulation components of F133333' + F222222 'average value or modulation components of F222222' + F222223 'average value or modulation components of F222223' + F222233 'average value or modulation components of F222233' + F222333 'average value or modulation components of F222333' + F223333 'average value or modulation components of F223333' + F233333 'average value or modulation components of F233333' + F333333 'average value or modulation components of F333333' + +save_ + +save_ATOM_SITE_ANHARMONIC_ADP_ORTHO + + _definition.id ATOM_SITE_ANHARMONIC_ADP_ORTHO + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text +; + Data items in the ATOM_SITE_ANHARMONIC_ADP_ORTHO category record + details about the orthogonalized functions defined to solve + correlation problems during the refinement of the modulations of the + anharmonic ADP tensor elements, when the atomic domain of a given + atom is restricted by a crenel function. The functions are constructed + selecting Fourier harmonics until the desired degree of orthogonality + and completeness is reached (see + _atom_site_occ_crenel.ortho_eps). ; - _name.category_id atom_site_displace_Legendre - _name.object_id order - _type.purpose Key - _type.source Assigned - _type.container Single - _type.contents Integer - _enumeration.range 0: + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_ANHARMONIC_ADP_ORTHO + _category_key.name '_atom_site_anharmonic_ADP_ortho.id' save_ -save_ATOM_SITE_DISPLACE_LEGENDRE_PARAM +save_atom_site_anharmonic_adp_ortho.atom_site_label - _definition.id ATOM_SITE_DISPLACE_LEGENDRE_PARAM - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text + _definition.id + '_atom_site_anharmonic_ADP_ortho.atom_site_label' + _definition.update 2025-10-20 + _description.text ; + The code that identifies an atom in a loop in which the ortho + components of the tensors that parameterize its anharmonic ADP + modulation are listed. This code must match the _atom_site.label of + the associated coordinate list and conform to the rules described + in _atom_site.label. - Data items in the ATOM_SITE_DISPLACE_LEGENDRE_PARAM category - record details about the coefficients of the Legendre polynomials - functions defined in ATOM_SITE_DISPLACE_LEGENDRE and used to - describe the displacive modulation of an atom or rigid group. - In the case of rigid groups, items in this category would - only include the translational part of the modulation. The - rotational part would appear in a separate list of items - belonging to the ATOM_SITE_ROT_LEGENDRE_PARAM category. + Notice that the global results could also be expressed (losing + information about the orthogonalized functions )using the data items + defined in the categories ATOM_SITE_ANHARMONIC_ADP_FOURIER and + ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM. ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_LEGENDRE_PARAM - loop_ - _category_key.name '_atom_site_displace_Legendre_param.id' + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ -### JRH Notes: is there any reason to have this as a separate category -### if there is a one-to-one relationship between the id of this category -### and the id of the parent category? - -save_atom_site_displace_Legendre_param.coeff +save_atom_site_anharmonic_adp_ortho.coeff - _definition.id '_atom_site_displace_Legendre_param.coeff' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_ortho.coeff' + _definition.update 2024-04-17 + _description.text ; - - The coefficient corresponding to the Legendre function - defined by _atom_site_displace_Legendre.atom_site_label, - _atom_site_displace_Legendre.axis and _atom_site_displace_Legendre.order. - Atomic or rigid-group displacements must be expressed as fractions - of the unit cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the - ATOM_SITES_AXES category, through _atom_site_rot_Legendre.matrix_seq_id. + The coefficient, corresponding to the orthogonalized function + defined by _atom_site_anharmonic_ADP_ortho.atom_site_label, + _atom_site_anharmonic_ADP_ortho.tens_elem and + _atom_site_anharmonic_ADP_ortho.func_id. ; - _name.category_id atom_site_displace_Legendre_param - _name.object_id coeff - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id coeff + _units.code none + + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] save_ -save_atom_site_displace_Legendre_param.id +save_atom_site_anharmonic_adp_ortho.coeff_su - _definition.id '_atom_site_displace_Legendre_param.id' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_ortho.coeff_su' + _definition.update 2024-08-02 + _description.text ; - - A code identifying the coefficient of each Legendre polynomial describing the displacive - modulation of a given atom or rigid group. In the case of a rigid - group, it applies only to the translational part of the - distortion. This code must match _atom_site_displace_Legendre.id. + Standard uncertainty of _atom_site_anharmonic_ADP_ortho.coeff ; - _name.category_id atom_site_displace_Legendre_param - _name.object_id id - _name.linked_item_id '_atom_site_displace_Legendre.id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id coeff_su + _name.linked_item_id '_atom_site_anharmonic_ADP_ortho.coeff' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ -save_ATOM_SITE_DISPLACE_ORTHO +save_atom_site_anharmonic_adp_ortho.func_id - _definition.id ATOM_SITE_DISPLACE_ORTHO - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text + _definition.id '_atom_site_anharmonic_ADP_ortho.func_id' + _definition.update 2024-04-17 + _description.text ; - - Data items in the ATOM_SITE_DISPLACE_ORTHO category record - details about the orthogonalized functions defined to solve - correlation problems during the refinement of displacive - modulations when the atomic domain of a given atom is restricted - by a Crenel function. The functions are constructed selecting - Fourier harmonics until the desired degree of orthogonality and - completeness is reached (see - _atom_site_occ_special_func.crenel_ortho_eps). - In the case of rigid groups, items in this category would only - include the translational part of the modulation. The rotational - part would appear in a separate list of items belonging to the - ATOM_SITE_ROT_ORTHO category. The coefficients of each - orthogonalized function belong to the category - ATOM_SITE_DISPLACE_ORTHO_PARAM and are listed separately. - - Notice that the global results could also be expressed (losing - information) using the data items defined in the categories - ATOM_SITE_DISPLACE_FOURIER and ATOM_SITE_DISPLACE_FOURIER_PARAM. + A code identifying the orthogonalized function used in the structural + model to describe the anharmonic tensor elements modulation + of an atom, when orthogonalized functions are used. This code must + match _atom_sites_ortho.func_id. ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_ORTHO - loop_ - _category_key.name '_atom_site_displace_ortho.id' - + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id func_id + _name.linked_item_id '_atom_sites_ortho.func_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + save_ -save_atom_site_displace_ortho.atom_site_label +save_atom_site_anharmonic_adp_ortho.id - _definition.id '_atom_site_displace_ortho.atom_site_label' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_ortho.id' + _definition.update 2024-04-17 + _description.text ; - - Modulation parameters are usually looped in separate lists. - Modulated parameters are the atom positions (displacive - modulation), the atomic occupation (occupational modulation) - and/or the anisotropic (or isotropic) ADP. - _atom_site_displace_ortho.atom_site_label is the - code that identifies an atom or rigid group in a loop in which - the ortho components of its displacive modulation are listed. - In the case of a rigid group, this list would only include the - translational part of its displacive modulation. The rotational - part (if any) would appear in a separate list (see - _atom_site_rot_ortho.atom_site_label). This code must match - the _atom_site.label of the associated coordinate list and - conform to the rules described in _atom_site.label. + A code identifying each component of the ADP modulation of + a given atom when the modulation is expressed in terms of ortho + series. ; - _name.category_id atom_site_displace_ortho - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Word + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ -save_atom_site_displace_ortho.axis +save_atom_site_anharmonic_adp_ortho.tens_elem - _definition.id '_atom_site_displace_ortho.axis' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_ortho.tens_elem' + _definition.update 2024-04-17 + _description.text ; - - A label identifying the displacement component of a given atom - or rigid group that is being parameterized by orthogonalized - functions. a, b and c are the basic lattice vectors of the reference - structure. For composites they refer to the reference structure of - each subsystem. a~1~, a~2~ and a~3~ are defined by the - items belonging to the ATOM_SITES_AXES category, through - _atom_site_displace_ortho.matrix_seq_id. + A code identifying each component used to describe the modulation + of the tensors, expressed in terms of orthogonalized functions, that + parameterize an anharmonic ADP. ; - _name.category_id atom_site_displace_ortho - _name.object_id axis - _type.purpose State - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_ortho + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ _enumeration_set.state _enumeration_set.detail - x 'displacement along the a axis' - y 'displacement along the b axis' - z 'displacement along the c axis' - a1 'displacement along an arbitrary a1 axis' - a2 'displacement along an arbitrary a2 axis' - a3 'displacement along an arbitrary a3 axis' + C111 'average value or modulation components of C111' + C112 'average value or modulation components of C112' + C113 'average value or modulation components of C113' + C122 'average value or modulation components of C122' + C123 'average value or modulation components of C123' + C133 'average value or modulation components of C133' + C222 'average value or modulation components of C222' + C223 'average value or modulation components of C223' + C233 'average value or modulation components of C233' + C333 'average value or modulation components of C333' + D1111 'average value or modulation components of D1111' + D1112 'average value or modulation components of D1112' + D1113 'average value or modulation components of D1113' + D1122 'average value or modulation components of D1122' + D1123 'average value or modulation components of D1123' + D1133 'average value or modulation components of D1133' + D1222 'average value or modulation components of D1222' + D1223 'average value or modulation components of D1223' + D1233 'average value or modulation components of D1233' + D1333 'average value or modulation components of D1333' + D2222 'average value or modulation components of D2222' + D2223 'average value or modulation components of D2223' + D2233 'average value or modulation components of D2233' + D2333 'average value or modulation components of D2333' + D3333 'average value or modulation components of D3333' + E11111 'average value or modulation components of E11111' + E11112 'average value or modulation components of E11112' + E11113 'average value or modulation components of E11113' + E11122 'average value or modulation components of E11122' + E11123 'average value or modulation components of E11123' + E11133 'average value or modulation components of E11133' + E11222 'average value or modulation components of E11222' + E11223 'average value or modulation components of E11223' + E11233 'average value or modulation components of E11233' + E11333 'average value or modulation components of E11333' + E12222 'average value or modulation components of E12222' + E12223 'average value or modulation components of E12223' + E12233 'average value or modulation components of E12233' + E12333 'average value or modulation components of E12333' + E13333 'average value or modulation components of E13333' + E22222 'average value or modulation components of E22222' + E22223 'average value or modulation components of E22223' + E22233 'average value or modulation components of E22233' + E22333 'average value or modulation components of E22333' + E23333 'average value or modulation components of E23333' + F111111 'average value or modulation components of F111111' + F111112 'average value or modulation components of F111112' + F111113 'average value or modulation components of F111113' + F111122 'average value or modulation components of F111122' + F111123 'average value or modulation components of F111123' + F111133 'average value or modulation components of F111133' + F111222 'average value or modulation components of F111222' + F111223 'average value or modulation components of F111223' + F111233 'average value or modulation components of F111233' + F111333 'average value or modulation components of F111333' + F112222 'average value or modulation components of F112222' + F112223 'average value or modulation components of F112223' + F112233 'average value or modulation components of F112233' + F112333 'average value or modulation components of F112333' + F113333 'average value or modulation components of F113333' + F122222 'average value or modulation components of F122222' + F122223 'average value or modulation components of F122223' + F122233 'average value or modulation components of F122233' + F122333 'average value or modulation components of F122333' + F123333 'average value or modulation components of F123333' + F133333 'average value or modulation components of F133333' + F222222 'average value or modulation components of F222222' + F222223 'average value or modulation components of F222223' + F222233 'average value or modulation components of F222233' + F222333 'average value or modulation components of F222333' + F223333 'average value or modulation components of F223333' + F233333 'average value or modulation components of F233333' + F333333 'average value or modulation components of F333333' + +save_ + +save_ATOM_SITE_ANHARMONIC_ADP_XHARM + + _definition.id ATOM_SITE_ANHARMONIC_ADP_XHARM + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text +; + Data items in the ATOM_SITE_ANHARMONIC_ADP_XHARM category record + details about the x-harmonics used to describe the modulations of + the anharmonic ADP tensor elements when the atomic domain of a + given atom is restricted by a crenel function. +; + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_ANHARMONIC_ADP_XHARM + _category_key.name '_atom_site_anharmonic_ADP_xharm.id' save_ -save_atom_site_displace_ortho.coeff +save_atom_site_anharmonic_adp_xharm.atom_site_label - _definition.id '_atom_site_displace_ortho.coeff' - _definition.update 2014-06-27 - _description.text + _definition.id + '_atom_site_anharmonic_ADP_xharm.atom_site_label' + _definition.update 2025-10-20 + _description.text ; - - The coefficient corresponding to the orthogonalized function - Defined by _atom_site_displace_ortho.atom_site_label, - _atom_site_displace_ortho.axis and _atom_site_displace_ortho.func_id. - Atomic or rigid-group displacements must be expressed as fractions - of the unit cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the - ATOM_SITES_AXES category, through _atom_site_rot_ortho.matrix_seq_id. + The code the identifies an atom in a loop in which the x-harmonics + components of the tensors that parameterize its anharmonic ADP + modulation are listed. This code must match the _atom_site.label of + the associated coordinate list and conform to the rules described + in _atom_site.label. ; - _name.category_id atom_site_displace_ortho - _name.object_id coeff - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ -save_atom_site_displace_ortho.func_id +save_atom_site_anharmonic_adp_xharm.coeff - _definition.id '_atom_site_displace_ortho.func_id' - _definition.update 2017-09-28 - _description.text + _definition.id '_atom_site_anharmonic_ADP_xharm.coeff' + _definition.update 2024-05-02 + _description.text ; - - A code identifying the orthogonalized function used in the - structural model to describe the displacive modulation of an atom - or rigid group. In the case of a rigid group, it applies only - to the translational part of the distortion. This code must match - _atom_sites_ortho_func_id. + The coefficient, corresponding to the x-harmonic defined by + _atom_site_anharmonic_ADP_xharm.atom_site_label, + _atom_site_anharmonic_ADP_xharm.tens_elem and + _atom_site_anharmonic_ADP_xharm.order. ; - _name.category_id atom_site_displace_ortho - _name.object_id func_id - _name.linked_item_id '_atom_sites_ortho.func_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id coeff + _units.code none + + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] save_ -save_atom_site_displace_ortho.id +save_atom_site_anharmonic_adp_xharm.coeff_su - _definition.id '_atom_site_displace_ortho.id' - _definition.update 2014-06-27 - _description.text + _definition.id '_atom_site_anharmonic_ADP_xharm.coeff_su' + _definition.update 2024-08-02 + _description.text ; - - A code identifying each component of the displacive modulation of - a given atom or rigid group when the modulation is expressed in - terms of ortho series. In the case of a rigid group, it - applies only to the translational part of the distortion. + Standard uncertainty of _atom_site_anharmonic_ADP_xharm.coeff ; - _name.category_id atom_site_displace_ortho - _name.object_id id - _type.purpose Key - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id coeff_su + _name.linked_item_id '_atom_site_anharmonic_ADP_xharm.coeff' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ -save_atom_site_displace_ortho.matrix_seq_id +save_atom_site_anharmonic_adp_xharm.id - _definition.id '_atom_site_displace_ortho.matrix_seq_id' - _definition.update 2014-06-27 - _description.text + _definition.id '_atom_site_anharmonic_ADP_xharm.id' + _definition.update 2024-05-02 + _description.text ; - - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + A code identifying each component used to describe the modulation + of the tensors, expressed in terms of x-harmonics, that + parameterize an anharmonic ADP. ; - _name.category_id atom_site_displace_ortho - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ -save_ATOM_SITE_DISPLACE_ORTHO_PARAM +save_atom_site_anharmonic_adp_xharm.order - _definition.id ATOM_SITE_DISPLACE_ORTHO_PARAM - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text + _definition.id '_atom_site_anharmonic_ADP_xharm.order' + _definition.update 2025-10-28 + _description.text +; + The order of each x-harmonic function. ; + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id order + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.range 0: + _units.code none - Data items in the ATOM_SITE_DISPLACE_ORTHO_PARAM category - record details about the coefficients of the orthogonolized - functions defined in ATOM_SITE_DISPLACE_ORTHO and used to - describe the displacive modulation of an atom or rigid group. - In the case of rigid groups, items in this category would - only include the translational part of the modulation. The - rotational part would appear in a separate list of items - belonging to the ATOM_SITE_ROT_ORTHO_PARAM category. +save_ +save_atom_site_anharmonic_adp_xharm.tens_elem + + _definition.id '_atom_site_anharmonic_ADP_xharm.tens_elem' + _definition.update 2024-08-06 + _description.text ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_ORTHO_PARAM + A label identifying the anharmonic ADP tensor elements of a given + atom whose modulation is being parameterized by x-harmonics. +; + _name.category_id atom_site_anharmonic_ADP_xharm + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ - _category_key.name '_atom_site_displace_ortho_param.id' + _enumeration_set.state + _enumeration_set.detail + C111 'average value or modulation components of C111' + C112 'average value or modulation components of C112' + C113 'average value or modulation components of C113' + C122 'average value or modulation components of C122' + C123 'average value or modulation components of C123' + C133 'average value or modulation components of C133' + C222 'average value or modulation components of C222' + C223 'average value or modulation components of C223' + C233 'average value or modulation components of C233' + C333 'average value or modulation components of C333' + D1111 'average value or modulation components of D1111' + D1112 'average value or modulation components of D1112' + D1113 'average value or modulation components of D1113' + D1122 'average value or modulation components of D1122' + D1123 'average value or modulation components of D1123' + D1133 'average value or modulation components of D1133' + D1222 'average value or modulation components of D1222' + D1223 'average value or modulation components of D1223' + D1233 'average value or modulation components of D1233' + D1333 'average value or modulation components of D1333' + D2222 'average value or modulation components of D2222' + D2223 'average value or modulation components of D2223' + D2233 'average value or modulation components of D2233' + D2333 'average value or modulation components of D2333' + D3333 'average value or modulation components of D3333' + E11111 'average value or modulation components of E11111' + E11112 'average value or modulation components of E11112' + E11113 'average value or modulation components of E11113' + E11122 'average value or modulation components of E11122' + E11123 'average value or modulation components of E11123' + E11133 'average value or modulation components of E11133' + E11222 'average value or modulation components of E11222' + E11223 'average value or modulation components of E11223' + E11233 'average value or modulation components of E11233' + E11333 'average value or modulation components of E11333' + E12222 'average value or modulation components of E12222' + E12223 'average value or modulation components of E12223' + E12233 'average value or modulation components of E12233' + E12333 'average value or modulation components of E12333' + E13333 'average value or modulation components of E13333' + E22222 'average value or modulation components of E22222' + E22223 'average value or modulation components of E22223' + E22233 'average value or modulation components of E22233' + E22333 'average value or modulation components of E22333' + E23333 'average value or modulation components of E23333' + F111111 'average value or modulation components of F111111' + F111112 'average value or modulation components of F111112' + F111113 'average value or modulation components of F111113' + F111122 'average value or modulation components of F111122' + F111123 'average value or modulation components of F111123' + F111133 'average value or modulation components of F111133' + F111222 'average value or modulation components of F111222' + F111223 'average value or modulation components of F111223' + F111233 'average value or modulation components of F111233' + F111333 'average value or modulation components of F111333' + F112222 'average value or modulation components of F112222' + F112223 'average value or modulation components of F112223' + F112233 'average value or modulation components of F112233' + F112333 'average value or modulation components of F112333' + F113333 'average value or modulation components of F113333' + F122222 'average value or modulation components of F122222' + F122223 'average value or modulation components of F122223' + F122233 'average value or modulation components of F122233' + F122333 'average value or modulation components of F122333' + F123333 'average value or modulation components of F123333' + F133333 'average value or modulation components of F133333' + F222222 'average value or modulation components of F222222' + F222223 'average value or modulation components of F222223' + F222233 'average value or modulation components of F222233' + F222333 'average value or modulation components of F222333' + F223333 'average value or modulation components of F223333' + F233333 'average value or modulation components of F233333' + F333333 'average value or modulation components of F333333' save_ -save_atom_site_displace_ortho_param.coeff +save_ATOM_SITE_DISPLACE_FOURIER - _definition.id '_atom_site_displace_ortho_param.coeff' - _definition.update 2014-06-27 - _description.text + _definition.id ATOM_SITE_DISPLACE_FOURIER + _definition.scope Category + _definition.class Loop + _definition.update 2024-08-09 + _description.text ; - - The coefficient corresponding to the orthogonalized function - Defined by _atom_site_displace_ortho.atom_site_label, - _atom_site_displace_ortho.axis and _atom_site_displace_ortho.func_id. - Atomic or rigid-group displacements must be expressed as fractions - of the unit cell or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the - ATOM_SITES_AXES category, through _atom_site_rot_ortho.matrix_seq_id. + Data items in the ATOM_SITE_DISPLACE_FOURIER category record + details about the Fourier components of the displacive modulation + of an atom site in a modulated structure. In the case of rigid + groups, items in this category would only include the + translational part of the modulation. The rotational part would + appear in a separate list of items belonging to the + ATOM_SITE_ROT_FOURIER category. The (in general complex) + coefficients of each Fourier component belong to the child category + ATOM_SITE_DISPLACE_FOURIER_PARAM and may be listed separately. +; + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_DISPLACE_FOURIER + _category_key.name '_atom_site_displace_Fourier.id' + _description_example.case +; + #\#CIF_2.0 + + data_I + + # - - - - data truncated for brevity - - - - + + 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)] + + loop_ + _atom_site.type_symbol + _atom_site.label + _atom_site.subsystem_code + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.U_iso_or_equiv + _atom_site.calc_flag + _atom_site.occupancy + Sn Sn H 0 0 0 0.01480(12) d 0.851(2) + Cu Cu H 0.0029(9) 0.0057(5) 0.1147(3) 0.0229(11) d 0.149(2) + S S1 H 0.5033(2) 0.84278(12) 0.12342(7) 0.0177(3) d 1 + Pb Pb Q 0.05541(5) 0.24113(4) 0.36783(2) 0.03573(12) d 0.701(10) + Sb Sb Q 0.055408 0.241132 0.367832 0.03573(12) d 0.299(10) + S S2 Q -0.0402(3) 0.2583(2) 0.59639(13) 0.0310(4) d 1 + + 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] + + loop_ + _atom_site_displace_Fourier.id + _atom_site_displace_Fourier.atom_site_label + _atom_site_displace_Fourier.axis + _atom_site_displace_Fourier.wave_vector_seq_id + _atom_site_displace_Fourier_param.cos + _atom_site_displace_Fourier_param.sin + Sn_x_1 Sn x 1 0 -0.00159(16) + Sn_y_1 Sn y 1 0 -0.00481(8) + Sn_z_1 Sn z 1 0 -0.06455(5) + Sn_x_3 Sn x 3 0 0.00004(18) + Sn_y_3 Sn y 3 0 -0.00395(8) + Sn_z_3 Sn z 3 0 -0.00108(5) + Sn_x_4 Sn x 4 0 0.0003(2) + Sn_y_4 Sn y 4 0 -0.00075(10) + Sn_z_4 Sn z 4 0 0.00042(6) + Cu_x_1 Cu x 1 0.0018(11) -0.0012(13) + Cu_y_1 Cu y 1 0.0184(6) -0.0092(6) + Cu_z_1 Cu z 1 -0.0013(4) -0.0611(4) + Sb_x_5 Sb x 5 -0.00129(15) -0.00043(15) + Sb_y_5 Sb y 5 -0.00002(10) 0.00106(10) + Sb_z_5 Sb z 5 0.00023(6) 0.00015(6) + Sb_x_6 Sb x 6 -0.0053(3) 0.0022(3) + Sb_y_6 Sb y 6 0.00496(16) -0.00435(17) + Sb_z_6 Sb z 6 0.00287(9) 0.00189(9) + # - - - - data truncated for brevity - - - - + + #====================================================================== + + Example based on the article: + Michel Evain, Vaclav Petricek, Yves Moelo and Colette Maurel (2006) + Acta Cryst. B62, 775-789. doi:10.1107/S010876810602547X + First (3 + 2)-dimensional superspace approach to the structure of + levyclaudite-(Sb), a member of the cylindrite-type minerals +; + +save_ + +save_atom_site_displace_fourier.atom_site_label + + _definition.id '_atom_site_displace_Fourier.atom_site_label' + _alias.definition_id '_atom_site_displace_Fourier_atom_site_label' + _definition.update 2025-10-20 + _description.text +; + Modulation parameters are usually looped in separate lists. + Modulated parameters are the atom positions (displacive + modulation), the atomic occupation (occupational modulation) + and the isotropic or anisotropic (harmonic or anharmonic) ADPs. + _atom_site_displace_Fourier.atom_site_label is the code that + identifies an atom or rigid group in a loop in which the Fourier + components of its displacive modulation are listed. In the case + of a rigid group, this list would only include the translational + part of its displacive modulation. The rotational part (if any) + would appear in a separate list (see + _atom_site_rot_Fourier.atom_site_label). This code must match + the _atom_site.label of the associated coordinate list and + conform to the rules described in _atom_site.label. ; - _name.category_id atom_site_displace_ortho_param - _name.object_id coeff - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 + _name.category_id atom_site_displace_Fourier + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Word save_ -save_atom_site_displace_ortho_param.id +save_atom_site_displace_fourier.axis - _definition.id '_atom_site_displace_ortho_param.id' - _definition.update 2014-06-27 - _description.text + _definition.id '_atom_site_displace_Fourier.axis' + _alias.definition_id '_atom_site_displace_Fourier_axis' + _definition.update 2024-07-27 + _description.text ; + A label identifying the displacement component of a given atom + or rigid group that is being parameterized by Fourier series. a, + b and c are the basic lattice vectors of the reference structure. + For composites they refer to the reference structure of each + subsystem. a~1~, a~2~ and a~3~ are defined by the + items belonging to the ATOM_SITES_AXES category, through + _atom_site_displace_Fourier.matrix_seq_id. + Use of _atom_sites_displace_Fourier.axes_description is DEPRECATED + and retained only for backward compatibility. - A code identifying the coefficient of each term present in the - series of orthogonalized functions describing the displacive - modulation of a given atom or rigid group. In the case of a rigid - group, it applies only to the translational part of the - distortion. This code must match _atom_site_displace_ortho.id. ; - _name.category_id atom_site_displace_ortho_param - _name.object_id id - _name.linked_item_id '_atom_site_displace_ortho.id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code - -save_ + _name.category_id atom_site_displace_Fourier + _name.object_id axis + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code -save_ATOM_SITE_DISPLACE_SPECIAL_FUNC - - _definition.id ATOM_SITE_DISPLACE_SPECIAL_FUNC - _definition.scope Category - _definition.class Loop - _definition.update 2024-05-17 - _description.text + loop_ + _enumeration_set.state + _enumeration_set.detail + x +; + displacement along the a axis +; + y +; + displacement along the b axis +; + z +; + displacement along the c axis +; + a1 +; + displacement along the first axis after applying + _atom_sites_axes.matrix +; + a2 +; + displacement along the second axis after applying + _atom_sites_axes.matrix +; + a3 +; + displacement along the third axis after applying + _atom_sites_axes.matrix ; - Data items in the ATOM_SITE_DISPLACE_SPECIAL_FUNC category record - details about the displacive modulation of an atom site in a - modulated structure when it is not described by Fourier series. - Special functions are effective in some cases where the - modulations are highly anharmonic, since the number of parameters - is drastically reduced. However, they are in general - discontinuous or with discontinuous derivatives and therefore - these functions describe an ideal situation that never occurs - in a real modulated crystal. Up to now, only a few types of - special functions have been used and all of them come from the - JANA2006 suite of programs (Petricek, Dusek & Palatinus, 2014). - Although this approach is far from - being general, it has the advantage that the functions are - tightly defined and therefore the atomic displacements and - occupations can be calculated easily. In this dictionary, - only the special functions available in JANA2006 have been - included. These are: - (1) Sawtooth functions for the displacive modulation of atoms and - rigid groups. - (2) Zig-Zag functions for the displacive modulation of atoms and - rigid groups. - (3) Crenel functions for the occupational modulation of atoms - and rigid groups. Both of these only apply to - one-dimensional modulated structures. +save_ - References: Petricek, V., Dusek, M. & Palatinus, L. (2014). - Z. Kristallogr. 229(5), 345-352. DOI 10.1515/zkri-2014-1737 - Crystallographic Computing System JANA2006: General features +save_atom_site_displace_fourier.id - Petricek, V., Eigner, V., Dusek, M. & Cejchan, A. (2016). Z. - Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 - Discontinuous modulation functions and their application for - analysis of modulated structures with the computing system JANA2006 + _definition.id '_atom_site_displace_Fourier.id' + _alias.definition_id '_atom_site_displace_Fourier_id' + _definition.update 2014-06-27 + _description.text ; - _name.category_id CIF_MS_HEAD - _name.object_id ATOM_SITE_DISPLACE_SPECIAL_FUNC - loop_ - _category_key.name '_atom_site_displace_special_func.atom_site_label' + A code identifying each component of the displacive modulation of + a given atom or rigid group when the modulation is expressed in + terms of Fourier series. In the case of a rigid group, it + applies only to the translational part of the distortion. +; + _name.category_id atom_site_displace_Fourier + _name.object_id id + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Code save_ +save_atom_site_displace_fourier.matrix_seq_id -save_atom_site_displace_special_func.atom_site_label - - _definition.id '_atom_site_displace_special_func.atom_site_label' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_atom_site_label' - _description.text -; + _definition.id '_atom_site_displace_Fourier.matrix_seq_id' + _definition.update 2024-08-01 + _name.category_id atom_site_displace_Fourier + _name.object_id matrix_seq_id - The code that identifies an atom or rigid group in a loop in which - the special function that describes its displacive modulation is being - defined. This code must match the _atom_site.label of the - associated coordinate list and conform to the rules described in - _atom_site.label. -; - _name.category_id atom_site_displace_special_func - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Word + _import.get + [{'file':templ_attr.cif 'save':transf_matrix_id}] save_ -save_atom_site_displace_special_func.matrix_seq_id +save_atom_site_displace_fourier.wave_vector_seq_id - _definition.id '_atom_site_displace_special_func.matrix_seq_id' - _definition.update 2017-09-28 - _description.text + _definition.id + '_atom_site_displace_Fourier.wave_vector_seq_id' + _alias.definition_id + '_atom_site_displace_Fourier_wave_vector_seq_id' + _definition.update 2025-10-28 + _description.text ; - - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + A numeric code identifying the wave vectors of the Fourier terms + used in the structural model to describe the displacive + modulation of an atom or rigid group. In the case of a rigid + group, it applies only to the translational part of the + distortion. This code must match + _atom_site_Fourier_wave_vector.seq_id. ; - _name.category_id atom_site_displace_special_func - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_displace_Fourier + _name.object_id wave_vector_seq_id + _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Integer + _enumeration.range 0: + _units.code none save_ -save_atom_site_displace_special_func.sawtooth +save_ATOM_SITE_DISPLACE_FOURIER_PARAM - _definition.id '_atom_site_displace_special_func.sawtooth' - _definition.update 2019-04-01 - _description.text + _definition.id ATOM_SITE_DISPLACE_FOURIER_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2024-07-31 + _description.text ; + Data items in the ATOM_SITE_DISPLACE_FOURIER_PARAM category + record details about the coefficients of the Fourier series + used to describe the displacive modulation of an atom or rigid + group. In the case of rigid groups, items in this category would + only include the translational part of the modulation. The + rotational part would appear in a separate list of items + belonging to the ATOM_SITE_ROT_FOURIER_PARAM category. The + Fourier components are defined in the parent category + ATOM_SITE_DISPLACE_FOURIER. Notice that items in this category + may be listed together with those of the ATOM_SITE_DISPLACE_FOURIER + category. To simplify the description, below is explained the + one-dimensional case. - _atom_site_displace_special_func_sawtooth_ items are the - adjustable parameters of a sawtooth function. - A displacive sawtooth function along the internal space is - defined as follows: - [ux, uy, uz] = 2* [ax, ay, az] * ((x4-c)/w) - - for x4 belonging to the interval [c-(w/2), c+(w/2)], where ax, - ay and az are the amplitudes (maximum displacements) - along each crystallographic axis, w is its width, x4 is the - internal coordinate and c is the centre of the function in - internal space. ux, uy and uz must be expressed in relative - units or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the ATOM_SITES_AXES - category, through _atom_site_displace_special_funcs.matrix_seq_id. - - The use of this function is restricted to - one-dimensional modulated structures. For more details, see - the manual for JANA2006 (Petricek, Dusek & Palatinus, 2014) and - (Petricek, Eigner, Dusek & Cejchan, 2016). In the case of rigid groups, - items in this - category would only include the translational part of the modulation. - The rotational part would appear in a separate list of items belonging - to the ATOM_SITE_ROT_SPECIAL_FUNC category. + The displacive distortion of a given atom or rigid group is usually + parameterized by Fourier series. The n-th term of the series commonly + adopts two different representations: the sine-cosine form, + Acn cos(2\\p n x4)+Asn sin(2\\p n x4), + and the modulus-argument form, + |An| cos(2\\p n x4+\\fn), + where x4=q*(r+T)+t. q is the modulation wave vector and r and T + stand for a phase reference position and a lattice translation of + the reference structure, respectively. The phase reference position + can be chosen as the average position of the modulated atom, if + not in a rigid group or, in case of rigid groups a common point + for all atoms in the group. t is an arbitrary phase, irrelevant for + incommensurate modulated structures, but essential in the commensurate + case (see _atom_sites_modulation.global_phase_t_). + + Atomic or rigid-group displacements must be + expressed as fractions, either of the unit cell axes or of the + axes defined by the items belonging to the ATOM_SITES_AXES category, + through _atom_site_displace_Fourier.matrix_seq_id. + + Use of _atom_sites_displace_Fourier.axes_description is DEPRECATED + and retained only for backward compatibility. Notice that in this + case displacements were expressed in angstroms. +; + _name.category_id ATOM_SITE_DISPLACE_FOURIER + _name.object_id ATOM_SITE_DISPLACE_FOURIER_PARAM + _category_key.name '_atom_site_displace_Fourier_param.id' + _description_example.case +; + #\#CIF_2.0 + + data_I + + # - - - - data truncated for brevity - - - - + + 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)] + + loop_ + _atom_site.type_symbol + _atom_site.label + _atom_site.subsystem_code + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.U_iso_or_equiv + _atom_site.calc_flag + _atom_site.occupancy + Sn Sn H 0 0 0 0.01480(12) d 0.851(2) + Cu Cu H 0.0029(9) 0.0057(5) 0.1147(3) 0.0229(11) d 0.149(2) + S S1 H 0.5033(2) 0.84278(12) 0.12342(7) 0.0177(3) d 1 + Pb Pb Q 0.05541(5) 0.24113(4) 0.36783(2) 0.03573(12) d 0.701(10) + Sb Sb Q 0.055408 0.241132 0.367832 0.03573(12) d 0.299(10) + S S2 Q -0.0402(3) 0.2583(2) 0.59639(13) 0.0310(4) d 1 + + 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] + + loop_ + _atom_site_displace_Fourier.id + _atom_site_displace_Fourier.atom_site_label + _atom_site_displace_Fourier.axis + _atom_site_displace_Fourier.wave_vector_seq_id + Sn_x_1 Sn x 1 + Sn_y_1 Sn y 1 + Sn_z_1 Sn z 1 + Sn_x_3 Sn x 3 + Sn_y_3 Sn y 3 + Sn_z_3 Sn z 3 + Sn_x_4 Sn x 4 + Sn_y_4 Sn y 4 + Sn_z_4 Sn z 4 + Cu_x_1 Cu x 1 + Cu_y_1 Cu y 1 + Cu_z_1 Cu z 1 + Sb_x_5 Sb x 5 + Sb_y_5 Sb y 5 + Sb_z_5 Sb z 5 + Sb_x_6 Sb x 6 + Sb_y_6 Sb y 6 + Sb_z_6 Sb z 6 + + loop_ + _atom_site_displace_Fourier_param.id + _atom_site_displace_Fourier_param.cos + _atom_site_displace_Fourier_param.sin + Sn_x_1 0 -0.00159(16) + Sn_y_1 0 -0.00481(8) + Sn_z_1 0 -0.06455(5) + Sn_x_3 0 0.00004(18) + Sn_y_3 0 -0.00395(8) + Sn_z_3 0 -0.00108(5) + Sn_x_4 0 0.0003(2) + Sn_y_4 0 -0.00075(10) + Sn_z_4 0 0.00042(6) + Cu_x_1 0.0018(11) -0.0012(13) + Cu_y_1 0.0184(6) -0.0092(6) + Cu_z_1 -0.0013(4) -0.0611(4) + Sb_x_5 -0.00129(15) -0.00043(15) + Sb_y_5 -0.00002(10) 0.00106(10) + Sb_z_5 0.00023(6) 0.00015(6) + Sb_x_6 -0.0053(3) 0.0022(3) + Sb_y_6 0.00496(16) -0.00435(17) + Sb_z_6 0.00287(9) 0.00189(9) + + # - - - - data truncated for brevity - - - - + + #====================================================================== + + Example based on the article: + Michel Evain, Vaclav Pericek, Yves Moelo and Colette Maurel (2006) + Acta Cryst. B62, 775-789. doi:10.1107/S010876810602547X + First (3 + 2)-dimensional superspace approach to the structure of + levyclaudite-(Sb), a member of the cylindrite-type minerals +; + +save_ + +save_atom_site_displace_fourier_param.cos + + _definition.id '_atom_site_displace_Fourier_param.cos' + _alias.definition_id '_atom_site_displace_Fourier_param_cos' + _definition.update 2025-10-20 + _description.text +; + The cosine coefficient (Acn) corresponding to the Fourier term defined + by _atom_site_displace_Fourier.atom_site_label, + _atom_site_displace_Fourier.axis and + _atom_site_displace_Fourier_wave_vector.seq_id. +; + _name.category_id atom_site_displace_Fourier_param + _name.object_id cos + _units.code none - References: Petricek, V., Dusek, M. & Palatinus, L. (2014). - Z. Kristallogr. 229(5), 345-352. DOI 10.1515/zkri-2014-1737 - Crystallographic Computing System JANA2006: General features + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] - Petricek, V., Eigner, V., Dusek, M. & Cejchan, A. (2016). Z. - Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 - Discontinuous modulation functions and their application for - analysis of modulated structures with the computing system JANA2006 -; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth - _type.purpose Measurand - _type.source Assigned - _type.container Matrix - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] -# JRH notes -# Does the dREL below take into account the use of matrix_seq_id? -# - loop_ - _method.purpose + _method.purpose Evaluation _method.expression - Evaluation ; - With f as atom_site_displace_special_func + With p as atom_site_displace_Fourier_param - _atom_site_displace_special_func.sawtooth = [ - - 2 * [f.sawtooth_ax, f.sawtooth_ay, f.sawtooth_az] * - (( f.sawtooth_x4 - f.sawtooth_c) / f.sawtooth_w )] -; + _atom_site_displace_Fourier_param.cos = p.modulus*Cos(TwoPi*p.phase) +; save_ -save_atom_site_displace_special_func.sawtooth_axyz +save_atom_site_displace_fourier_param.cos_su - _definition.id '_atom_site_displace_special_func.sawtooth_axyz' - _definition.update 2019-04-01 + _definition.id '_atom_site_displace_Fourier_param.cos_su' + _definition.update 2024-08-01 _description.text ; - - The vector of amplitudes (maximum displacements) along the a (or a1), - b (or a2) and c (or a3) axis of the sawtooth function described in - _atom_site_displace_special_func.sawtooth -; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_axyz - _type.purpose Measurand - _type.source Assigned - _type.container Array - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] - loop_ - _method.purpose - _method.expression - Evaluation + Standard uncertainty of _atom_site_displace_Fourier_param.cos ; - With s as atom_site_displace_special_func - atom_site_displace_special_func.sawtooth_axyz = - [ s.sawtooth_ax, s.sawtooth_ay, s.sawtooth_az ] -; + _name.category_id atom_site_displace_Fourier_param + _name.object_id cos_su + _name.linked_item_id '_atom_site_displace_Fourier_param.cos' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ -save_atom_site_displace_special_func.sawtooth_ax +save_atom_site_displace_fourier_param.id - _definition.id '_atom_site_displace_special_func.sawtooth_ax' - _definition.update 2017-09-28 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_ax' - _description.text + _definition.id '_atom_site_displace_Fourier_param.id' + _alias.definition_id '_atom_site_displace_Fourier_param_id' + _definition.update 2024-07-31 + _description.text ; - - The amplitude (maximum displacement) along the a (or a1) axis of the - sawtooth function described in _atom_site_displace_special_func.sawtooth + A code identifying the (in general complex) coefficient of each + term present in the Fourier series describing the displacive + modulation of a given atom or rigid group. In the case of a rigid + group, it applies only to the translational part of the + distortion. This code must match _atom_site_displace_Fourier.id. ; + _name.category_id atom_site_displace_Fourier_param + _name.object_id id + _name.linked_item_id '_atom_site_displace_Fourier.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_ax - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ - _method.purpose - _method.expression - Evaluation -; - With s as atom_site_displace_special_func +save_ - atom_site_displace_special_func.sawtooth_ax = s.sawtooth_axyz[0] -; +save_atom_site_displace_fourier_param.modulus -save_ + _definition.id '_atom_site_displace_Fourier_param.modulus' + _alias.definition_id '_atom_site_displace_Fourier_param_modulus' + _definition.update 2025-10-20 + _description.text +; + The modulus (|An|) of the complex amplitude corresponding to the + Fourier term defined by _atom_site_displace_Fourier.atom_site_label, + _atom_site_displace_Fourier.axis and + _atom_site_displace_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_displace_Fourier_param + _name.object_id modulus + _enumeration.range 0.0: + _units.code none + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] -save_atom_site_displace_special_func.sawtooth_ay + _method.purpose Evaluation + _method.expression +; + With p as atom_site_displace_Fourier_param - _definition.id '_atom_site_displace_special_func.sawtooth_ay' - _definition.update 2017-09-28 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_ay' - _description.text + _atom_site_displace_Fourier_param.modulus = Sqrt(p.cos**2 + p.sin**2) ; - The amplitude (maximum displacement) along the b (or a2) axis of the - sawtooth function described in _atom_site_displace_special_func.sawtooth +save_ + +save_atom_site_displace_fourier_param.modulus_su + + _definition.id '_atom_site_displace_Fourier_param.modulus_su' + _definition.update 2024-08-01 + _description.text ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_ay - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ - _method.purpose - _method.expression - Evaluation + Standard uncertainty of _atom_site_displace_Fourier_param.modulus ; - With s as atom_site_displace_special_func - - atom_site_displace_special_func.sawtooth_ay = s.sawtooth_axyz[1] -; + _name.category_id atom_site_displace_Fourier_param + _name.object_id modulus_su + _name.linked_item_id '_atom_site_displace_Fourier_param.modulus' + _units.code none + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ +save_atom_site_displace_fourier_param.phase + + _definition.id '_atom_site_displace_Fourier_param.phase' + _alias.definition_id '_atom_site_displace_Fourier_param_phase' + _definition.update 2025-10-20 + _description.text +; + The phase (\fn/2\\p), in cycles, of the complex amplitude + corresponding to the Fourier term defined by + _atom_site_displace_Fourier.atom_site_label, + _atom_site_displace_Fourier.axis and + _atom_site_displace_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_displace_Fourier_param + _name.object_id phase + _enumeration.range -1.0:1.0 + _units.code cycles + + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] -save_atom_site_displace_special_func.sawtooth_az + _method.purpose Evaluation + _method.expression +; + With p as atom_site_displace_Fourier_param - _definition.id '_atom_site_displace_special_func.sawtooth_az' - _definition.update 2017-09-28 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_az' - _description.text + _atom_site_displace_Fourier_param.phase = \ + Phase(Complex(p.cos,-p.sin))/TwoPi ; - The amplitude (maximum displacement) along the c (or a3) axis of the - sawtooth function described in _atom_site_displace_special_func.sawtooth +save_ + +save_atom_site_displace_fourier_param.phase_su + + _definition.id '_atom_site_displace_Fourier_param.phase_su' + _definition.update 2024-08-01 + _description.text ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_az - _type.purpose Measurand - _type.source Assigned - _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ - _method.purpose - _method.expression - Evaluation + Standard uncertainty of _atom_site_displace_Fourier_param.phase ; - With s as atom_site_displace_special_func + _name.category_id atom_site_displace_Fourier_param + _name.object_id phase_su + _name.linked_item_id '_atom_site_displace_Fourier_param.phase' + _units.code cycles - atom_site_displace_special_func.sawtooth_az = s.sawtooth_axyz[2] -; + _import.get [{'file':templ_attr.cif 'save':general_su}] save_ +save_atom_site_displace_fourier_param.sin + + _definition.id '_atom_site_displace_Fourier_param.sin' + _alias.definition_id '_atom_site_displace_Fourier_param_sin' + _definition.update 2025-10-20 + _description.text +; + The sine coefficient (Asn) corresponding to the Fourier term defined + by _atom_site_displace_Fourier.atom_site_label, + _atom_site_displace_Fourier.axis, and + _atom_site_displace_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_displace_Fourier_param + _name.object_id sin + _units.code none -save_atom_site_displace_special_func.sawtooth_c + _import.get + [{'file':templ_attr.cif 'save':general_mod_param}] - _definition.id '_atom_site_displace_special_func.sawtooth_c' - _definition.update 2017-09-28 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_c' - _description.text + _method.purpose Evaluation + _method.expression ; + With p as atom_site_displace_Fourier_param - The centre of the sawtooth function described in - _atom_site_displace_special_func.sawtooth + _atom_site_displace_Fourier_param.sin = -p.modulus*Sin(TwoPi*p.phase) ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_c - _type.purpose Measurand - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0:1.0 save_ +save_atom_site_displace_fourier_param.sin_su -save_atom_site_displace_special_func.sawtooth_w - - _definition.id '_atom_site_displace_special_func.sawtooth_w' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_w' - _description.text + _definition.id '_atom_site_displace_Fourier_param.sin_su' + _definition.update 2024-08-01 + _description.text ; - - The width of the sawtooth function described in - _atom_site_displace_special_func.sawtooth + Standard uncertainty of _atom_site_displace_Fourier_param.sin ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_w - _type.purpose Measurand - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0:1.0 + _name.category_id atom_site_displace_Fourier_param + _name.object_id sin_su + _name.linked_item_id '_atom_site_displace_Fourier_param.sin' + _units.code none + + _import.get [{'file':templ_attr.cif 'save':general_su}] + save_ -save_atom_site_displace_special_func.zigzag +save_ATOM_SITE_DISPLACE_LEGENDRE - _definition.id '_atom_site_displace_special_func.zigzag' - _definition.update 2019-04-01 - _description.text + _definition.id ATOM_SITE_DISPLACE_LEGENDRE + _definition.scope Category + _definition.class Loop + _definition.update 2025-06-04 + _description.text ; + The set of harmonic functions used in the Fourier series + describing the Modulation functions is orthogonal and complete + in the interval [0,1). However within the x4 interval defined + by a Crenel function orthogonality is no longer preserved and + therefore the Fourier coefficients are correlated and the + refinement becomes fragile. There are several ways to avoid this + technical problem (see Petricek et al., 2016). One of them is to + use orthogonal or orthogonalized sets of functions defined + within the Crenel interval. This procedure is more robust than + the orthogonalization of harmonics described in + *_ORTHO. categories. Moreover these sets of functions are + complete. Two different sets of orthogonal or orthogonalized + functions have been implemented in the package JANA (Petricek et + al., 2016, Petricek et al., 2023): Legendre polynomials and the + so-called x-harmonics. Legendre polynomials are orthogonal in + the Crenel interval and can be easily calculated by the + recurrence relation: - _atom_site_displace_special_func.zigzag_ items are the - adjustable parameters of a zigzag function. - A displacive zigzag function along the internal space is - defined as follows: + P~0~(x) = 1 + P~1~(x) = x + (n+1)P~n+1~(x) = (2n+1)x P~n~(x) - nP~n-1~(x) - 2*[ax,ay,az]*(x4-c)/w for x4 in [c-(w/2),c+(w/2)] - [ux,uy,uz] = - -2*[ax,ay,az]*(x4-c)/w for x4 in [c+1/2-(w/2),c+1/2+(w/2)] + Notice that Legendre polynomials are restricted to + one-dimensional cases and include as a particular case the + sawtooth modulation. - where ax,ay and az are the amplitudes (maximum displacements) - along each crystallographic axis, w is its width, x4 is the - internal coordinate and c is the centre of the function in - internal space. ux, uy and uz must be expressed in relative - units or in angstroms if the modulations are referred to some - special axes defined by the items belonging to the ATOM_SITES_AXES - category, through _atom_site_displace_Fourier.matrix_seq_id. - The use of this function is restricted to one-dimensional - modulated structures. For more details, see (Elcoro et al., 2008; - Petricek, Dusek & Palatinus, 2014 and Petricek, Eigner, Dusek - & Cejchan, 2016). In the case of rigid groups, items in this - category would only include the translational part of the modulation. - The rotational part would appear in a separate list of items belonging - to the ATOM_SITE_ROT_SPECIAL_FUNC category. - - References: Luis Elcoro, J.M. Perez-Mato, Karen Friese, Vaclav Petricek, - Tonci Balic-Zunic & Lars Arnskov Olsen (2008) - Acta Cryst. B64, 684-701. doi:10.1107/S0108768108031492 - Modular crystals as modulated structures: the case of the - lillianite homologous series + Data items in the ATOM_SITE_DISPLACE_LEGENDRE category record + details about the Legendre polynomials used to describe the + displacive modulations when the atomic domain of a given atom is + restricted by a Crenel function. In the case of rigid groups, + items in this category would only include the translational part + of the modulation. The rotational part would appear in a + separate list of items belonging to the ATOM_SITE_ROT_LEGENDRE + category. - Petricek, V., Dusek, M. & Palatinus, L. (2014). - Z. Kristallogr. 229(5), 345-352. DOI 10.1515/zkri-2014-1737 - Crystallographic Computing System JANA2006: General features + Atomic or rigid-group displacements must be expressed as fractions, + either of the unit cell axes or of the axes defined by the items + belonging to the ATOM_SITES_AXES category, through + _atom_site_displace_Legendre.matrix_seq_id. + + References: Petricek, V., Van Der Lee & Evain, M. (1995). + Acta Cryst. A51, 529-535. DOI 10.1107/S0108767395000365 + On the Use of Crenel Functions for Occupationally Modulated + Structures Petricek, V., Eigner, V., Dusek, M. & Cejchan, A. (2016). Z. - Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 - Discontinuous modulation functions and their application for - analysis of modulated structures with the computing system + Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 + Discontinuous modulation functions and their application for + analysis of modulated structures with the computing system JANA2006 + + Petricek, V., Palatinus, L., Plasil, J. & Dusek, M. (2023). + Z. Kristallogr. 238(7-8), 271-282. DOI 10.1515/zkri-2023-0005 + Jana2020 - a new version of the crystallographic computing + system Jana ; - _name.category_id atom_site_displace_special_func - _name.object_id zigzag - _type.purpose Measurand - _type.source Assigned - _type.container Matrix - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] - loop_ - _method.purpose - _method.expression - Evaluation + _name.category_id CIF_MS_HEAD + _name.object_id ATOM_SITE_DISPLACE_LEGENDRE + _category_key.name '_atom_site_displace_Legendre.id' + _description_example.case ; - With f as atom_site_displace_special_func - - atom_site_displace_special_func.zigzag = [ - - 2 * [f.zigzag_ax, f.zigzag_ay, f.zigzag_az] * - (( zigzag_x4 – f.zigzag_c) / f.zigzag_w )] -; + #\#CIF_2.0 + + # - - - - data truncated for brevity - - - - + + _cell.modulation_dimension 1 + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site.label + _atom_site.type_symbol + _atom_site.fract_x + _atom_site.fract_y + _atom_site.fract_z + _atom_site.adp_type + _atom_site.U_iso_or_equiv + _atom_site.symmetry_multiplicity + _atom_site.occupancy + _atom_site.calc_flag + _atom_site.refinement_flags_posn + _atom_site.disorder_assembly + _atom_site.disorder_group + Sr Sr 0 0 0 Uani 0.0097(3) 4 0.225 d . . . + Bi Bi 0 0 0 Uani 0.0097(3) 8 0.075 d . . . + Fe Fe 0 0 0 Uani 0.0097(3) 4 0.125 d . . . + O1 O 0 0.451(3) 0 Uiso 0.024(3) 4 0.375 d . . . + O2 O 0.238(4) 0.243(3) 0.266(4) Uiso 0.018(3) 8 0.1375 d . . . + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_occ_crenel.atom_site_label + _atom_site_occ_crenel.c + _atom_site_occ_crenel.w + Sr 0.75 0.225 + Bi 0.9 0.075 + Fe 0 0.125 + O1 0.25 0.375 + O2 -0.0080(15) 0.1375 + + # - - - - data truncated for brevity - - - - + + loop_ + _atom_site_displace_legendre.id + _atom_site_displace_legendre.atom_site_label + _atom_site_displace_legendre.axis + _atom_site_displace_legendre.order + _atom_site_displace_legendre.coeff + O1_L_x_1 O1 x 1 0.180(6) + O1_L_y_1 O1 y 1 0 + O1_L_z_1 O1 z 1 0.000(6) + O1_L_x_2 O1 x 2 0 + O1_L_y_2 O1 y 2 -0.070(6) + O1_L_z_2 O1 z 2 0 + O1_L_x_3 O1 x 3 0.262(9) + # - - - - data truncated for brevity - - - - + + #====================================================================== + + Example based on the article: + Luis Elcoro, Olivier P\'erez, J. M. Perez-Mato and V\'aclav + Pet\ 3. + The SUPERSPACE_GROUP_SYMOP category contains information about the + symmetry operations of the superspace group. ; - _name.category_id CIF_MS_HEAD - _name.object_id SPACE_GROUP_SYMOP - _category_key.name '_space_group_symop.ssg_id' - -save_ + _name.category_id CIF_MS_HEAD + _name.object_id SUPERSPACE_GROUP_SYMOP + _category_key.name '_superspace_group_symop.id' + _description_example.case +; + #\#CIF_2.0 + # - - - - data truncated for brevity - - - - -save_space_group_symop.ssg_id + _space_group.crystal_system trigonal + _superspace_group.name 'R-3m(00\g)0s' - _definition.id '_space_group_symop.ssg_id' - _definition.update 2014-06-27 loop_ - _alias.definition_id - '_space_group_symop_ssg_id' - _description.text + _superspace_group_symop.id + _superspace_group_symop.operation_algebraic + 1 x1,x2,x3,x4 + 2 -x2,x1-x2,x3,x4 + 3 -x1+x2,-x1,x3,x4 + 4 x2,x1,-x3,-x4+1/2 + 5 x1-x2,-x2,-x3,-x4+1/2 + 6 -x1,-x1+x2,-x3,-x4+1/2 + 7 -x1,-x2,-x3,-x4 + 8 x2,-x1+x2,-x3,-x4 + 9 x1-x2,x1,-x3,-x4 + 10 -x2,-x1,x3,x4+1/2 + 11 -x1+x2,x2,x3,x4+1/2 + 12 x1,x1-x2,x3,x4+1/2 + 13 x1+2/3,x2+1/3,x3+1/3,x4 + 14 -x2+2/3,x1-x2+1/3,x3+1/3,x4 + 15 -x1+x2+2/3,-x1+1/3,x3+1/3,x4 + 16 x2+2/3,x1+1/3,-x3+1/3,-x4+1/2 + 17 x1-x2+2/3,-x2+1/3,-x3+1/3,-x4+1/2 + 18 -x1+2/3,-x1+x2+1/3,-x3+1/3,-x4+1/2 + 19 -x1+2/3,-x2+1/3,-x3+1/3,-x4 + + # - - - - data truncated for brevity - - - - + + #======================================================================= + + Example based on the article: O. Gourdon, V. Petricek, M. Dusek, + P. Bezdicka, S. Durovic, D. Gyepesovad and M. Evain (1999) Acta + Cryst. B55, 841-848. doi:10.1107/S0108768199006485 Determination + of the modulated structure of Sr~14/11~CoO~3~ through a (3 + + 1)-dimensional space description and using non-harmonic ADPs ; +save_ + +save_superspace_group_symop.id + + _definition.id '_superspace_group_symop.id' + _alias.definition_id '_space_group_symop_ssg_id' + _definition.update 2025-06-04 + _description.text +; A numeric code identifying each entry in the - _space_group_symop_ssg_operation_algebraic list. + _superspace_group_symop.operation_algebraic list. ; - _name.category_id space_group_symop - _name.object_id ssg_id - _type.purpose Key - _type.source Assigned - _type.container Single - _type.contents Code + _name.category_id superspace_group_symop + _name.object_id id + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Code save_ +save_superspace_group_symop.operation_algebraic -save_space_group_symop.ssg_operation_algebraic - - _definition.id '_space_group_symop.ssg_operation_algebraic' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_space_group_symop_ssg_operation_algebraic' - _description.text + _definition.id '_superspace_group_symop.operation_algebraic' + _alias.definition_id '_space_group_symop_ssg_operation_algebraic' + _definition.update 2025-06-04 + _description.text ; - A parsable string giving one of the symmetry operations of the superspace group in algebraic form. These data will generally be repeated in a loop. Use symbols as necessary according to @@ -12608,262 +17988,683 @@ save_space_group_symop.ssg_operation_algebraic coordinates is such that the identity operation is expressed as x1,x2,x3,...,xn. - _space_group_symop_ssg_operation_algebraic must always be present + _superspace_group_symop.operation_algebraic must always be present in a CIF corresponding to a modulated structure. ; - _name.category_id space_group_symop - _name.object_id ssg_operation_algebraic - _type.purpose Composite - _type.source Assigned - _type.container Single - _type.contents Code - loop_ - _description_example.case - "x1,-x2,x3,1/2+x4" + _name.category_id superspace_group_symop + _name.object_id operation_algebraic + _type.purpose Composite + _type.source Assigned + _type.container Single + _type.contents Code save_ -save_geom_angle.distances +save_TWIN_REFLN -_definition.id '_geom_angle.distances' -_definition.update 2019-04-01 -_description.text + _definition.id TWIN_REFLN + _definition.scope Category + _definition.class Loop + _definition.update 2025-06-04 + _description.text ; - The pair of distances between sites 1 - 2 and 2 - 3. + Data items in this category are extensions of the cif_twin dictionary + definitions to the indexing of reflections used in the refinement of + twinned modulated structres by higher-dimensional components. ; -_name.category_id geom_angle -_name.object_id distances -_type.purpose Measurand -_type.source Derived -_type.container List -_type.contents Real -_type.dimension '[2]' -_units.code angstroms + _name.category_id CIF_MS_HEAD + _name.object_id TWIN_REFLN + + loop_ + _category_key.name + '_twin_refln.datum_id' + '_twin_refln.individual_id' save_ -save_geom_angle.value +save_twin_refln.index_m_1 + + _definition.id '_twin_refln.index_m_1' + _alias.definition_id '_twin_refln_index_m_1' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_1 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] -_definition.id '_geom_angle.value' -_definition.update 2016-11-17 -_description.text + _method.purpose Evaluation + _method.expression ; - Angle defined by the atoms located at atom_site_x/site_symmetry_x for - x = 1,2,3. The vertex atom is at site x = 2. + With r as twin_refln + + _twin_refln.index_m_1 = r.index_m_list [0] ; -_name.category_id geom_angle -_name.object_id value -_type.purpose Measurand -_type.source Derived -_type.container Single -_type.contents Real -_enumeration.range -180.:180. -_units.code degrees save_ -save_geom_angle.value_su +save_twin_refln.index_m_2 + + _definition.id '_twin_refln.index_m_2' + _alias.definition_id '_twin_refln_index_m_2' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_2 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] -_definition.id '_geom_angle.value_su' -loop_ - _alias.definition_id - '_geom_angle_su' - '_geom_angle.value_esd' -_definition.update 2016-11-17 -_description.text + _method.purpose Evaluation + _method.expression ; - Standard Uncertainty of the - angle defined by the sites identified by _geom_angle.id + With r as twin_refln + + _twin_refln.index_m_2 = r.index_m_list [1] ; -_name.category_id geom_angle -_name.object_id value_su -_name.linked_item_id '_geom_angle.value' -_type.purpose SU -_type.source Related -_type.container Single -_type.contents Real -_units.code degrees save_ -save_geom_bond.distance +save_twin_refln.index_m_3 + + _definition.id '_twin_refln.index_m_3' + _alias.definition_id '_twin_refln_index_m_3' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_3 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] -_definition.id '_geom_bond.distance' -loop_ - _alias.definition_id - '_geom_bond_distance' - '_geom_bond.dist' -_definition.update 2012-12-14 -_description.text + _method.purpose Evaluation + _method.expression ; - Intramolecular bond distance between the sites identified + With r as twin_refln + + _twin_refln.index_m_3 = r.index_m_list [2] ; -_name.category_id geom_bond -_name.object_id distance -_type.purpose Measurand -_type.source Derived -_type.container Single -_type.contents Real -_enumeration.range 0.: -_units.code angstroms save_ -save_geom_bond.distance_su +save_twin_refln.index_m_4 + + _definition.id '_twin_refln.index_m_4' + _alias.definition_id '_twin_refln_index_m_4' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_4 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] -_definition.id '_geom_bond.distance_su' -loop_ - _alias.definition_id - '_geom_bond_distance_su' - '_geom_bond.dist_esd' -_definition.update 2012-12-14 -_description.text + _method.purpose Evaluation + _method.expression ; - Standard Uncertainty of the intramolecular bond distance - between the sites identified by _geom_bond.id + With r as twin_refln + + _twin_refln.index_m_4 = r.index_m_list [3] ; -_name.category_id geom_bond -_name.object_id distance_su -_name.linked_item_id '_geom_bond.distance' -_type.purpose SU -_type.source Related -_type.container Single -_type.contents Real -_enumeration.range 0.: -_units.code angstroms - -save_ - +save_ + +save_twin_refln.index_m_5 -save_geom_contact.distance + _definition.id '_twin_refln.index_m_5' + _alias.definition_id '_twin_refln_index_m_5' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_5 -_definition.id '_geom_contact.distance' -loop_ - _alias.definition_id - '_geom_contact_distance' - '_geom_contact.dist' -_definition.update 2016-11-17 -_description.text + _import.get [{'file':templ_attr.cif 'save':ms_index}] + + _method.purpose Evaluation + _method.expression ; - Intermolecular distance between the atomic sites + With r as twin_refln + + _twin_refln.index_m_5 = r.index_m_list [4] ; -_name.category_id geom_contact -_name.object_id distance -_type.purpose Measurand -_type.source Derived -_type.container Single -_type.contents Real -_enumeration.range 0.: -_units.code angstroms + save_ -save_geom_contact.distance_su +save_twin_refln.index_m_6 -_definition.id '_geom_contact.distance_su' -loop_ - _alias.definition_id - '_geom_contact_distance_su' - '_geom_contact.dist_esd' -_definition.update 2012-12-14 -_description.text + _definition.id '_twin_refln.index_m_6' + _alias.definition_id '_twin_refln_index_m_6' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_6 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] + + _method.purpose Evaluation + _method.expression ; - Standard Uncertainty of the intermolecular distance between - the atomic sites identified by _geom_contact.id + With r as twin_refln + + _twin_refln.index_m_6 = r.index_m_list [5] ; -_name.category_id geom_contact -_name.object_id distance_su -_name.linked_item_id '_geom_contact.distance' -_type.purpose SU -_type.source Related -_type.container Single -_type.contents Real -_enumeration.range 0.: -_units.code angstroms save_ -save_geom_torsion.angle +save_twin_refln.index_m_7 -_definition.id '_geom_torsion.angle' -loop_ - _alias.definition_id - '_geom_torsion' - '_geom_torsion.value' -_definition.update 2019-07-25 -_description.text + _definition.id '_twin_refln.index_m_7' + _alias.definition_id '_twin_refln_index_m_7' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_7 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] + + _method.purpose Evaluation + _method.expression ; - Angle defined by the sites identified by _geom_torsion.id. - The torsion-angle definition should be that of Klyne and Prelog. - The vector direction *_label_2 to *_label_3 is the viewing - direction, and the torsion angle is the angle of twist required - to superimpose the projection of the vector between site 2 and - site 1 onto the projection of the vector between site 3 and - site 4. Clockwise torsions are positive, anticlockwise torsions - are negative. - Ref: Klyne, W. & Prelog, V. (1960). Experientia, 16, 521-523. + With r as twin_refln + + _twin_refln.index_m_7 = r.index_m_list [6] ; -_name.category_id geom_torsion -_name.object_id angle -_type.purpose Measurand -_type.source Derived -_type.container Single -_type.contents Real -_enumeration.range -180.:180. -_units.code degrees save_ -save_geom_torsion.angle_su +save_twin_refln.index_m_8 -_definition.id '_geom_torsion.angle_su' -loop_ - _alias.definition_id - '_geom_torsion_su' - '_geom_torsion.value_esd' -_definition.update 2012-11-22 -_description.text + _definition.id '_twin_refln.index_m_8' + _alias.definition_id '_twin_refln_index_m_8' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_8 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] + + _method.purpose Evaluation + _method.expression ; - Standard Uncertainty of the torsion angle. + With r as twin_refln + + _twin_refln.index_m_8 = r.index_m_list [7] ; -_name.category_id geom_torsion -_name.object_id angle_su -_name.linked_item_id '_geom_torsion.angle' -_type.purpose SU -_type.source Related -_type.container Single -_type.contents Real -_units.code degrees save_ +save_twin_refln.index_m_9 -loop_ - _dictionary_audit.version - _dictionary_audit.date - _dictionary_audit.revision - 3.0 2014-06-27 + _definition.id '_twin_refln.index_m_9' + _definition.update 2025-10-20 + _name.category_id twin_refln + _name.object_id index_m_9 + + _import.get [{'file':templ_attr.cif 'save':ms_index}] + + _method.purpose Evaluation + _method.expression ; - Initial conversion to DDLm (Syd Hall) + With r as twin_refln + + _twin_refln.index_m_9 = r.index_m_list [8] ; - 3.1 2016-11-17 + +save_ + +save_twin_refln.index_m_list + + _definition.id '_twin_refln.index_m_list' + _definition.update 2025-10-28 + _description.text ; - Substantial edits to conform to current DDLm, CIF2 syntax (James Hester). + Additional Miller indices for the modulated twin component + labelled by _twin_refln.individual_id. The values of the Miller + indices must correspond to the cell defined for this twin component. + The total number of indices must match (_cell.modulation_dimension + 3). + The order of the additional indices must be consistent with the + codes given in _cell_wave_vector.seq_id. ; - 3.2 2017-03-11 + _name.category_id twin_refln + _name.object_id index_m_list + _type.purpose Number + _type.source Derived + _type.container Matrix + _type.contents Integer + _units.code none + + loop_ + _method.purpose + _method.expression + Definition ; - Returned all additional indices to main dictionary, removed category_id - from templates(James Hester) + With c as cell + + _type.dimension = '[c.modulation_dimension]' ; - 3.2.1 2024-05-17 + Evaluation ; - Corrected a typo in the definition of the _geom_torsion.angle data item. + With r as twin_refln + + temp.index_m_list = \ + [ r.index_m_1, r.index_m_2, r.index_m_3, r.index_m_4, \ + r.index_m_5, r.index_m_6, r.index_m_7, r.index_m_8, \ + r.index_m_9 ] + + #Not meaningful indices are removed here - Changed the content type of multiple data items from 'Count' to 'Integer' - and assigned the appropriate enumeration range if needed. +_twin_refln.index_m_list = temp.index_m_list[0:_cell.modulation_dimension - 1] +; - Updated the CIF_CORE dictionary import statement with the new Head - category name. +save_ - Renamed the head category from 'MS_GROUP' to 'CIF_MS_HEAD'. + loop_ + _dictionary_audit.version + _dictionary_audit.date + _dictionary_audit.revision + 3.0.0 2014-06-27 +; + Initial conversion to DDLm (Syd Hall) +; + 3.1.0 2016-11-17 +; + Substantial edits to conform to current DDLm, CIF2 syntax + (James Hester). +; + 3.2.0 2017-03-11 +; + Returned all additional indices to main dictionary, removed + category_id from templates(James Hester) +; + 3.2.1 2019-09-25 +; + Corrected a typo in the definition of the _geom_torsion.angle + data item. + + Changed the content type of multiple data items from 'Count' to + 'Integer' and assigned the appropriate enumeration range if + needed. +; + 3.2.2 2022-01-15 +; + Corrected some typos in *.id data items, they included a + trailing blank. Changed + save_save_geom_angle.site_ssg_symmetry_1 to + save_geom_angle.site_ssg_symmetry_1 Changed + _atom_site_sites_axes.matrix_seq_id to + _atom_sites_axes.matrix_seq_id +; + 3.2.3 2023-07-08 +; + Added for completitude _atom_site_rot_Fourier.id as the key for + the category _ATOM_SITE_ROT_FOURIER. +; + 3.2.4 2024-12-12 +; + Added for back compatibility: + + _cell.commen_supercell_matrix_1_1 to _cell.commen_supercell_matrix_3_3. + Aliased to _jana_cell_commen_supercell_matrix_ tags. + + _atom_site_Fourier_wave_vector.q1_coeff to + _atom_site_Fourier_wave_vector.q3_coeff (These tags are also + present in cif_mag.dic) Aliased to + _jana_atom_site_Fourier_wave_vector_q1_coeff, etc. + + Added the aliases: + + _jana_atom_site_crenel_ortho_func_c + _jana_atom_site_crenel_ortho_func_eps + _jana_atom_site_crenel_ortho_func_w + _jana_atom_site_displace_crenel_ortho_atom_site_label + _jana_atom_site_displace_crenel_ortho_axis + _jana_atom_site_displace_crenel_ortho_id + _jana_atom_site_displace_crenel_ortho_param_coeff + _jana_atom_site_displace_Legendre_atom_site_label + _jana_atom_site_displace_Legendre_axis + _jana_atom_site_displace_Legendre_param_order + _jana_atom_site_displace_Legendre_param_coeff + _jana_atom_site_occ_crenel_ortho_atom_site_label + _jana_atom_site_occ_crenel_ortho_id + _jana_atom_site_occ_crenel_ortho_param_coeff + _jana_atom_site_occ_Legendre_atom_site_label + _jana_atom_site_occ_Legendre_param_order + _jana_atom_site_occ_Legendre_param_coeff + _jana_atom_site_U_crenel_ortho_atom_site_label + _jana_atom_site_U_crenel_ortho_tens_elem + _jana_atom_site_U_crenel_ortho_id + _jana_atom_site_U_crenel_ortho_param_coeff + _jana_atom_site_U_Legendre_atom_site_label + _jana_atom_site_U_Legendre_tens_elem + _jana_atom_site_U_Legendre_param_order + _jana_atom_site_U_Legendre_param_coeff + _jana_atom_site_displace_XHarm_site_label + _jana_atom_site_displace_XHarm_axis + _jana_atom_site_displace_XHarm_param_order + _jana_atom_site_displace_XHarm_param_coeff + _jana_atom_site_occ_XHarm_atom_site_label + _jana_atom_site_occ_XHarm_param_order + _jana_atom_site_occ_XHarm_param_coeff + _jana_atom_site_U_XHarm_atom_site_label + _jana_atom_site_U_XHarm_tens_elem + _jana_atom_site_U_XHarm_param_order + _jana_atom_site_U_XHarm_param_coeff + + Added units (cycles) to: + + _atom_site_displace_special_func.sawtooth_c + _atom_site_displace_special_func.sawtooth_w + _atom_site_displace_special_func.zigzag_c + _atom_site_displace_special_func.zigzag_w + _atom_site_occ_special_func.crenel_c + _atom_site_occ_special_func.crenel_w + _atom_sites_modulation.global_phase_list + _atom_sites_modulation.global_phase_t_ + + Added units (none) to: + + _atom_site_displace_Fourier_param.cos + _atom_site_displace_Fourier_param.modulus + _atom_site_displace_Fourier_param.sin + _atom_site_displace_Legendre.coeff + _atom_site_displace_special_func.sawtooth + _atom_site_displace_special_func.sawtooth_axyz + _atom_site_displace_special_func.sawtooth_ax + _atom_site_displace_special_func.sawtooth_ay + _atom_site_displace_special_func.sawtooth_az + _atom_site_displace_special_func.zigzag_axyz + _atom_site_displace_xharm.coeff + _atom_site_occ_Fourier_param.cos + _atom_site_occ_Fourier_param.modulus + _atom_site_occ_Fourier_param.sin + _atom_site_occ_Legendre.coeff + _atom_site_occ_xharm.coeff + _atom_site_phason.coeff OJO + _cell_wave_vector.x + _cell_wave_vector.xyz + _cell_wave_vector.y + _cell_wave_vector.z + + Added the SU items: + + _atom_site_displace_Fourier_param.cos_su + _atom_site_displace_Fourier_param.modulus_su + _atom_site_displace_Fourier_param.sin_su + _atom_site_displace_Legendre.coeff_su + _atom_site_displace_ortho.coeff_su + _atom_site_displace_special_func.sawtooth_su + _atom_site_displace_special_func.sawtooth_axyz_su + _atom_site_displace_special_func.sawtooth_ax_su + _atom_site_displace_special_func.sawtooth_ay_su + _atom_site_displace_special_func.sawtooth_az_su + _atom_site_displace_special_func.sawtooth_c_su + _atom_site_displace_special_func.sawtooth_w_su + _atom_site_displace_special_func.zigzag_axyz_su + _atom_site_displace_special_func.zigzag_c_su + _atom_site_displace_special_func.zigzag_w_su + _atom_site_displace_xharm.coeff_su + _atom_site_occ_Fourier_param.cos_su + _atom_site_occ_Fourier_param.modulus_su + _atom_site_occ_Fourier_param.sin_su + _atom_site_occ_Legendre.coeff_su + _atom_site_occ_ortho.coeff_su + _atom_site_occ_special_func.crenel_c_su + _atom_site_occ_special_func.crenel_w_su + _atom_site_occ_xharm.coeff_su + _atom_site_phason.coeff_su OJO + _atom_site_rot_Fourier_param.cos_su + _atom_site_rot_Fourier_param.modulus_su + _atom_site_rot_Fourier_param.sin_su + _atom_site_rot_Legendre.coeff_su + _atom_site_rot_ortho.coeff_su + _atom_site_rot_special_func.sawtooth_su + _atom_site_rot_special_func.sawtooth_axyz_su + _atom_site_rot_special_func.sawtooth_ax_su + _atom_site_rot_special_func.sawtooth_ay_su + _atom_site_rot_special_func.sawtooth_az_su + _atom_site_rot_special_func.sawtooth_c_su + _atom_site_rot_special_func.sawtooth_w_su + _atom_site_rot_special_func.zigzag_axyz_su + _atom_site_rot_special_func.zigzag_c_su + _atom_site_rot_special_func.zigzag_w_su + _atom_site_rot_xharm.coeff_su + _atom_site_U_Fourier_param.cos_su + _atom_site_U_Fourier_param.modulus_su + _atom_site_U_Fourier_param.sin_su + _atom_site_U_Legendre.coeff_su + _atom_site_U_ortho.coeff_su + _atom_site_U_xharm.coeff_su + _cell_wave_vector.x_su + _cell_wave_vector.xyz_su + _cell_wave_vector.y_su + _cell_wave_vector.z_su + _cell_wave_vectors.pressure_max_su + _cell_wave_vectors.pressure_min_su + _cell_wave_vectors.temp_max_su + _cell_wave_vectors.temp_min_su + _geom_angle.av_su + _geom_angle.max_su + _geom_angle.min_su + _geom_bond.distance_av_su + _geom_bond.distance_max_su + _geom_bond.distance_min_su + _geom_contact.distance_av_su + _geom_contact.distance_max_su + _geom_contact.distance_min_su + _geom_torsion.av_su + _geom_torsion.max_su + _geom_torsion.min_su + + Added a complete description (including modulation) of the Gram-Charlier + expansion (up to 6th order) describing anharmonic ADPs. Too long + to list here. + + Examples added to categories: + + ATOM_SITE_DISPLACE_FOURIER + ATOM_SITE_DISPLACE_LEGENDRE + ATOM_SITE_DISPLACE_ORTHO + ATOM_SITE_OCC_FOURIER + ATOM_SITE_ROT_FOURIER + ATOM_SITE_U_FOURIER + + 2024-04-28: + Removed _enumeration_default for _atom_site_Fourier_wave_vector.seq_id. + It is a key for loops of the category _ATOM_SITE_FOURIER_WAVE_VECTOR, + so it must be always present. + + Where appropriate, _type.contents of numeric codes, changed from Code + to Integer. + + Added the average, maximum and minimum distances within the categories + GEOM_ANGLE and GEOM_TORSION. + + 2024-04-29: + Added _atom_site_Fourier_wave_vector.q1_coeff_seq_id, + _atom_site_Fourier_wave_vector.q2_coeff_seq_id and + _atom_site_Fourier_wave_vector.q3_coeff_seq_id + + Without these items _atom_site_Fourier_wave_vector.q1_coeff, etc. are + sensitive to the order of _cell_wave_vector_ irrespective of the + values of _cell_wave_vector_seq_id. + + 2024-05-05: + _name.object_id changed in some data names belonging to the GEOM_ + categories, according to the definitions in cif_core. + + Extended to 8, for consistency, the number of components in + _atom_site_Fourier_wave_vector.q_coeff_seq_id and + _atom_site_Fourier_wave_vector.q_coeff. + + 2024-05-06: + Revision of the examples syntax. + + 2024-07-26: + Revision of methods syntax + Minor updates of some tags. _definition.update modified in + templ_attr.cif file. + + 2024-07-27: + Revision of the definitions of transformed axes for translations and + rotations + + Added GEOM_HBOND category. + + 2024-07-28: + Added category.id to the individual elements of the W matrix, as it has + been removed from templ_attr.cif (1.4.11) + + Modified the functions Sawtooth and Zigzag, to cover translations and + rotations + + 2024-07-31: + Added _import.get [{"file":'templ_attr.cif' "save":'general_su'}] to + all single SU items. + + Common attributes of *.matrix_seq_id items included in templ_attr.cif + file, in save_transf_matrix_id + + Common attributes of modulation parameters items included in + templ_attr.cif file, in save_general_mod_param + + Large rewording of _description.text of many items to avoid excesive + verbosity. + + Modified the definitions of GEOM_HBOND category, according the the core. + + 2024-08-01: + Deployment of the new save frames of templ_attr.cif. + + 2024-08-06: + Added the categories: + ATOM_SITE_ANHARMONIC_ADP + ATOM_SITE_ANHARMONIC_ADP_FOURIER + ATOM_SITE_ANHARMONIC_ADP_FOURIER_PARAM + ATOM_SITE_ANHARMONIC_ADP_LEGENDRE + ATOM_SITE_ANHARMONIC_ADP_ORTHO + ATOM_SITE_ANHARMONIC_ADP_XHARM + + Common attributes of *.ssg_symmetry_ items included in templ_attr.cif + file, in save_site_ssg_symmetry + + Common attributes of _atom_site_Fourier_wave_vector.q_coeff + and _atom_site_Fourier_wave_vector.q_coeff_seq_id items + included in templ_attr.cif file, in save_q_coeff_element and + save_q_coeff_seq_id, respectively. + + Changed _type.container List to Matrix to reinforce the + numeric contents. The fixed upper limit of dimensions, is + calculated trough methods, where necessary, defining + _type.dimension in terms of _cell.modulation_dimension. + + Affected items: + + _atom_site_Fourier_wave_vector.q_coeff, + _atom_site_Fourier_wave_vector.q_coeff_seq_id, + _atom_sites_modulation.global_phase_list, _cell_subsystem.matrix_W, + _diffrn_refln.index_m_list, _diffrn_reflns.limit_index_m_max_list, + _diffrn_reflns.limit_index_m_min_list, _exptl_crystal_face.index_m_list, + _refln.index_m_list, _reflns.limit_index_m_max_list and + _reflns.limit_index_m_min_list + + Changed _type.purpose to Number (it was erroneusly assigned to Key) in + the following items: + + _atom_site_displace_Legendre.order', _atom_site_displace_xharm.order, + _atom_site_occ_Legendre.order, _atom_site_occ_xharm.order, + _atom_site_rot_Legendre.order, _atom_site_rot_xharm.order, + _atom_site_U_Legendre.order,_atom_site_U_xharm.order + + 2024-08-07 + Removed methods for _atom_site_displace_special_func.sawtooth, + _atom_site_displace_special_func.zigzag, + _atom_site_rot_special_func.sawtooth, + _atom_site_rot_special_func.zigzag and + _atom_site_occ_special_func.crenel. + Evaluation methods compute missing tags in terms of present tags, + never define functions of undefined variables... + + Now the attributes of those items are: + _type_purpose Describe + _type_source Recorded + _type.container Single + _type.contents Text + + Revised the common exampe of categories ATOM_SITE_ROT_FOURIER and + ATOM_SITE_ROT_FOURIER_PARAM. Now translations are fractions of the + axes. + + 2024-08-09 + Changed MS_GROUP to CIF_MS_HEAD. + + 2024-12-12 + Technical fixes (JRH) +; + 3.2.5 2025-10-31 +; + _SPECIAL_FUNC categories, replaced by: + _DISPLACE_SAWTOOTH + _DISPLACE_ZIGZAG + _OCC_CRENEL + _ROT_SAWTOOTH + _ROT_ZIGZAG + + The inheritance of the previous version causes a complicated + implementation given that sawtooth and zigzag functions belong to + the same category. The new division makes it easier to add new + categories if needed. On the other hand these discontinuous functions + are no more special than Legendre polynomials, whose linear function + is a sawtooth function. All examples corrected accordingly. + + Added _jana_atom_site_crenel_ortho_func_id as alias of + _atom_sites_ortho.func_id + + Corrected the range (1:8 -> 1:9) for _cell.modulation_dimension + + Corrected _atom_site_*_Fourier_param.sine_su to + _atom_site_*_Fourier_param.sin_su + + Added to _atom_site_displace_sawtooth.matrix_seq_id, + _atom_site_displace_zigzag.matrix_seq_id + _atom_site_rot_sawtooth.matrix_seq_id and + _atom_site_rot_zigzag.matrix_seq_id, the tag (removed from + templ_attr.cif): _name.object_id matrix_seq_id + + Added for completitude _enumeration.default (0.0) to + _atom_sites_modulation.global_phase_t_1, + _atom_sites_modulation.global_phase_t_3,...,9. The default was + mistakenly assigned only to _atom_sites_modulation.global_phase_t_2. + + _atom_sites_ortho.wave_vector_seq_id removed. It is a superflous tag. + + Added local categories for a complete merging of category keys + with other dictionaries (cif_core.dic and cif_twin.dic): + ATOM_SITE + CELL + DIFFRN_REFLNS + EXPTL_CRYSTAL + TWIN_REFLN + + Added an extension to the category TWIN_REFLN to handle reflection + lists in modulated twinned structures. The additional tags are: + _twin_refln.index_m_list and the individual indices + _twin_refln.index_m_* + + Corrected the example of Sulfone. Also the examples of the items + _atom_sites_modulation.global_phase_list and + _cell.commen_supercell_matrix, have been moved to ATOM_SITES_MODULATION + and CELL, respectively. The problems is that the DDLm indicates that + "example cases present values only, which inherit the enumeration range, + enumeration set, container, dimension, content and purpose type + constraints of the defining item." and those examples are text, + neither numbers or matrices. + + Replaced SPACE_GROUP and SPACE_GROUP_SYMOP categories by + SUPERSPACE_GROUP and SUPERSPACE_GROUP_SYMOP. + + Removed some restrictions in the definition of _superspace_group.name + + Functions (crenel, dsawtooth, dzigzag, rsawtooth and rzigzag) commented + and marked for deletion. They have not sense within the dictionary as + they require x4 as external variable. + + 2025-06-22 + Changed commas to whitespaces as array elements separators, when they + appear in tag values. + + Changed the enumeration range of _cell_wave_vector.seq_id form 0: to 1: + + Included the category EXPTL_CRYSTAL_FACE for merging with cif_core.dic. + + Changed the _category_key.name of DIFFRN_REFLN and REFLN to + _diffrn_refln.id and _refln.id, respectively. ;