From e24da881bb5bc28b1785e1b86b684bb63c65e035 Mon Sep 17 00:00:00 2001 From: "James.Hester" Date: Fri, 29 Sep 2017 09:59:36 +1000 Subject: [PATCH] G. Madariaga's updates as supplied. New special functions supplied for all modulated parameters. Further edits to conform to DDLm. --- cif_ms.dic | 16829 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 12410 insertions(+), 4419 deletions(-) diff --git a/cif_ms.dic b/cif_ms.dic index 8a8b53e..f04f259 100644 --- a/cif_ms.dic +++ b/cif_ms.dic @@ -1,5 +1,5 @@ -#\#CIF_2.0 -############################################################################### +#\#CIF_2.0 +################################################################################ # # # CIF Dictionary for Modulated Structures # # --------------------------------------- # @@ -21,7 +21,6 @@ data_CIF_MS _dictionary.title CIF_MS - _dictionary.formalism Modulated _dictionary.class Instance _dictionary.version 3.2 _dictionary.date 2017-03-11 @@ -31,8 +30,8 @@ data_CIF_MS _description.text ; - The DICTIONARY group encompassing the definitions of data items - for the study of modulated structures with the Crystallographic + The DICTIONARY group encompassing the definitions of the items + for the study of modulated structures with the same Crystallographic Information Framework (CIF). ; @@ -47,19 +46,18 @@ save_MS_GROUP Encompasses groups of categories applicable to modulated structures. ; - _name.category_id CIF_MS _name.object_id MS_GROUP - _import.get [{"file":"cif_core.dic" "save":"CIF_CORE" "mode":"Full"}] - + _import.get [{"file":"cif_core.dic","save":"CIF_CORE", + "mode":"Full"}] save_ -save__atom_site.displace_modulation_flag +save_atom_site.displace_modulation_flag _definition.id '_atom_site.displace_modulation_flag' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_modulation_flag' + '_atom_site_displace_modulation_flag' _description.text ; @@ -73,8 +71,8 @@ save__atom_site.displace_modulation_flag _type.container Single _type.contents Code loop_ - _enumeration_set.state - _enumeration_set.detail + _enumeration_set.state + _enumeration_set.detail yes 'displacive modulation' y 'abbreviation for "yes"' no 'no displacive modulation' @@ -83,13 +81,13 @@ save__atom_site.displace_modulation_flag save_ -save__atom_site.occ_modulation_flag +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' + '_atom_site_occ_modulation_flag' _description.text ; @@ -97,14 +95,14 @@ save__atom_site.occ_modulation_flag modulation of the occupation of a given atom site. ; _name.category_id atom_site - _name.object_id modulation_flag + _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 + _enumeration_set.state + _enumeration_set.detail yes 'occupational modulation' y 'abbreviation for "yes"' no 'no occupational modulation' @@ -113,14 +111,13 @@ save__atom_site.occ_modulation_flag save_ - -save__atom_site.subsystem_code +save_atom_site.subsystem_code _definition.id '_atom_site.subsystem_code' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_subsystem_code' + '_atom_site_subsystem_code' _description.text ; @@ -135,25 +132,24 @@ save__atom_site.subsystem_code _name.object_id subsystem_code _name.linked_item_id '_cell_subsystem.code' _type.purpose Link - _type.source Assigned + _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' + '_atom_site_U_modulation_flag' _description.text ; A code that signals whether the structural model includes the - modulation of the thermal parameters of a given atom site. + modulation of the ADP of a given atom site. ; _name.category_id atom_site _name.object_id U_modulation_flag @@ -162,17 +158,16 @@ save__atom_site.U_modulation_flag _type.container Single _type.contents Code loop_ - _enumeration_set.state - _enumeration_set.detail - yes 'modulation of thermal parameters' + _enumeration_set.state + _enumeration_set.detail + yes 'modulation of ADP' y 'abbreviation for "yes"' - no 'no modulation of thermal parameters' + no 'no modulation of ADP' n 'abbreviation for "no"' _enumeration.default no save_ - save_ATOM_SITE_DISPLACE_FOURIER _definition.id ATOM_SITE_DISPLACE_FOURIER @@ -195,34 +190,31 @@ save_ATOM_SITE_DISPLACE_FOURIER _name.category_id MS_GROUP _name.object_id ATOM_SITE_DISPLACE_FOURIER loop_ - _category_key.name '_atom_site_displace_Fourier.id' - + _category_key.name '_atom_site_displace_Fourier.id' + save_ - -save__atom_site_displace_Fourier.atom_site_label +save_atom_site_displace_Fourier.atom_site_label _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' + '_atom_site_displace_Fourier_atom_site_label' _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 atomic anisotropic (or isotropic) displacement - parameters (referred to as modulation of thermal parameters, - since the term 'displacement parameters' is ambiguous in this - context). _atom_site_displace_Fourier.atom_site_label is the + 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 + _atom_site_displace_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. ; @@ -230,20 +222,19 @@ save__atom_site_displace_Fourier.atom_site_label _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link - _type.source Assigned + _type.source Related _type.container Single _type.contents Code save_ - -save__atom_site_displace_Fourier.axis +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' + '_atom_site_displace_Fourier_axis' _description.text ; @@ -251,8 +242,12 @@ save__atom_site_displace_Fourier.axis 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. a1, a2 and a3 are defined by - _atom_sites_displace_Fourier.axes_description. + 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. + ; _name.category_id atom_site_displace_Fourier _name.object_id axis @@ -261,8 +256,8 @@ save__atom_site_displace_Fourier.axis _type.container Single _type.contents Code loop_ - _enumeration_set.state - _enumeration_set.detail + _enumeration_set.state + _enumeration_set.detail x 'displacement along the a axis' y 'displacement along the b axis' z 'displacement along the c axis' @@ -272,14 +267,13 @@ save__atom_site_displace_Fourier.axis save_ - -save__atom_site_displace_Fourier.id +save_atom_site_displace_Fourier.id _definition.id '_atom_site_displace_Fourier.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_Fourier_id' + '_atom_site_displace_Fourier_id' _description.text ; @@ -291,20 +285,43 @@ save__atom_site_displace_Fourier.id _name.category_id atom_site_displace_Fourier _name.object_id id _type.purpose Key - _type.source Assigned + _type.source Related _type.container Single _type.contents Code save_ +save_atom_site_displace_Fourier.matrix_seq_id -save__atom_site_displace_Fourier.wave_vector_seq_id + _definition.id '_atom_site_displace_Fourier.matrix_seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_displace_Fourier_matrix_seq_id' + _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. +; + _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 + +save_ + +save_atom_site_displace_Fourier.wave_vector_seq_id _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' + '_atom_site_displace_Fourier_wave_vector_seq_id' _description.text ; @@ -312,20 +329,18 @@ save__atom_site_displace_Fourier.wave_vector_seq_id 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. + distortion. This code must match _atom_site_Fourier_wave_vector.seq_id. ; _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 Assigned + _type.source Related _type.container Single _type.contents Code save_ - save_ATOM_SITE_DISPLACE_FOURIER_PARAM _definition.id ATOM_SITE_DISPLACE_FOURIER_PARAM @@ -348,28 +363,31 @@ save_ATOM_SITE_DISPLACE_FOURIER_PARAM _name.category_id MS_GROUP _name.object_id ATOM_SITE_DISPLACE_fOURIER_PARAM loop_ - _category_key.name '_atom_site_displace_Fourier_param.id' + _category_key.name '_atom_site_displace_Fourier_param.id' save_ - -save__atom_site_displace_Fourier_param.cos +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' + '_atom_site_displace_Fourier_param_cos' _description.text ; The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.cos) is usually parameterized + also _atom_site_displace_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), + + Ac cos(2\p k r)+As sin(2\p k r), + and the modulus-argument form, - |A| cos(2\\p k r+\\f), + + |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 @@ -378,27 +396,38 @@ save__atom_site_displace_Fourier_param.cos _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 - _atom_sites_displace_Fourier.axes_description. + 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. +. ; _name.category_id atom_site_displace_Fourier_param _name.object_id cos - _type.purpose Number - _type.source Derived + _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(2*Pi*p.phase) +; +save_ -save__atom_site_displace_Fourier_param.id +save_atom_site_displace_Fourier_param.id _definition.id '_atom_site_displace_Fourier_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_Fourier_param_id' + '_atom_site_displace_Fourier_param_id' _description.text ; @@ -412,30 +441,33 @@ save__atom_site_displace_Fourier_param.id _name.object_id id _name.linked_item_id '_atom_site_displace_Fourier.id' _type.purpose Link - _type.source Assigned + _type.source Related _type.container Single _type.contents Code save_ - -save__atom_site_displace_Fourier_param.modulus +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' + '_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 + also _atom_site_displace_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), + + Ac cos(2\p k r)+As sin(2\p k r), + and the modulus-argument form, - |A| cos(2\\p k r+\\f), + + |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 @@ -445,41 +477,55 @@ save__atom_site_displace_Fourier_param.modulus _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 - _atom_sites_displace_Fourier.axes_description. + 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. ; _name.category_id atom_site_displace_Fourier_param _name.object_id modulus - _type.purpose Number - _type.source Derived + _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 +; + With p as atom_site_displace_Fourier_param -save_ + atom_site_displace_Fourier_param.modulus = Sqrt(p.cos**2 + p.sin**2) +; +save_ -save__atom_site_displace_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' + '_atom_site_displace_Fourier_param_phase' _description.text ; The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.phase) is usually parameterized + also _atom_site_displace_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), + + Ac cos(2\p k r)+As sin(2\p k r), + and the modulus-argument form, - |A| cos(2\\p k r+\\f), + + |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\ + 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 @@ -487,34 +533,46 @@ save__atom_site_displace_Fourier_param.phase ; _name.category_id atom_site_displace_Fourier_param _name.object_id phase - _type.purpose Number - _type.source Derived + _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 + _units.code cycles + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_displace_Fourier_param -save_ + atom_site_displace_Fourier_param.phase = Phase(Complex(p.cos,-p.sin)/2/Pi +; +save_ -save__atom_site_displace_Fourier_param.sin +save_atom_site_displace_Fourier_param.sin _definition.id '_atom_site_displace_Fourier_param.sin' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_Fourier_param_sin' + '_atom_site_displace_Fourier_param_sin' _description.text ; The displacive distortion of a given atom or rigid group (see - also _atom_site_rot_Fourier_param.sin) is usually parameterized + also _atom_site_displace_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), + + Ac cos(2\p k r)+As sin(2\p k r), + and the modulus-argument form, - |A| cos(2\\p k r+\\f), + + |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 @@ -523,76 +581,112 @@ save__atom_site_displace_Fourier_param.sin _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 - _atom_sites_displace_Fourier.axes_description. + 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. ; _name.category_id atom_site_displace_Fourier_param _name.object_id sin - _type.purpose Number - _type.source Derived + _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.sin = -p.modulus*Sin(2*Pi*p.phase) +; +save_ -save_ATOM_SITE_DISPLACE_SPECIAL_FUNC +save_ATOM_SITE_DISPLACE_LEGENDRE - _definition.id ATOM_SITE_DISPLACE_SPECIAL_FUNC + _definition.id ATOM_SITE_DISPLACE_LEGENDRE _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _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 of 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: + + 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) + + Notice that Legengre polynomials are restricted to one-dimensional cases and + include as a particular case the sawtooth modulation. + + 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. - 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 - JANA suite of programs. 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 JANA2000 have been - included. These are: - (1) Sawtooth functions for atomic displacive modulation along - x, y and z. - (2) Crenel functions for the occupational modulation of atoms - and rigid groups. Both of these only apply to - one-dimensional modulated structures. + 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 JANA2006 ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_DISPLACE_SPECIAL_FUNC +_name.category_id MS_GROUP + _name.object_id ATOM_SITE_DISPLACE_LEGENDRE loop_ - _category_key.name '_atom_site_displace_special_func.id' - + _category_key.name '_atom_site_displace_legendre.id' + save_ +save_atom_site_displace_legendre.atom_site_label -save__atom_site_displace_special_func.atom_site_label - - _definition.id '_atom_site_displace_special_func.atom_site_label' + _definition.id '_atom_site_displace_legendre.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_atom_site_label' + '_atom_site_displace_legendre_atom_site_label' _description.text ; - The code that identifies an atom 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. + 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. ; - _name.category_id atom_site_displace_special_func + _name.category_id atom_site_displace_legendre _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -602,1053 +696,1114 @@ save__atom_site_displace_special_func.atom_site_label save_ -save__atom_site_displace_special_func.id +save_atom_site_displace_legendre.axis - _definition.id '_atom_site_displace_special_func.id' + _definition.id '_atom_site_displace_legendre.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_id' + '_atom_site_displace_legendre_axis' _description.text ; - A code identifying each special function. -; - _name.category_id atom_site_displace_special_func - _name.object_id id - _type.purpose Key + 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. +; + _name.category_id atom_site_displace_legendre + _name.object_id axis + _type.purpose State _type.source Assigned _type.container Single _type.contents Code - -save_ - - - -save__atom_site_displace_special_func.sawtooth - - _definition.id '_atom_site_displace_special_func.sawtooth' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth' - _description.text -; - - _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. The use of this function is restricted to - one-dimensional modulated structures. For more details, see - the manual for JANA2000 (Petricek & Dusek, 2000). - Reference: Petricek, V. & Dusek, M. (2000). JANA2000. The - crystallographic computing system. Institute of Physics, Prague, - Czech Republic. -; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth - _type.purpose Number - _type.source Derived - _type.container Matrix - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] loop_ - _method.purpose - _method.expression - Evaluation -; - With f as atom_site_displace_special_func - - _atom_site_displace_special_func.sawtooth = [ - - 2 * [sawtooth_ax, sawtooth_ay, sawtooth_az] * - (( sawtooth_x4 - sawtooth_c) / sawtooth_w )] -; + _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' save_ +save_atom_site_displace_legendre.id -save__atom_site_displace_special_func.sawtooth_ax - - _definition.id '_atom_site_displace_special_func.sawtooth_ax' + _definition.id '_atom_site_displace_legendre.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_sawtooth_ax' + '_atom_site_displace_legendre_id' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + 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. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_ax - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_legendre + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_displace_legendre.matrix_seq_id -save__atom_site_displace_special_func.sawtooth_ay - - _definition.id '_atom_site_displace_special_func.sawtooth_ay' + _definition.id '_atom_site_displace_legendre.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_sawtooth_ay' + '_atom_site_displace_legendre_matrix_seq_id' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + 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. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_ay + _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 Number - _type.source Derived + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_displace_legendre.order -save__atom_site_displace_special_func.sawtooth_az - - _definition.id '_atom_site_displace_special_func.sawtooth_az' + _definition.id '_atom_site_displace_legendre.order' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_sawtooth_az' + '_atom_site_displace_legendre_order' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + The order of the Legendre polynomial. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_az - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_legendre + _name.object_id order + _type.purpose Key + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Count save_ +save_ATOM_SITE_DISPLACE_LEGENDRE_PARAM -save__atom_site_displace_special_func.sawtooth_c - - _definition.id '_atom_site_displace_special_func.sawtooth_c' + _definition.id ATOM_SITE_DISPLACE_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_displace_special_func_sawtooth_c' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + 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. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_c - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.default 0.0 + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_DISPLACE_LEGENDRE_PARAM + loop_ + _category_key.name '_atom_site_displace_legendre_param.id' save_ +save_atom_site_displace_legendre_param.coeff -save__atom_site_displace_special_func.sawtooth_w - - _definition.id '_atom_site_displace_special_func.sawtooth_w' + _definition.id '_atom_site_displace_legendre_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_sawtooth_w' + '_atom_site_displace_legendre_param_coeff' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + 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 defined by the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_legendre.matrix_seq_id. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_w - _type.purpose Number - _type.source Derived + _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 save_ +save_atom_site_displace_legendre_param.id -save__atom_site_displace_special_func.sawtooth_x4 - - _definition.id '_atom_site_displace_special_func.sawtooth_x4' + _definition.id '_atom_site_displace_legendre_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_displace_special_func_sawtooth_x4' + '_atom_site_displace_legendre_param_id' _description.text ; - Sawtooth function described in _atom_site_displace_special_func.sawtooth + 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. ; - _name.category_id atom_site_displace_special_func - _name.object_id sawtooth_x4 - _type.purpose Number - _type.source Derived + _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 Real - _enumeration.default 0.0 + _type.contents Code save_ +save_ATOM_SITE_DISPLACE_ORTHO -save_ATOM_SITE_FOURIER_WAVE_VECTOR - - _definition.id ATOM_SITE_FOURIER_WAVE_VECTOR + _definition.id ATOM_SITE_DISPLACE_ORTHO _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - - Data items in the ATOM_SITE_FOURIER_WAVE_VECTOR category record - details about the wave vectors of the Fourier terms used in the - structural model. + + 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. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_FOURIER_WAVE_VECTOR + _name.object_id ATOM_SITE_DISPLACE_ORTHO loop_ - _category_key.name '_atom_site_Fourier_wave_vector.id' - + _category_key.name '_atom_site_displace_ortho.id' + save_ -save__atom_site_Fourier_wave_vector.description +save_atom_site_displace_ortho.atom_site_label - _definition.id '_atom_site_Fourier_wave_vector.description' + _definition.id '_atom_site_displace_ortho.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_Fourier_wave_vector_description' + '_atom_site_displace_ortho_atom_site_label' _description.text ; - A description of the linear combination involved in a given - Fourier wave vector used to describe the atomic modulation - functions. -; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id description - _type.purpose Describe - _type.source Recorded - _type.container Single - _type.contents Text - loop_ - _description_example.case - "q(4)=q(1)+q(2)" - -save_ - -save__atom_site_Fourier_wave_vector.id - - _definition.id '_atom_site_Fourier_wave_vector.id' - _definition.update 2017-03-11 - loop_ - _alias.definition_id - '_atom_site_Fourier_wave_vector_id' - _description.text -; - - A code identifying each wave vector. + 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. ; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id id - _type.purpose Key - _type.source Assigned + _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 Code save_ +save_atom_site_displace_ortho.axis -save__atom_site_Fourier_wave_vector.seq_id - - _definition.id '_atom_site_Fourier_wave_vector.seq_id' + _definition.id '_atom_site_displace_ortho.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_Fourier_wave_vector_seq_id' + '_atom_site_displace_ortho_axis' _description.text ; - A numeric code identifying the wave vectors defined in - _atom_site_Fourier_wave_vector.* -; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id seq_id - _type.purpose Key + 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. +; + _name.category_id atom_site_displace_ortho + _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' save_ -save__atom_site_Fourier_wave_vector.x +save_atom_site_displace_ortho.func_id - _definition.id '_atom_site_Fourier_wave_vector.x' + _definition.id '_atom_site_displace_ortho.func_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_Fourier_wave_vector_x' + '_atom_site_displace_ortho_func_id' _description.text ; - Wave vectors of the Fourier terms used in the structural model - to describe the atomic modulation functions, expressed with - respect to the three-dimensional reciprocal basis that spans - the lattice of main reflections. They are linear combinations - with integer coefficients of the independent wave vectors given - in the _cell_wave_vector_ list. Therefore, a generic Fourier wave - vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given - by _cell_modulation_dimension. In the case of composites - described in a single data block, these wave vectors are - expressed with respect to the three-dimensional reciprocal - basis of each subsystem (see _cell_subsystem.matrix_W_*). + 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. ; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id x - _type.purpose Number - _type.source Derived + _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 Real - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_displace_ortho.id -save__atom_site_Fourier_wave_vector.y - - _definition.id '_atom_site_Fourier_wave_vector.y' + _definition.id '_atom_site_displace_ortho.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_Fourier_wave_vector_y' + '_atom_site_displace_ortho_id' _description.text ; - Wave vectors of the Fourier terms used in the structural model - to describe the atomic modulation functions, expressed with - respect to the three-dimensional reciprocal basis that spans - the lattice of main reflections. They are linear combinations - with integer coefficients of the independent wave vectors given - in the _cell_wave_vector_ list. Therefore, a generic Fourier wave - vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given - by _cell_modulation_dimension. In the case of composites - described in a single data block, these wave vectors are - expressed with respect to the three-dimensional reciprocal - basis of each subsystem (see _cell_subsystem.matrix_W_*). + 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. ; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id y - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_ortho + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_displace_ortho.matrix_seq_id -save__atom_site_Fourier_wave_vector.z - - _definition.id '_atom_site_Fourier_wave_vector.z' + _definition.id '_atom_site_displace_ortho.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_Fourier_wave_vector_z' + '_atom_site_displace_ortho_matrix_seq_id' _description.text ; - Wave vectors of the Fourier terms used in the structural model - to describe the atomic modulation functions, expressed with - respect to the three-dimensional reciprocal basis that spans - the lattice of main reflections. They are linear combinations - with integer coefficients of the independent wave vectors given - in the _cell_wave_vector_ list. Therefore, a generic Fourier wave - vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given - by _cell_modulation_dimension. In the case of composites - described in a single data block, these wave vectors are - expressed with respect to the three-dimensional reciprocal - basis of each subsystem (see _cell_subsystem.matrix_W_*). + 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. ; - _name.category_id atom_site_Fourier_wave_vector - _name.object_id z - _type.purpose Number - _type.source Derived + _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 Real - _enumeration.default 0.0 + _type.contents Code save_ +save_ATOM_SITE_DISPLACE_ORTHO_PARAM -save_ATOM_SITE_OCC_FOURIER - - _definition.id ATOM_SITE_OCC_FOURIER + _definition.id ATOM_SITE_DISPLACE_ORTHO_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the ATOM_SITE_OCC_FOURIER category record details - about the Fourier components of the occupational modulation of - the atom sites in a modulated structure. The (in general complex) - coefficients of each Fourier component belong to the category - ATOM_SITE_OCC_FOURIER_PARAM and are listed separately. + 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. + ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_FOURIER + _name.object_id ATOM_SITE_DISPLACE_ORTHO_PARAM loop_ - _category_key.name '_atom_site_occ_Fourier.id' + _category_key.name '_atom_site_displace_ortho_param.id' save_ +save_atom_site_displace_ortho_param.coeff -save__atom_site_occ_Fourier.atom_site_label - - _definition.id '_atom_site_occ_Fourier.atom_site_label' + _definition.id '_atom_site_displace_ortho_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_Fourier_atom_site_label' + '_atom_site_displace_ortho_param_coeff' _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 atomic anisotropic (or isotropic) displacement - parameters (referred to as modulation of thermal parameters, - since the term 'displacement parameters' is ambiguous in this - context). _atom_site_occ_Fourier.atom_site_label is the code that - identifies an atom in a loop in which the Fourier components of - its occupational 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. + 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 defined by the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_ortho.matrix_seq_id. ; - _name.category_id atom_site_occ_Fourier - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related + _name.category_id atom_site_displace_ortho_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 save_ +save_atom_site_displace_ortho_param.id -save__atom_site_occ_Fourier.id - - _definition.id '_atom_site_occ_Fourier.id' + _definition.id '_atom_site_displace_ortho_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_Fourier_id' + '_atom_site_displace_ortho_param_id' _description.text ; - A code identifying each component of the occupational modulation - of a given atom or rigid group when the modulation is - expressed in terms of Fourier series. + 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_occ_Fourier + _name.category_id atom_site_displace_ortho_param _name.object_id id - _type.purpose Key - _type.source Assigned + _name.linked_item_id '_atom_site_displace_ortho.id' + _type.purpose Link + _type.source Related _type.container Single _type.contents Code save_ +save_ATOM_SITE_DISPLACE_SPECIAL_FUNC -save__atom_site_occ_Fourier.wave_vector_seq_id - - _definition.id '_atom_site_occ_Fourier.wave_vector_seq_id' + _definition.id ATOM_SITE_DISPLACE_SPECIAL_FUNC + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_occ_Fourier_wave_vector_seq_id' _description.text ; - A numeric code identifying the wave vectors of the Fourier terms - used in the structural model to describe the modulation functions - corresponding to the occupational part of the distortion. This - code must match _atom_site_Fourier_wave_vector.seq_id. -; - _name.category_id atom_site_occ_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 + 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. -save_ + 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_ATOM_SITE_OCC_FOURIER_PARAM + 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 - _definition.id ATOM_SITE_OCC_FOURIER_PARAM - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 - _description.text -; + 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 - Data items in the ATOM_SITE_OCC_FOURIER_PARAM category record - details about the coefficients of the Fourier series used to - describe the occupational modulation of the atom sites in a - modulated structure. The Fourier components are defined in the - category ATOM_SITE_OCC_FOURIER and are listed separately. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_FOURIER_PARAM - loop_ - _category_key.name '_atom_site_occ_Fourier_param.id' + _name.object_id ATOM_SITE_DISPLACE_SPECIAL_FUNC + _category_key.name '_atom_site_displace_special_func.atom_site_label' save_ +save_atom_site_displace_special_func.atom_site_label -save__atom_site_occ_Fourier_param.cos - - _definition.id '_atom_site_occ_Fourier_param.cos' + _definition.id '_atom_site_displace_special_func.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_Fourier_param_cos' + '_atom_site_displace_special_func_atom_site_label' _description.text ; - The occupational distortion of a given atom or rigid group is - usually parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Pc cos(2\\p k r)+Ps sin(2\\p k r), - and the modulus-argument form, - |P| cos(2\\p k r+\\d), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_occ_Fourier_param.cos is the cosine - coefficient (Pc) corresponding to the Fourier term defined by - _atom_site_occ_Fourier.atom_site_label and - _atom_site_occ_Fourier.wave_vector_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_occ_Fourier_param - _name.object_id cos - _type.purpose Number - _type.source Derived + _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 Real - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_displace_special_func.matrix_seq_id -save__atom_site_occ_Fourier_param.id - - _definition.id '_atom_site_occ_Fourier_param.id' + _definition.id '_atom_site_displace_special_func.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_Fourier_param_id' + '_atom_site_displace_special_func_matrix_seq_id' _description.text ; - A code identifying the (in general complex) coefficient of each - term present in the Fourier series describing the occupational - modulation of a given atom or rigid group. This code must match - _atom_site_occ_Fourier.id. + 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. ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id id - _name.linked_item_id '_atom_site_occ_Fourier.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 - save_ +save_atom_site_displace_special_func.sawtooth -save__atom_site_occ_Fourier_param.modulus - - _definition.id '_atom_site_occ_Fourier_param.modulus' + _definition.id '_atom_site_displace_special_func.sawtooth' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_occ_Fourier_param_modulus' _description.text ; - The occupational distortion of a given atom or rigid group is - usually parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Pc cos(2\\p k r)+Ps sin(2\\p k r), - and the modulus-argument form, - |P| cos(\2\p k r+\\d), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_occ_Fourier.param_modulus is the - modulus (|P|) of the complex amplitude corresponding to the - Fourier term defined by _atom_site_occ_Fourier.atom_site_label - and _atom_site_occ_Fourier.wave_vector_seq_id. + _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 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. + + 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 + + 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_occ_Fourier_param - _name.object_id modulus - _type.purpose Number - _type.source Derived - _type.container Single + _name.category_id atom_site_displace_special_func + _name.object_id sawtooth + _type.purpose Measurand + _type.source Assigned + _type.container Matrix _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0: + _type.dimension [3] + _enumeration.default [0.0,0.0,0.0] + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as atom_site_displace_special_func -save_ + atom_site_displace_special_func.sawtooth = [ + + 2 * [f.sawtooth_ax, f.sawtooth_ay, f.sawtooth_az] * + (( sawtooth_x4 – f.sawtooth_c) / f.sawtooth_w )] +; +save_ -save__atom_site_occ_Fourier_param.phase +save_atom_site_displace_special_func.sawtooth_axyz - _definition.id '_atom_site_occ_Fourier_param.phase' + _definition.id '_atom_site_displace_special_func.sawtooth_axyz' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_occ_Fourier_param_phase' - _description.text ; - The occupational distortion of a given atom or rigid group is - usually parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Pc cos(2\\p k r)+Ps sin(2\\p k r), - and the modulus-argument form, - |P| cos(2\\p k r+\\d), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_occ_Fourier_param.phase is the phase - (\d/2\\p) in cycles corresponding to the Fourier term defined by\ - _atom_site_occ_Fourier.atom_site_label and - _atom_site_occ_Fourier.wave_vector_seq_id. + 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_occ_Fourier_param - _name.object_id phase - _type.purpose Number - _type.source Derived - _type.container Single + _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 - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 -_units.code cycles + _type.dimension [3] + _enumeration.default [0.0,0.0,0.0] + loop_ + _method.purpose + _method.expression + Evaluation +; + With s as atom_site_displace_special_func + atom_site_displace_special_func.sawtooth_axyz = + [ s.sawtooth_ax, s.sawtooth_ay, s.sawtooth_az ] +; save_ +save_atom_site_displace_special_func.sawtooth_ax -save__atom_site_occ_Fourier_param.sin - - _definition.id '_atom_site_occ_Fourier_param.sin' + _definition.id '_atom_site_displace_special_func.sawtooth_ax' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_Fourier_param_sin' + '_atom_site_displace_special_func_sawtooth_ax' _description.text ; - The occupational distortion of a given atom or rigid group is - usually parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Pc cos(2\\p k r)+Ps sin(2\\p k r), - and the modulus-argument form, - |P| cos(2\\p k r+\\d), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_occ_Fourier_param.sin is the sine - coefficient (Ps) corresponding to the Fourier term defined by - _atom_site_occ_Fourier.atom_site_label and - _atom_site_occ_Fourier.wave_vector_seq_id. + The amplitude (maximum displacement) along the a (or a1) axis of the sawtooth + function described in _atom_site_displace_special_func.sawtooth ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id sin - _type.purpose Number - _type.source Derived + _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_ -save_ATOM_SITE_OCC_SPECIAL_FUNC +save_atom_site_displace_special_func.sawtooth_ay - _definition.id ATOM_SITE_OCC_SPECIAL_FUNC - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_displace_special_func.sawtooth_ay' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_displace_special_func_sawtooth_ay' _description.text ; - Data items in the ATOM_SITE_OCC_SPECIAL_FUNC category - record details about the occupational modulation of a given atom - or rigid group 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 JANA suite - of programs. 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 JANA2000 have been included. - These are: - (1) Sawtooth functions for atomic displacive modulation along - x, y and z. - (2) Crenel functions for the occupational modulation of atoms - and rigid groups. Both of these only apply to - one-dimensional modulated structures. + The amplitude (maximum displacement) along the b (or a2) axis of the sawtooth + function described in _atom_site_displace_special_func.sawtooth ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_SPECIAL_FUNC + _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_ - _category_key.name '_atom_site_occ_special_func.id' - -save_ + _method.purpose + _method.expression + Evaluation +; + With s as atom_site_displace_special_func + atom_site_displace_special_func.sawtooth_ay = s.sawtooth_axyz[1] +; +save_ -save__atom_site_occ_special_func.atom_site_label +save_atom_site_displace_special_func.sawtooth_az - _definition.id '_atom_site_occ_special_func.atom_site_label' + _definition.id '_atom_site_displace_special_func.sawtooth_az' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_atom_site_label' + '_atom_site_displace_special_func_sawtooth_az' _description.text ; - The code that identifies an atom or rigid group in a loop in - which the parameters of the special function that describes its - occupational 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. + The amplitude (maximum displacement) along the c (or a3) axis of the sawtooth + function described in _atom_site_displace_special_func.sawtooth ; - _name.category_id atom_site_occ_special_func - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related + _name.category_id atom_site_displace_special_func + _name.object_id sawtooth_az + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Code + _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_az = s.sawtooth_axyz[2] +; +save_ -save__atom_site_occ_special_func.crenel_c +save_atom_site_displace_special_func.sawtooth_c - _definition.id '_atom_site_occ_special_func.crenel_c' + _definition.id '_atom_site_displace_special_func.sawtooth_c' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_crenel_c' + '_atom_site_displace_special_func_sawtooth_c' _description.text ; - _atom_site_occ_special_func_crenel_ items are the adjustable - parameters of a crenel function. - - An occupational crenel function along the internal space is - defined as follows: - p(x4)=1 if x4 belongs to the interval [c-w/2,c+w/2] - p(x4)=0 if x4 is outside the interval [c-w/2,c+w/2], - where x4 is the internal coordinate, c is the centre of the - function in internal space and w is its width. The use of this - function is restricted to one-dimensional modulated structures. - For more details, see the manual for JANA2000 - (Petricek & Dusek, 2000). - Reference: Petricek, V. & Dusek, M. (2000). JANA2000. The - crystallographic computing system. Institute of Physics, Prague, - Czech Republic. + The centre of the sawtooth function described in + _atom_site_displace_special_func.sawtooth ; - _name.category_id atom_site_occ_special_func - _name.object_id crenel_c - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_special_func + _name.object_id sawtooth_c + _type.purpose Measurand + _type.source Related _type.container Single _type.contents Real _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + save_ +save_atom_site_displace_special_func.sawtooth_w -save__atom_site_occ_special_func.crenel_w - - _definition.id '_atom_site_occ_special_func.crenel_w' + _definition.id '_atom_site_displace_special_func.sawtooth_w' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_crenel_w' + '_atom_site_displace_special_func_sawtooth_w' _description.text ; - _atom_site_occ_special_func_crenel_ items are the adjustable - parameters of a crenel function. - - An occupational crenel function along the internal space is - defined as follows: - p(x4)=1 if x4 belongs to the interval [c-w/2,c+w/2] - p(x4)=0 if x4 is outside the interval [c-w/2,c+w/2], - where x4 is the internal coordinate, c is the centre of the - function in internal space and w is its width. The use of this - function is restricted to one-dimensional modulated structures. - For more details, see the manual for JANA2000 - (Petricek & Dusek, 2000). - Reference: Petricek, V. & Dusek, M. (2000). JANA2000. The - crystallographic computing system. Institute of Physics, Prague, - Czech Republic. + The width of the sawtooth function described in + _atom_site_displace_special_func.sawtooth ; - _name.category_id atom_site_occ_special_func - _name.object_id crenel_w - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_special_func + _name.object_id sawtooth_w + _type.purpose Measurand + _type.source Related _type.container Single _type.contents Real _enumeration.default 0.0 + _enumeration.range 0.0:1.0 save_ -save__atom_site_occ_special_func.id +save_atom_site_displace_special_func.zigzag - _definition.id '_atom_site_occ_special_func.id' - _definition.update 2017-03-11 - loop_ - _alias.definition_id - '_atom_site_occ_special_func_id' - _description.text + _definition.id '_atom_site_displace_special_func.zigzag' + _definition.update 2014-06-27 +_description.text ; - A code identifying each distinct special function. + _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: + + 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)] + + 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 + + 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., 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_occ_special_func - _name.object_id id - _type.purpose Key + _name.category_id atom_site_displace_special_func + _name.object_id zigzag + _type.purpose Measurand _type.source Assigned - _type.container Single - _type.contents Code - -save_ + _type.container Matrix + _type.contents Real + _type.dimension [3] + _enumeration.default [0.0,0.0,0.0] + loop_ + _method.purpose + _method.expression + Evaluation +; + 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 )] +; +save_ -save_ATOM_SITE_PHASON +save_atom_site_displace_special_func.zigzag_axyz - _definition.id ATOM_SITE_PHASON - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_displace_special_func.zigzag_axyz' _definition.update 2014-06-27 _description.text ; - Data items in the ATOM_SITE_PHASON category record details - about the atomic phason correction. Although this kind of - correction is intended to be overall, some refinement programs - (for example, JANA2000) allow for this (theoretically dubious) - atom-dependent phason treatment. + The vector of amplitudes (maximum displacements) along the a (or a1), + b (or a2) and c (or a3) axis of the zigzag function described in + _atom_site_displace_special_func.zigzag ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_PHASON + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_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_ - _category_key.name '_atom_site_phason.id' + _method.purpose + _method.expression + Evaluation +; + With s as atom_site_displace_special_func + atom_site_displace_special_func.zigzag_axyz = + [ s.zigzag_ax, s.zigzag_ay, s.zigzag_az ] +; save_ -save__atom_site_phason.id +save_atom_site_displace_special_func.zigzag_ax - _definition.id '_atom_site_phason.id' + _definition.id '_atom_site_displace_special_func.zigzag_ax' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_displace_special_func_zigzag_ax' _description.text ; - A code identifying each component of the occupational modulation - of a given atom or rigid group when the modulation is - expressed in terms of Fourier series. + The amplitude (maximum displacement) along the a (or a1) axis of the + zigzag function described in _atom_site_displace_special_func.zigzag ; - _name.category_id atom_site_phason - _name.object_id id - _type.purpose Key + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_ax + _type.purpose Measurand _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With s as atom_site_displace_special_func + + atom_site_displace_special_func.zigzag_ax = s.zigzag_axyz[0] +; save_ -save__atom_site_phason.atom_site_label +save_atom_site_displace_special_func.zigzag_ay - _definition.id '_atom_site_phason.atom_site_label' + _definition.id '_atom_site_displace_special_func.zigzag_ay' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_phason_atom_site_label' + '_atom_site_displace_special_func_zigzag_ay' _description.text ; - The code that identifies an atom or rigid group in a loop in - which the phason coefficients are listed. Although this kind of - correction is intended to be overall, some refinement programs - (for example, JANA2000) allow an independent phason correction - for each atom or rigid group. In this case, - _atom_site_phason.formula and _atom_site_phason.coeff should be - used (see also _refine.ls_mod_overall_phason_*). This code must - match the _atom_site.label of the associated coordinate list and - conform to the rules described in _atom_site.label. + The amplitude (maximum displacement) along the b (or a2) axis of the + zigzag function described in _atom_site_displace_special_func.zigzag ; - _name.category_id atom_site_phason - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_ay + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Code + _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.zigzag_ay = s.zigzag_axyz[1] +; +save_ -save__atom_site_phason.coeff +save_atom_site_displace_special_func.zigzag_az - _definition.id '_atom_site_phason.coeff' + _definition.id '_atom_site_displace_special_func.zigzag_az' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_phason_coeff' + '_atom_site_displace_special_func_zigzag_az' _description.text ; - The phason coefficient used to calculate (with the appropriate - expression given in _atom_site_phason.formula) the atomic phason - correction. Although this kind of correction is intended to be - overall, some refinement programs (for example, JANA2000) allow - an independent phason correction for each atom or rigid group. In - this case, _atom_site_phason.formula and _atom_site_phason.coeff - should be used (see also _refine.ls_mod_overall_phason_*). + The amplitude (maximum displacement) along the c (or a3) axis of the + zigzag function described in _atom_site_displace_special_func.zigzag ; - _name.category_id atom_site_phason - _name.object_id coeff - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_az + _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 +; + With s as atom_site_displace_special_func -save_ + atom_site_displace_special_func.zigzag_az = s.zigzag_axyz[2] +; +save_ -save__atom_site_phason.formula +save_atom_site_displace_special_func.zigzag_c - _definition.id '_atom_site_phason.formula' + _definition.id '_atom_site_displace_special_func.zigzag_c' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_phason_formula' + '_atom_site_displace_special_func_zigzag_c' _description.text ; - The formula used for the phason correction. Although both kinds - of corrections are intended to be overall, some refinement - programs (for example, JANA2000) allow an independent phason - correction for each atom or rigid group. In this case, - _atom_site_phason.formula and _atom_site_phason.coeff should - be used (see also _refine.ls_mod_overall_phason_*). + The centre of the zigzag function described in + _atom_site_displace_special_func.zigzag ; - _name.category_id atom_site_phason - _name.object_id formula - _type.purpose State - _type.source Assigned + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_c + _type.purpose Measurand + _type.source Related _type.container Single - _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - Axe 'Axe, J. D. (1980). Phys. Rev. B, 21, 4181-4190.' - Ovr 'Overhauser, A. W. (1971). Phys. Rev. B, 3, 3173-3182.' + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + save_ +save_atom_site_displace_special_func.zigzag_w -save_ATOM_SITE_ROT_FOURIER + _definition.id '_atom_site_displace_special_func.zigzag_w' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_displace_special_func_zigzag_w' + _description.text +; - _definition.id ATOM_SITE_ROT_FOURIER + The width of the zigzag function described in + _atom_site_displace_special_func.zigzag +; + _name.category_id atom_site_displace_special_func + _name.object_id zigzag_w + _type.purpose Measurand + _type.source Related + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + +save_ + +save_ATOM_SITE_DISPLACE_XHARM + + _definition.id ATOM_SITE_DISPLACE_XHARM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _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 of 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. x-harmonic functions are defined from the set (Petricek, Eigner, + Dusek & Cejchan, 2016): - Data items in the ATOM_SITE_ROT_FOURIER category record details - about the Fourier components present in the rotational part of - the displacive modulation of a given rigid group. The - translational part would appear in a separate list of items - belonging to the ATOM_SITE_DISPLACE_FOURIER category. The (in - general complex) coefficients of each Fourier component belong - to the category ATOM_SITE_ROT_FOURIER_PARAM and are listed - separately. + {1, x, sin(\p x), cos(\p x), … , sin(n\p x), cos(n\p x)} + + and a subsequent orthogonalization (see the above reference and the + supplementary material) owing to the presence of x which is not orthogonal to + sin(n\p x) (for any n). Notice that x-harmonics are restricted to one- + dimensional cases and include as a particular case the sawtooth modulation. + + Data items in the ATOM_SITE_DISPLACE_XHARM category record details about the + x-harmonic functions 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_XHARM category. The coefficients of each + x-harmonic function belong to the category ATOM_SITE_DISPLACE_XHARM_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 + + 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 MS_GROUP - _name.object_id ATOM_SITE_ROT_FOURIER +_name.category_id MS_GROUP + _name.object_id ATOM_SITE_DISPLACE_XHARM loop_ - _category_key.name '_atom_site_rot_Fourier.id' - + _category_key.name '_atom_site_displace_xharm.id' + save_ +save_atom_site_displace_xharm.atom_site_label -save__atom_site_rot_Fourier.atom_site_label - - _definition.id '_atom_site_rot_Fourier.atom_site_label' + _definition.id '_atom_site_displace_xharm.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_atom_site_label' + '_atom_site_displace_xharm_atom_site_label' _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 atomic anisotropic (or isotropic) displacement - parameters (referred to as modulation of thermal parameters, - since the term 'displacement parameters' is ambiguous in this - context). _atom_site_rot_Fourier.atom_site_label is the code that - identifies a rigid group in a loop in which the Fourier - components of the rotational part of its displacive modulation - are listed. The translational part (if any) would appear in a - separate list (see _atom_site_displace_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_rot_Fourier + and/or the anisotropic (or isotropic) ADP. + _atom_site_displace_xharm.atom_site_label is the code that identifies + an atom or rigid group in a loop in which the x-harmonics 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_xharm.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_xharm _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -1658,177 +1813,182 @@ save__atom_site_rot_Fourier.atom_site_label save_ +save_atom_site_displace_xharm.axis -save__atom_site_rot_Fourier.axis - - _definition.id '_atom_site_rot_Fourier.axis' + _definition.id '_atom_site_displace_xharm.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_axis' + '_atom_site_displace_xharm_axis' _description.text ; - A label identifying the rotation component around a fixed point - of a given rigid group whose modulation 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 - _atom_sites_rot_Fourier.axes_description. -; - _name.category_id atom_site_rot_Fourier + A label identifying the displacement component of a given atom + or rigid group that is being parameterized by x-harmonic 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_xharm.matrix_seq_id. +; + _name.category_id atom_site_displace_xharm _name.object_id axis _type.purpose State _type.source Assigned _type.container Single _type.contents Code loop_ - _enumeration_set.state - _enumeration_set.detail - x 'rotation around the a axis' - y 'rotation around the b axis' - z 'rotation around the c axis' - a1 'rotation around an arbitrary a1 axis' - a2 'rotation around an arbitrary a2 axis' - a3 'rotation around an arbitrary a3 axis' + _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' save_ +save_atom_site_displace_xharm.id -save__atom_site_rot_Fourier.id - - _definition.id '_atom_site_rot_Fourier.id' + _definition.id '_atom_site_displace_xharm.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_id' + '_atom_site_displace_xharm_id' _description.text ; - A code identifying each component of the rotational modulation of - a given rigid group when the modulation is expressed in terms of - Fourier series. + A code identifying each component of the displacive modulation of + a given atom or rigid group when the modulation is expressed in + terms of x-harmonics. In the case of a rigid group, it applies + only to the translational part of the distortion. ; - _name.category_id atom_site_rot_Fourier + _name.category_id atom_site_displace_xharm _name.object_id id _type.purpose Key - _type.source Assigned + _type.source Related _type.container Single _type.contents Code save_ +save_atom_site_displace_xharm.matrix_seq_id -save__atom_site_rot_Fourier.wave_vector_seq_id - - _definition.id '_atom_site_rot_Fourier.wave_vector_seq_id' + _definition.id '_atom_site_displace_xharm.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_wave_vector_seq_id' + '_atom_site_displace_xharm_matrix_seq_id' _description.text ; - A numeric code identifying the wave vectors of the Fourier terms - used in the structural model to describe the modulation functions - corresponding to the rotational distortion of a rigid group. This - code must match _atom_site_Fourier_wave_vector.seq_id. + 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. ; - _name.category_id atom_site_rot_Fourier - _name.object_id wave_vector_seq_id - _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' - _type.purpose Link + _name.category_id atom_site_displace_xharm + _name.object_id matrix_seq_id + _name.linked_item_id '_atom_sites_axes.matrix_seq_id' + _type.purpose Number _type.source Related _type.container Single _type.contents Code save_ +save_atom_site_displace_xharm.order -save_ATOM_SITE_ROT_FOURIER_PARAM + _definition.id '_atom_site_displace_xharm.order' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_displace_xharm_order' + _description.text +; - _definition.id ATOM_SITE_ROT_FOURIER_PARAM + The order of each x-harmonic function. +; + _name.category_id atom_site_displace_xharm + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Count + +save_ + +save_ATOM_SITE_DISPLACE_XHARM_PARAM + + _definition.id ATOM_SITE_DISPLACE_XHARM_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the ATOM_SITE_ROT_FOURIER_PARAM category record - details about the coefficients of the Fourier series used to - describe the rotational component of the displacive modulation of - a given rigid group. The translational part would appear in a - separate list of items belonging to the - ATOM_SITE_DISPLACE_FOURIER_PARAM category. The Fourier components - are defined in the category ATOM_SITE_ROT_FOURIER and are listed - separately. + Data items in the ATOM_SITE_DISPLACE_XHARM_PARAM category + record details about the coefficients of the x-harmonic functions + functions defined in ATOM_SITE_DISPLACE_XHARM 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_XHARM_PARAM category. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_ROT_FOURIER_PARAM + _name.object_id ATOM_SITE_DISPLACE_XHARM_PARAM loop_ - _category_key.name '_atom_site_rot_Fourier_param.id' + _category_key.name '_atom_site_displace_xharm_param.id' save_ +save_atom_site_displace_xharm_param.coeff -save__atom_site_rot_Fourier_param.cos - - _definition.id '_atom_site_rot_Fourier_param.cos' + _definition.id '_atom_site_displace_xharm_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_cos' + '_atom_site_displace_xharm_param_coeff' _description.text ; - The displacive distortion of a given rigid group is not - completely described by _atom_site_displace_Fourier.*. The rigid - rotation of the group around a given axis passing through a fixed - point (for example, the centre of mass of the group) is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Rc cos(2\\p k r)+Rs sin(2\\p k r), - and the modulus-argument form, - |R| cos(2\\p k r+\\y), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_rot_Fourier_param_cos is the cosine - coefficient (Rc) in degrees corresponding to the Fourier term - defined by - _atom_site_rot_Fourier.atom_site_label, - _atom_site_rot_Fourier.axis and - _atom_site_rot_Fourier.wave_vector_seq_id. + The coefficient corresponding to the x-harmonic function + defined by _atom_site_displace_xharm.atom_site_label, + _atom_site_displace_xharm.axis and _atom_site_displace_xharm.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 defined by the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_xharm.matrix_seq_id. ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id cos - _type.purpose Number - _type.source Derived + _name.category_id atom_site_displace_xharm_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real _enumeration.default 0.0 -_units.code degrees save_ +save_atom_site_displace_xharm_param.id -save__atom_site_rot_Fourier_param.id - - _definition.id '_atom_site_rot_Fourier_param.id' + _definition.id '_atom_site_displace_xharm_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_id' + '_atom_site_displace_xharm_param_id' _description.text ; - A code identifying the (in general complex) coefficient of each - term present in the Fourier series describing the rotational part - of the displacive modulation of a given rigid group. This code - must match _atom_site_rot_Fourier.id. + A code identifying the coefficient of each x-harmonic function + 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_xharm.id. ; - _name.category_id atom_site_rot_Fourier_param + _name.category_id atom_site_displace_xharm_param _name.object_id id - _name.linked_item_id '_atom_site_rot_Fourier.id' + _name.linked_item_id '_atom_site_displace_xharm.id' _type.purpose Link _type.source Related _type.container Single @@ -1836,4967 +1996,12798 @@ save__atom_site_rot_Fourier_param.id save_ +save_ATOM_SITE_FOURIER_WAVE_VECTOR -save__atom_site_rot_Fourier_param.modulus - - _definition.id '_atom_site_rot_Fourier_param.modulus' + _definition.id ATOM_SITE_FOURIER_WAVE_VECTOR + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_rot_Fourier_param_modulus' _description.text ; - The displacive distortion of a given rigid group is not - completely described by _atom_site_displace_Fourier_. The rigid - rotation of the group around a given axis passing through a fixed - point (for example, the centre of mass of the group) is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Rc cos(2\\p k r)+Rs sin(2\\p k r), - and the modulus-argument form, - |R| cos(2\\p k r+\\y), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_rot_Fourier_param.modulus is the - modulus (|R|) in degrees of the complex amplitude corresponding - to the Fourier term defined by - _atom_site_rot_Fourier.atom_site_label, - _atom_site_rot_Fourier.axis and - _atom_site_rot_Fourier.wave_vector_seq_id. + Data items in the ATOM_SITE_FOURIER_WAVE_VECTOR category record + details about the wave vectors of the Fourier terms used in the + structural model. ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id modulus - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0: -_units.code degrees + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_FOURIER_WAVE_VECTOR + loop_ + _category_key.name '_atom_site_Fourier_wave_vector.seq_id' save_ +save_atom_site_Fourier_wave_vector.description -save__atom_site_rot_Fourier_param.phase - - _definition.id '_atom_site_rot_Fourier_param.phase' + _definition.id '_atom_site_Fourier_wave_vector.description' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_phase' + '_atom_site_Fourier_wave_vector_description' _description.text ; - The displacive distortion of a given rigid group is not - completely described by _atom_site_displace_Fourier_. The rigid - rotation of the group around a given axis passing through a fixed - point (for example, the centre of mass of the group) is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Rc cos(2\\p k r)+Rs sin(2\\p k r), - and the modulus-argument form, - |R| cos(2\\p k r+\\y), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_rot_Fourier_param.phase is the phase - (\y/2\\p) in cycles of the complex amplitude corresponding to the - Fourier term defined by - _atom_site_rot_Fourier.atom_site_label, - _atom_site_rot_Fourier.axis and - _atom_site_rot_Fourier.wave_vector_seq_id. + A description of the linear combination involved in a given + Fourier wave vector used to describe the atomic modulation + functions. ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id phase - _type.purpose Number - _type.source Derived + _name.category_id atom_site_Fourier_wave_vector + _name.object_id description + _type.purpose Describe + _type.source Recorded _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 -_units.code cycles + _type.contents Text + loop_ + _description_example.case + "q(4)=q(1)+q(2)" save_ +save_atom_site_Fourier_wave_vector.seq_id -save__atom_site_rot_Fourier_param.sin - - _definition.id '_atom_site_rot_Fourier_param.sin' - _definition.update 2014-06-27 + _definition.id '_atom_site_Fourier_wave_vector.seq_id' + _definition.update 2017-03-11 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_sin' + '_atom_site_Fourier_wave_vector_seq_id' _description.text ; - The displacive distortion of a given rigid group is not - completely described by _atom_site_displace_Fourier_. The rigid - rotation of the group around a given axis passing through a fixed - point (for example, the centre of mass of the group) is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - Rc cos(2\\p k r)+Rs sin(2\\p k r), - and the modulus-argument form, - |R| cos(2\\p k r+\\y), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_rot_Fourier_param.sin is the sine - coefficient (Rs) in degrees corresponding to the Fourier term - defined by - _atom_site_rot_Fourier.atom_site_label, - _atom_site_rot_Fourier.axis and - _atom_site_rot_Fourier.wave_vector_seq_id. + A numeric code identifying the wave vectors defined in + _atom_site_Fourier_wave_vector.* ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id sin - _type.purpose Number - _type.source Derived + _name.category_id atom_site_Fourier_wave_vector + _name.object_id seq_id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 -_units.code degrees + _type.contents Count + _enumeration.range [0:] + _enumeration.default 1 save_ +save_atom_site_Fourier_wave_vector.q_coeff -save_ATOM_SITE_U_FOURIER - - _definition.id ATOM_SITE_U_FOURIER - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_Fourier_wave_vector.q_coeff' _definition.update 2014-06-27 _description.text ; - Data items in the ATOM_SITE_U_FOURIER category record details - about the Fourier components describing the modulation of the - atomic thermal parameters in a modulated structure. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). + _atom_site_Fourier_wave_vector.coeff contains the coefficients that + express a given k as a linear combination of the independent wave vectors + given in _cell_modulation_dimension. The enumeration of the independent + wave vectors (1,2, …) is given by the value of + _atom_site_Fourier_wave_vector_.q_coeff_seq_id matching the + corresponding value of _cell_wave_vector.seq_id ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_U_FOURIER + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q_coeff + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Integer + _type.dimension [] + _enumeration.default [0] loop_ - _category_key.name '_atom_site_U_Fourier.id' + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + temp.q_coeff = [m.q1_coeff, m.q2_coeff, m.q3_coeff, m.q4_coeff, + m.q5_coeff, m.q6_coeff, m.q7_coeff, m.q8_coeff] -save_ +#Not meaningful coefficients are removed here + atom_site_Fourier_wave_vector.q_coeff = + temp.q_coeff[0:_cell_modulation_dimension-1] +; +save_atom_site_Fourier_wave_vector.q_coeff_seq_id -save__atom_site_U_Fourier.atom_site_label + _definition.id '_atom_site_Fourier_wave_vector.q_coeff_seq_id' + _definition.update 2014-06-27 + _description.text +; - _definition.id '_atom_site_U_Fourier.atom_site_label' + The list of codes that identifies each independent wave vector + appearing in the linear combination that expresses a generic + Fourier wave vector as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). +; + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q_coeff_seq_id + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Code + _type.dimension [] + _enumeration.default [1] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + temp.q_coeff_seq_id = [m.q1_coeff_seq_id, m.q2_coeff_seq_id, + m.q3_coeff_seq_id, m.q4_coeff_seq_id, + m.q5_coeff_seq_id, m.q6_coeff_seq_id, + m.q7_coeff_seq_id, m.q8_coeff_seq_id] + +#Not meaningful identifiers are removed here + atom_site_Fourier_wave_vector.q_coeff_seq_id = + temp.q_coeff_seq_id[0:_cell_modulation_dimension-1] +; + +save_ + +save_atom_site_Fourier_wave_vector.q1_coeff + _definition.id '_atom_site_Fourier_wave_vector.q1_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_atom_site_label' + '_atom_site_Fourier_wave_vector_q1_coeff' _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 atomic anisotropic (or isotropic) displacement - parameters (referred to as modulation of thermal parameters, - since the term 'displacement parameters' is ambiguous in this - context). _atom_site_U_Fourier.atom_site_label is the code that - identifies an atom in a loop in which the Fourier components of - its thermal-parameters 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. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). + _atom_site_Fourier_wave_vector.q1_coeff contains the integer coefficient + of the contribution of the first independent wave vector to the above + linear combination. The enumeration of the involved independent + wave vectors (1,2, …) is given by the value of + _atom_site_Fourier_wave_vecto_.q1_coeff_seq_id matching the + corresponding value of _cell_wave_vector.seq_id. ; - _name.category_id atom_site_U_Fourier - _name.object_id site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q1_coeff + _type.purpose Number + _type.source Assigned _type.container Single - _type.contents Code - -save_ + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q1_coeff = m.q_coeff[ 0 ] +; -save__atom_site_U_Fourier.id +save_ - _definition.id '_atom_site_U_Fourier.id' +save_atom_site_Fourier_wave_vector.q1_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q1_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_id' + '_atom_site_Fourier_wave_vector_q1_coeff_seq_id' _description.text ; - A code identifying each Fourier component used to describe the - modulation of the atomic thermal parameters. + A code identifying the first independent wave vector, q(1), in + the linear combination that expresses a generic Fourier wave + vector as k=n(1)q(1)+...+n(p)q(p), where p is given by + _cell_modulation_dimension. It must match a code given in + _cell_wave_vector.seq_id. ; - _name.category_id atom_site_U_Fourier - _name.object_id id - _type.purpose Key - _type.source Assigned + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q1_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related _type.container Single _type.contents Code + _enumeration.range [1:8] + _enumeration.default 1 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ - + atom_site_Fourier_wave_vector.q1_coeff_seq_id = m.q_coeff_seq_id[ 0 ] +; -save__atom_site_U_Fourier.tens_elem +save_ - _definition.id '_atom_site_U_Fourier.tens_elem' +save_atom_site_Fourier_wave_vector.q2_coeff + _definition.id '_atom_site_Fourier_wave_vector.q2_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_tens_elem' + '_atom_site_Fourier_wave_vector_q2_coeff' _description.text ; - A label identifying the temperature tensor element U(ij) of a - given atom or rigid group whose modulation is being parameterized - by Fourier series. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_U_Fourier - _name.object_id tens_elem - _type.purpose State + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q2_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - U11 'modulation of U11' - U12 'modulation of U12' - U13 'modulation of U13' - U22 'modulation of U22' - U23 'modulation of U23' - U33 'modulation of U33' - Uiso 'modulation of U~isotropic~' - -save_ + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q2_coeff = m.q_coeff[ 1 ] +; -save__atom_site_U_Fourier.wave_vector_seq_id +save_ - _definition.id '_atom_site_U_Fourier.wave_vector_seq_id' +save_atom_site_Fourier_wave_vector.q2_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q2_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_wave_vector_seq_id' + '_atom_site_Fourier_wave_vector_q2_coeff_seq_id' _description.text ; - A numeric code identifying the wave vectors of the Fourier terms - used to describe the modulation functions corresponding to the - temperature factors of an atom or rigid group. This code must - match _atom_site_Fourier_wave_vector.seq_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_U_Fourier - _name.object_id wave_vector_seq_id - _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q2_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' _type.purpose Link _type.source Related _type.container Single _type.contents Code + _enumeration.range [1:8] + _enumeration.default 2 +; + With m as atom_site_Fourier_wave_vector -save_ - + atom_site_Fourier_wave_vector.q2_coeff_seq_id = m.q_coeff_seq_id[ 1 ] +; -save_ATOM_SITE_U_FOURIER_PARAM +save_ - _definition.id ATOM_SITE_U_FOURIER_PARAM - _definition.scope Category - _definition.class Loop +save_atom_site_Fourier_wave_vector.q3_coeff + _definition.id '_atom_site_Fourier_wave_vector.q3_coeff' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_Fourier_wave_vector_q3_coeff' _description.text ; - Data items in the ATOM_SITE_U_FOURIER category record details - about the coefficients of the Fourier series used to describe the - modulation of the atomic thermal parameters in a modulated - structure. The Fourier components are defined in the category - ATOM_SITE_U_FOURIER and are listed separately. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff +; + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q3_coeff + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + + atom_site_Fourier_wave_vector.q3_coeff = m.q_coeff[ 2 ] ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_U_FOURIER_PARAM - loop_ - _category_key.name '_atom_site_U_Fourier_param.id' save_ +save_atom_site_Fourier_wave_vector.q3_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q3_coeff_seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_Fourier_wave_vector_q3_coeff_seq_id' + _description.text +; + + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id +; + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q3_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + _enumeration.range [1:8] + _enumeration.default 3 +; + With m as atom_site_Fourier_wave_vector -save__atom_site_U_Fourier_param.cos + atom_site_Fourier_wave_vector.q3_coeff_seq_id = m.q_coeff_seq_id[ 2 ] +; - _definition.id '_atom_site_U_Fourier_param.cos' +save_ + +save_atom_site_Fourier_wave_vector.q4_coeff + _definition.id '_atom_site_Fourier_wave_vector.q4_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_param_cos' + '_atom_site_Fourier_wave_vector_q4_coeff' _description.text ; - The modulation of the atomic thermal parameters is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - U(ij)c cos(2\\p k r)+U(ij)s sin(2\\p k r), - and the modulus-argument form, - |U(ij)| cos(2\\p k r+\\c), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_U_Fourier_param.cos is the cosine - coefficient [U(ij)c], in angstroms squared, corresponding to - the Fourier term defined by - _atom_site_U_Fourier.atom_site_label, - _atom_site_U_Fourier.tens_elem and - _atom_site_U_Fourier.wave_vector_seq_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_U_Fourier_param - _name.object_id cos + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q4_coeff _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 -_units.code angstrom_squared - -save_ + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q4_coeff = m.q_coeff[ 3 ] +; -save__atom_site_U_Fourier_param.id +save_ - _definition.id '_atom_site_U_Fourier_param.id' +save_atom_site_Fourier_wave_vector.q4_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q4_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_param_id' + '_atom_site_Fourier_wave_vector_q4_coeff_seq_id' _description.text ; - A code identifying the (in general complex) coefficient of each - term present in the Fourier series describing the modulation of - the atomic thermal parameters. This code must match - _atom_site_U_Fourier.id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_U_Fourier_param - _name.object_id id - _name.linked_item_id '_atom_site_U_Fourier.id' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q4_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' _type.purpose Link _type.source Related _type.container Single _type.contents Code + _enumeration.range [1:8] + _enumeration.default 4 +; + With m as atom_site_Fourier_wave_vector -save_ - + atom_site_Fourier_wave_vector.q4_coeff_seq_id = m.q_coeff_seq_id[ 3 ] +; -save__atom_site_U_Fourier_param.modulus +save_ - _definition.id '_atom_site_U_Fourier_param.modulus' +save_atom_site_Fourier_wave_vector.q5_coeff + _definition.id '_atom_site_Fourier_wave_vector.q5_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_param_modulus' + '_atom_site_Fourier_wave_vector_q5_coeff' _description.text ; - The modulation of the atomic thermal parameters is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - U(ij)c cos(2\\p k r)+U(ij)s sin(2\\p k r), - and the modulus-argument form, - |U(ij)| cos(2\\p k r+\\c), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_U_Fourier_param.modulus is the - modulus [|U(ij)|], in angstroms squared, of the complex - amplitudes corresponding to the Fourier term defined by - _atom_site_U_Fourier.atom_site_label, - _atom_site_U_Fourier.tens_elem and - _atom_site_U_Fourier.wave_vector_seq_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_U_Fourier_param - _name.object_id modulus + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q5_coeff _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0: -_units.code angstrom_squared - -save_ + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q5_coeff = m.q_coeff[ 4 ] +; -save__atom_site_U_Fourier_param.phase +save_ - _definition.id '_atom_site_U_Fourier_param.phase' +save_atom_site_Fourier_wave_vector.q5_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q5_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_param_phase' + '_atom_site_Fourier_wave_vector_q5_coeff_seq_id' _description.text ; - The modulation of the atomic thermal parameters is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - U(ij)c cos(2\\p k r)+U(ij)s sin(2\\p k r), - and the modulus-argument form, - |U(ij)| cos(2\\p k r+\\c), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_U_Fourier_param.phase is the phase - (\c/2\\p), in cycles, of the complex amplitude corresponding to\ - the Fourier term defined by - _atom_site_U_Fourier.atom_site_label, - _atom_site_U_Fourier.tens_elem and - _atom_site_U_Fourier.wave_vector_seq_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_U_Fourier_param - _name.object_id phase - _type.purpose Number - _type.source Derived + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q5_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 -_units.code cycles - -save_ + _type.contents Code + _enumeration.range [1:8] + _enumeration.default 5 +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q5_coeff_seq_id = m.q_coeff_seq_id[ 4 ] +; -save__atom_site_U_Fourier_param.sin +save_ - _definition.id '_atom_site_U_Fourier_param.sin' +save_atom_site_Fourier_wave_vector.q6_coeff + _definition.id '_atom_site_Fourier_wave_vector.q6_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_U_Fourier_param_sin' + '_atom_site_Fourier_wave_vector_q6_coeff' _description.text ; - The modulation of the atomic thermal parameters is usually - parameterized by Fourier series. Each term of the series - commonly adopts two different representations: the sine-cosine - form, - U(ij)c cos(2\\p k r)+U(ij)s sin(2\\p k r), - and the modulus-argument form, - |U(ij)| cos(2\\p k r+\\c), - where k is the wave vector of the term and r is the atomic - average position. _atom_site_U_Fourier_param.sin is the sine - coefficient [U(ij)s], in angstroms squared, corresponding to - the Fourier term defined by - _atom_site_U_Fourier.atom_site_label, - _atom_site_U_Fourier.tens_elem and - _atom_site_U_Fourier.wave_vector_seq_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_U_Fourier_param - _name.object_id sin + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q6_coeff _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 -_units.code angstrom_squared - -save_ - - -save_ATOM_SITES_DISPLACE_FOURIER - - _definition.id ATOM_SITES_DISPLACE_FOURIER - _definition.scope Category - _definition.class Set - _definition.update 2017-03-11 - _description.text + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation ; + With m as atom_site_Fourier_wave_vector - Data items in the ATOM_SITES_DISPLACE_FOURIER category record - details common to the displacive modulation of atom sites in a - modulated structure. - Details for individual atom sites are described by data items in - the ATOM_SITE_DISPLACE_FOURIER category. + atom_site_Fourier_wave_vector.q6_coeff = m.q_coeff[ 5 ] ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITES_DISPLACE_FOURIER -save_ +save_ -save__atom_sites_displace_Fourier.axes_description - - _definition.id '_atom_sites_displace_Fourier.axes_description' +save_atom_site_Fourier_wave_vector.q6_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q6_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_displace_Fourier_axes_description' + '_atom_site_Fourier_wave_vector_q6_coeff_seq_id' _description.text ; - The definition of the axes used for describing the displacive - modulation, parameterized by Fourier series, when they are other - than the crystallographic axes. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_sites_displace_Fourier - _name.object_id axes_description - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q6_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Text - loop_ - _description_example.case - -; a1 and a2 are respectively the long molecular axis - and the axis normal to the mean molecular plane. -; - -save_ - - -save_ATOM_SITES_MODULATION - - _definition.id ATOM_SITES_MODULATION - _definition.scope Category - _definition.class Set - _definition.update 2017-03-11 - _description.text + _type.contents Code + _enumeration.range [1:8] + _enumeration.default 6 ; + With m as atom_site_Fourier_wave_vector - Data items in the ATOM_SITES_MODULATION category record details - common to the modulation of atom sites in a modulated structure. + atom_site_Fourier_wave_vector.q6_coeff_seq_id = m.q_coeff_seq_id[ 5 ] ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITES_MODULATION save_ - -save__atom_sites_modulation.global_phase_list - - _definition.id '_atom_sites_modulation.global_phase_list' +save_atom_site_Fourier_wave_vector.q7_coeff + _definition.id '_atom_site_Fourier_wave_vector.q7_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_list' + '_atom_site_Fourier_wave_vector_q7_coeff' _description.text ; - The initial phases, in cycles, of the modulation waves. For - incommensurate structures they are irrelevant. However, they are - essential for the description of commensurate structures within - the superspace formalism, since they determine the space group - of the commensurate superstructure [see Perez-Mato, - Madariaga, Zu\~niga & Garcia Arribas (1987) or van\ - Smaalen (1995)]. Note that for composites described - using a single data block, the initial phases for each subsystem - are derived using the W matrices (see _cell_subsystem.matrix_W_*) - from a unique set of global phases whose values are assigned to - _atom_sites_modulation_global_phase_t_. Detailed information can - be found in van Smaalen (1995). - Ref: Perez-Mato, J. M., Madariaga, G., Zu\~niga, F. J. & Garcia\ - Arribas, A. (1987). Acta Cryst. A43, 216-226. Smaalen, S. van - (1995). Crystallogr. Rev. 4, 79-202. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_list' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q7_coeff _type.purpose Number - _type.source Derived - _type.container List - _type.contents Real - _type.dimension '[8]' - loop_ - _method.purpose - _method.expression - Evaluation + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation ; - With m as atom_sites_modulation + With m as atom_site_Fourier_wave_vector - atom_sites_modulation.global_phase_list = - [m.global_phase_t_1, m.global_phase_t_2, - m.global_phase_t_3, m.global_phase_t_4, - m.global_phase_t_5, m.global_phase_t_6, - m.global_phase_t_7, m.global_phase_t_8] -; + atom_site_Fourier_wave_vector.q7_coeff = m.q_coeff[ 6 ] +; save_ - -save__atom_sites_modulation.global_phase_t_1 - - _definition.id '_atom_sites_modulation.global_phase_t_1' +save_atom_site_Fourier_wave_vector.q7_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q7_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_1' + '_atom_site_Fourier_wave_vector_q7_coeff_seq_id' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_1' - _type.purpose Number - _type.source Derived + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q7_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles - -save_ + _type.contents Code + _enumeration.range [1:8] + _enumeration.default 7 +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q7_coeff_seq_id = m.q_coeff_seq_id[ 6 ] +; -save__atom_sites_modulation.global_phase_t_2 +save_ - _definition.id '_atom_sites_modulation.global_phase_t_2' +save_atom_site_Fourier_wave_vector.q8_coeff + _definition.id '_atom_site_Fourier_wave_vector.q8_coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_2' + '_atom_site_Fourier_wave_vector_q8_coeff' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_2' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q8_coeff _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles - -save_ + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q8_coeff = m.q_coeff[ 7 ] +; -save__atom_sites_modulation.global_phase_t_3 +save_ - _definition.id '_atom_sites_modulation.global_phase_t_3' +save_atom_site_Fourier_wave_vector.q8_coeff_seq_id + _definition.id '_atom_site_Fourier_wave_vector.q8_coeff_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_3' + '_atom_site_Fourier_wave_vector_q8_coeff_seq_id' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_3' - _type.purpose Number - _type.source Derived + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q8_coeff_seq_id + _name.linked_item_id '_cell_wave_vector.seq_id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + _type.contents Code + _enumeration.range [1:8] + _enumeration.default 8 +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.q8_coeff_seq_id = m.q_coeff_seq_id[ 7 ] +; +save_ -save__atom_sites_modulation.global_phase_t_4 +save_atom_site_Fourier_wave_vector.x - _definition.id '_atom_sites_modulation.global_phase_t_4' + _definition.id '_atom_site_Fourier_wave_vector.x' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_4' + '_atom_site_Fourier_wave_vector_x' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_4' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id x _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + _enumeration.default 0.0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.x = m.xyz[ 0 ] +; +save_ -save__atom_sites_modulation.global_phase_t_5 +save_atom_site_Fourier_wave_vector.xyz - _definition.id '_atom_sites_modulation.global_phase_t_5' + _definition.id '_atom_site_Fourier_wave_vector.xyz' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_sites_modulation_global_phase_t_5' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_5' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id xyz _type.purpose Number _type.source Derived - _type.container Single + _type.container Matrix _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + _type.dimension [3] +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.xyz = [ m.x, m.y, m.z ] +# The null vector is allowed for a possible homogeneus term of Fourier Series. But +# it is also used as a test for the case where m.x, m.y and m.z are not given and +# therefore an alternative way to have the wave vectors is necessary -save__atom_sites_modulation.global_phase_t_6 + If (atom_site_Fourier_wave_vector.xyz == [0.0,0.0,0.0] { + + Loop w as cell_wave_vector { - _definition.id '_atom_sites_modulation.global_phase_t_6' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_sites_modulation_global_phase_t_6' - _description.text -; + i=0 + For s in m.q_coeff_seq_id { + If (w.seq_id == s) { - Initial phase component in _atom_sites_modulation.global_phase_list. -; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_6' - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + atom_site_Fourier_wave_vector.xyz_from_coeff = + atom_site_Fourier_wave_vector.xyz_from_coeff + m.q_coeff[i]*w.xyz } -save_ + Else { + i += 1 } -save__atom_sites_modulation.global_phase_t_7 + } # End For + } # End Loop + } # End If +; - _definition.id '_atom_sites_modulation.global_phase_t_7' +save_ + +save_atom_site_Fourier_wave_vector.y + + _definition.id '_atom_site_Fourier_wave_vector.y' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_7' + '_atom_site_Fourier_wave_vector_y' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_7' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id y _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + _enumeration.default 0.0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.y = m.xyz[ 1 ] +; +save_ -save__atom_sites_modulation.global_phase_t_8 +save_atom_site_Fourier_wave_vector.z - _definition.id '_atom_sites_modulation.global_phase_t_8' + _definition.id '_atom_site_Fourier_wave_vector.z' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_modulation_global_phase_t_8' + '_atom_site_Fourier_wave_vector_z' _description.text ; - Initial phase component in _atom_sites_modulation.global_phase_list. + Wave vectors of the Fourier terms used in the structural model + to describe the atomic modulation functions, expressed with + respect to the three-dimensional reciprocal basis that spans + the lattice of main reflections. They are linear combinations + with integer coefficients of the independent wave vectors given + in the _cell_wave_vector. list. Therefore, a generic Fourier wave + vector is expressed as k=n(1)q(1)+...+n(p)q(p), where p is given + by _cell_modulation_dimension. In the case of composites + described in a single data block, these wave vectors are + expressed with respect to the three-dimensional reciprocal + basis of each subsystem (see _cell_subsystem.matrix_W_*). ; - _name.category_id atom_sites_modulation - _name.object_id 'global_phase_t_8' + _name.category_id atom_site_Fourier_wave_vector + _name.object_id z _type.purpose Number - _type.source Derived + _type.source Assigned _type.container Single _type.contents Real - _enumeration.range -1.0:1.0 -_units.code cycles + _enumeration.default 0.0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector + + atom_site_Fourier_wave_vector.z = m.xyz[ 2 ] +; save_ +save_ATOM_SITE_OCC_FOURIER -save_ATOM_SITES_ROT_FOURIER - - _definition.id ATOM_SITES_ROT_FOURIER + _definition.id ATOM_SITE_OCC_FOURIER _definition.scope Category - _definition.class Set + _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the ATOM_SITES_ROT_FOURIER category record - details about the rotational component of the displacive - modulation of a given rigid group as a whole. - - Details for individual atom sites are described by data items in - the ATOM_SITES_ROT_FOURIER category. + Data items in the ATOM_SITE_OCC_FOURIER category record details + about the Fourier components of the occupational modulation of + the atom sites in a modulated structure. The (in general complex) + coefficients of each Fourier component belong to the category + ATOM_SITE_OCC_FOURIER_PARAM and are listed separately. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITES_ROT_FOURIER + _name.object_id ATOM_SITE_OCC_FOURIER + loop_ + _category_key.name '_atom_site_occ_Fourier.id' save_ +save_atom_site_occ_Fourier.atom_site_label -save__atom_sites_rot_Fourier.axes_description - - _definition.id '_atom_sites_rot_Fourier.axes_description' + _definition.id '_atom_site_occ_Fourier.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_sites_rot_Fourier_axes_description' + '_atom_site_occ_Fourier_atom_site_label' _description.text ; - The definition of the axes used for describing the rotational - part of the displacive modulation of a given rigid group, - parameterized by Fourier series, when they are other than the - crystallographic axes. + Modulation parameters are usually looped in separate lists. + Modulated parameters are the atom positions (displacive + modulation), the atomic occupation (occupational modulation) + and/or and/or the anisotropic (or isotropic) ADP. + _atom_site_occ_Fourier.atom_site_label is the code that + identifies an atom in a loop in which the Fourier components of + its occupational 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_sites_rot_Fourier - _name.object_id axes_description - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_occ_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 Text - loop_ - _description_example.case - -; - a1 and a2 are respectively the long molecular axis - and the axis normal to the mean molecular plane. -; + _type.contents Code save_ +save_atom_site_occ_Fourier.id -save__cell.modulation_dimension - - _definition.id '_cell.modulation_dimension' + _definition.id '_atom_site_occ_Fourier.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_modulation_dimension' + '_atom_site_occ_Fourier_id' _description.text ; - Number of additional reciprocal vectors needed to index the - whole diffraction pattern using integer Miller indices. + A code identifying each component of the occupational modulation + of a given atom or rigid group when the modulation is + expressed in terms of Fourier series. ; - _name.category_id cell - _name.object_id modulation_dimension - _type.purpose Number - _type.source Derived + _name.category_id atom_site_occ_Fourier + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Count - _enumeration.range 1:8 + _type.contents Code save_ +save_atom_site_occ_Fourier.wave_vector_seq_id -save__cell.reciprocal_basis_description - - _definition.id '_cell.reciprocal_basis_description' + _definition.id '_atom_site_occ_Fourier.wave_vector_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_reciprocal_basis_description' + '_atom_site_occ_Fourier_wave_vector_seq_id' _description.text ; - Definition of the higher-dimensional basis with respect to which - the Miller indices are defined. The three-dimensional basis used - to index the additional wave vectors should be clearly indicated. + A numeric code identifying the wave vectors of the Fourier terms + used in the structural model to describe the modulation functions + corresponding to the occupational part of the distortion. This + code must match _atom_site_Fourier_wave_vector.seq_id. ; - _name.category_id cell - _name.object_id reciprocal_basis_description - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_occ_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 Text - loop_ - _description_example.case - _description_example.detail - -; a*,b*,c* (reciprocal basis spanning the lattice of main - reflections) and q (incommensurate with respect to a*,b*,c*) -; 'Typical choice for a one-dimensional incommensurate structure.' - -; The diffraction pattern can be indexed with four integers based - on the reciprocal vectors a*~1~=a*~11~, a*~2~=a*~12~, - a*~3~=a*~13~, a*~4~=a*~21~. a*~1j~ (j=1,2,3) index the - main reflections of the 1st subsystem. a*~21~ is incommensurate - with a*~11~. -; -; Common choice for a misfit layer compound composed of two - subsystems that have in common two reciprocal vectors. Extracted - from van Smaalen [Crystallogr. Rev. (1995), 4, 79-202]. -; + _type.contents Code save_ +save_ATOM_SITE_OCC_FOURIER_PARAM -save_CELL_SUBSYSTEM - - _definition.id CELL_SUBSYSTEM + _definition.id ATOM_SITE_OCC_FOURIER_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the CELL_SUBSYSTEM category record details about - the crystallographic cell parameters of each subsystem present in - a composite. + Data items in the ATOM_SITE_OCC_FOURIER_PARAM category record + details about the coefficients of the Fourier series used to + describe the occupational modulation of the atom sites in a + modulated structure. The Fourier components are defined in the + category ATOM_SITE_OCC_FOURIER and are listed separately. ; _name.category_id MS_GROUP - _name.object_id CELL_SUBSYSTEM + _name.object_id ATOM_SITE_OCC_FOURIER_PARAM loop_ - _category_key.name '_cell_subsystem.code' + _category_key.name '_atom_site_occ_Fourier_param.id' save_ +save_atom_site_occ_Fourier_param.cos -save__cell_subsystem.code - - _definition.id '_cell_subsystem.code' + _definition.id '_atom_site_occ_Fourier_param.cos' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_subsystem_code' + '_atom_site_occ_Fourier_param_cos' _description.text ; - The code identifying uniquely a certain composite subsystem. - This code is used to identify the data blocks that contain - the structural information associated with the subsystem. + The occupational distortion of a given atom or rigid group is + usually parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Pc cos(2\p k r)+Ps sin(2\p k r), + + and the modulus-argument form, + + |P| cos(2\p k r+\d), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_occ_Fourier_param.cos is the cosine + coefficient (Pc) corresponding to the Fourier term defined by + _atom_site_occ_Fourier.atom_site_label and + _atom_site_occ_Fourier.wave_vector_seq_id. ; - _name.category_id cell_subsystem - _name.object_id code - _type.purpose Key + _name.category_id atom_site_occ_Fourier_param + _name.object_id cos + _type.purpose Measurand _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 loop_ - _description_example.case - "NbS2" + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_occ_Fourier_param -save_ + atom_site_occ_Fourier_param.cos = p.modulus*Cos(2*Pi*p.phase) +; +save_ -save__cell_subsystem.description +save_atom_site_occ_Fourier_param.id - _definition.id '_cell_subsystem.description' + _definition.id '_atom_site_occ_Fourier_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_subsystem_description' + '_atom_site_occ_Fourier_param_id' _description.text ; - Description of each subsystem defining a composite structurally. - The number of definitions must match the number given in - _cell_subsystems_number. + A code identifying the (in general complex) coefficient of each + term present in the Fourier series describing the occupational + modulation of a given atom or rigid group. This code must match + _atom_site_occ_Fourier.id. ; - _name.category_id cell_subsystem - _name.object_id description - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_occ_Fourier_param + _name.object_id id + _name.linked_item_id '_atom_site_occ_Fourier.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Text - loop_ - _description_example.case - "NbS2 part of the layer compound (LaS)~1.14~NbS~2~" + _type.contents Code save_ +save_atom_site_occ_Fourier_param.modulus -save__cell_subsystem.matrix_W - - _definition.id '_cell_subsystem.matrix_W' - _definition.update 2016-11-17 + _definition.id '_atom_site_occ_Fourier_param.modulus' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_Fourier_param_modulus' _description.text ; - In the case of composites, for each subsystem the matrix W as - defined in van Smaalen (1991); see also van Smaalen (1995). - Its dimension must match - (_cell_modulation_dimension+3)*(_cell_modulation_dimension+3). - - Intergrowth compounds are composed of several periodic - substructures in which the reciprocal lattices of two different - subsystems are incommensurate in at least one direction. The - indexing of the whole diffraction diagram with integer indices - requires more than three reciprocal basic vectors. However, the - distinction between main reflections and satellites is not as - obvious as in normal incommensurate structures. Indeed, true - satellites are normally difficult to locate for composites and - the modulation wave vectors are reciprocal vectors of the - other subsystem(s) referred to the reciprocal basis of one - of them. The choice of the enlarged reciprocal basis - {a*, b*, c*, q~1~,..., q~d~} is completely arbitrary, but - the reciprocal basis of each subsystem is always known through - the W matrices. These matrices [(3+d)x(3+d)-dimensional], one for - each subsystem, can be blocked as follows: - - (Z^\n^~3~ Z^\n^~d~) - W^\n^= ( ) - (V^\n^~3~ V^\n^~d~) - - the dimension of each block being (3x3), (3xd), (dx3) and (dxd) - for Z^\n^~3~, Z^\n^~d~, V^\n^~3~ and V^\n^~d~, respectively. For - example, Z^\n^ expresses the reciprocal basis of each subsystem - in terms of the basis {a*, b*, c*, q~1~ ,..., q~d~}. - W^\n^ also gives the irrational components of the modulation wave - vectors of each subsystem in its own three-dimensional reciprocal - basis {a~\n~*, b~\n~*, c~\n~*} and the superspace group of - a given subsystem from the unique superspace group of the - composite. + The occupational distortion of a given atom or rigid group is + usually parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Pc cos(2\p k r)+Ps sin(2\p k r), - The structure of these materials is always described by a set of - incommensurate structures, one for each subsystem. The atomic - coordinates, modulation parameters and wave vectors used for - describing the modulation(s) are always referred to the (direct - or reciprocal) basis of each particular subsystem. Although - expressing the structural results in the chosen common basis is - possible (using the matrices W), it is less confusing to use - this alternative description. Atomic coordinates are only - referred to a common basis when interatomic distances are - calculated. Usually, the reciprocal vectors {a*, b* and c*\}\ - span the lattice of main reflections of one of the subsystems and - therefore its W matrix is the unit matrix. + and the modulus-argument form, - For composites described in a single data block using - *_subsystem_code pointers, the cell parameters, the superspace - group and the measured modulation wave vectors (see - CELL_WAVE_VECTOR below) correspond to the reciprocal basis - described in _cell_reciprocal_basis_description and coincide - with the reciprocal basis of the specific subsystem (if any) - whose W matrix is the unit matrix. The cell parameters and the - symmetry of the remaining subsystems can be derived using the - appropriate W matrices. In any case (single or multiblock CIF), - the values assigned to the items describing the atomic parameters - (including the wave vectors used to describe the modulations) - are always the same and are referred to the basis of each - particular subsystem. Such a basis will be explicitly given in a - multiblock CIF or should be calculated (with the appropriate W - matrix) in the case of a single block description of the - composite. + |P| cos(2\p k r+\d), - Ref: Smaalen, S. van (1991). Phys. Rev. B, 43, 11330-11341. - Smaalen, S. van (1995). Crystallogr. Rev. 4, 79-202. + where k is the wave vector of the term and r is the atomic + average position. _atom_site_occ_Fourier.param_modulus is the + modulus (|P|) of the complex amplitude corresponding to the + Fourier term defined by _atom_site_occ_Fourier.atom_site_label + and _atom_site_occ_Fourier.wave_vector_seq_id. ; - _name.category_id cell_subsystem - _name.object_id matrix_W - _type.purpose Number - _type.source Derived - _type.container Matrix + _name.category_id atom_site_occ_Fourier_param + _name.object_id modulus + _type.purpose Measurand + _type.source Assigned + _type.container Single _type.contents Real - _type.dimension '[11 11]' - loop_ - _method.purpose - _method.expression - Evaluation -; - With m as cell_subsystem - - cell_subsystem.matrix_W = [ - - [ m.matrix_W_1_1, m.matrix_W_1_2, m.matrix_W_1_3, m.matrix_W_1_4, m.matrix_W_1_5, m.matrix_W_1_6, - m.matrix_W_1_7, m.matrix_W_1_8, m.matrix_W_1_9, m.matrix_W_1_10, m.matrix_W_1_11], - [ m.matrix_W_2_1, m.matrix_W_2_2, m.matrix_W_2_3, m.matrix_W_2_4, m.matrix_W_2_5, m.matrix_W_2_6, - m.matrix_W_2_7, m.matrix_W_2_8, m.matrix_W_2_9, m.matrix_W_2_10, m.matrix_W_2_11], - [ m.matrix_W_3_1, m.matrix_W_3_2, m.matrix_W_3_3, m.matrix_W_3_4, m.matrix_W_3_5, m.matrix_W_3_6, - m.matrix_W_3_7, m.matrix_W_3_8, m.matrix_W_3_9, m.matrix_W_3_10, m.matrix_W_3_11], - [ m.matrix_W_4_1, m.matrix_W_4_2, m.matrix_W_4_3, m.matrix_W_4_4, m.matrix_W_4_5, m.matrix_W_4_6, - m.matrix_W_4_7, m.matrix_W_4_8, m.matrix_W_4_9, m.matrix_W_4_10, m.matrix_W_4_11], - [ m.matrix_W_5_1, m.matrix_W_5_2, m.matrix_W_5_3, m.matrix_W_5_4, m.matrix_W_5_5, m.matrix_W_5_6, - m.matrix_W_5_7, m.matrix_W_5_8, m.matrix_W_5_9, m.matrix_W_5_10, m.matrix_W_5_11], - [ m.matrix_W_6_1, m.matrix_W_6_2, m.matrix_W_6_3, m.matrix_W_6_4, m.matrix_W_6_5, m.matrix_W_6_6, - m.matrix_W_6_7, m.matrix_W_6_8, m.matrix_W_6_9, m.matrix_W_6_10, m.matrix_W_6_11], - [ m.matrix_W_7_1, m.matrix_W_7_2, m.matrix_W_7_3, m.matrix_W_7_4, m.matrix_W_7_5, m.matrix_W_7_6, - m.matrix_W_7_7, m.matrix_W_7_8, m.matrix_W_7_9, m.matrix_W_7_10, m.matrix_W_7_11], - [ m.matrix_W_8_1, m.matrix_W_8_2, m.matrix_W_8_3, m.matrix_W_8_4, m.matrix_W_8_5, m.matrix_W_8_6, - m.matrix_W_8_7, m.matrix_W_8_8, m.matrix_W_8_9, m.matrix_W_8_10, m.matrix_W_8_11], - [ m.matrix_W_9_1, m.matrix_W_9_2, m.matrix_W_9_3, m.matrix_W_9_4, m.matrix_W_9_5, m.matrix_W_9_6, - m.matrix_W_9_7, m.matrix_W_9_8, m.matrix_W_9_9, m.matrix_W_9_10, m.matrix_W_9_11], - [ m.matrix_W_10_1, m.matrix_W_10_2, m.matrix_W_10_3, m.matrix_W_10_4, m.matrix_W_10_5, m.matrix_W_10_6, - m.matrix_W_10_7, m.matrix_W_10_8, m.matrix_W_10_9, m.matrix_W_10_10, m.matrix_W_10_11], - [ m.matrix_W_11_1, m.matrix_W_11_2, m.matrix_W_11_3, m.matrix_W_11_4, m.matrix_W_11_5, m.matrix_W_11_6, - m.matrix_W_11_7, m.matrix_W_11_8, m.matrix_W_11_9, m.matrix_W_11_10, m.matrix_W_11_11] ] + _enumeration.default 0.0 + _enumeration.range 0.0: + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_occ_Fourier_param + + atom_site_occ_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) ; save_ -save_cell_subsystem.matrix_W_1_1 - _definition.id '_cell_subsystem.matrix_W_1_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_1 - save_ - - -save_cell_subsystem.matrix_W_1_2 - _definition.id '_cell_subsystem.matrix_W_1_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_2 - save_ - +save_atom_site_occ_Fourier_param.phase -save_cell_subsystem.matrix_W_1_3 - _definition.id '_cell_subsystem.matrix_W_1_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_3 - save_ - + _definition.id '_atom_site_occ_Fourier_param.phase' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_Fourier_param_phase' + _description.text +; -save_cell_subsystem.matrix_W_1_4 - _definition.id '_cell_subsystem.matrix_W_1_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_4 - save_ - + The occupational distortion of a given atom or rigid group is + usually parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Pc cos(2\p k r)+Ps sin(2\p k r), -save_cell_subsystem.matrix_W_1_5 - _definition.id '_cell_subsystem.matrix_W_1_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_5 - save_ - + and the modulus-argument form, -save_cell_subsystem.matrix_W_1_6 - _definition.id '_cell_subsystem.matrix_W_1_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_6 - save_ - + |P| cos(2\p k r+\d), -save_cell_subsystem.matrix_W_1_7 - _definition.id '_cell_subsystem.matrix_W_1_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_7 - save_ - + where k is the wave vector of the term and r is the atomic + average position. _atom_site_occ_Fourier_param.phase is the phase + (\d/2\p) in cycles corresponding to the Fourier term defined by + _atom_site_occ_Fourier.atom_site_label and + _atom_site_occ_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_occ_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_occ_Fourier_param -save_cell_subsystem.matrix_W_1_8 - _definition.id '_cell_subsystem.matrix_W_1_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_8 - save_ - + atom_site_occ_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/2/Pi +; -save_cell_subsystem.matrix_W_1_9 - _definition.id '_cell_subsystem.matrix_W_1_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_9 - save_ - +save_ -save_cell_subsystem.matrix_W_1_10 - _definition.id '_cell_subsystem.matrix_W_1_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_10 - save_ - +save_atom_site_occ_Fourier_param.sin -save_cell_subsystem.matrix_W_1_11 - _definition.id '_cell_subsystem.matrix_W_1_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_1_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_1_11 - save_ + _definition.id '_atom_site_occ_Fourier_param.sin' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_Fourier_param_sin' + _description.text +; + The occupational distortion of a given atom or rigid group is + usually parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Pc cos(2\p k r)+Ps sin(2\p k r), -save_cell_subsystem.matrix_W_2_1 - _definition.id '_cell_subsystem.matrix_W_2_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_1 - save_ - + and the modulus-argument form, -save_cell_subsystem.matrix_W_2_2 - _definition.id '_cell_subsystem.matrix_W_2_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_2 - save_ - + |P| cos(2\p k r+\d), -save_cell_subsystem.matrix_W_2_3 - _definition.id '_cell_subsystem.matrix_W_2_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_3 - save_ - + where k is the wave vector of the term and r is the atomic + average position. _atom_site_occ_Fourier_param.sin is the sine + coefficient (Ps) corresponding to the Fourier term defined by + _atom_site_occ_Fourier.atom_site_label and + _atom_site_occ_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_occ_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 +; + With p as atom_site_occ_Fourier_param -save_cell_subsystem.matrix_W_2_4 - _definition.id '_cell_subsystem.matrix_W_2_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_4 - save_ - + atom_site_occ_Fourier_param.sin = -p.modulus*Sin(2*Pi*p.phase) +; -save_cell_subsystem.matrix_W_2_5 - _definition.id '_cell_subsystem.matrix_W_2_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_5 - save_ - +save_ -save_cell_subsystem.matrix_W_2_6 - _definition.id '_cell_subsystem.matrix_W_2_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_6 - save_ - +save_ATOM_SITE_OCC_LEGENDRE -save_cell_subsystem.matrix_W_2_7 - _definition.id '_cell_subsystem.matrix_W_2_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_7 - save_ + _definition.id ATOM_SITE_OCC_LEGENDRE + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + Data items in the ATOM_SITE_OCC_LEGENDRE category record + details about the Legendre polynomials used to describe the occupational + modulations when the atomic domain of a given atom or rigid group is + restricted by a crenel function. The coefficients of each Legendre + function belong to the category ATOM_SITE_OCC_LEGENDRE_PARAM and + are listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_LEGENDRE + loop_ + _category_key.name '_atom_site_occ_legendre.id' + +save_ -save_cell_subsystem.matrix_W_2_8 - _definition.id '_cell_subsystem.matrix_W_2_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_8 - save_ - +save_atom_site_occ_legendre.atom_site_label -save_cell_subsystem.matrix_W_2_9 - _definition.id '_cell_subsystem.matrix_W_2_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_9 - save_ - + _definition.id '_atom_site_occ_legendre.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_legendre_atom_site_label' + _description.text +; -save_cell_subsystem.matrix_W_2_10 - _definition.id '_cell_subsystem.matrix_W_2_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_10 - save_ - + 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_occ_legendre.atom_site_label is the + code that identifies an atom or rigid group in a loop in which + the legendre components of its occupational 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_occ_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 Code -save_cell_subsystem.matrix_W_2_11 - _definition.id '_cell_subsystem.matrix_W_2_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_2_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_2_11 - save_ +save_ +save_atom_site_occ_legendre.id -save_cell_subsystem.matrix_W_3_1 - _definition.id '_cell_subsystem.matrix_W_3_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_1 - save_ - + _definition.id '_atom_site_occ_legendre.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_legendre_id' + _description.text +; -save_cell_subsystem.matrix_W_3_2 - _definition.id '_cell_subsystem.matrix_W_3_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_2 - save_ - + A code identifying each component of the occupational modulation of + a given atom or rigid group when the modulation is expressed in + terms of Legendre polynomials. +; + _name.category_id atom_site_occ_legendre + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code -save_cell_subsystem.matrix_W_3_3 - _definition.id '_cell_subsystem.matrix_W_3_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_3 - save_ - +save_ -save_cell_subsystem.matrix_W_3_4 - _definition.id '_cell_subsystem.matrix_W_3_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_4 - save_ - +save_atom_site_occ_legendre.order -save_cell_subsystem.matrix_W_3_5 - _definition.id '_cell_subsystem.matrix_W_3_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_5 - save_ - + _definition.id '_atom_site_occ_legendre.order' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_legendre_order' + _description.text +; -save_cell_subsystem.matrix_W_3_6 - _definition.id '_cell_subsystem.matrix_W_3_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_6 - save_ - + The order of the Legendre polynomial. +; + _name.category_id atom_site_occ_legendre + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Count -save_cell_subsystem.matrix_W_3_7 - _definition.id '_cell_subsystem.matrix_W_3_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_7 - save_ - +save_ -save_cell_subsystem.matrix_W_3_8 - _definition.id '_cell_subsystem.matrix_W_3_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_8 - save_ - +save_ATOM_SITE_OCC_LEGENDRE_PARAM -save_cell_subsystem.matrix_W_3_9 - _definition.id '_cell_subsystem.matrix_W_3_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_9 - save_ - + _definition.id ATOM_SITE_OCC_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; -save_cell_subsystem.matrix_W_3_10 - _definition.id '_cell_subsystem.matrix_W_3_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_10 - save_ - + Data items in the ATOM_SITE_OCC_LEGENDRE_PARAM category + record details about the coefficients of the Legendre + functions defined in ATOM_SITE_OCC_LEGENDRE and used to + describe the occupational modulation of an atom or rigid group. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_LEGENDRE_PARAM + loop_ + _category_key.name '_atom_site_occ_legendre_param.id' -save_cell_subsystem.matrix_W_3_11 - _definition.id '_cell_subsystem.matrix_W_3_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_3_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_3_11 - save_ +save_ +save_atom_site_occ_legendre_param.coeff -save_cell_subsystem.matrix_W_4_1 - _definition.id '_cell_subsystem.matrix_W_4_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_1 - save_ - + _definition.id '_atom_site_occ_legendre_param.coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_legendre_param_coeff' + _description.text +; -save_cell_subsystem.matrix_W_4_2 - _definition.id '_cell_subsystem.matrix_W_4_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_2 - save_ - + The coefficient corresponding to the Legendre polynomial describing + the occupational modulation of a given atom or rigid group. +; + _name.category_id atom_site_occ_legendre_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 -save_cell_subsystem.matrix_W_4_3 - _definition.id '_cell_subsystem.matrix_W_4_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_3 - save_ - +save_ -save_cell_subsystem.matrix_W_4_4 - _definition.id '_cell_subsystem.matrix_W_4_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_4 - save_ - +save_atom_site_occ_legendre_param.id -save_cell_subsystem.matrix_W_4_5 - _definition.id '_cell_subsystem.matrix_W_4_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_5 - save_ - + _definition.id '_atom_site_occ_legendre_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_legendre_param_id' + _description.text +; -save_cell_subsystem.matrix_W_4_6 - _definition.id '_cell_subsystem.matrix_W_4_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_6 - save_ - + A code identifying the coefficient of each Legendre polynomial + describing the occupational modulation of a given atom or rigid + group. This code must match _atom_site_occ_legendre.id. +; + _name.category_id atom_site_occ_legendre_param + _name.object_id id + _name.linked_item_id '_atom_site_occ_legendre.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code -save_cell_subsystem.matrix_W_4_7 - _definition.id '_cell_subsystem.matrix_W_4_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_7 - save_ - +save_ -save_cell_subsystem.matrix_W_4_8 - _definition.id '_cell_subsystem.matrix_W_4_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_8 - save_ - +save_ATOM_SITE_OCC_ORTHO -save_cell_subsystem.matrix_W_4_9 - _definition.id '_cell_subsystem.matrix_W_4_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_9 - save_ + _definition.id ATOM_SITE_OCC_ORTHO + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + Data items in the ATOM_SITE_OCC_ORTHO category record + details about the orthogonalized functions defined to solve + correlation problems during the refinement of the occupational + modulation 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). + The coefficients of each orthogonalized function belong to the + Category ATOM_SITE_OCC_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_OCC_FOURIER and ATOM_SITE_OCC_FOURIER_PARAM. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_ORTHO + loop_ + _category_key.name '_atom_site_occ_ortho.id' + +save_ -save_cell_subsystem.matrix_W_4_10 - _definition.id '_cell_subsystem.matrix_W_4_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_10 - save_ - - -save_cell_subsystem.matrix_W_4_11 - _definition.id '_cell_subsystem.matrix_W_4_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_4_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_4_11 - save_ - +save_atom_site_occ_ortho.atom_site_label -save_cell_subsystem.matrix_W_5_1 - _definition.id '_cell_subsystem.matrix_W_5_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_1 - save_ - + _definition.id '_atom_site_occ_ortho.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_ortho_atom_site_label' + _description.text +; -save_cell_subsystem.matrix_W_5_2 - _definition.id '_cell_subsystem.matrix_W_5_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_2 - save_ - + 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_occ_ortho.atom_site_label is the + code that identifies an atom or rigid group in a loop in which + the ortho components of its occupational 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_occ_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 Code -save_cell_subsystem.matrix_W_5_3 - _definition.id '_cell_subsystem.matrix_W_5_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_3 - save_ - +save_ -save_cell_subsystem.matrix_W_5_4 - _definition.id '_cell_subsystem.matrix_W_5_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_4 - save_ - -save_cell_subsystem.matrix_W_5_5 - _definition.id '_cell_subsystem.matrix_W_5_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_5 - save_ - +save_atom_site_occ_ortho.func_id -save_cell_subsystem.matrix_W_5_6 - _definition.id '_cell_subsystem.matrix_W_5_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_6 - save_ - + _definition.id '_atom_site_occ_ortho.func_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_ortho_func_id' + _description.text +; -save_cell_subsystem.matrix_W_5_7 - _definition.id '_cell_subsystem.matrix_W_5_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_7 - save_ - + A code identifying the orthogonalized function used in the + structural model to describe the occupational modulation of an atom + or rigid group. This code must match _atom_sites_ortho_func_id. +; + _name.category_id atom_site_occ_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_cell_subsystem.matrix_W_5_8 - _definition.id '_cell_subsystem.matrix_W_5_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_8 - save_ - +save_ -save_cell_subsystem.matrix_W_5_9 - _definition.id '_cell_subsystem.matrix_W_5_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_9 - save_ - +save_atom_site_occ_ortho.id -save_cell_subsystem.matrix_W_5_10 - _definition.id '_cell_subsystem.matrix_W_5_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_10 - save_ - + _definition.id '_atom_site_occ_ortho.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_ortho_id' + _description.text +; -save_cell_subsystem.matrix_W_5_11 - _definition.id '_cell_subsystem.matrix_W_5_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_5_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_5_11 - save_ + A code identifying each component of the occupational modulation of + a given atom or rigid group when the modulation is expressed in + terms of ortho series. +; + _name.category_id atom_site_occ_ortho + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code +save_ -save_cell_subsystem.matrix_W_6_1 - _definition.id '_cell_subsystem.matrix_W_6_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_1 - save_ - +save_ATOM_SITE_OCC_ORTHO_PARAM -save_cell_subsystem.matrix_W_6_2 - _definition.id '_cell_subsystem.matrix_W_6_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_2 - save_ - + _definition.id ATOM_SITE_OCC_ORTHO_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; -save_cell_subsystem.matrix_W_6_3 - _definition.id '_cell_subsystem.matrix_W_6_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_3 - save_ - + Data items in the ATOM_SITE_OCC_ORTHO_PARAM category + record details about the coefficients of the orthogonolized + functions defined in ATOM_SITE_OCC_ORTHO and used to + describe the occupational modulation of an atom or rigid group. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_ORTHO_PARAM + loop_ + _category_key.name '_atom_site_occ_ortho_param.id' -save_cell_subsystem.matrix_W_6_4 - _definition.id '_cell_subsystem.matrix_W_6_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_4 - save_ - +save_ -save_cell_subsystem.matrix_W_6_5 - _definition.id '_cell_subsystem.matrix_W_6_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_5 - save_ - +save_atom_site_occ_ortho_param.coeff -save_cell_subsystem.matrix_W_6_6 - _definition.id '_cell_subsystem.matrix_W_6_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_6 - save_ - + _definition.id '_atom_site_occ_ortho_param.coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_ortho_param_coeff' + _description.text +; -save_cell_subsystem.matrix_W_6_7 - _definition.id '_cell_subsystem.matrix_W_6_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_7 - save_ - + The coefficient corresponding to the orthogonalized function + defined by _atom_site_occ_ortho.atom_site_label and + _atom_site_occ_ortho.func_id. +; + _name.category_id atom_site_occ_ortho_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 -save_cell_subsystem.matrix_W_6_8 - _definition.id '_cell_subsystem.matrix_W_6_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_8 - save_ - +save_ -save_cell_subsystem.matrix_W_6_9 - _definition.id '_cell_subsystem.matrix_W_6_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_9 - save_ - +save_atom_site_occ_ortho_param.id -save_cell_subsystem.matrix_W_6_10 - _definition.id '_cell_subsystem.matrix_W_6_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_10 - save_ - + _definition.id '_atom_site_occ_ortho_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_ortho_param_id' + _description.text +; -save_cell_subsystem.matrix_W_6_11 - _definition.id '_cell_subsystem.matrix_W_6_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_6_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_6_11 - save_ + A code identifying the coefficient of each term present in the + series of orthogonalized functions describing the occupational + modulation of a given atom or rigid group. This code must match + _atom_site_occ_ortho.id. +; + _name.category_id atom_site_occ_ortho_param + _name.object_id id + _name.linked_item_id '_atom_site_occ_ortho.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code +save_ -save_cell_subsystem.matrix_W_7_1 - _definition.id '_cell_subsystem.matrix_W_7_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_1 - save_ - +save_ATOM_SITE_OCC_SPECIAL_FUNC -save_cell_subsystem.matrix_W_7_2 - _definition.id '_cell_subsystem.matrix_W_7_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_2 - save_ - + _definition.id ATOM_SITE_OCC_SPECIAL_FUNC + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; -save_cell_subsystem.matrix_W_7_3 - _definition.id '_cell_subsystem.matrix_W_7_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_3 - save_ - + Data items in the ATOM_SITE_OCC_SPECIAL_FUNC category + record details about the occupational modulation of a given atom + or rigid group 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: -save_cell_subsystem.matrix_W_7_4 - _definition.id '_cell_subsystem.matrix_W_7_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_4 - save_ - + (1) Sawtooth functions for atomic displacive modulation along + x, y and z. + (2) Zig-Zag functions for atomic displacive modulation along + x, y and z. + (3) Crenel functions for the occupational modulation of atoms + and rigid groups. Both of these only apply to + one-dimensional modulated structures. -save_cell_subsystem.matrix_W_7_5 - _definition.id '_cell_subsystem.matrix_W_7_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_5 - 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_cell_subsystem.matrix_W_7_6 - _definition.id '_cell_subsystem.matrix_W_7_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_6 - save_ - + 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 -save_cell_subsystem.matrix_W_7_7 - _definition.id '_cell_subsystem.matrix_W_7_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_7 - save_ - +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_SPECIAL_FUNC + loop_ + _category_key.name '_atom_site_occ_special_func.atom_site_label' -save_cell_subsystem.matrix_W_7_8 - _definition.id '_cell_subsystem.matrix_W_7_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_8 - save_ - +save_ -save_cell_subsystem.matrix_W_7_9 - _definition.id '_cell_subsystem.matrix_W_7_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_9 - save_ - +save_atom_site_occ_special_func.atom_site_label -save_cell_subsystem.matrix_W_7_10 - _definition.id '_cell_subsystem.matrix_W_7_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_10 - save_ - + _definition.id '_atom_site_occ_special_func.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_special_func_atom_site_label' + _description.text +; -save_cell_subsystem.matrix_W_7_11 - _definition.id '_cell_subsystem.matrix_W_7_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_7_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_7_11 - save_ + The code that identifies an atom or rigid group in a loop in + which the parameters of the special function that describes its + occupational 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_occ_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 Code +save_ -save_cell_subsystem.matrix_W_8_1 - _definition.id '_cell_subsystem.matrix_W_8_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_1 - save_ - +save_atom_site_occ_special_func.crenel_c -save_cell_subsystem.matrix_W_8_2 - _definition.id '_cell_subsystem.matrix_W_8_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_2 - save_ - + _definition.id '_atom_site_occ_special_func.crenel_c' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_special_func_crenel_c' + _description.text +; -save_cell_subsystem.matrix_W_8_3 - _definition.id '_cell_subsystem.matrix_W_8_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_3 - save_ - + _atom_site_occ_special_func.crenel_ items are the adjustable + parameters of a crenel function. -save_cell_subsystem.matrix_W_8_4 - _definition.id '_cell_subsystem.matrix_W_8_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_4 - save_ - + An occupational crenel function along the internal space is + defined as follows: -save_cell_subsystem.matrix_W_8_5 - _definition.id '_cell_subsystem.matrix_W_8_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_5 - save_ - + p(x4)=1 if x4 belongs to the interval [c-w/2,c+w/2] + p(x4)=0 if x4 is outside the interval [c-w/2,c+w/2], -save_cell_subsystem.matrix_W_8_6 - _definition.id '_cell_subsystem.matrix_W_8_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_6 - save_ - + where x4 is the internal coordinate, c is the centre of the + function in internal space and w is its width. The use of this + function is restricted to one-dimensional modulated structures. + For more details, see the manual for JANA2006 (Petricek, Dusek + & Palatinus, 2014) -save_cell_subsystem.matrix_W_8_7 - _definition.id '_cell_subsystem.matrix_W_8_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_7 - 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_cell_subsystem.matrix_W_8_8 - _definition.id '_cell_subsystem.matrix_W_8_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_8 - save_ - - -save_cell_subsystem.matrix_W_8_9 - _definition.id '_cell_subsystem.matrix_W_8_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_9 - save_ - - -save_cell_subsystem.matrix_W_8_10 - _definition.id '_cell_subsystem.matrix_W_8_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_10 - save_ - - -save_cell_subsystem.matrix_W_8_11 - _definition.id '_cell_subsystem.matrix_W_8_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_8_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_8_11 - save_ - - -save_cell_subsystem.matrix_W_9_1 - _definition.id '_cell_subsystem.matrix_W_9_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_1 - save_ - - -save_cell_subsystem.matrix_W_9_2 - _definition.id '_cell_subsystem.matrix_W_9_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_2 - save_ - - -save_cell_subsystem.matrix_W_9_3 - _definition.id '_cell_subsystem.matrix_W_9_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_3 - save_ - - -save_cell_subsystem.matrix_W_9_4 - _definition.id '_cell_subsystem.matrix_W_9_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_4 - save_ - - -save_cell_subsystem.matrix_W_9_5 - _definition.id '_cell_subsystem.matrix_W_9_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_5 - save_ - - -save_cell_subsystem.matrix_W_9_6 - _definition.id '_cell_subsystem.matrix_W_9_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_6 - save_ - - -save_cell_subsystem.matrix_W_9_7 - _definition.id '_cell_subsystem.matrix_W_9_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_7 - save_ - - -save_cell_subsystem.matrix_W_9_8 - _definition.id '_cell_subsystem.matrix_W_9_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_8 - save_ - - -save_cell_subsystem.matrix_W_9_9 - _definition.id '_cell_subsystem.matrix_W_9_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_9 - save_ - - -save_cell_subsystem.matrix_W_9_10 - _definition.id '_cell_subsystem.matrix_W_9_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_10 - save_ - - -save_cell_subsystem.matrix_W_9_11 - _definition.id '_cell_subsystem.matrix_W_9_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_9_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_9_11 - save_ - - -save_cell_subsystem.matrix_W_10_1 - _definition.id '_cell_subsystem.matrix_W_10_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_1 - save_ - - -save_cell_subsystem.matrix_W_10_2 - _definition.id '_cell_subsystem.matrix_W_10_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_2 - save_ - - -save_cell_subsystem.matrix_W_10_3 - _definition.id '_cell_subsystem.matrix_W_10_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_3 - save_ - + 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_occ_special_func + _name.object_id crenel_c + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 -save_cell_subsystem.matrix_W_10_4 - _definition.id '_cell_subsystem.matrix_W_10_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_4 - save_ - +save_ -save_cell_subsystem.matrix_W_10_5 - _definition.id '_cell_subsystem.matrix_W_10_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_5 - save_ - +save_atom_site_occ_special_func.crenel_ortho_eps -save_cell_subsystem.matrix_W_10_6 - _definition.id '_cell_subsystem.matrix_W_10_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_6 - save_ + _definition.id '_atom_site_occ_special_func.crenel_ortho_eps' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_special_func_crenel_ortho_eps' + _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 of 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 define + functions based on Fourier harmonics that are orthogonal within the Crenel + interval. The procedure implemented in JANA2006 requires, for each Crenel + function, a parameter for the selection of the harmonic functions that define + the not necessarily complete set of (almost) orthogonalized functions. + _atom_site_occ_special_func.crenel_ortho_eps contains such values. Empirical + tests indicate that a default value of 0.95 warrants reasonable results. + The orthogonalized functions and the corresponding refined amplitudes are + defined in the categories: ATOM_SITES_ORTHO., ATOM_SITE_DISPLACE_ORTHO., + ATOM_SITE_OCC_ORTHO., ATOM_SITE_ROT_ORTHO. and ATOM_SITE_U_ORTHO. + 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_cell_subsystem.matrix_W_10_7 - _definition.id '_cell_subsystem.matrix_W_10_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_7 - save_ - + 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_occ_special_func + _name.object_id crenel_ortho_eps + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.95 -save_cell_subsystem.matrix_W_10_8 - _definition.id '_cell_subsystem.matrix_W_10_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_8 - save_ - +save_ -save_cell_subsystem.matrix_W_10_9 - _definition.id '_cell_subsystem.matrix_W_10_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_9 - save_ - +save_atom_site_occ_special_func.crenel_w -save_cell_subsystem.matrix_W_10_10 - _definition.id '_cell_subsystem.matrix_W_10_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_10 - save_ - + _definition.id '_atom_site_occ_special_func.crenel_w' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_special_func_crenel_w' + _description.text +; -save_cell_subsystem.matrix_W_10_11 - _definition.id '_cell_subsystem.matrix_W_10_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_10_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_10_11 - save_ + _atom_site_occ_special_func.crenel_ items are the adjustable + parameters of a crenel function. + An occupational crenel function along the internal space is + defined as follows: -save_cell_subsystem.matrix_W_11_1 - _definition.id '_cell_subsystem.matrix_W_11_1' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_1' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_1 - save_ - + p(x4)=1 if x4 belongs to the interval [c-w/2,c+w/2] + p(x4)=0 if x4 is outside the interval [c-w/2,c+w/2], -save_cell_subsystem.matrix_W_11_2 - _definition.id '_cell_subsystem.matrix_W_11_2' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_2' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_2 - save_ - + where x4 is the internal coordinate, c is the centre of the + function in internal space and w is its width. The use of this + function is restricted to one-dimensional modulated structures. + For more details, see the manual for JANA2006 (Petricek, Dusek + & Palatinus, 2014) -save_cell_subsystem.matrix_W_11_3 - _definition.id '_cell_subsystem.matrix_W_11_3' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_3' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_3 - 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_cell_subsystem.matrix_W_11_4 - _definition.id '_cell_subsystem.matrix_W_11_4' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_4' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_4 - save_ - + 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_occ_special_func + _name.object_id crenel_w + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 -save_cell_subsystem.matrix_W_11_5 - _definition.id '_cell_subsystem.matrix_W_11_5' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_5' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_5 - save_ - +save_ -save_cell_subsystem.matrix_W_11_6 - _definition.id '_cell_subsystem.matrix_W_11_6' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_6' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_6 - save_ - +save_ATOM_SITE_OCC_XHARM -save_cell_subsystem.matrix_W_11_7 - _definition.id '_cell_subsystem.matrix_W_11_7' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_7' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_7 - save_ + _definition.id ATOM_SITE_OCC_XHARM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + Data items in the ATOM_SITE_OCC_XHARM category record details about + the x-harmonics used to describe the occupational modulations when + the atomic domain of a given atom or rigid group is restricted by + a crenel function. The coefficients of each x-harmonic function belong + to the category ATOM_SITE_OCC_XHARM_PARAM and are listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_XHARM + loop_ + _category_key.name '_atom_site_occ_xharm.id' + +save_ -save_cell_subsystem.matrix_W_11_8 - _definition.id '_cell_subsystem.matrix_W_11_8' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_8' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_8 - save_ - +save_atom_site_occ_xharm.atom_site_label -save_cell_subsystem.matrix_W_11_9 - _definition.id '_cell_subsystem.matrix_W_11_9' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_9' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_9 - save_ - + _definition.id '_atom_site_occ_xharm.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_xharm_atom_site_label' + _description.text +; -save_cell_subsystem.matrix_W_11_10 - _definition.id '_cell_subsystem.matrix_W_11_10' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_10' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_10 - save_ - + 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_occ_xharm.atom_site_label is the + code that identifies an atom or rigid group in a loop in which + the x-harmonic components of its occupational 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_occ_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 Code -save_cell_subsystem.matrix_W_11_11 - _definition.id '_cell_subsystem.matrix_W_11_11' - loop_ - _alias.definition_id '_cell_subsystem_matrix_W_11_11' - _import.get [{"file":'templ_attr.cif' "save":'matrix_w'}] - _name.object_id matrix_W_11_11 save_ -save_CELL_SUBSYSTEMS +save_atom_site_occ_xharm.id - _definition.id CELL_SUBSYSTEMS - _definition.scope Category - _definition.class Set - _definition.update 2016-11-17 + _definition.id '_atom_site_occ_xharm.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_xharm_id' _description.text ; - Data items in the CELL_SUBSYSTEMS category describe overall aspects - of the subsystems present in a composite. + A code identifying each component of the occupational modulation of + a given atom or rigid group when the modulation is expressed in + terms of x-harmonics. ; - _name.category_id MS_GROUP - _name.object_id CELL_SUBSYSTEMS + _name.category_id atom_site_occ_xharm + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ +save_atom_site_occ_xharm.order -save__cell_subsystems.number - - _definition.id '_cell_subsystems.number' + _definition.id '_atom_site_occ_xharm.order' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_subsystems_number' + '_atom_site_occ_xharm_order' _description.text ; - The number of subsystems used to define the structural model of - a composite structure. + The order of each x-harmonics function. ; - _name.category_id cell_subsystems - _name.object_id number - _type.purpose Number - _type.source Derived + _name.category_id atom_site_occ_xharm + _name.object_id order + _type.purpose Key + _type.source Assigned _type.container Single _type.contents Count - _enumeration.range 2: save_ +save_ATOM_SITE_OCC_XHARM_PARAM -save_CELL_WAVE_VECTOR - - _definition.id cell_wave_vector + _definition.id ATOM_SITE_OCC_XHARM_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the CELL_WAVE_VECTOR category list the - independent modulation wave vectors q~i~. The diffraction - vectors are indexed in the form - ha*+kb*+lc*+sum~i~ (m~i~q~i~). sum~i~ is taken - over all wave vectors. In this version of the dictionary, the - index i has been restricted to be less than 9. + Data items in the ATOM_SITE_OCC_XHARM_PARAM category record details + about the coefficients of the x-harmonics defined in ATOM_SITE_OCC_XHARM + and used to describe the occupational modulation of an atom or rigid group. ; _name.category_id MS_GROUP - _name.object_id CELL_WAVE_VECTOR - loop_ - _category_key.name '_cell_wave_vector.seq_id' + _name.object_id ATOM_SITE_OCC_XHARM_PARAM + loop_ + _category_key.name '_atom_site_occ_xharm_param.id' save_ +save_atom_site_occ_xharm_param.coeff -save__cell_wave_vector.seq_id - - _definition.id '_cell_wave_vector.seq_id' + _definition.id '_atom_site_occ_xharm_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vector_seq_id' + '_atom_site_occ_xharm_param_coeff' _description.text ; - A numeric code to identify each independent wave vector. These - codes define uniquely the reciprocal basis and, therefore, - force the order of the Miller indices assigned to - intensities, crystal faces etc. + The coefficient corresponding to the x-harmonic function describing the + Occupational modulation of a given atom or rigid group. ; - _name.category_id cell_wave_vector - _name.object_id seq_id - _type.purpose Key + _name.category_id atom_site_occ_xharm_param + _name.object_id coeff + _type.purpose Measurand _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 save_ +save_atom_site_occ_xharm_param.id -save__cell_wave_vector.x - - _definition.id '_cell_wave_vector.x' + _definition.id '_atom_site_occ_xharm_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vector_x' + '_atom_site_occ_xharm_param_id' _description.text ; - Modulation wave vector in _cell_wave_vector.xyz. + A code identifying the coefficient of each x-harmonic function + describing the occupational modulation of a given atom or rigid group. + This code must match _atom_site_occ_xharm.id. ; - _name.category_id cell_wave_vector - _name.object_id x - _type.purpose Number - _type.source Derived + _name.category_id atom_site_occ_xharm_param + _name.object_id id + _name.linked_item_id '_atom_site_occ_xharm.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real - _type.dimension '[3]' - _enumeration.default 0.0 + _type.contents Code save_ +save_ATOM_SITE_PHASON -save__cell_wave_vector.xyz - - _definition.id '_cell_wave_vector.xyz' + _definition.id ATOM_SITE_PHASON + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_cell_wave_vector_xyz' _description.text ; - Independent modulation wave vector(s) with which the whole - diffraction pattern is indexed, expressed as fractions of the - three reciprocal basis vectors of the reference structure. In - the case of composites, the modulation wave vectors of each - subsystem are expressed in terms of the reciprocal basis of its - corresponding reference structure. Their number must match - _cell_modulation_dimension. In the case of composites described - in a single data block, the wave - vectors are expressed in the three-dimensional basis chosen as - reference in _cell.reciprocal_basis_description, which would - correspond to the subsystem (if any) whose W matrix is the - {(_cell.modulation_dimension + 3)*\ - (_cell.modulation_dimension + 3)} unit matrix. In this case,\ - the wave vectors used to describe the modulation of each - subsystem are referred to their own reciprocal basis via the W - matrices (for details see _cell_subsystem_matrix_W_* and - _atom_site_Fourier_wave_vector_*). + Data items in the ATOM_SITE_PHASON category record details + about the atomic phason correction. Although this kind of + correction is intended to be overall, some refinement programs + (for example, JANA2006) allow for this (theoretically dubious) + atom-dependent phason treatment. ; - _name.category_id cell_wave_vector - _name.object_id xyz - _type.purpose Number - _type.source Derived - _type.container Matrix - _type.contents Real - _type.dimension '[3]' + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_PHASON loop_ - _method.purpose - _method.expression - Evaluation -; - With m as cell_wave_vector - - _cell_wave_vector.xyz = [ m.x, m.y, m.z ] -; + _category_key.name '_atom_site_phason.atom_site_label' save_ +save_atom_site_phason.atom_site_label -save__cell_wave_vector.y - - _definition.id '_cell_wave_vector.y' + _definition.id '_atom_site_phason.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vector_y' + '_atom_site_phason_atom_site_label' _description.text ; - Modulation wave vector in _cell_wave_vector.xyz. + The code that identifies an atom or rigid group in a loop in + which the phason coefficients are listed. Although this kind of + correction is intended to be overall, some refinement programs + (for example, JANA2006) allow an independent phason correction + for each atom or rigid group. In this case, + _atom_site_phason.formula and _atom_site_phason.coeff should be + used (see also _refine.ls_mod_overall_phason_*). 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 cell_wave_vector - _name.object_id y - _type.purpose Number - _type.source Derived + _name.category_id atom_site_phason + _name.object_id atom_site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real - _type.dimension '[3]' - _enumeration.default 0.0 + _type.contents Code save_ +save_atom_site_phason.coeff -save__cell_wave_vector.z - _definition.id '_cell_wave_vector.z' + _definition.id '_atom_site_phason.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vector_z' + '_atom_site_phason_coeff' _description.text ; - Modulation wave vector in _cell_wave_vector.xyz. + The phason coefficient used to calculate (with the appropriate + expression given in _atom_site_phason.formula) the atomic phason + correction. Although this kind of correction is intended to be + overall, some refinement programs (for example, JANA2006) allow + an independent phason correction for each atom or rigid group. In + this case, _atom_site_phason.formula and _atom_site_phason.coeff + should be used (see also _refine.ls_mod_overall_phason_*). ; - _name.category_id cell_wave_vector - _name.object_id z - _type.purpose Number - _type.source Derived + _name.category_id atom_site_phason + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real - _type.dimension '[3]' _enumeration.default 0.0 -save_ + _enumeration.range 0.0: +save_ -save_CELL_WAVE_VECTORS +save_atom_site_phason.formula - _definition.id CELL_WAVE_VECTORS - _definition.scope Category - _definition.class Set - _definition.update 2016-11-17 + _definition.id '_atom_site_phason.formula' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_phason_formula' _description.text ; - Data items in the CELL_WAVE_VECTORS category record overall details - about the set of independent modulation wave vectors q~i~ and - their measurement. The diffraction vectors are indexed in - the form ha*+kb*+lc*+sum~i~ (m~i~q~i~). sum~i~ is taken - over all wave vectors. In this version of the dictionary, the - index i has been restricted to be less than 9. + The formula used for the phason correction. Although both kinds + of corrections are intended to be overall, some refinement + programs (for example, JANA2006) allow an independent phason + correction for each atom or rigid group. In this case, + _atom_site_phason.formula and _atom_site_phason.coeff should + be used (see also _refine.ls_mod_overall_phason_*). ; - _name.category_id MS_GROUP - _name.object_id CELL_WAVE_VECTORS + _name.category_id atom_site_phason + _name.object_id formula + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + Axe 'Axe, J. D. (1980). Phys. Rev. B, 21, 4181-4190.' + Ovr 'Overhauser, A. W. (1971). Phys. Rev. B, 3, 3173-3182.' save_ +save_ATOM_SITE_ROT_FOURIER -save__cell_wave_vectors.meas_details - - _definition.id '_cell_wave_vectors.meas_details' + _definition.id ATOM_SITE_ROT_FOURIER + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_cell_wave_vectors_meas_details' _description.text ; - Details about the method used to determine the independent - modulation wave vector(s). + Data items in the ATOM_SITE_ROT_FOURIER category record details + about the Fourier components present in the rotational part of + the displacive modulation of a given rigid group. The + translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_FOURIER category. The (in + general complex) coefficients of each Fourier component belong + to the category ATOM_SITE_ROT_FOURIER_PARAM and are listed + separately. ; - _name.category_id cell_wave_vectors - _name.object_id meas_details - _type.purpose Describe - _type.source Recorded - _type.container Single - _type.contents Text + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_FOURIER + loop_ + _category_key.name '_atom_site_rot_Fourier.atom_site_label' save_ +save_atom_site_rot_Fourier.atom_site_label -save__cell_wave_vectors.pressure_max - - _definition.id '_cell_wave_vectors.pressure_max' + _definition.id '_atom_site_rot_Fourier.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vectors_pressure_max' + '_atom_site_rot_Fourier_atom_site_label' _description.text ; - The maximum and minimum values of the pressure in kilopascals - defining the interval within which the modulation wave vector(s) - were measured. + Modulation parameters are usually looped in separate lists. + Modulated parameters are the atom positions (displacive + modulation), the atomic occupation (occupational modulation) + and/or and/or the anisotropic (or isotropic) ADP. + _atom_site_rot_Fourier.atom_site_label is the code that + identifies a rigid group in a loop in which the Fourier + components of the rotational part of its displacive modulation + are listed. The translational part (if any) would appear in a + separate list (see _atom_site_displace_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 cell_wave_vectors - _name.object_id pressure_max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 0.0: -_units.code kilopascals + _type.contents Code save_ +save_atom_site_rot_Fourier.axis -save__cell_wave_vectors.pressure_min - - _definition.id '_cell_wave_vectors.pressure_min' + _definition.id '_atom_site_rot_Fourier.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vectors_pressure_min' + '_atom_site_rot_Fourier_axis' _description.text ; - The maximum and minimum values of the pressure in kilopascals - defining the interval within which the modulation wave vector(s) - were measured. + A label identifying the rotation component around a fixed point + of a given rigid group whose modulation 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_rot_Fourier.matrix_seq_id. Use of + _atom_sites_rot_Fourier.axes_description is deprecated and + retained only for backward compatibility. ; - _name.category_id cell_wave_vectors - _name.object_id pressure_min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_Fourier + _name.object_id axis + _type.purpose State + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.range 0.0: -_units.code kilopascals + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + x 'rotation around the a axis' + y 'rotation around the b axis' + z 'rotation around the c axis' + a1 'rotation around an arbitrary a1 axis' + a2 'rotation around an arbitrary a2 axis' + a3 'rotation around an arbitrary a3 axis' save_ +save_atom_site_rot_Fourier.matrix_seq_id -save__cell_wave_vectors.temp_max - - _definition.id '_cell_wave_vectors.temp_max' + _definition.id '_atom_site_rot_Fourier.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vectors_temp_max' + '_atom_site_rot_Fourier_matrix_seq_id' _description.text ; - The maximum and minimum values of the temperature in kelvins - defining the interval within which the modulation wave vector(s) - were measured. + 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. ; - _name.category_id cell_wave_vectors - _name.object_id temp_max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 0.0: -_units.code kelvins - -save_ - + _type.contents Code -save__cell_wave_vectors.temp_min +save_atom_site_rot_Fourier.wave_vector_seq_id - _definition.id '_cell_wave_vectors.temp_min' + _definition.id '_atom_site_rot_Fourier.wave_vector_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_cell_wave_vectors_temp_min' + '_atom_site_rot_Fourier_wave_vector_seq_id' _description.text ; - The maximum and minimum values of the temperature in kelvins - defining the interval within which the modulation wave vector(s) - were measured. + A numeric code identifying the wave vectors of the Fourier terms + used in the structural model to describe the modulation functions + corresponding to the rotational distortion of a rigid group. This + code must match _atom_site_Fourier_wave_vector.seq_id. ; - _name.category_id cell_wave_vectors - _name.object_id temp_min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 0.0: -_units.code kelvins + _type.contents Code save_ +save_ATOM_SITE_ROT_FOURIER_PARAM -save__cell_wave_vectors.variation - - _definition.id '_cell_wave_vectors.variation' + _definition.id ATOM_SITE_ROT_FOURIER_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_cell_wave_vectors_variation' _description.text ; - Details concerning the behaviour (and its experimental - detection) of the wave vector(s) with temperature and/or - pressure within the ranges specified by - _cell_wave_vectors.pressure_max, _cell_wave_vectors.pressure_min, - _cell_wave_vectors.temp_max and _cell_wave_vectors.temp_min. + Data items in the ATOM_SITE_ROT_FOURIER_PARAM category record + details about the coefficients of the Fourier series used to + describe the rotational component of the displacive modulation of + a given rigid group. The translational part would appear in a + separate list of items belonging to the + ATOM_SITE_DISPLACE_FOURIER_PARAM category. The Fourier components + are defined in the category ATOM_SITE_ROT_FOURIER and are listed + separately. ; - _name.category_id cell_wave_vectors - _name.object_id variation - _type.purpose Describe - _type.source Recorded - _type.container Single - _type.contents Text + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_FOURIER_PARAM + loop_ + _category_key.name '_atom_site_rot_Fourier_param.id' save_ -save__diffrn_reflns.satellite_order_max +save_atom_site_rot_Fourier_param.cos - _definition.id '_diffrn_reflns.satellite_order_max' + _definition.id '_atom_site_rot_Fourier_param.cos' _definition.update 2014-06-27 loop_ _alias.definition_id - '_diffrn_reflns_satellite_order_max' + '_atom_site_rot_Fourier_param_cos' _description.text ; - Maximum order of observed satellites. -; - _name.category_id diffrn_reflns - _name.object_id satellite_order_max - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Count + The displacive distortion of a given rigid group is not + completely described by _atom_site_displace_Fourier.*. The rigid + rotation of the group around a given axis passing through a fixed + point (for example, the centre of mass of the group) is usually + parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Rc cos(2\p k r)+Rs sin(2\p k r), + + and the modulus-argument form, + + |R| cos(2\p k r+\y), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_rot_Fourier_param.cos is the cosine + coefficient (Rc) in degrees corresponding to the Fourier term + defined by _atom_site_rot_Fourier.atom_site_label, + _atom_site_rot_Fourier.axis and + _atom_site_rot_Fourier.wave_vector_seq_id. +; + _name.category_id atom_site_rot_Fourier_param + _name.object_id cos + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_rot_Fourier_param + + atom_site_rot_Fourier_param.cos = p.modulus*Cos(2*Pi*p.phase) +; save_ -save__exptl_crystal.type_of_structure +save_atom_site_rot_Fourier_param.id - _definition.id '_exptl_crystal.type_of_structure' + _definition.id '_atom_site_rot_Fourier_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_exptl_crystal_type_of_structure' + '_atom_site_rot_Fourier_param_id' _description.text ; - The type of structure. This is used to check the consistency of a - CIF: the data blocks that are expected and/or certain characteristic - parameters depend on whether the material is classified as crystalline - (periodic in three dimensions), modulated or composite. + A code identifying the (in general complex) coefficient of each + term present in the Fourier series describing the rotational part + of the displacive modulation of a given rigid group. This code + must match _atom_site_rot_Fourier.id. ; - _name.category_id exptl_crystal - _name.object_id type_of_structure - _type.purpose State - _type.source Assigned + _name.category_id atom_site_rot_Fourier_param + _name.object_id id + _name.linked_item_id '_atom_site_rot_Fourier.id' + _type.purpose Link + _type.source Related _type.container Single _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - cryst 'crystalline structure' - mod 'modulated structure' - comp 'composite (misfit) structure' - _enumeration.default cryst save_ +save_atom_site_rot_Fourier_param.modulus -save__geom_angle.av - - _definition.id '_geom_angle.av' + _definition.id '_atom_site_rot_Fourier_param.modulus' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_av' + '_atom_site_rot_Fourier_param_modulus' _description.text ; - Average angle bounded by _geom_angle.atom_site_label_1, - *_2, and *_3. The site at *_2 is at the apex of the angle. + The displacive distortion of a given rigid group is not + completely described by _atom_site_displace_Fourier.. The rigid + rotation of the group around a given axis passing through a fixed + point (for example, the centre of mass of the group) is usually + parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Rc cos(2\p k r)+Rs sin(2\p k r), + + and the modulus-argument form, + + |R| cos(2\p k r+\y), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_rot_Fourier_param.modulus is the + modulus (|R|) in degrees of the complex amplitude corresponding + to the Fourier term defined by _atom_site_rot_Fourier.atom_site_label, + _atom_site_rot_Fourier.axis and + _atom_site_rot_Fourier.wave_vector_seq_id. ; - _name.category_id geom_angle - _name.object_id av - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_Fourier_param + _name.object_id modulus + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real -_units.code degrees + _enumeration.default 0.0 + _enumeration.range 0.0: + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_rot_Fourier_param -save_ + atom_site_rot_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) +; +save_ -save__geom_angle.max +save_atom_site_rot_Fourier_param.phase - _definition.id '_geom_angle.max' + _definition.id '_atom_site_rot_Fourier_param.phase' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_max' + '_atom_site_rot_Fourier_param_phase' _description.text ; - Maximum angle bounded by _geom_angle.atom_site_label_1, - *_2, and *_3. The site at *_2 is at the apex of the angle. + The displacive distortion of a given rigid group is not + completely described by _atom_site_displace_Fourier. The rigid + rotation of the group around a given axis passing through a fixed + point (for example, the centre of mass of the group) is usually + parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Rc cos(2\p k r)+Rs sin(2\p k r), + + and the modulus-argument form, + + |R| cos(2\p k r+\y), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_rot_Fourier_param.phase is the phase + (\y/2\p) in cycles of the complex amplitude corresponding to the + Fourier term defined by _atom_site_rot_Fourier.atom_site_label, + _atom_site_rot_Fourier.axis and + _atom_site_rot_Fourier.wave_vector_seq_id. ; - _name.category_id geom_angle - _name.object_id max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_Fourier_param + _name.object_id phase + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real -_units.code degrees + _enumeration.default 0.0 + _enumeration.range -1.0:1.0 + _units.code cycles + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_rot_Fourier_param -save_ + atom_site_rot_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/2/Pi +; +save_ -save__geom_angle.min +save_atom_site_rot_Fourier_param.sin - _definition.id '_geom_angle.min' + _definition.id '_atom_site_rot_Fourier_param.sin' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_min' + '_atom_site_rot_Fourier_param_sin' _description.text ; - Minimum angle bounded by _geom_angle.atom_site_label_1, - *_2, and *_3. The site at *_2 is at the apex of the angle. + The displacive distortion of a given rigid group is not + completely described by _atom_site_displace_Fourier.. The rigid + rotation of the group around a given axis passing through a fixed + point (for example, the centre of mass of the group) is usually + parameterized by Fourier series. Each term of the series + commonly adopts two different representations: the sine-cosine + form, + Rc cos(2\p k r)+Rs sin(2\p k r), + + and the modulus-argument form, + + |R| cos(2\p k r+\y), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_rot_Fourier_param.sin is the sine + coefficient (Rs) in degrees corresponding to the Fourier term + defined by _atom_site_rot_Fourier.atom_site_label, + _atom_site_rot_Fourier.axis and + _atom_site_rot_Fourier.wave_vector_seq_id. ; - _name.category_id geom_angle - _name.object_id min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_Fourier_param + _name.object_id sin + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real -_units.code degrees + _enumeration.default 0.0 + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_rot_Fourier_param + + atom_site_rot_Fourier_param.sin = -p.modulus*Sin(2*Pi*p.phase) +; save_ -save__geom_bond.distance_av +save_ATOM_SITE_ROT_LEGENDRE - _definition.id '_geom_bond.distance_av' + _definition.id ATOM_SITE_ROT_LEGENDRE + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_geom_bond_distance_av' _description.text ; - Average value of the intramolecular bond distance. + Data items in the ATOM_SITE_ROT_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 rotational part of the modulation. + The translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_LEGENDRE category. The coefficients + of each Legendre function belong to the category + ATOM_SITE_ROT_LEGENDRE_PARAM and are listed separately. ; - _name.category_id geom_bond - _name.object_id distance_av - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Real - _enumeration.range 0.0: -_units.code angstroms - + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_LEGENDRE + loop_ + _category_key.name '_atom_site_rot_legendre.id' + save_ +save_atom_site_rot_legendre.atom_site_label -save__geom_bond.distance_max - - _definition.id '_geom_bond.distance_max' + _definition.id '_atom_site_rot_legendre.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_bond_distance_max' + '_atom_site_rot_legendre_atom_site_label' _description.text ; - Maximum value of the intramolecular bond distance. + 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_rot_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 + rotational part of its displacive modulation. The translational + part (if any) would appear in a separate list (see + _atom_site_displace_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. ; - _name.category_id geom_bond - _name.object_id distance_max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 0.0: -_units.code angstroms + _type.contents Code save_ +save_atom_site_rot_legendre.axis -save__geom_bond.distance_min - - _definition.id '_geom_bond.distance_min' + _definition.id '_atom_site_rot_legendre.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_bond_distance_min' + '_atom_site_rot_legendre_axis' _description.text ; - Minimum value of the intramolecular bond distance. + A label identifying the rotational part of the displacive modulation of + a given 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_rot_legendre.matrix_seq_id. ; - _name.category_id geom_bond - _name.object_id distance_min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_legendre + _name.object_id axis + _type.purpose State + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.range 0.0: -_units.code angstroms + _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' save_ -save__geom_contact.distance_av +save_atom_site_rot_legendre.id - _definition.id '_geom_contact.distance_av' + _definition.id '_atom_site_rot_legendre.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_contact_distance_av' + '_atom_site_rot_legendre_id' _description.text ; - Average value of the interatomic contact distance. + 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 rotational part of the distortion. ; - _name.category_id geom_contact - _name.object_id distance_av - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_legendre + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Real - _enumeration.range 0.0: -_units.code angstroms + _type.contents Code save_ -save__geom_contact.distance_max +save_atom_site_rot_legendre.matrix_seq_id - _definition.id '_geom_contact.distance_max' + _definition.id '_atom_site_rot_legendre.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_contact_distance_max' + '_atom_site_rot_legendre_matrix_seq_id' _description.text ; - Maximum value of the interatomic contact distance. + 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. ; - _name.category_id geom_contact - _name.object_id distance_max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 0.0: -_units.code angstroms + _type.contents Code save_ +save_atom_site_rot_legendre.order -save__geom_contact.distance_min - - _definition.id '_geom_contact.distance_min' + _definition.id '_atom_site_rot_legendre.order' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_contact_distance_min' + '_atom_site_rot_legendre_order' _description.text ; - Minimum value of the interatomic contact distance. + The order of the Legendre polynomial. ; - _name.category_id geom_contact - _name.object_id distance_min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_legendre + _name.object_id order + _type.purpose Key + _type.source Assigned _type.container Single - _type.contents Real - _enumeration.range 0.0: -_units.code angstroms + _type.contents Count save_ -save__geom_torsion.av +save_ATOM_SITE_ROT_LEGENDRE_PARAM - _definition.id '_geom_torsion.av' + _definition.id ATOM_SITE_ROT_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_geom_torsion_av' _description.text ; - Average torsion angle; see maximum. + Data items in the ATOM_SITE_ROT_LEGENDRE_PARAM category + record details about the coefficients of the Legendre polynomials + functions defined in ATOM_SITE_ROT_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 rotational part of the modulation. The + translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_LEGENDRE_PARAM category. ; - _name.category_id geom_torsion - _name.object_id av - _type.purpose Number - _type.source Derived - _type.container Single - _type.contents Real -_units.code degrees + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_LEGENDRE_PARAM + loop_ + _category_key.name '_atom_site_rot_legendre_param.id' save_ +save_atom_site_rot_legendre_param.coeff -save__geom_torsion.max - - _definition.id '_geom_torsion.max' + _definition.id '_atom_site_rot_legendre_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_max' + '_atom_site_rot_legendre_param_coeff' _description.text ; - Maximum torsion angle bounded by the four atom sites - identified by the _geom_torsion_atom_site_label_ codes. - These must match labels specified as _atom_site.label - in the atom list. The torsion-angle definition should - be that of Klyne and Prelog (1960). - Ref: Klyne, W. & Prelog, V. (1960). Experientia, 16, 521-523. + The coefficient corresponding to the Legendre function + defined by _atom_site_rot_legendre.atom_site_label, + _atom_site_rot_legendre.axis and _atom_site_rot_legendre.order. + Atomic or rigid-group rotations must be expressed in degrees. Special + axes are defined by the items belonging to the ATOM_SITES_AXES category, + through _atom_site_rot_legendre.matrix_seq_id. ; - _name.category_id geom_torsion - _name.object_id max - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_legendre_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single _type.contents Real -_units.code degrees + _enumeration.default 0.0 + _units.code degrees save_ +save_atom_site_rot_legendre_param.id -save__geom_torsion.min - - _definition.id '_geom_torsion.min' + _definition.id '_atom_site_rot_legendre_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_min' + '_atom_site_rot_legendre_param_id' _description.text ; - Minimum torsion angle; see maximum. + A code identifying the coefficient of each term present in the + series of Legendre functions describing the displacive + modulation of a given atom or rigid group. In the case of a rigid + group, it applies only to the rotational part of the + distortion. This code must match _atom_site_rot_legendre.id. ; - _name.category_id geom_torsion - _name.object_id min - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_legendre_param + _name.object_id id + _name.linked_item_id '_atom_site_rot_legendre.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Real -_units.code degrees + _type.contents Code save_ +save_ATOM_SITE_ROT_ORTHO - - -save_REFINE - - _definition.id REFINE + _definition.id ATOM_SITE_ROT_ORTHO _definition.scope Category - _definition.class Set - _definition.update 2016-11-17 + _definition.class Loop + _definition.update 2014-06-27 _description.text ; - Data items in the REFINE category record - details about the structure refinement parameters. The - new items in this category extend those of the core CIF - dictionary and are specific to the refinement of - modulated structures. + Data items in the ATOM_SITE_ROT_ORTHO category record + details about the orthogonalized functions defined to solve + correlation problems during the refinement of displacive + modulations when the 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 rotational part of the modulation. The translational + part would appear in a separate list of items belonging to the + ATOM_SITE_DISPLACE_ORTHO category. The coefficients of each + orthogonalized function belong to the category + ATOM_SITE_ROT_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_ROT_FOURIER and ATOM_SITE_ROT_FOURIER_PARAM. ; _name.category_id MS_GROUP - _name.object_id REFINE - + _name.object_id ATOM_SITE_ROT_ORTHO + loop_ + _category_key.name '_atom_site_rot_ortho.id' + save_ +save_atom_site_rot_ortho.atom_site_label -save__refine.ls_mod_func_description - - _definition.id '_refine.ls_mod_func_description' + _definition.id '_atom_site_rot_ortho.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_refine_ls_mod_func_description' + '_atom_site_rot_ortho_atom_site_label' _description.text ; - Types of modulation present in the structural model and their - parameterization. + 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_rot_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 + rotational part of its displacive modulation. The translational + part (if any) would appear in a separate list (see + _atom_site_displace_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. ; - _name.category_id refine - _name.object_id ls_mod_func_description - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_rot_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 Text - loop_ - _description_example.case - _description_example.detail - "Only displacive modulation. Fourier series." -; Modulation of atom S(1) described by a non-standard - linear sawtooth function -; + _type.contents Code save_ +save_atom_site_rot_ortho.axis -save__refine.ls_mod_hydrogen_treatment - - _definition.id '_refine.ls_mod_hydrogen_treatment' + _definition.id '_atom_site_rot_ortho.axis' _definition.update 2014-06-27 loop_ _alias.definition_id - '_refine_ls_mod_hydrogen_treatment' + '_atom_site_rot_ortho_axis' _description.text ; - Treatment of hydrogen-atom modulation parameters in refinement. + A label identifying the rotational part of the displacive modulation of + a given 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_rot_ortho.matrix_seq_id. ; - _name.category_id refine - _name.object_id ls_mod_hydrogen_treatment + _name.category_id atom_site_rot_ortho + _name.object_id axis _type.purpose State _type.source Assigned _type.container Single _type.contents Code loop_ - _enumeration_set.state - _enumeration_set.detail - refA 'refined H-atom displacive modulation parameters only' - refxyzA 'refined H-atom coords and displacive modulation params only' - refP 'refined H-atom occupational modulation parameters only' - refUP 'refined H-atom U and occupational modulation parameters only' - nomod 'no modulation of H-atom parameters' - _enumeration.default nomod + _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' save_ +save_atom_site_rot_ortho.func_id -save__refine.ls_mod_overall_phason_coeff - - _definition.id '_refine.ls_mod_overall_phason_coeff' + _definition.id '_atom_site_rot_ortho.func_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_refine_ls_mod_overall_phason_coeff' + '_atom_site_rot_ortho_func_id' _description.text ; - Phason coefficient used to calculate the overall phason correction. + 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 rotational part of the distortion. This code must match + _atom_sites_ortho_func_id. ; - _name.category_id refine - _name.object_id ls_mod_overall_phason_coeff - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.default 0.0 - _enumeration.range 0.0: + _type.contents Code save_ +save_atom_site_rot_ortho.id -save__refine.ls_mod_overall_phason_formula - - _definition.id '_refine.ls_mod_overall_phason_formula' + _definition.id '_atom_site_rot_ortho.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_refine_ls_mod_overall_phason_formula' + '_atom_site_rot_ortho_id' _description.text ; - The expression for the overall phason correction, if used. + 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 rotational part of the distortion. ; - _name.category_id refine - _name.object_id ls_mod_overall_phason_formula - _type.purpose State - _type.source Assigned + _name.category_id atom_site_rot_ortho + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single _type.contents Code - loop_ - _enumeration_set.state - _enumeration_set.detail - Axe 'Axe, J. D. (1980). Phys. Rev. B, 21, 4181-4190.' - Ovr 'Overhauser, A. W. (1971). Phys. Rev. B, 3, 3173-3182.' save_ +save_atom_site_rot_ortho.matrix_seq_id - - -save__space_group.ssg_IT_number - - _definition.id '_space_group.ssg_IT_number' + _definition.id '_atom_site_rot_ortho.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_space_group_ssg_IT_number' + '_atom_site_rot_ortho_matrix_seq_id' _description.text ; - Superspace-group number from International Tables for - Crystallography, Vol. C (2004). Valid only for one-dimensional - modulated structures. - Ref: International Tables for Crystallography (2004). Vol. C, - Chapter 9.8. Dordrecht: Kluwer Academic Publishers. + 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. ; - _name.category_id space_group - _name.object_id ssg_IT_number - _type.purpose Number - _type.source Derived + _name.category_id atom_site_rot_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 Real - _enumeration.range 1.1: + _type.contents Code save_ +save_ATOM_SITE_ROT_ORTHO_PARAM -save__space_group.ssg_name - - _definition.id '_space_group.ssg_name' + _definition.id ATOM_SITE_ROT_ORTHO_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_space_group_ssg_name' _description.text ; - Superspace-group symbol conforming to an alternative definition - from that given in _space_group_ssg_name_IT and - _space_group_ssg_name_WJJ for one-dimensional modulated - structures or to the superspace-group name for higher dimensions. - When necessary, indicate the origin and the setting. Use a colon - ':' as a separator between the different parts of the - superspace-group symbol. Within each part, leave a space - between each component. Rules for the notation for - Hermann-Mauguin and Hall symbols (if present) are given in the - symmetry CIF dictionary (cif_sym.dic) and, partially, in - _space_group_ssg_name_IT and _space_group_ssg_name_WJJ. - For composites described in a single data block, the superspace - group describes the symmetry of the whole structure. The - symmetry of each subsystem can be derived using the - appropriate W matrices. + Data items in the ATOM_SITE_ROT_ORTHO_PARAM category + record details about the coefficients of the orthogonolized + functions defined in ATOM_SITE_ROT_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 rotational part of the modulation. The + translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_ORTHO_PARAM category. + ; - _name.category_id space_group - _name.object_id ssg_name - _type.purpose Describe - _type.source Recorded - _type.container Single - _type.contents Text + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_ORTHO_PARAM loop_ - _description_example.case - "Hall" - "s" - "notation" - "W:-P" - "-2xb" - "-2ya:q" - "q'" + _category_key.name '_atom_site_rot_ortho_param.id' save_ +save_atom_site_rot_ortho_param.coeff -save__space_group.ssg_name_IT - - _definition.id '_space_group.ssg_name_IT' + _definition.id '_atom_site_rot_ortho_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_space_group_ssg_name_IT' + '_atom_site_rot_ortho_param_coeff' _description.text ; - Superspace-group symbol as given in International Tables for - Crystallography, Vol. C (2004). Valid only for one-dimensional - modulated structures. The symbol is divided into three parts: - the Hermann-Mauguin space-group symbol of the reference - structure, the modulation wave vector and the phase shift - (or internal translation) associated with each component of - the space group. Each component of the space-group name is - separated by a space. Subscripts should appear without special - symbols and bars should be given as negative signs. The - components of the modulation wave vector (in parentheses) and - the phase shifts are also separated by a space. For composites - described in a single data block, the superspace group - describes the symmetry of the whole structure. The symmetry - of each subsystem can be derived using the appropriate W - matrices. - Ref: International Tables for Crystallography (2004). Vol. C, - Chapter 9.8. Dordrecht: Kluwer Academic Publishers. + The coefficient corresponding to the orthogonalized function + defined by _atom_site_rot_ortho.atom_site_label, + _atom_site_rot_ortho.axis and _atom_site_rot_ortho.func_id. + Atomic or rigid-group rotations must be expressed in degrees. Special + axes are defined by the items belonging to the ATOM_SITES_AXES category, + through _atom_site_rot_ortho.matrix_seq_id. ; - _name.category_id space_group - _name.object_id ssg_name_IT - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_rot_ortho_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Text - loop_ - _description_example.case - "P n m a (0 0 \\g) 0 s 0" + _type.contents Real + _enumeration.default 0.0 + _units.code degrees save_ +save_atom_site_rot_ortho_param.id -save__space_group.ssg_name_WJJ - - _definition.id '_space_group.ssg_name_WJJ' + _definition.id '_atom_site_rot_ortho_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_space_group_ssg_name_WJJ' + '_atom_site_rot_ortho_param_id' _description.text ; - Superspace-group symbol as given by de Wolff, Janssen & Janner - (1981). Valid only for one-dimensional modulated structures. - The symbol is divided into three parts separated by colons ':': - the superspace lattice symbol, the Hermann-Mauguin space-group - symbol of the reference structure and the phase shift (or - internal translation) associated with each component of the - space group. Each component of the space-group name is separated - by a space. Subscripts should appear without special symbols and - bars should be given as negative signs. The phase shifts are - also separated by a space. For composites described in a single - data block, the superspace group describes the symmetry of the - whole structure. The symmetry of each subsystem can be derived - using the appropriate W matrices. - Ref: Wolff, P. M. de, Janssen, T. & Janner, A. (1981). - Acta Cryst. A37, 625-636. + 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 rotational part of the + distortion. This code must match _atom_site_rot_ortho.id. ; - _name.category_id space_group - _name.object_id ssg_name_WJJ - _type.purpose Describe - _type.source Recorded + _name.category_id atom_site_rot_ortho_param + _name.object_id id + _name.linked_item_id '_atom_site_rot_ortho.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Text - loop_ - _description_example.case - "P:P c m n:s s -1" + _type.contents Code save_ +save_ATOM_SITE_ROT_SPECIAL_FUNC -save__space_group.ssg_WJJ_code - - _definition.id '_space_group.ssg_WJJ_code' + _definition.id ATOM_SITE_ROT_SPECIAL_FUNC + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_space_group_ssg_WJJ_code' _description.text ; - Superspace-group code as given by de Wolff, Janssen & Janner - (1981). Valid only for one-dimensional modulated structures. - Ref: Wolff, P. M. de, Janssen, T. & Janner, A. (1981). - Acta Cryst. A37, 625-636. + Data items in the ATOM_SITE_ROT_SPECIAL_FUNC category record + details about the rotational part of the displacive modulation + of a rigid group 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. + + 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 + + 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 space_group - _name.object_id ssg_WJJ_code - _type.purpose Describe - _type.source Recorded - _type.container Single - _type.contents Text - loop_ - _description_example.case - "28a.10.1/2" + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_SPECIAL_FUNC + _category_key.name '_atom_site_rot_special_func.atom_site_label' save_ +save_atom_site_rot_special_func.atom_site_label -save_SPACE_GROUP_SYMOP - - _definition.id SPACE_GROUP_SYMOP - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_rot_special_func.atom_site_label' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_atom_site_label' _description.text ; - The SPACE_GROUP_SYMOP category introduced in the symmetry CIF - dictionary (cif_sym.dic) is intended to replace the original - core SYMMETRY_EQUIV category. It contains information about the - symmetry operations of the space group. For modulated structures, - superspace-group descriptions may be included in the same - category, but include the _ssg_ flag to indicate their - dimensionality of > 3. + The code that identifies a rigid group in a loop in which + the special function that describes the rotational part of + its displacive modulation is being defined. This code must match + the _atom_site.label of theassociated coordinate list and conform + to the rules described in _atom_site.label. ; - _name.category_id MS_GROUP - _name.object_id SPACE_GROUP_SYMOP -loop_ - _category_key.name '_space_group_symop.ssg_id' + _name.category_id atom_site_rot_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 Code save_ +save_atom_site_rot_special_func.matrix_seq_id -save__space_group_symop.ssg_id - - _definition.id '_space_group_symop.ssg_id' + _definition.id '_atom_site_rot_special_func.matrix_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_space_group_symop_ssg_id' + '_atom_site_rot_special_func_matrix_seq_id' _description.text ; - A numeric code identifying each entry in the - _space_group_symop_ssg_operation_algebraic list. + 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. ; - _name.category_id space_group_symop - _name.object_id ssg_id - _type.purpose Key - _type.source Assigned + _name.category_id atom_site_rot_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 -save_ - - -save__space_group_symop.ssg_operation_algebraic +save_atom_site_rot_special_func.sawtooth - _definition.id '_space_group_symop.ssg_operation_algebraic' + _definition.id '_atom_site_rot_special_func.sawtooth' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_space_group_symop_ssg_operation_algebraic' _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 - _cell_modulation_dimension. - All symmetry operations should be entered, including the - identity operation, those for lattice centring and that for - a centre of symmetry, if present. The symbolic notation for - coordinates is such that the identity operation is expressed - as x1,x2,x3,...,xn. + _atom_site_rot_special_func.sawtooth_ items are the + adjustable parameters of a sawtooth function. + A rotational sawtooth function along the internal space is + defined as follows: - _space_group_symop_ssg_operation_algebraic must always be present - in a CIF corresponding to a modulated structure. + [rx, ry, rz] = 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 axis, w is its width, x4 is the + internal coordinate and c is the centre of the function in + internal space. rx, ry and rz must be expressed in degrees. + Special axes are defined by the items belonging to the ATOM_SITES_AXES + category, through _atom_site_rot_special_func.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 rotational part of the modulation. + The translationalional part would appear in a separate list of items belonging + to the ATOM_SITE_DISPLACE_SPECIAL_FUNC category. + + 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 + + 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 space_group_symop - _name.object_id ssg_operation_algebraic - _type.purpose Composite + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth + _type.purpose Measurand _type.source Assigned - _type.container Single - _type.contents Code + _type.container Matrix + _type.contents Real + _type.dimension [3] + _enumeration.default [0.0,0.0,0.0] loop_ - _description_example.case - "x1,-x2,x3,1/2+x4" + _method.purpose + _method.expression + Evaluation +; + With f as atom_site_rot_special_func + + atom_site_rot_special_func.sawtooth = [ + + 2 * [sawtooth_ax, sawtooth_ay, sawtooth_az] * + (( sawtooth_x4 - sawtooth_c) / sawtooth_w )] +; save_ -save_DIFFRN_REFLN +save_atom_site_rot_special_func.sawtooth_axyz - _definition.id DIFFRN_REFLN - _definition.scope Category - _definition.class Loop - _definition.update 2016-11-17 + _definition.id '_atom_site_rot_special_func.sawtooth_axyz' + _definition.update 2014-06-27 _description.text ; - Data items in the DIFFRN_REFLN category record details about - the intensities measured in the diffraction experiment. The - DIFFRN_REFLN data items refer to individual intensity - measurements and must be included in looped lists. (The - DIFFRN_REFLNS data items specify the parameters that apply - to all intensity measurements. The DIFFRN_REFLNS data items - are not looped.) Data items in this category are extensions - of the core CIF dictionary definitions to the indexing of - diffraction intensities by higher-dimensional components. + 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_rot_special_func.sawtooth ; - _name.category_id MS_GROUP - _name.object_id DIFFRN_REFLN + _name.category_id atom_site_rot_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] + _units.code degrees loop_ - _category_key.name - '_diffrn_refln.index_h' - '_diffrn_refln.index_k' - '_diffrn_refln.index_l' - '_diffrn_refln.index_m_list' + _method.purpose + _method.expression + Evaluation +; + With r as atom_site_rot_special_func + atom_site_rot_special_func.sawtooth_axyz = + [ r.sawtooth_ax, r.sawtooth_ay, r.sawtooth_az ] +; save_ -save__diffrn_refln.index_m_list +save_atom_site_rot_special_func.sawtooth_ax - _definition.id '_diffrn_refln.index_m_list' - _definition.update 2016-11-17 + _definition.id '_atom_site_rot_special_func.sawtooth_ax' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_sawtooth_ax' _description.text ; - Additional Miller indices needed to write the reciprocal vector - of a certain reflection in the basis described in - _cell_reciprocal_basis_description. Following the usual - convention, such a vector would be expressed as - H=h*a*+k*b*+l*c*+m1*q(1)+...+m8*q(8), - where h,k,l are the usual _diffrn_refln_index_, and q(1)...q(8) - represent the independent wave vectors given by - _cell_wave_vector_ and identified by _cell_wave_vector_seq_id. - Therefore, the total number of indices of a given reflection must - match (_cell_modulation_dimension + 3) and the order of the - additional indices must be consistent with the codes given in - _cell_wave_vector_seq_id. These indices need not match - _refln_index_m_ values if a transformation of the original - measured cell has occurred. + The amplitude (maximum displacement) along the a (or a1) axis of the sawtooth + function described in _atom_site_rot_special_func.sawtooth ; - _name.category_id diffrn_refln - _name.object_id index_m_list - _type.purpose Number - _type.source Recorded - _type.container List - _type.contents Integer - _type.dimension '[8]' + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_ax + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees loop_ - _method.purpose - _method.expression - Evaluation + _method.purpose + _method.expression + Evaluation ; - With r as diffrn_refln + With r as atom_site_rot_special_func - _diffrn_refln.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 ] + atom_site_rot_special_func.sawtooth_ax = r.sawtooth_axyz[0] ; save_ -save_diffrn_refln.index_m_1 - _definition.id '_diffrn_refln.index_m_1' - loop_ - _alias.definition_id '_diffrn_refln_index_m_1' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_1 - save_ - - -save_diffrn_refln.index_m_2 - _definition.id '_diffrn_refln.index_m_2' - loop_ - _alias.definition_id '_diffrn_refln_index_m_2' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_2 - save_ - - -save_diffrn_refln.index_m_3 - _definition.id '_diffrn_refln.index_m_3' - loop_ - _alias.definition_id '_diffrn_refln_index_m_3' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_3 - save_ - - -save_diffrn_refln.index_m_4 - _definition.id '_diffrn_refln.index_m_4' - loop_ - _alias.definition_id '_diffrn_refln_index_m_4' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_4 - save_ - - -save_diffrn_refln.index_m_5 - _definition.id '_diffrn_refln.index_m_5' - loop_ - _alias.definition_id '_diffrn_refln_index_m_5' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_5 - save_ - +save_atom_site_rot_special_func.sawtooth_ay -save_diffrn_refln.index_m_6 - _definition.id '_diffrn_refln.index_m_6' - loop_ - _alias.definition_id '_diffrn_refln_index_m_6' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_6 - save_ - - -save_diffrn_refln.index_m_7 - _definition.id '_diffrn_refln.index_m_7' - loop_ - _alias.definition_id '_diffrn_refln_index_m_7' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_7 - save_ + _definition.id '_atom_site_rot_special_func.sawtooth_ay' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_sawtooth_ay' + _description.text +; + The amplitude (maximum displacement) along the b (or a2) axis of the sawtooth + function described in _atom_site_rot_special_func.sawtooth +; + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_ay + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as atom_site_rot_special_func -save_diffrn_refln.index_m_8 - _definition.id '_diffrn_refln.index_m_8' - loop_ - _alias.definition_id '_diffrn_refln_index_m_8' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_refln - _name.object_id index_m_8 - save_ + atom_site_rot_special_func.sawtooth_ay = r.sawtooth_axyz[1] +; +save_ -save__diffrn_reflns.limit_index_m_max_list +save_atom_site_rot_special_func.sawtooth_az - _definition.id '_diffrn_reflns.limit_index_m_max_list' + _definition.id '_atom_site_rot_special_func.sawtooth_az' _definition.update 2014-06-27 loop_ _alias.definition_id - '_diffrn_reflns_limit_index_m_max_list' + '_atom_site_rot_special_func_sawtooth_az' _description.text ; - Maximum values of the additional Miller indices - appearing in _diffrn_refln_index_m_*. The number of ranges must - match _cell.modulation_dimension. The order of the additional - indices must be consistent with the codes given in - _cell.wave_vector_seq_id. + The amplitude (maximum displacement) along the c (or a3) axis of the sawtooth + function described in _atom_site_rot_special_func.sawtooth ; - _name.category_id diffrn_reflns - _name.object_id limit_index_m_max_list - _type.purpose Number - _type.source Derived - _type.container List - _type.contents Integer - _type.dimension '[8]' + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_az + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees loop_ - _method.purpose - _method.expression - Evaluation + _method.purpose + _method.expression + Evaluation ; - With m as diffrn_reflns - - _diffrn_reflns_limit_index_m_max_list = + With r as atom_site_rot_special_func - [ m.limit_index_m_1_max, m.limit_index_m_2_max, - m.limit_index_m_3_max, m.limit_index_m_4_max, - m.limit_index_m_5_max, m.limit_index_m_6_max, - m.limit_index_m_7_max, m.limit_index_m_8_max ] + atom_site_rot_special_func.sawtooth_az = r.sawtooth_axyz[2] ; save_ -save_diffrn_reflns.limit_index_m_1_max - _definition.id '_diffrn_reflns.limit_index_m_1_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_1_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_1_max - save_ - +save_atom_site_rot_special_func.sawtooth_c -save_diffrn_reflns.limit_index_m_2_max - _definition.id '_diffrn_reflns.limit_index_m_2_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_2_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_2_max - save_ + _definition.id '_atom_site_rot_special_func.sawtooth_c' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_sawtooth_c' + _description.text +; + The centre of the sawtooth function described in + _atom_site_rot_special_func.sawtooth +; + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_c + _type.purpose Measurand + _type.source Related + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + -save_diffrn_reflns.limit_index_m_3_max - _definition.id '_diffrn_reflns.limit_index_m_3_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_3_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_3_max - save_ +save_ +save_atom_site_rot_special_func.sawtooth_w -save_diffrn_reflns.limit_index_m_4_max - _definition.id '_diffrn_reflns.limit_index_m_4_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_4_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_4_max - save_ + _definition.id '_atom_site_rot_special_func.sawtooth_w' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_sawtooth_w' + _description.text +; + The width of the sawtooth function described in + _atom_site_rot_special_func.sawtooth +; + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_w + _type.purpose Measurand + _type.source Related + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 -save_diffrn_reflns.limit_index_m_5_max - _definition.id '_diffrn_reflns.limit_index_m_5_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_5_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_5_max - save_ +save_ +save_atom_site_rot_special_func.zigzag -save_diffrn_reflns.limit_index_m_6_max - _definition.id '_diffrn_reflns.limit_index_m_6_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_6_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_6_max - save_ + _definition.id '_atom_site_rot_special_func.zigzag' + _definition.update 2014-06-27 + _description.text +; + _atom_site_rot_special_func.zigzag_ items are the + adjustable parameters of a zigzag function. + A displacive zigzag function along the internal space is + defined as follows: -save_diffrn_reflns.limit_index_m_7_max - _definition.id '_diffrn_reflns.limit_index_m_7_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_7_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_7_max - save_ + 2*[ax,ay,az]*(x4-c)/w for x4 in [c-(w/2),c+(w/2)] + [rx,ry,rz] = + -2*[ax,ay,az]*(x4-c)/w for x4 in [c+1/2-(w/2),c+1/2+(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. rx, ry and rz must be expressed in degrees. + Special axes are defined by the items belonging to the ATOM_SITES_AXES + category, through _atom_site_rot_special_func.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 rotational part of the modulation. + The rotational part would appear in a separate list of items belonging + to the ATOM_SITE_DISPLACE_SPECIAL_FUNC category. -save_diffrn_reflns.limit_index_m_8_max - _definition.id '_diffrn_reflns.limit_index_m_8_max' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_8_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_8_max - save_ - + 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 -save__diffrn_reflns.limit_index_m_min_list + 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 - _definition.id '_diffrn_reflns.limit_index_m_min_list' - _definition.update 2014-06-27 + 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_rot_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_ - _alias.definition_id - '_diffrn_reflns_limit_index_m_min_list' - _description.text + _method.purpose + _method.expression + Evaluation ; + With r as atom_site_rot_special_func - Minimum values of the additional Miller indices - appearing in _diffrn_refln_index_m_*. The number of ranges must - match _cell.modulation_dimension. The order of the additional - indices must be consistent with the codes given in - _cell.wave_vector_seq_id. -; - _name.category_id diffrn_reflns - _name.object_id limit_index_m_min_list - _type.purpose Number - _type.source Derived - _type.container List - _type.contents Integer - _type.dimension '[8]' - loop_ - _method.purpose - _method.expression - Evaluation -; - With m as diffrn_reflns - - _diffrn_reflns_limit_index_m_min_list = - - [ m.limit_index_m_1_min, m.limit_index_m_2_min, - m.limit_index_m_3_min, m.limit_index_m_4_min, - m.limit_index_m_5_min, m.limit_index_m_6_min, - m.limit_index_m_7_min, m.limit_index_m_8_min ] + atom_site_rot_special_func.zigzag = [ + + 2 * [r.zigzag_ax, r.zigzag_ay, r.zigzag_az] * + (( r.zigzag_x4 - zigzag_c) / zigzag_w )] ; save_ -save_diffrn_reflns.limit_index_m_1_min - _definition.id '_diffrn_reflns.limit_index_m_1_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_1_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_1_min - save_ - - -save_diffrn_reflns.limit_index_m_2_min - _definition.id '_diffrn_reflns.limit_index_m_2_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_2_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_2_min - save_ - - -save_diffrn_reflns.limit_index_m_3_min - _definition.id '_diffrn_reflns.limit_index_m_3_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_3_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_3_min - save_ - - -save_diffrn_reflns.limit_index_m_4_min - _definition.id '_diffrn_reflns.limit_index_m_4_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_4_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_4_min - save_ +save_atom_site_rot_special_func.zigzag_axyz + _definition.id '_atom_site_rot_special_func.zigzag_axyz' + _definition.update 2014-06-27 +; -save_diffrn_reflns.limit_index_m_5_min - _definition.id '_diffrn_reflns.limit_index_m_5_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_5_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_5_min - save_ + The vector of amplitudes (maximum displacements) along the a (or a1), + b (or a2) and c (or a3) axis of the zigzag function described in + _atom_site_rot_special_func.zigzag +; + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_axyz + _type.purpose Measurand + _type.source Assigned + _type.container Array + _type.contents Real + _type.dimension [3] + _enumeration.default [0.0,0.0,0.0] + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as atom_site_rot_special_func + atom_site_rot_special_func.zigzag_axyz = + [ r.zigzag_ax, r.zigzag_ay, r.zigzag_az ] +; +save_ -save_diffrn_reflns.limit_index_m_6_min - _definition.id '_diffrn_reflns.limit_index_m_6_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_6_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_6_min - save_ +save_atom_site_rot_special_func.zigzag_ax + _definition.id '_atom_site_rot_special_func.zigzag_ax' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_zigzag_ax' + _description.text +; -save_diffrn_reflns.limit_index_m_7_min - _definition.id '_diffrn_reflns.limit_index_m_7_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_7_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_7_min - save_ + The amplitude (maximum displacement) along the a (or a1) axis of the + zigzag function described in _atom_site_rot_special_func.zigzag +; + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_ax + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as atom_site_rot_special_func + atom_site_rot_special_func.zigzag_ax = r.zigzag_axyz[0] +; -save_diffrn_reflns.limit_index_m_8_min - _definition.id '_diffrn_reflns.limit_index_m_8_min' - loop_ - _alias.definition_id '_diffrn_reflns_limit_index_m_8_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id diffrn_reflns - _name.object_id limit_index_m_8_min - save_ +save_ -save_DIFFRN_STANDARD_REFLN +save_atom_site_rot_special_func.zigzag_ay - _definition.id DIFFRN_STANDARD_REFLN - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_rot_special_func.zigzag_ay' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_zigzag_ay' _description.text ; - Data items in the DIFFRN_STANDARD_REFLN category record - details about the reflections treated as standards during the - measurement of diffraction intensities. Note that these are the - individual standard reflections, not the results of the analysis - of the standard reflections. Data items in this category are - extensions of the core CIF dictionary definitions - to the indexing of standard reflections by - higher-dimensional components. + The amplitude (maximum displacement) along the b (or a2) axis of the + zigzag function described in _atom_site_rot_special_func.zigzag ; - _name.category_id MS_GROUP - _name.object_id DIFFRN_STANDARD_REFLN + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_ay + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees loop_ - _category_key.name - '_diffrn_standard_refln.index_h' - '_diffrn_standard_refln.index_k' - '_diffrn_standard_refln.index_l' - '_diffrn_standard_refln.index_m_list' + _method.purpose + _method.expression + Evaluation +; + With rs as atom_site_rot_special_func -save_ + atom_site_rot_special_func.zigzag_ay = r.zigzag_axyz[1] +; +save_ -save__diffrn_standard_refln.index_m_list +save_atom_site_rot_special_func.zigzag_az - _definition.id '_diffrn_standard_refln.index_m_list' + _definition.id '_atom_site_rot_special_func.zigzag_az' _definition.update 2014-06-27 loop_ _alias.definition_id - '_diffrn_standard_refln_index_m_list' + '_atom_site_rot_special_func_zigzag_az' _description.text ; - Additional Miller indices needed to write the reciprocal vectors - of the standard intensities used in the diffraction measurement - process, in the basis described in - _cell_reciprocal_basis_description. The total number of indices - of a given standard reflection must match - (_cell_modulation_dimension + 3) and the order of the - additional indices must be consistent with the codes given in - _cell_wave_vector_seq_id. + The amplitude (maximum displacement) along the c (or a3) axis of the + zigzag function described in _atom_site_rot_special_func.zigzag ; - _name.category_id diffrn_standard_refln - _name.object_id index_m_list - _type.purpose Number - _type.source Recorded - _type.container List - _type.contents Integer - _type.dimension '[8]' + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_az + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees loop_ - _method.purpose - _method.expression - Evaluation + _method.purpose + _method.expression + Evaluation ; - With r as diffrn_standard_refln - - _diffrn_standard_refln.index_m_list = + With r as atom_site_rot_special_func - [ 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 ] + atom_site_rot_special_func.zigzag_az = s.zigzag_axyz[2] ; save_ -save_diffrn_standard_refln.index_m_1 - _definition.id '_diffrn_standard_refln.index_m_1' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_1' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_1 - save_ +save_atom_site_rot_special_func.zigzag_c + _definition.id '_atom_site_rot_special_func.zigzag_c' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_zigzag_c' + _description.text +; -save_diffrn_standard_refln.index_m_2 - _definition.id '_diffrn_standard_refln.index_m_2' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_2' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_2 - save_ + The centre of the zigzag function described in + _atom_site_rot_special_func.zigzag +; + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_c + _type.purpose Measurand + _type.source Related + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + +save_ -save_diffrn_standard_refln.index_m_3 - _definition.id '_diffrn_standard_refln.index_m_3' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_3' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_3 - save_ +save_atom_site_rot_special_func.zigzag_w + _definition.id '_atom_site_rot_special_func.zigzag_w' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_special_func_zigzag_w' + _description.text +; -save_diffrn_standard_refln.index_m_4 - _definition.id '_diffrn_standard_refln.index_m_4' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_4' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_4 - save_ + The width of the zigzag function described in + _atom_site_rot_special_func.zigzag +; + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_w + _type.purpose Measurand + _type.source Related + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 +save_ -save_diffrn_standard_refln.index_m_5 - _definition.id '_diffrn_standard_refln.index_m_5' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_5' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_5 - save_ +save_ATOM_SITE_ROT_XHARM + _definition.id ATOM_SITE_ROT_XHARM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; -save_diffrn_standard_refln.index_m_6 - _definition.id '_diffrn_standard_refln.index_m_6' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_6' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_6 - save_ + Data items in the ATOM_SITE_ROT_XHARM category record + details about the x-harmonics 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 rotational part of the modulation. + The translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_XHARM category. The coefficients + of each x-harmonic function belong to the category + ATOM_SITE_ROT_XHARM_PARAM and are listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ROT_XHARM + loop_ + _category_key.name '_atom_site_rot_xharm.id' + +save_ +save_atom_site_rot_xharm.atom_site_label -save_diffrn_standard_refln.index_m_7 - _definition.id '_diffrn_standard_refln.index_m_7' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_7' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_7 - save_ + _definition.id '_atom_site_rot_xharm.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_atom_site_label' + _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_rot_xharm.atom_site_label is the code that identifies + an atom or rigid group in a loop in which the x-harmonics + components of its displacive modulation are listed. In the case + of a rigid group, this list would only include the rotational part + of its displacive modulation. The translational part (if any) would + appear in a separate list (see _atom_site_displace_xharm.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_rot_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 Code -save_diffrn_standard_refln.index_m_8 - _definition.id '_diffrn_standard_refln.index_m_8' - loop_ - _alias.definition_id '_diffrn_standard_refln_index_m_8' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id diffrn_standard_refln - _name.object_id index_m_8 - save_ +save_ -save_EXPTL_CRYSTAL_FACE +save_atom_site_rot_xharm.axis - _definition.id EXPTL_CRYSTAL_FACE - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_rot_xharm.axis' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_axis' _description.text ; - Data items in the EXPTL_CRYSTAL_FACE category record - details of the crystal faces. Data items in this category are - extensions of the core CIF dictionary definitions to the - indexing of crystal faces by higher-dimensional components. + A label identifying the rotational part of the displacive modulation of + a given rigid group that is being parameterized by x-harmonics. 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_rot_xharm.matrix_seq_id. ; - _name.category_id MS_GROUP - _name.object_id EXPTL_CRYSTAL_FACE + _name.category_id atom_site_rot_xharm + _name.object_id axis + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code loop_ - _category_key.name - '_exptl_crystal_face.index_h' - '_exptl_crystal_face.index_k' - '_exptl_crystal_face.index_l' - '_exptl_crystal_face.index_m_list' + _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' save_ +save_atom_site_rot_xharm.id -save__exptl_crystal_face.index_m_list - - _definition.id '_exptl_crystal_face.index_m_list' + _definition.id '_atom_site_rot_xharm.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_exptl_crystal_face_index_m_list' + '_atom_site_rot_xharm_id' _description.text ; - Additional Miller indices of the crystal face associated with the - value _exptl_crystal_face_perp_dist when the face is indexed - using a multidimensional scheme. The total number of indices must - match (_cell_modulation_dimension + 3). The order of the indices - must be consistent with the codes given in - _cell_wave_vector_seq_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 x-harmonics. In the case of a rigid group, it + applies only to the rotational part of the distortion. ; - _name.category_id exptl_crystal_face - _name.object_id index_m_list - _type.purpose Number - _type.source Recorded + _name.category_id atom_site_rot_xharm + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Integer - _type.dimension '[8]' - loop_ - _method.purpose - _method.expression - Evaluation -; - With r as exptl_crystal_face - - _exptl_crystal_face.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 ] -; + _type.contents Code save_ -save_exptl_crystal_face.index_m_1 - _definition.id '_exptl_crystal_face.index_m_1' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_1' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_1 - save_ - +save_atom_site_rot_xharm.matrix_seq_id -save_exptl_crystal_face.index_m_2 - _definition.id '_exptl_crystal_face.index_m_2' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_2' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_2 - save_ - - -save_exptl_crystal_face.index_m_3 - _definition.id '_exptl_crystal_face.index_m_3' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_3' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_3 - save_ - - -save_exptl_crystal_face.index_m_4 - _definition.id '_exptl_crystal_face.index_m_4' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_4' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_4 - save_ - - -save_exptl_crystal_face.index_m_5 - _definition.id '_exptl_crystal_face.index_m_5' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_5' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_5 - save_ + _definition.id '_atom_site_rot_xharm.matrix_seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_matrix_seq_id' + _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. +; + _name.category_id atom_site_rot_xharm + _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 -save_exptl_crystal_face.index_m_6 - _definition.id '_exptl_crystal_face.index_m_6' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_6' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_6 - save_ +save_ +save_atom_site_rot_xharm.order -save_exptl_crystal_face.index_m_7 - _definition.id '_exptl_crystal_face.index_m_7' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_7' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_7 - save_ + _definition.id '_atom_site_rot_xharm.order' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_order' + _description.text +; + The order of each x-harmonic function. +; + _name.category_id atom_site_rot_xharm + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Count -save_exptl_crystal_face.index_m_8 - _definition.id '_exptl_crystal_face.index_m_8' - loop_ - _alias.definition_id '_exptl_crystal_face_index_m_8' - _import.get [{"file":'templ_attr.cif' "save":'ms_index'}] - _name.category_id exptl_crystal_face - _name.object_id index_m_8 save_ -save_GEOM_ANGLE +save_ATOM_SITE_ROT_XHARM_PARAM - _definition.id GEOM_ANGLE + _definition.id ATOM_SITE_ROT_XHARM_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - Data items in the GEOM_ANGLE category record - details about the bond angles, as calculated from the - ATOM, CELL and SYMMETRY data. These extensions - to the core CIF dictionary definitions record the maximum, - minimum and average values of angles and extend the - symmetry-operation code used in angle listings to the - higher-dimensional superspace form. Many GEOM_ANGLE - datanames are redefined due to the consequent change - in the way that they are calculated, even if the - calculation method is not explicit in either this - dictionary or the core. + Data items in the ATOM_SITE_ROT_XHARM_PARAM category + record details about the coefficients of the x-harmonics + defined in ATOM_SITE_ROT_XHARM 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 rotational part of the modulation. The + translational part would appear in a separate list of items + belonging to the ATOM_SITE_DISPLACE_XHARM_PARAM category. ; _name.category_id MS_GROUP - _name.object_id GEOM_ANGLE + _name.object_id ATOM_SITE_ROT_XHARM_PARAM loop_ - _category_key.name - '_geom_angle.atom_site_label_1' - '_geom_angle.atom_site_label_2' - '_geom_angle.atom_site_label_3' - '_geom_angle.site_ssg_symmetry_1' - '_geom_angle.site_ssg_symmetry_2' - '_geom_angle.site_ssg_symmetry_3' + _category_key.name '_atom_site_rot_xharm_param.id' save_ -save__geom_angle.distances +save_atom_site_rot_xharm_param.coeff -_definition.id '_geom_angle.distances' -_definition.update 2012-11-22 -_description.text + _definition.id '_atom_site_rot_xharm_param.coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_param_coeff' + _description.text ; - The pair of distances between sites 1 - 2 and 2 - 3. + + The coefficient corresponding to the x-harmonic function + Defined by _atom_site_rot_xharm.atom_site_label, + _atom_site_rot_xharm.axis and _atom_site_rot_xharm.order. + Atomic or rigid-group rotations must be expressed in degrees. Special + axes are defined by the items belonging to the ATOM_SITES_AXES category, + through _atom_site_rot_xharm.matrix_seq_id. ; -_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 atom_site_rot_xharm_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code degrees save_ -save__geom_angle.value +save_atom_site_rot_xharm_param.id -_definition.id '_geom_angle.value' -loop_ - _alias.definition_id - '_geom_angle' -_definition.update 2016-11-17 -_description.text + _definition.id '_atom_site_rot_xharm_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_xharm_param_id' + _description.text ; - 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. + + A code identifying the coefficient of each term present in the + series of x-harmonics describing the displacive modulation of a + given atom or rigid group. In the case of a rigid group, it + applies only to the rotational part of the distortion. This code + must match _atom_site_rot_xharm.id. ; -_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 + _name.category_id atom_site_rot_xharm_param + _name.object_id id + _name.linked_item_id '_atom_site_rot_xharm.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code save_ +save_ATOM_SITE_U_FOURIER - -save__geom_angle.value_su - -_definition.id '_geom_angle.value_su' -loop_ - _alias.definition_id - '_geom_angle_su' - '_geom_angle.value_esd' -_definition.update 2016-11-17 -_description.text + _definition.id ATOM_SITE_U_FOURIER + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text ; - Standard Uncertainty of the - angle defined by the sites identified by _geom_angle.id + + Data items in the ATOM_SITE_U_FOURIER category record details + about the Fourier components describing the modulation of the + ADP in a modulated structure. ; -_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 + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_FOURIER + loop_ + _category_key.name '_atom_site_U_Fourier.atom_site_label' save_ -save__geom_angle.site_ssg_symmetry_1 +save_atom_site_U_Fourier.atom_site_label - _definition.id '_geom_angle.site_ssg_symmetry_1' + _definition.id '_atom_site_U_Fourier.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_site_ssg_symmetry_1' + '_atom_site_U_Fourier_atom_site_label' _description.text ; - The symmetry code of each atom site as the symmetry operation - number 'n' and the higher-dimensional translation 'm1...mp'. - These numbers are combined to form the code 'n m1...mp' or - n_m1...mp. The character string n_m1...mp is composed as follows: - 'n' refers to the symmetry operation that is applied to the - superspace coordinates. It must match a number given in - _space_group_symop_ssg_id. 'm1...mp' refer to the translations - that are subsequently applied to the symmetry-transformed - coordinates to generate the atom used in calculating the angle. - These translations (t1,...tp) are related to (m1...mp) by the - relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, - the use of negative numbers is avoided. The number 'p' must agree - with (_cell_modulation_dimension + 3). If there are no cell - translations, the translation number may be omitted. If no - symmetry operations or translations are applicable, then a single - full stop '.' is used. + Modulation parameters are usually looped in separate lists. + Modulated parameters are the atom positions (displacive + modulation), the atomic occupation (occupational modulation) + and/or and/or the anisotropic (or isotropic) ADP. + _atom_site_U_Fourier.atom_site_label is the code that + identifies an atom in a loop in which the Fourier components of + its thermal-parameters 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 geom_angle - _name.object_id site_ssg_symmetry_1 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_Fourier + _name.object_id site_label + _name.linked_item_id '_atom_site.label' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Symop - loop_ - _description_example.case - _description_example.detail - "." 'no symmetry or translation to site' - "4" '4th symmetry operation applied' - "7_645" '7th symmetry position; +a on x, -b on y' + _type.contents Code save_ +save_atom_site_U_Fourier.tens_elem -save__geom_angle.site_ssg_symmetry_2 - - _definition.id '_geom_angle.site_ssg_symmetry_2' + _definition.id '_atom_site_U_Fourier.tens_elem' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_site_ssg_symmetry_2' + '_atom_site_U_Fourier_tens_elem' _description.text ; - See _geom_angle.site_ssg_symmetry_1 for description. + A label identifying the ADP tensor element U(ij) of a + given atom or rigid group whose modulation is being parameterized + by Fourier series. ; - _name.category_id geom_angle - _name.object_id site_ssg_symmetry_2 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_Fourier + _name.object_id tens_elem + _type.purpose State + _type.source Assigned _type.container Single - _type.contents Symop + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + U11 'modulation of U11' + U12 'modulation of U12' + U13 'modulation of U13' + U22 'modulation of U22' + U23 'modulation of U23' + U33 'modulation of U33' + Uiso 'modulation of U~isotropic~' save_ +save_atom_site_U_Fourier.wave_vector_seq_id -save__geom_angle.site_ssg_symmetry_3 - - _definition.id '_geom_angle.site_ssg_symmetry_3' + _definition.id '_atom_site_U_Fourier.wave_vector_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_angle_site_ssg_symmetry_3' + '_atom_site_U_Fourier_wave_vector_seq_id' _description.text ; - See _geom_angle.site_ssg_symmetry_1 for description. + A numeric code identifying the wave vectors of the Fourier terms + used to describe the modulation functions corresponding to the + ADP of an atom or rigid group. This code must + match _atom_site_Fourier_wave_vector.seq_id. ; - _name.category_id geom_angle - _name.object_id site_ssg_symmetry_3 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_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 Symop + _type.contents Code save_ -save_GEOM_BOND +save_ATOM_SITE_U_FOURIER_PARAM -_definition.id GEOM_BOND -_definition.scope Category -_definition.class Loop -_definition.update 2016-11-17 -_description.text -; - Data items in the GEOM_BOND category record - details about bonds, as calculated from the - ATOM, CELL and SYMMETRY data. This category extends the - symmetry-operation code used in bond listings to the - higher-dimensional superspace form and therefore - redefines many datanames to reflect the changed - method of distance calculation. + _definition.id ATOM_SITE_U_FOURIER_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text ; -_name.category_id GEOM -_name.object_id GEOM_BOND -loop_ - _category_key.name - '_geom_bond.atom_site_label_1' - '_geom_bond.atom_site_label_2' - '_geom_bond.site_ssg_symmetry_1' - '_geom_bond.site_ssg_symmetry_2' + Data items in the ATOM_SITE_U_FOURIER category record details + about the coefficients of the Fourier series used to describe the + modulation of the ADP in a modulated structure. The Fourier + components are defined in the category ATOM_SITE_U_FOURIER and are + listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_FOURIER_PARAM + loop_ + _category_key.name '_atom_site_U_Fourier_param.id' save_ +save_atom_site_U_Fourier_param.cos -save__geom_bond.site_ssg_symmetry_1 - - _definition.id '_geom_bond.site_ssg_symmetry_1' + _definition.id '_atom_site_U_Fourier_param.cos' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_bond_site_ssg_symmetry_1' + '_atom_site_U_Fourier_param_cos' _description.text ; - The symmetry code of each atom site as the symmetry operation - number 'n' and the higher-dimensional translation 'm1...mp'. - These numbers are combined to form the code 'n m1...mp' or - n_m1...mp. The character string n_m1...mp is composed as follows: - 'n' refers to the symmetry operation that is applied to the - superspace coordinates. It must match a number given in - _space_group_symop_ssg_id. 'm1...mp' refer to the translations - that are subsequently applied to the symmetry-transformed - coordinates to generate the atom used in calculating the bond. - These translations (t1,...tp) are related to (m1...mp) by the - relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, - the use of negative numbers is avoided. The number 'p' must agree - with (_cell_modulation_dimension + 3). If there are no cell - translations, the translation number may be omitted. If no - symmetry operations or translations are applicable then a single - full stop '.' is used. + The modulation of the ADP is usually parameterized by Fourier series. + Each term of the series commonly adopts two different representations: + the sine-cosine form, + + U(ij)c cos(2\p k r)+U(ij)s sin(2\p k r), + + and the modulus-argument form, + + |U(ij)| cos(2\p k r+\c), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_U_Fourier_param.cos is the cosine + coefficient [U(ij)c], in angstroms squared, corresponding to + the Fourier term defined by + _atom_site_U_Fourier.atom_site_label, + _atom_site_U_Fourier.tens_elem and + _atom_site_U_Fourier.wave_vector_seq_id. ; - _name.category_id geom_bond - _name.object_id site_ssg_symmetry_1 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_Fourier_param + _name.object_id cos + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Symop + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared loop_ - _description_example.case - _description_example.detail - "." 'no symmetry or translation to site' - "4" '4th symmetry operation applied' - "7_645" '7th symmetry position; +a on x, -b on y' + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_U_Fourier_param -save_ + atom_site_U_Fourier_param.cos = p.modulus*Cos(2*Pi*p.phase) +; +save_ -save__geom_bond.site_ssg_symmetry_2 +save_atom_site_U_Fourier_param.id - _definition.id '_geom_bond.site_ssg_symmetry_2' + _definition.id '_atom_site_U_Fourier_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_bond_site_ssg_symmetry_2' + '_atom_site_U_Fourier_param_id' _description.text ; - The symmetry code described in _geom_bond_site_ssg_symmetry_1. + 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_U_Fourier.id. ; - _name.category_id geom_bond - _name.object_id site_ssg_symmetry_2 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_Fourier_param + _name.object_id id + _name.linked_item_id '_atom_site_U_Fourier.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Symop + _type.contents Code save_ -save__geom_bond.distance +save_atom_site_U_Fourier_param.modulus -_definition.id '_geom_bond.distance' -loop_ - _alias.definition_id - '_geom_bond_distance' - '_geom_bond.dist' -_definition.update 2012-12-14 -_description.text -; - Intramolecular bond distance between the sites identified + _definition.id '_atom_site_U_Fourier_param.modulus' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_Fourier_param_modulus' + _description.text ; -_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_ + The modulation of the ADP is usually parameterized by Fourier series. + Each term of the series commonly adopts two different representations: + the sine-cosine form, + U(ij)c cos(2\p k r)+U(ij)s sin(2\p k r), -save__geom_bond.distance_su + and the modulus-argument form, -_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 + |U(ij)| cos(2\p k r+\c), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_U_Fourier_param.modulus is the + modulus [|U(ij)|], in angstroms squared, of the complex + amplitudes corresponding to the Fourier term defined by + _atom_site_U_Fourier.atom_site_label, + _atom_site_U_Fourier.tens_elem and + _atom_site_U_Fourier.wave_vector_seq_id. ; - Standard Uncertainty of the intramolecular bond distance - between the sites identified by _geom_bond.id + _name.category_id atom_site_U_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: + _units.code angstrom_squared + loop_ + _method.purpose + _method.expression + Evaluation ; -_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_ + With p as atom_site_U_Fourier_param -save_GEOM_CONTACT + atom_site_U_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) +; -_definition.id GEOM_CONTACT -_definition.scope Category -_definition.class Loop -_definition.update 2016-11-17 -_description.text -; - The CATEGORY of data items used to specify the interatomic - contact distances in the structural model. -; -_name.category_id GEOM -_name.object_id GEOM_CONTACT -loop_ - _category_key.name - '_geom_contact.atom_site_label_1' - '_geom_contact.atom_site_label_2' - '_geom_contact.site_ssg_symmetry_1' - '_geom_contact.site_ssg_symmetry_2' save_ -save__geom_contact.site_ssg_symmetry_1 +save_atom_site_U_Fourier_param.phase - _definition.id '_geom_contact.site_ssg_symmetry_1' + _definition.id '_atom_site_U_Fourier_param.phase' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_contact_site_ssg_symmetry_1' + '_atom_site_U_Fourier_param_phase' _description.text ; - The symmetry code of each atom site as the symmetry operation - number 'n' and the higher-dimensional translation 'm1...mp'. - These numbers are combined to form the code 'n m1...mp' or - n_m1...mp. The character string n_m1...mp is composed as follows: - 'n' refers to the symmetry operation that is applied to the - superspace coordinates. It must match a number given in - _space_group_symop_ssg_id. 'm1...mp' refer to the translations - that are subsequently applied to the symmetry-transformed - coordinates to generate the atom used in calculating the contact. - These translations (t1,...tp) are related to (m1...mp) by the - relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, - the use of negative numbers is avoided. The number 'p' must agree - with (_cell_modulation_dimension + 3). If there are no cell - translations, the translation number may be omitted. If no - symmetry operations or translations are applicable, then a single - full stop '.' is used. -; - _name.category_id geom_contact - _name.object_id site_ssg_symmetry_1 - _type.purpose Composite - _type.source Derived - _type.container Single - _type.contents Symop - loop_ - _description_example.case - _description_example.detail - "." 'no symmetry or translation to site' - "4" '4th symmetry operation applied' - "7_645" '7th symmetry position; +a on x, -b on y' - -save_ - -save__geom_contact.distance + The modulation of the ADP is usually parameterized by Fourier series. + Each term of the series commonly adopts two different representations: + the sine-cosine form, -_definition.id '_geom_contact.distance' -loop_ - _alias.definition_id - '_geom_contact_distance' - '_geom_contact.dist' -_definition.update 2016-11-17 -_description.text -; - Intermolecular distance between the atomic sites -; -_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_ + U(ij)c cos(2\p k r)+U(ij)s sin(2\p k r), + and the modulus-argument form, -save__geom_contact.distance_su + |U(ij)| cos(2\p k r+\c), -_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 + where k is the wave vector of the term and r is the atomic + average position. _atom_site_U_Fourier_param.phase is the phase + (\c/2\p), in cycles, of the complex amplitude corresponding to + the Fourier term defined by _atom_site_U_Fourier.atom_site_label, + _atom_site_U_Fourier.tens_elem and + _atom_site_U_Fourier.wave_vector_seq_id. ; - Standard Uncertainty of the intermolecular distance between - the atomic sites identified by _geom_contact.id + _name.category_id atom_site_U_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 ; -_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 + With p as atom_site_U_Fourier_param + + atom_site_U_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/2/Pi +; save_ -save__geom_contact.site_ssg_symmetry_2 +save_atom_site_U_Fourier_param.sin - _definition.id '_geom_contact.site_ssg_symmetry_2' + _definition.id '_atom_site_U_Fourier_param.sin' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_contact_site_ssg_symmetry_2' + '_atom_site_U_Fourier_param_sin' _description.text ; - The symmetry code described in _geom_contact.site_ssg_symmetry_1 + The modulation of the ADP is usually parameterized by Fourier series. + Each term of the series commonly adopts two different representations: + the sine-cosine form, + + U(ij)c cos(2\p k r)+U(ij)s sin(2\p k r), + + and the modulus-argument form, + + |U(ij)| cos(2\p k r+\c), + + where k is the wave vector of the term and r is the atomic + average position. _atom_site_U_Fourier_param.sin is the sine + coefficient [U(ij)s], in angstroms squared, corresponding to + the Fourier term defined by _atom_site_U_Fourier.atom_site_label, + _atom_site_U_Fourier.tens_elem and + _atom_site_U_Fourier.wave_vector_seq_id. ; - _name.category_id geom_contact - _name.object_id site_ssg_symmetry_2 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_Fourier_param + _name.object_id sin + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Symop + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_U_Fourier_param + + atom_site_U_Fourier_param.sin = -p.modulus*Sin(2*Pi*p.phase) +; save_ -save_GEOM_TORSION +save_ATOM_SITE_U_LEGENDRE -_definition.id GEOM_TORSION -_definition.scope Category -_definition.class Loop -_definition.update 2017-11-17 -_description.text -; - The CATEGORY of data items used to specify the torsion angles in the - structural model as derived from the atomic sites. + _definition.id ATOM_SITE_U_LEGENDRE + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text ; -_name.category_id GEOM -_name.object_id GEOM_TORSION -loop_ - _category_key.name - '_geom_torsion.atom_site_label_1' - '_geom_torsion.atom_site_label_2' - '_geom_torsion.atom_site_label_3' - '_geom_torsion.atom_site_label_4' - '_geom_torsion.site_ssg_symmetry_1' - '_geom_torsion.site_ssg_symmetry_2' - '_geom_torsion.site_ssg_symmetry_3' - '_geom_torsion.site_ssg_symmetry_4' + Data items in the ATOM_SITE_U_LEGENDRE category record + details about the Legendre polynomials used to describe the ADP + modulations when the atomic domain of a given atom is + restricted by a crenel function. The coefficients + of each Legendre function belong to the category + ATOM_SITE_U_LEGENDRE_PARAM and are listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_LEGENDRE + loop_ + _category_key.name '_atom_site_u_legendre.id' + save_ +save_atom_site_U_legendre.atom_site_label -save__geom_torsion.angle + _definition.id '_atom_site_U_legendre.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_legendre_atom_site_label' + _description.text +; -_definition.id '_geom_torsion.angle' -loop_ - _alias.definition_id - '_geom_torsion' - '_geom_torsion.value' -_definition.update 2012-11-22 -_description.text -; - Angle defined by the sites identifyed in _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. -; -_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 + 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_U_legendre.atom_site_label is the code that identifies + an atom in a loop in which the legendre components of its 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_U_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 Code save_ +save_atom_site_U_legendre.tens_elem -save__geom_torsion.angle_su - -_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 '_atom_site_U_legendre.tens_elem' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_legendre_tens_elem ; - Standard Uncertainty of the torsion angle. + + A label identifying the ADP tensor element U(ij) a given atom + whose modulation is being parameterized by Legendre polynomials. + ; -_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 + _name.category_id atom_site_U_legendre + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + U11 'modulation of U11' + U12 'modulation of U12' + U13 'modulation of U13' + U22 'modulation of U22' + U23 'modulation of U23' + U33 'modulation of U33' + Uiso 'modulation of U~isotropic~' save_ -save__geom_torsion.site_ssg_symmetry_1 +save_atom_site_U_legendre.id - _definition.id '_geom_torsion.site_ssg_symmetry_1' + _definition.id '_atom_site_U_legendre.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_site_ssg_symmetry_1' + '_atom_site_U_legendre_id' _description.text ; - The symmetry code of each atom site as the symmetry operation - number 'n' and the higher-dimensional translation 'm1...mp'. - These numbers are combined to form the code 'n m1...mp' or - n_m1...mp. The character string n_m1...mp is composed as follows: - 'n' refers to the symmetry operation that is applied to the - superspace coordinates. It must match a number given in - _space_group_symop_ssg_id. 'm1...mp' refer to the translations - that are subsequently applied to the symmetry-transformed - coordinates to generate the atom used in calculating the angle. - These translations (t1,...tp) are related to (m1...mp) by the - relations m1=5+t1, ..., mp=5+tp. By adding 5 to the - translations, the use of negative numbers is avoided. The number - 'p' must agree with (_cell_modulation_dimension + 3). If there - are no cell translations, the translation number may be omitted. - If no symmetry operations or translations are applicable, - then a single full stop '.' is used. + A code identifying each component of the ADP modulation of + a given atom when the modulation is expressed in terms of Legendre + functions. ; - _name.category_id geom_torsion - _name.object_id site_ssg_symmetry_1 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_legendre + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Symop - loop_ - _description_example.case - _description_example.detail - "." 'no symmetry or translation to site' - "4" '4th symmetry operation applied' - "7_645" '7th symmetry position; +a on x, -b on y' + _type.contents Code save_ +save_atom_site_U_legendre.order -save__geom_torsion.site_ssg_symmetry_2 - - _definition.id '_geom_torsion.site_ssg_symmetry_2' + _definition.id '_atom_site_U_legendre.order' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_site_ssg_symmetry_2' + '_atom_site_U_legendre_order' _description.text ; - Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. + The order of the Legendre polynomial. ; - _name.category_id geom_torsion - _name.object_id site_ssg_symmetry_2 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_legendre + _name.object_id order + _type.purpose Key + _type.source Assigned _type.container Single - _type.contents Symop + _type.contents Count save_ +save_ATOM_SITE_U_LEGENDRE_PARAM -save__geom_torsion.site_ssg_symmetry_3 + _definition.id ATOM_SITE_U_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; - _definition.id '_geom_torsion.site_ssg_symmetry_3' + Data items in the ATOM_SITE_U_LEGENDRE_PARAM category + record details about the coefficients of the legendre + functions defined in ATOM_SITE_U_LEGENDRE and used to + describe the ADP modulation of an atom. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_LEGENDRE_PARAM + loop_ + _category_key.name '_atom_site_U_legendre_param.id' + +save_ + +save_atom_site_U_legendre_param.coeff + + _definition.id '_atom_site_U_legendre_param.coeff' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_site_ssg_symmetry_3' + '_atom_site_U_legendre_param_coeff' _description.text ; - Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. + The coefficient, in angstroms squared corresponding to the + Legendre function defined by _atom_site_U_legendre.atom_site_label, + _atom_site_U_legendre.tens_elem and _atom_site_U_legendre.order. ; - _name.category_id geom_torsion - _name.object_id site_ssg_symmetry_3 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_legendre_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Symop + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared save_ +save_atom_site_U_legendre_param.id -save__geom_torsion.site_ssg_symmetry_4 - - _definition.id '_geom_torsion.site_ssg_symmetry_4' + _definition.id '_atom_site_U_legendre_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_geom_torsion_site_ssg_symmetry_4' + '_atom_site_U_legendre_param_id' _description.text ; - Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. + A code identifying the coefficient of each term present in the + series of Legendre functions describing the ADP modulation + of a given atom. This code must match _atom_site_U_legendre.id. ; - _name.category_id geom_torsion - _name.object_id site_ssg_symmetry_4 - _type.purpose Composite - _type.source Derived + _name.category_id atom_site_U_legendre_param + _name.object_id id + _name.linked_item_id '_atom_site_U_legendre.id' + _type.purpose Link + _type.source Related _type.container Single - _type.contents Symop + _type.contents Code save_ -save_REFLN +save_ATOM_SITE_U_ORTHO - _definition.id REFLN + _definition.id ATOM_SITE_U_ORTHO _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - - Data items in the REFLN category record details about the - reflections used to determine the ATOM_SITE data items. - The REFLN data items refer to individual reflections and - must be included in looped lists. The REFLNS data items - specify the parameters that apply to all reflections. The - REFLNS data items are not looped. Data items in this category - are extensions of the core CIF dictionary definitions to the - indexing of reflections used in the refinement by - higher-dimensional components. + + Data items in the ATOM_SITE_U_ORTHO category record + details about the orthogonalized functions defined to solve + correlation problems during the refinement of ADP + 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). The coefficients + of each orthogonalized function belong to the category + ATOM_SITE_U_ORTHO_PARAM and are listed separately. ; _name.category_id MS_GROUP - _name.object_id REFLN + _name.object_id ATOM_SITE_U_ORTHO loop_ - _category_key.name - '_refln.index_h' - '_refln.index_k' - '_refln.index_l' - '_refln.index_m_list' - + _category_key.name '_atom_site_U_ortho.id' + save_ +save_atom_site_u_ortho.atom_site_label -save__refln.index_m_list - - _definition.id '_refln.index_m_list' + _definition.id '_atom_site_U_ortho.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_refln_index_m_list' + '_atom_site_U_ortho_atom_site_label' _description.text ; - Additional Miller indices of a particular reflection in the basis - described in _cell_reciprocal_basis_description. 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. -; - _name.category_id refln - _name.object_id index_m_list - _type.purpose Number - _type.source Recorded - _type.container List - _type.contents Integer - _type.dimension '[8]' + 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_U_ortho.atom_site_label is the code that identifies + an atom in a loop in which the ortho components of its 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. + + Notice that the global results could also be expressed (losing + information)using the data items defined in the categories + ATOM_SITE_U_FOURIER and ATOM_SITE_U_FOURIER_PARAM. +; + _name.category_id atom_site_U_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 Code + +save_ + +save_atom_site_U_ortho.tens_elem + + _definition.id '_atom_site_U_ortho.tens_elem' + _definition.update 2014-06-27 loop_ - _method.purpose - _method.expression - Evaluation + _alias.definition_id + '_atom_site_U_ortho_tens_elem ; - With r as refln - _refln.index_m_list = + A label identifying the ADP tensor element U(ij) a given atom + whose modulation is being parameterized by orthogonalized + functions. - [ 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 ] -; +; + _name.category_id atom_site_U_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 + U11 'modulation of U11' + U12 'modulation of U12' + U13 'modulation of U13' + U22 'modulation of U22' + U23 'modulation of U23' + U33 'modulation of U33' + Uiso 'modulation of U~isotropic~' save_ -save_REFLNS - _definition.id REFLNS - _definition.scope Category - _definition.class Set +save_atom_site_U_ortho.func_id + + _definition.id '_atom_site_U_ortho.func_id' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_ortho_func_id' _description.text ; - Data items in the REFLNS category record details about the - reflections used to determine the ATOM_SITE data items. - The REFLN data items refer to individual reflections and - must be included in looped lists. The REFLNS data items - specify the parameters that apply to all reflections. The - REFLNS data items are not looped. Data items in this category - extend the core CIF dictionary definitions providing independent - checks on the range of values recorded for each of the - additional Miller indices given in the REFLN category. + A code identifying the orthogonalized function used in the + structural model to describe the ADP modulation of an atom. + This code must match _atom_sites_ortho.func_id. ; - _name.category_id MS_GROUP - _name.object_id REFLNS + _name.category_id atom_site_U_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__reflns.limit_index_m_max_list +save_atom_site_U_ortho.id - _definition.id '_reflns.limit_index_m_max_list' + _definition.id '_atom_site_U_ortho.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_reflns_limit_index_m_max_list' + '_atom_site_U_ortho_id' _description.text ; - Maximum of the additional Miller indices - appearing in _refln.index_m_*. The number of ranges must match - _cell_modulation_dimension. The order of the additional indices - must be consistent with the codes given in - _cell.wave_vector_seq_id. These need not be the same as - the _reflns.limit_index_m_*. -; - _name.category_id reflns - _name.object_id limit_index_m_max_list - _type.purpose Number - _type.source Derived - _type.container List - _type.contents Integer - _type.dimension '[8]' - loop_ - _method.purpose - _method.expression - Evaluation + A code identifying each component of the ADP modulation of + a given atom when the modulation is expressed in terms of ortho + series. ; - With m as reflns - - _reflns.limit_index_m_max_list = - - [ m.limit_index_m_1_max, m.limit_index_m_2_max, - m.limit_index_m_3_max, m.limit_index_m_4_max, - m.limit_index_m_5_max, m.limit_index_m_6_max, - m.limit_index_m_7_max, m.limit_index_m_8_max ] -; + _name.category_id atom_site_U_ortho + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code save_ +save_ATOM_SITE_U_ORTHO_PARAM -save__reflns.limit_index_m_min_list - - _definition.id '_reflns.limit_index_m_min_list' + _definition.id ATOM_SITE_U_ORTHO_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_reflns_limit_index_m_min_list' _description.text ; - Minimum values of the additional Miller indices - appearing in _refln.index_m_*. The number of ranges must match - _cell_modulation_dimension. The order of the additional indices - must be consistent with the codes given in - _cell.wave_vector_seq_id. These need not be the same as - the _reflns.limit_index_m_*. + Data items in the ATOM_SITE_U_ORTHO_PARAM category + record details about the coefficients of the orthogonolized + functions defined in ATOM_SITE_U_ORTHO and used to + describe the ADP modulation of an atom. ; - _name.category_id reflns - _name.object_id limit_index_m_min_list - _type.purpose Number - _type.source Derived - _type.container List - _type.contents Integer - _type.dimension '[8]' + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_ORTHO_PARAM + loop_ + _category_key.name '_atom_site_U_ortho_param.id' + +save_ + +save_atom_site_U_ortho_param.coeff + + _definition.id '_atom_site_U_ortho_param.coeff' + _definition.update 2014-06-27 loop_ - _method.purpose - _method.expression - Evaluation + _alias.definition_id + '_atom_site_U_ortho_param_coeff' + _description.text ; - With m as reflns - _reflns.limit_index_m_min_list = + The coefficient, in angstroms squared corresponding to the + orthogonalized function defined by _atom_site_U_ortho.atom_site_label, + _atom_site_U_ortho.tens_elem and _atom_site_U_ortho.func_id. +; + _name.category_id atom_site_U_ortho_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared + +save_ - [ m.limit_index_m_1_min, m.limit_index_m_2_min, - m.limit_index_m_3_min, m.limit_index_m_4_min, - m.limit_index_m_5_min, m.limit_index_m_6_min, - m.limit_index_m_7_min, m.limit_index_m_8_min ] +save_atom_site_U_ortho_param.id + + _definition.id '_atom_site_U_ortho_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_ortho_param_id' + _description.text +; + + A code identifying the coefficient of each term present in the + series of orthogonalized functions describing the ADP modulation + of a given atom. This code must match _atom_site_U_ortho.id. ; + _name.category_id atom_site_U_ortho_param + _name.object_id id + _name.linked_item_id '_atom_site_U_ortho.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code save_ -save_reflns.limit_index_m_1_max - _definition.id '_reflns.limit_index_m_1_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_1_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_1_max - save_ +save_ATOM_SITE_U_XHARM + _definition.id ATOM_SITE_U_XHARM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the ATOM_SITE_U_XHARM category record + details about the x-harmonics used to describe the ADP + modulations when the atomic domain of a given atom is + restricted by a crenel function. The coefficients + of each x-harmonic function belong to the category + ATOM_SITE_U_XHARM_PARAM and are listed separately. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_XHARM + loop_ + _category_key.name '_atom_site_U_xharm.id' + +save_ -save_reflns.limit_index_m_2_max - _definition.id '_reflns.limit_index_m_2_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_2_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_2_max - save_ +save_atom_site_U_xharm.atom_site_label + _definition.id '_atom_site_U_xharm.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_atom_site_label' + _description.text +; -save_reflns.limit_index_m_3_max - _definition.id '_reflns.limit_index_m_3_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_3_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_3_max - save_ + 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_U_xharm.atom_site_label is the code that identifies + an atom in a loop in which the x-harmonic components of its 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_U_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 Code +save_ -save_reflns.limit_index_m_4_max - _definition.id '_reflns.limit_index_m_4_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_4_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_4_max - save_ +save_atom_site_U_xharm.tens_elem + _definition.id '_atom_site_U_xharm.tens_elem' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_tens_elem +; -save_reflns.limit_index_m_5_max - _definition.id '_reflns.limit_index_m_5_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_5_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_5_max - save_ + A label identifying the ADP tensor element U(ij) a given atom + whose modulation is being parameterized by x-harmonics. +; + _name.category_id atom_site_U_xharm + _name.object_id tens_elem + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + U11 'modulation of U11' + U12 'modulation of U12' + U13 'modulation of U13' + U22 'modulation of U22' + U23 'modulation of U23' + U33 'modulation of U33' + Uiso 'modulation of U~isotropic~' -save_reflns.limit_index_m_6_max - _definition.id '_reflns.limit_index_m_6_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_6_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_6_max - save_ +save_ +save_atom_site_U_xharm.id -save_reflns.limit_index_m_7_max - _definition.id '_reflns.limit_index_m_7_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_7_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_7_max - save_ + _definition.id '_atom_site_U_xharm.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_id' + _description.text +; + A code identifying each component of the ADP modulation of + a given atom when the modulation is expressed in terms of x-harmonics. +; + _name.category_id atom_site_U_xharm + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code -save_reflns.limit_index_m_8_max - _definition.id '_reflns.limit_index_m_8_max' - loop_ - _alias.definition_id '_reflns_limit_index_m_8_max' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_max'}] - _name.category_id reflns - _name.object_id limit_index_m_8_max - save_ - +save_ -save_reflns.limit_index_m_1_min - _definition.id '_reflns.limit_index_m_1_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_1_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_1_min - save_ +save_atom_site_U_xharm.order + _definition.id '_atom_site_U_xharm.order' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_order' + _description.text +; -save_reflns.limit_index_m_2_min - _definition.id '_reflns.limit_index_m_2_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_2_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_2_min - save_ + The order of each x-harmonic function. +; + _name.category_id atom_site_U_xharm + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Count +save_ -save_reflns.limit_index_m_3_min - _definition.id '_reflns.limit_index_m_3_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_3_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_3_min - save_ +save_ATOM_SITE_U_XHARM_PARAM + _definition.id ATOM_SITE_U_XHARM_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; -save_reflns.limit_index_m_4_min - _definition.id '_reflns.limit_index_m_4_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_4_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_4_min - save_ + Data items in the ATOM_SITE_U_XHARM_PARAM category + record details about the coefficients of the x-harmonics + defined in ATOM_SITE_U_XHARM and used to describe the ADP + modulation of an atom. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_XHARM_PARAM + loop_ + _category_key.name '_atom_site_U_xharm_param.id' +save_ -save_reflns.limit_index_m_5_min - _definition.id '_reflns.limit_index_m_5_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_5_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_5_min - save_ +save_atom_site_U_xharm_param.coeff + _definition.id '_atom_site_rot_U_param.coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_param_coeff' + _description.text +; -save_reflns.limit_index_m_6_min - _definition.id '_reflns.limit_index_m_6_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_6_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_6_min - save_ + The coefficient, in angstroms squared corresponding to the + x-harmonics defined by _atom_site_U_xharm.atom_site_label, + _atom_site_U_xharm.tens_elem and _atom_site_U_xharm.order. +; + _name.category_id atom_site_U_xharm_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared +save_ + +save_atom_site_U_xharm_param.id + + _definition.id '_atom_site_U_xharm_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_xharm_param_id' + _description.text +; + + A code identifying the coefficient of each term present in the + series of x-harmonic functions describing the ADP modulation + of a given atom. This code must match _atom_site_U_xharm.id. +; + _name.category_id atom_site_U_xharm_param + _name.object_id id + _name.linked_item_id '_atom_site_U_xharm.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ +save_ATOM_SITES_AXES + + _definition.id ATOM_SITES_AXES + _definition.scope Category + _definition.class Loop + _definition.update 2017-03-11 + _description.text +; + + Data items in the ATOM_SITES_AXES category record + details about the transformation matrices that define the + displacements and rotations of atoms and rigid groups. Details + for individual atom sites are described by data items in + the ATOM_SITE_DISPLACE_* and ATOM_SITE_ROT_* categories. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITES_AXES + loop_ + _category_key.name '_atom_site_sites_axes.matrix_seq_id' +save_ + +save_atom_sites_axes.matrix + + _definition.id '_atom_sites_axes.matrix' + _definition.update 2014-06-27 + _description.text +; + + A 3x3 matrix, A, that relates the axes used to describe the atomic + or molecular displacements to the crystallographic axes of the + reference structure as follows: + + (a1,a2,a3) = (a~r~,b~r~,c~r~) A + +; + _name.category_id atom_sites_axes + _name.object_id matrix + _type.purpose Number + _type.source Assigned + _type.container Matrix + _type.contents Real + _type_dimension [3,3] + _enumeration_default [[1.0,0.0,0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]] + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix = + [ [d.matrix_1_1 , d.matrix_1_2 , d.matrix_1_3], + [d.matrix_2_1 , d.matrix_2_2 , d.matrix_2_3], + [d.matrix_3_1 , d.matrix_3_2 , d.matrix_3_3] ] + +; + +save_ + +save_atom_sites_axes.matrix_1_1 + + _definition.id '_atom_sites_axes.matrix_1_1' + _definition.update 2014-06-27 + _description.text +; + + A 3x3 matrix, A, that relates the axes used to describe the atomic + or molecular displacements to the crystallographic axes of the + reference structure as follows: + + (a1,a2,a3) = (a~r~,b~r~,c~r~) A + + The items _atom_sites_axes.matrix_ record + individually each element of A. + +; + _name.category_id atom_sites_axes + _name.object_id matrix_1_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _type_dimension [3,3] + _enumeration_default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_1_1 = d.matrix[0,0] +; + +save_ + +save_atom_sites_axes.matrix_1_2 + + _definition.id '_atom_sites_axes.matrix_1_2' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_1_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_1_2 = d.matrix[0,1] +; + +save_ + +save_atom_sites_axes.matrix_1_3 + + _definition.id '_atom_sites_axes.matrix_1_3' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_1_3 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_1_3 = d.matrix[0,2] +; + +save_ + +save_atom_sites_axes.matrix_2_1 + + _definition.id '_atom_sites_axes.matrix_2_1' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_2_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_2_1 = d.matrix[1,0] +; + +save_ + +save_atom_sites_axes.matrix_2_2 + + _definition.id '_atom_sites_axes.matrix_2_2' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_2_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_2_2 = d.matrix[1,1] +; + +save_ + +save_atom_sites_axes.matrix_2_3 + + _definition.id '_atom_sites_axes.matrix_2_3' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_2_3 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_2_3 = d.matrix[1,2] +; + +save_ + +save_atom_sites_axes.matrix_3_1 + + _definition.id '_atom_sites_axes.matrix_3_1' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_3_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_3_1 = d.matrix[2,0] +; + +save_ + +save_atom_sites_axes.matrix_3_2 + + _definition.id '_atom_sites_axes.matrix_3_2' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_3_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_3_2 = d.matrix[2,1] +; + +save_ + +save_atom_sites_axes.matrix_3_3 + + _definition.id '_atom_sites_axes.matrix_3_3' + _definition.update 2014-06-27 + _description.text +; + See the definition of _atom_sites_axes.matrix_1_1. +; + _name.category_id atom_sites_axes + _name.object_id matrix_3_3 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration_default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_3_3 = d.matrix[2,2] +; + +save_ + +save_atom_sites_axes.matrix_seq_id + + _definition.id '_atom_sites_axes.matrix_seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_axes_matrix_seq_id' + _description.text +; + + A numeric code to identify each transformation matrix given + in _atom_sites_axes.matrix. +; + _name.category_id atom_sites_axes + _name.object_id matrix_seq_id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Count + +save_ + +save_atom_sites_axes.transf_description + + _definition.id '_atom_sites_axes.transf_description' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_axes_transf_description' + _description.text +; + + The definition of the axes described by the transformation + given by _atom_sites_axes.matrix. +; + _name.category_id atom_sites_axes + _name.object_id transf_description + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + loop_ + _description_example.case + +; + a1 and a2 are respectively the long molecular axis and the axis normal + to the mean molecular plane. +; + +save_ + +save_ATOM_SITES_MODULATION + + _definition.id ATOM_SITES_MODULATION + _definition.scope Category + _definition.class Set + _definition.update 2017-03-11 + _description.text +; + + Data items in the ATOM_SITES_MODULATION category record details + common to the modulation of atom sites in a modulated structure. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITES_MODULATION + +save_ + +save_atom_sites_modulation.global_phase_list + + _definition.id '_atom_sites_modulation.global_phase_list' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_list' + _description.text +; + + The initial phases, in cycles, of the modulation waves. For + incommensurate structures they are irrelevant. However, they are + essential for the description of commensurate structures within + the superspace formalism, since they determine the space group + of the commensurate superstructure [see Perez-Mato, + Madariaga, Zu\~niga & Garcia Arribas (1987), van Smaalen (1995) + or van Smaalen (2012)]. Note that for composites described + using a single data block, the initial phases for each subsystem + are derived using the W matrices (see _cell_subsystem.matrix_W_*) + from a unique set of global phases whose values are assigned to + _atom_sites_modulation.global_phase_t_. Detailed information can + be found in van Smaalen (1995). + References: Perez-Mato, J. M., Madariaga, G., Zu\~niga, F. J. + & Garcia Arribas, A. (1987). Acta Cryst. A43, 216-226. + On the structure and symmetry of incommensurate phases. + A practical formulation + Smaalen, S. van(1995). Crystallogr. Rev. 4, 79-202. + Incommensurate crystal structures + Smaalen, S. van(2012). + Incommensurate Crystallography. Oxford University Press. + +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_list' + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Real + _type.dimension [] + _enumeration_default [0.0] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_sites_modulation + + temp.global_phase_list = + [m.global_phase_t_1, m.global_phase_t_2, + m.global_phase_t_3, m.global_phase_t_4, + m.global_phase_t_5, m.global_phase_t_6, + m.global_phase_t_7, m.global_phase_t_8] + +#Not meaningful global phases are removed here + + atom_sites_modulation.global_phase_list = + temp.global_phase_list[0:_cell.modulation_dimension -1 ]] +; + +save_ + +save_atom_sites_modulation.global_phase_t_1 + + _definition.id '_atom_sites_modulation.global_phase_t_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_1' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_1' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_1 = m. global_phase_list [ 0 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_2 + + _definition.id '_atom_sites_modulation.global_phase_t_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_2' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_2' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_2 = m. global_phase_list [ 1 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_3 + + _definition.id '_atom_sites_modulation.global_phase_t_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_3' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_3' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_3 = m. global_phase_list [ 2 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_4 + + _definition.id '_atom_sites_modulation.global_phase_t_4' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_4' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_4' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_4 = m. global_phase_list [ 3 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_5 + + _definition.id '_atom_sites_modulation.global_phase_t_5' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_5' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_5' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_5 = m. global_phase_list [ 4 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_6 + + _definition.id '_atom_sites_modulation.global_phase_t_6' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_6' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_6' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_6 = m. global_phase_list [ 5 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_7 + + _definition.id '_atom_sites_modulation.global_phase_t_7' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_7' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_7' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_7 = m. global_phase_list [ 6 ] +; + +save_ + +save_atom_sites_modulation.global_phase_t_8 + + _definition.id '_atom_sites_modulation.global_phase_t_8' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_modulation_global_phase_t_8' + _description.text +; + + Initial phase component in _atom_sites_modulation.global_phase_list. +; + _name.category_id atom_sites_modulation + _name.object_id 'global_phase_t_8' + _type.purpose Number + _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 m as atom_sites_modulation + + atom_sites_modulation.global_phase_t_8 = m. global_phase_list [ 7 ] +; + +save_ + +save_ATOM_SITES_ORTHO + + _definition.id ATOM_SITES_ORTHO + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the ATOM_SITES_ORTHO category record + details about the orthogonalized functions defined to solve + correlation problems during the refinement of the modulation + parameters when the atomic domain of a given atom is restricted + by a Crenel function (see Petricek et al., 2016). + The functions are constructed selecting Fourier harmonics + until a desired degree of orthogonality and completeness is + reached (see_atom_site_occ_special_func.crenel_ortho_eps). + + 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 JANA2006 +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_ORTHO + loop_ + _category_key.name '_atom_site_ortho.func_id' + +save_ + +save_atom_sites_ortho.coeff_cos + + _definition.id '_atom_sites_ortho.coeff_cos' + _definition.update 2017-03-11 + loop_ + _alias.definition_id + '_atom_sites_ortho_coeff_cos' + _description.text +; + + The cosine component of each of the harmonics chosen for the + definition an orthogonalized function labeled by + atom_site_ortho.func_id corresponding to the wave + vector given by _atom_sites_ortho.wave_vector_seq_id +; + _name.category_id atom_sites_ortho + _name.object_id coeff_cos + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_atom_sites_ortho.coeff_cos_list + + _definition.id '_atom_sites_ortho.coeff_cos_list' + _definition.update 2017-03-11 + _description.text +; + + The list of cosine components of an orthogonalized function + labeled by atom_sites_ortho.func_id corresponding to the wave + vector list given by _atom_sites_ortho.wave_vector_seq_id_list +; + _name.category_id atom_sites_ortho + _name.object_id coeff_cos_list + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Real + _type.dimension [] + _enumeration.default [0.0] + +save_ + +save_atom_sites_ortho.coeff_sin + + _definition.id '_atom_sites_ortho.coeff_sin' + _definition.update 2017-03-11 + loop_ + _alias.definition_id + '_atom_sites_ortho_coeff_sin' + _description.text +; + + The sine component of each of the harmonics chosen for the + definition an orthogonalized function labeled by + atom_sites_ortho.func_id corresponding to the wave + vector given by _atom_sites_ortho.wave_vector_seq_id +; + _name.category_id atom_sites_ortho + _name.object_id coeff_sin + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_ + +save_atom_sites_ortho.coeff_sin_list + + _definition.id '_atom_sites_ortho.coeff_sin_list' + _definition.update 2017-03-11 + _description.text +; + + The list of sine components of an orthogonalized function + labeled by atom_sites_ortho.func_id corresponding to the wave + vector list given by _atom_sites_ortho.wave_vector_seq_id_list +; + _name.category_id atom_sites_ortho + _name.object_id coeff_sin + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Real + _type.dimension [] + _enumeration.default [0.0] + +save_ + +save_atom_sites_ortho.func_id + + _definition.id '_atom_sites_ortho.func_id ' + _definition.update 2017-03-11 + loop_ + _alias.definition_id + '_atom_sites_ortho_func_id' + _description.text +; + + A code that identifies an orthogonalized function or any + of its components. +; + _name.category_id atom_sites_ortho + _name.object_id func_id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code + +save_ + +save_atom_sites_ortho.wave_vector_seq_id + + _definition.id '_atom_sites_ortho.wave_vector_seq_id' + _definition.update 2017-03-11 + loop_ + _alias.definition_id + '_atom_sites_ortho_wave_vector_seq_id' + _description.text +; + + A code that identifies each of the harmonics chosen for the + definition of an orthogonalized function. It links the wave vectors + defined in _atom_site_Fourier_wave_vector.* +; + _name.category_id atom_sites_ortho + _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 Count + _enumeration.range [0:] + _enumeration.default 0 + +save_ + +save_atom_sites_ortho.wave_vector_seq_id_list + + _definition.id '_atom_sites_ortho.wave_vector_seq_id_list' + _definition.update 2017-03-11 + _description.text +; + + A list of codes that identifies the harmonics chosen for the + definition of an orthogonalized function. It links the wave vectors + defined in _atom_site_Fourier_wave_vector.* +; + _name.category_id atom_sites_ortho + _name.object_id wave_vector_seq_id_list + _name.linked_item_id '_atom_site_Fourier_wave_vector.seq_id' + _type.purpose Link + _type.source Related + _type.container List + _type.contents Count + _type.dimension [] + _enumeration.range [[0:]] + _enumeration.default [0] + +save_ + +save_ATOM_SITES_ROT_FOURIER + + _definition.id ATOM_SITES_ROT_FOURIER + _definition.scope Category + _definition.class Set + _definition.update 2014-06-27 + _description.text +; + + Data items in the ATOM_SITES_ROT_FOURIER category record + details about the rotational component of the displacive + modulation of a given rigid group as a whole. + + Details for individual atom sites are described by data items in + the ATOM_SITES_ROT_FOURIER category. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITES_ROT_FOURIER + +save_ + +0 +save_atom_sites_rot_Fourier.axes_description + + _definition.id '_atom_sites_rot_Fourier.axes_description' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_sites_rot_Fourier_axes_description' + _description.text +; + + The definition of the axes used for describing the rotational + part of the displacive modulation of a given rigid group, + parameterized by Fourier series, when they are other than the + crystallographic axes. +; + _name.category_id atom_sites_rot_Fourier + _name.object_id axes_description + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + loop_ + _description_example.case + +; + a1 and a2 are respectively the long molecular axis + and the axis normal to the mean molecular plane. +; + +save_ + +save_cell.commen_supercell_matrix + _definition.id '_cell.commen_supercell_matrix' + _definition.update 2014-06-27 + _description.text +; + + For commensurately modulated structures the transformation, T, + from the crystallographic axes of the reference structure + to the supercell generated by the wave vectors expressed as + + (a~s~,b~s~,c~s~) = (a~r~,b~r~,c~r~)T, + + where (a~s~,b~s~,c~s~) and (a~r~,b~r~,c~r~) are the crystallographic + axes of the supercell and the reference cell, respectively. +; + _name.category_id cell + _name.object_id commen_supercell_matrix + _type.purpose Number + _type.source Assigned + _type.container Matrix + _type.contents Integer + _type.dimension [3,3] + _enumeration.default [[1,0,0],[0,1,0],[0,0,1]] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix = + [ [m.commen_supercell_matrix_1_1, m.commen_supercell_matrix_1_2, + m.commen_supercell_matrix_1_3], + [m.commen_supercell_matrix_2_1, m.commen_supercell_matrix_2_2, + m.commen_supercell_matrix_2_3], + [m.commen_supercell_matrix_3_1, m.commen_supercell_matrix_3_2, + m.commen_supercell_matrix_3_3] ] +; + +save_ + +save_cell.commen_supercell_matrix_11 + _definition.id '_cell.commen_supercell_matrix_1_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_1_1' + _description.text +; + + For commensurately modulated structures the transformation, T, + from the crystallographic axes of the reference structure + to the supercell generated by the wave vectors expressed as + + (a~s~,b~s~,c~s~) = (a~r~,b~r~,c~r~)T, + + where (a~s~,b~s~,c~s~) and (a~r~,b~r~,c~r~) are the crystallographic + axes of the supercell and the reference cell, respectively. The items + _cell.commen_supercell_matrix_ record individually each element + of T. +; + _name.category_id cell + _name.object_id commen_supercell_matrix_1_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_1_1 = m.commen_supercell_matrix[0,0] +; + +save_ + +save_cell.commen_supercell_matrix_1_2 + _definition.id '_cell.commen_supercell_matrix_1_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_1_2' + _description.text +; + + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_1_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_1_2 = m.commen_supercell_matrix[0,1] +; + +save_ + +save_cell.commen_supercell_matrix_1_3 + _definition.id '_cell.commen_supercell_matrix_1_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_1_3' + _description.text +; + + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_1_3 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_1_3 = m.commen_supercell_matrix[0,2] +; + +save_ + +save_cell.commen_supercell_matrix_2_1 + _definition.id '_cell.commen_supercell_matrix_2_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_2_1' + _description.text +; + + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_2_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_2_1 = m.commen_supercell_matrix[1,0] +; + +save_ + +save_cell.commen_supercell_matrix_2_2 + _definition.id '_cell.commen_supercell_matrix_2_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_2_2' + _description.text +; + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_2_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_2_2 = m.commen_supercell_matrix[1,1] +; + +save_ + +save_cell.commen_supercell_matrix_2_3 + _definition.id '_cell.commen_supercell_matrix_2_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_2_3' + _description.text +; + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_1_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_2_3 = m.commen_supercell_matrix[1,2] +; + +save_ + +save_cell.commen_supercell_matrix_3_1 + _definition.id '_cell.commen_supercell_matrix_3_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_3_1' + _description.text +; + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_3_1 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_3_1 = m.commen_supercell_matrix[2,0] +; + +save_ + +save_cell.commen_supercell_matrix_3_2 + _definition.id '_cell.commen_supercell_matrix_3_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_3_2' + _description.text +; + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_3_2 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_3_2 = m.commen_supercell_matrix[2,1] +; + +save_ + +save_cell.commen_supercell_matrix_3_3 + _definition.id '_cell.commen_supercell_matrix_3_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_commen_supercell_matrix_3_3' + _description.text +; + See the definition of cell.commen_supercell_matrix_1_1 +; + _name.category_id cell + _name.object_id commen_supercell_matrix_3_3 + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.default 1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell + + cell.commen_supercell_matrix_33 = m.commen_supercell_matrix[2,2] +; + +save_ + +save_cell.modulation_dimension + + _definition.id '_cell.modulation_dimension' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_modulation_dimension' + _description.text +; + + Number of additional reciprocal vectors needed to index the + whole diffraction pattern using integer Miller indices. +; + _name.category_id cell + _name.object_id modulation_dimension + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Count + _enumeration.range 1:8 + +save_ + +save_cell.reciprocal_basis_description + + _definition.id '_cell.reciprocal_basis_description' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_reciprocal_basis_description' + _description.text +; + + Definition of the higher-dimensional basis with respect to which + the Miller indices are defined. The three-dimensional basis used + to index the additional wave vectors should be clearly indicated. +; + _name.category_id cell + _name.object_id reciprocal_basis_description + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + loop_ + _description_example.case + _description_example.detail + +; a*,b*,c* (reciprocal basis spanning the lattice of main reflections) + and q (incommensurate with respect to a*,b*,c*) +; + 'Typical choice for a one-dimensional incommensurate structure.' + +; The diffraction pattern can be indexed with four integers based + on the reciprocal vectors a*~1~=a*~11~, a*~2~=a*~12~, a*~3~=a*~13~, + a*~4~=a*~21~. a*~1j~ (j=1,2,3) index the main reflections of the + 1st subsystem. a*~21~ is incommensurate with a*~11~. +; +; Common choice for a misfit layer compound composed of two subsystems + that have in common two reciprocal vectors. Extracted from van Smaalen + [Crystallogr. Rev. (1995), 4, 79-202]. +; + +save_ + +save_CELL_SUBSYSTEM + + _definition.id CELL_SUBSYSTEM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the CELL_SUBSYSTEM category record details about + the crystallographic cell parameters of each subsystem present in + a composite. +; + _name.category_id MS_GROUP + _name.object_id CELL_SUBSYSTEM + loop_ + _category_key.name '_cell_subsystem.code' + +save_ + +save_cell_subsystem.code + + _definition.id '_cell_subsystem.code' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_subsystem_code' + _description.text +; + + The code identifying uniquely a certain composite subsystem. + This code is used to identify the data blocks that contain + the structural information associated with the subsystem. +; + _name.category_id cell_subsystem + _name.object_id code + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code + loop_ + _description_example.case + "NbS2" + +save_ + +save_cell_subsystem.description + + _definition.id '_cell_subsystem.description' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_subsystem_description' + _description.text +; + + Description of each subsystem defining a composite structurally. + The number of definitions must match the number given in + _cell_subsystems_number. +; + _name.category_id cell_subsystem + _name.object_id description + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + loop_ + _description_example.case + "NbS2 part of the layer compound (LaS)~1.14~NbS~2~" + +save_ + +save_cell_subsystem.matrix_W + + _definition.id '_cell_subsystem.matrix_W' + _definition.update 2016-11-17 + _description.text +; + + In the case of composites, for each subsystem the matrix W as + defined in van Smaalen (1991) [see also van Smaalen (1995) or + van Smaalen (2012)]. Its dimension must match + (_cell_modulation_dimension+3)*(_cell_modulation_dimension+3). + + Intergrowth compounds are composed of several periodic + substructures in which the reciprocal lattices of two different + subsystems are incommensurate in at least one direction. The + indexing of the whole diffraction diagram with integer indices + requires more than three reciprocal basic vectors. However, the + distinction between main reflections and satellites is not as + obvious as in normal incommensurate structures. Indeed, true + satellites are normally difficult to locate for composites and + the modulation wave vectors are reciprocal vectors of the + other subsystem(s) referred to the reciprocal basis of one + of them. The choice of the enlarged reciprocal basis + {a*, b*, c*, q~1~,..., q~d~} is completely arbitrary, but + the reciprocal basis of each subsystem is always known through + the W matrices. These matrices [(3+d)x(3+d)-dimensional], one for + each subsystem, can be blocked as follows: + + (Z^n^~3~ Z^n^~d~) + W^n^= ( ) + (V^n^~3~ V^n^~d~) + + the dimension of each block being (3x3), (3xd), (dx3) and (dxd) + for Z^n^~3~, Z^n^~d~, V^n^~3~ and V^n^~d~, respectively. For + example, Z^n^ expresses the reciprocal basis of each subsystem + in terms of the basis {a*, b*, c*, q~1~ ,..., q~d~}. + W^n^ also gives the irrational components of the modulation wave + vectors of each subsystem in its own three-dimensional reciprocal + basis {a~n~*, b~n~*, c~n~*} and the superspace group of + a given subsystem from the unique superspace group of the + composite. + + The structure of these materials is always described by a set of + incommensurate structures, one for each subsystem. The atomic + coordinates, modulation parameters and wave vectors used for + describing the modulation(s) are always referred to the (direct + or reciprocal) basis of each particular subsystem. Although + expressing the structural results in the chosen common basis is + possible (using the matrices W), it is less confusing to use + this alternative description. Atomic coordinates are only + referred to a common basis when interatomic distances are + calculated. Usually, the reciprocal vectors {a*, b* and c*} + span the lattice of main reflections of one of the subsystems and + therefore its W matrix is the unit matrix. + + For composites described in a single data block using + *_subsystem_code pointers, the cell parameters, the superspace + group and the measured modulation wave vectors (see + CELL_WAVE_VECTOR below) correspond to the reciprocal basis + described in _cell_reciprocal_basis_description and coincide + with the reciprocal basis of the specific subsystem (if any) + whose W matrix is the unit matrix. The cell parameters and the + symmetry of the remaining subsystems can be derived using the + appropriate W matrices. In any case (single or multiblock CIF), + the values assigned to the items describing the atomic parameters + (including the wave vectors used to describe the modulations) + are always the same and are referred to the basis of each + particular subsystem. Such a basis will be explicitly given in a + multiblock CIF or should be calculated (with the appropriate W + matrix) in the case of a single block description of the + composite. + + References: Smaalen, S. van (1991). + Phys. Rev. B, 43, 11330-11341. + Symmetry of composite crystals + Smaalen, S. van (1995). + Crystallogr. Rev. 4, 79-202. + Incommensurate crystal structures + Smaalen, S. van(2012). + Incommensurate Crystallography. Oxford University Press. +; + _name.category_id cell_subsystem + _name.object_id matrix_W + _type.purpose Number + _type.source Recorded + _type.container Matrix + _type.contents Real + _type.dimension [11,11] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell_subsystem + + cell_subsystem.matrix_W = [ + + [ m.matrix_W_1_1,m.matrix_W_1_2,m.matrix_W_1_3,m.matrix_W_1_4,m.matrix_W_1_5, + m.matrix_W_1_6,m.matrix_W_1_7,m.matrix_W_1_8,m.matrix_W_1_9,m.matrix_W_1_10, + m.matrix_W_1_11 ], + [ m.matrix_W_2_1,m.matrix_W_2_2,m.matrix_W_2_3,m.matrix_W_2_4,m.matrix_W_2_5, + m.matrix_W_2_6,m.matrix_W_2_7,m.matrix_W_2_8,m.matrix_W_2_9,m.matrix_W_2_10, + m.matrix_W_2_11 ], + [ m.matrix_W_3_1,m.matrix_W_3_2,m.matrix_W_3_3,m.matrix_W_3_4,m.matrix_W_3_5, + m.matrix_W_3_6,m.matrix_W_3_7,m.matrix_W_3_8,m.matrix_W_3_9,m.matrix_W_3_10, + m.matrix_W_3_11 ], + [ m.matrix_W_4_1,m.matrix_W_4_2,m.matrix_W_4_3,m.matrix_W_4_4,m.matrix_W_4_5, + m.matrix_W_4_6,m.matrix_W_4_7,m.matrix_W_4_8,m.matrix_W_4_9,m.matrix_W_4_10, + m.matrix_W_4_11 ], + [ m.matrix_W_5_1,m.matrix_W_5_2,m.matrix_W_5_3,m.matrix_W_5_4,m.matrix_W_5_5, + m.matrix_W_5_6,m.matrix_W_5_7,m.matrix_W_5_8,m.matrix_W_5_9,m.matrix_W_5_10, + m.matrix_W_5_11 ], + [ m.matrix_W_6_1,m.matrix_W_6_2,m.matrix_W_6_3,m.matrix_W_6_4,m.matrix_W_6_5, + m.matrix_W_6_6,m.matrix_W_6_7,m.matrix_W_6_8,m.matrix_W_6_9,m.matrix_W_6_10, + m.matrix_W_6_11 ], + [ m.matrix_W_7_1,m.matrix_W_7_2,m.matrix_W_7_3,m.matrix_W_7_4,m.matrix_W_7_5, + m.matrix_W_7_6,m.matrix_W_7_7,m.matrix_W_7_8,m.matrix_W_7_9,m.matrix_W_7_10, + m.matrix_W_7_11 ], + [ m.matrix_W_8_1,m.matrix_W_8_2,m.matrix_W_8_3,m.matrix_W_8_4,m.matrix_W_8_5, + m.matrix_W_8_6,m.matrix_W_8_7,m.matrix_W_8_8,m.matrix_W_8_9,m.matrix_W_8_10, + m.matrix_W_8_11 ], + [ m.matrix_W_9_1,m.matrix_W_9_2,m.matrix_W_9_3,m.matrix_W_9_4,m.matrix_W_9_5, + m.matrix_W_9_6,m.matrix_W_9_7,m.matrix_W_9_8,m.matrix_W_9_9,m.matrix_W_9_10, + m.matrix_W_9_11 ], + [ m.matrix_W_10_1,m.matrix_W_10_2,m.matrix_W_10_3,m.matrix_W_10_4,m.matrix_W_10_5, + m.matrix_W_10_6,m.matrix_W_10_7,m.matrix_W_10_8,m.matrix_W_10_9,m.matrix_W_10_10, + m.matrix_W_10_11 ], + [ m.matrix_W_11_1,m.matrix_W_11_2,m.matrix_W_11_3,m.matrix_W_11_4,m.matrix_W_11_5, + m.matrix_W_11_6,m.matrix_W_11_7,m.matrix_W_11_8,m.matrix_W_11_9,m.matrix_W_11_10, + m.matrix_W_11_11 ] ] +; + +save_ + +save_cell_subsystem.matrix_W_1_1 + _definition.id '_cell_subsystem.matrix_W_1_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_1 = r. matrix_W [ 0,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_2 + _definition.id '_cell_subsystem.matrix_W_1_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_2 = r. matrix_W [ 0,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_3 + _definition.id '_cell_subsystem.matrix_W_1_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_3 = r. matrix_W [ 0,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_4 + _definition.id '_cell_subsystem.matrix_W_1_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_4 = r. matrix_W [ 0,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_5 + _definition.id '_cell_subsystem.matrix_W_1_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_5 = r. matrix_W [ 0,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_6 + _definition.id '_cell_subsystem.matrix_W_1_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_6 = r. matrix_W [ 0,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_7 + _definition.id '_cell_subsystem.matrix_W_1_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_7 = r. matrix_W [ 0,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_8 + _definition.id '_cell_subsystem.matrix_W_1_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_8 = r. matrix_W [ 0,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_9 + _definition.id '_cell_subsystem.matrix_W_1_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_9 = r. matrix_W [ 0,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_10 + _definition.id '_cell_subsystem.matrix_W_1_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_10 = r. matrix_W [ 0,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_1_11 + _definition.id '_cell_subsystem.matrix_W_1_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_1_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_1_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_1_11 = r. matrix_W [ 0,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_1 + _definition.id '_cell_subsystem.matrix_W_2_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_1 = r. matrix_W [ 1,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_2 + _definition.id '_cell_subsystem.matrix_W_2_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_2 = r. matrix_W [ 1,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_3 + _definition.id '_cell_subsystem.matrix_W_2_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_3 = r. matrix_W [ 1,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_4 + _definition.id '_cell_subsystem.matrix_W_2_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_4 = r. matrix_W [ 1,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_5 + _definition.id '_cell_subsystem.matrix_W_2_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_5 = r. matrix_W [ 1,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_6 + _definition.id '_cell_subsystem.matrix_W_2_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_6 = r. matrix_W [ 1,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_7 + _definition.id '_cell_subsystem.matrix_W_2_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_7 = r. matrix_W [ 1,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_8 + _definition.id '_cell_subsystem.matrix_W_2_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_8 = r. matrix_W [ 1,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_9 + _definition.id '_cell_subsystem.matrix_W_2_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_9 = r. matrix_W [ 1,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_10 + _definition.id '_cell_subsystem.matrix_W_2_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_10 = r. matrix_W [ 1,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_2_11 + _definition.id '_cell_subsystem.matrix_W_2_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_2_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_2_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_2_11 = r. matrix_W [ 1,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_1 + _definition.id '_cell_subsystem.matrix_W_3_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_1 = r. matrix_W [ 2,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_2 + _definition.id '_cell_subsystem.matrix_W_3_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_2 = r. matrix_W [ 2,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_3 + _definition.id '_cell_subsystem.matrix_W_3_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_3 = r. matrix_W [ 2,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_4 + _definition.id '_cell_subsystem.matrix_W_3_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_4 = r. matrix_W [ 2,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_5 + _definition.id '_cell_subsystem.matrix_W_3_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_5 = r. matrix_W [ 2,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_6 + _definition.id '_cell_subsystem.matrix_W_3_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_6 = r. matrix_W [ 2,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_7 + _definition.id '_cell_subsystem.matrix_W_3_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_7 = r. matrix_W [ 2,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_8 + _definition.id '_cell_subsystem.matrix_W_3_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_8 = r. matrix_W [ 2,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_9 + _definition.id '_cell_subsystem.matrix_W_3_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_9 = r. matrix_W [ 2,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_10 + _definition.id '_cell_subsystem.matrix_W_3_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_10 = r. matrix_W [ 2,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_3_11 + _definition.id '_cell_subsystem.matrix_W_3_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_3_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_3_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_3_11 = r. matrix_W [ 2,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_1 + _definition.id '_cell_subsystem.matrix_W_4_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_1 = r. matrix_W [ 3,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_2 + _definition.id '_cell_subsystem.matrix_W_4_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_2 = r. matrix_W [ 3,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_3 + _definition.id '_cell_subsystem.matrix_W_4_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_3 = r. matrix_W [ 3,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_4 + _definition.id '_cell_subsystem.matrix_W_4_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_4 = r. matrix_W [ 3,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_5 + _definition.id '_cell_subsystem.matrix_W_4_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_5 = r. matrix_W [ 3,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_6 + _definition.id '_cell_subsystem.matrix_W_4_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_6 = r. matrix_W [ 3,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_7 + _definition.id '_cell_subsystem.matrix_W_4_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_7 = r. matrix_W [ 3,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_8 + _definition.id '_cell_subsystem.matrix_W_4_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_8 = r. matrix_W [ 3,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_9 + _definition.id '_cell_subsystem.matrix_W_4_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_9 = r. matrix_W [ 3,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_10 + _definition.id '_cell_subsystem.matrix_W_4_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_10 = r. matrix_W [ 3,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_4_11 + _definition.id '_cell_subsystem.matrix_W_4_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_4_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_4_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_4_11 = r. matrix_W [ 3,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_1 + _definition.id '_cell_subsystem.matrix_W_5_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_1 = r. matrix_W [ 4,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_2 + _definition.id '_cell_subsystem.matrix_W_5_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_2 = r. matrix_W [ 4,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_3 + _definition.id '_cell_subsystem.matrix_W_5_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_3 = r. matrix_W [ 4,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_4 + _definition.id '_cell_subsystem.matrix_W_5_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_4 = r. matrix_W [ 4,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_5 + _definition.id '_cell_subsystem.matrix_W_5_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_5 = r. matrix_W [ 4,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_6 + _definition.id '_cell_subsystem.matrix_W_5_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_6 = r. matrix_W [ 4,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_7 + _definition.id '_cell_subsystem.matrix_W_5_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_7 = r. matrix_W [ 4,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_8 + _definition.id '_cell_subsystem.matrix_W_5_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_8 = r. matrix_W [ 4,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_9 + _definition.id '_cell_subsystem.matrix_W_5_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_9 = r. matrix_W [ 4,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_10 + _definition.id '_cell_subsystem.matrix_W_5_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_10 = r. matrix_W [ 4,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_5_11 + _definition.id '_cell_subsystem.matrix_W_5_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_5_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_5_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_5_11 = r. matrix_W [ 4,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_1 + _definition.id '_cell_subsystem.matrix_W_6_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_1 = r. matrix_W [ 5,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_2 + _definition.id '_cell_subsystem.matrix_W_6_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_2 = r. matrix_W [ 5,1 ] +; +save_ + +save_cell_subsystem.matrix_W_6_3 + _definition.id '_cell_subsystem.matrix_W_6_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_3 = r. matrix_W [ 5,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_4 + _definition.id '_cell_subsystem.matrix_W_6_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_4 = r. matrix_W [ 5,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_5 + _definition.id '_cell_subsystem.matrix_W_6_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_5 = r. matrix_W [ 5,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_6 + _definition.id '_cell_subsystem.matrix_W_6_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_6 = r. matrix_W [ 5,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_7 + _definition.id '_cell_subsystem.matrix_W_6_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_7 = r. matrix_W [ 5,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_8 + _definition.id '_cell_subsystem.matrix_W_6_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_8 = r. matrix_W [ 5,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_9 + _definition.id '_cell_subsystem.matrix_W_6_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_9 = r. matrix_W [ 5,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_10 + _definition.id '_cell_subsystem.matrix_W_6_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_10 = r. matrix_W [ 5,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_6_11 + _definition.id '_cell_subsystem.matrix_W_6_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_6_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_6_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_6_11 = r. matrix_W [ 5,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_1 + _definition.id '_cell_subsystem.matrix_W_7_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_1 = r. matrix_W [ 6,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_2 + _definition.id '_cell_subsystem.matrix_W_7_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_2 = r. matrix_W [ 6,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_3 + _definition.id '_cell_subsystem.matrix_W_7_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_3 = r. matrix_W [ 6,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_4 + _definition.id '_cell_subsystem.matrix_W_7_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_4 = r. matrix_W [ 6,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_5 + _definition.id '_cell_subsystem.matrix_W_7_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_5 = r. matrix_W [ 6,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_6 + _definition.id '_cell_subsystem.matrix_W_7_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_6 = r. matrix_W [ 6,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_7 + _definition.id '_cell_subsystem.matrix_W_7_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_7 = r. matrix_W [ 6,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_8 + _definition.id '_cell_subsystem.matrix_W_7_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_8 = r. matrix_W [ 6,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_9 + _definition.id '_cell_subsystem.matrix_W_7_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_9 = r. matrix_W [ 6,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_10 + _definition.id '_cell_subsystem.matrix_W_7_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_10 = r. matrix_W [ 6,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_7_11 + _definition.id '_cell_subsystem.matrix_W_7_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_7_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_7_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_7_11 = r. matrix_W [ 6,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_1 + _definition.id '_cell_subsystem.matrix_W_8_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_1 = r. matrix_W [ 7,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_2 + _definition.id '_cell_subsystem.matrix_W_8_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_2 = r. matrix_W [ 7,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_3 + _definition.id '_cell_subsystem.matrix_W_8_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_3 = r. matrix_W [ 7,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_4 + _definition.id '_cell_subsystem.matrix_W_8_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_4 = r. matrix_W [ 7,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_5 + _definition.id '_cell_subsystem.matrix_W_8_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_5 = r. matrix_W [ 7,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_6 + _definition.id '_cell_subsystem.matrix_W_8_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_6 = r. matrix_W [ 7,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_7 + _definition.id '_cell_subsystem.matrix_W_8_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_7 = r. matrix_W [ 7,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_8 + _definition.id '_cell_subsystem.matrix_W_8_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_8 = r. matrix_W [ 7,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_9 + _definition.id '_cell_subsystem.matrix_W_8_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_9 = r. matrix_W [ 7,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_10 + _definition.id '_cell_subsystem.matrix_W_8_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_10 = r. matrix_W [ 7,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_8_11 + _definition.id '_cell_subsystem.matrix_W_8_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_8_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_8_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_8_11 = r. matrix_W [ 7,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_1 + _definition.id '_cell_subsystem.matrix_W_9_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_1 = r. matrix_W [ 8,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_2 + _definition.id '_cell_subsystem.matrix_W_9_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_2 = r. matrix_W [ 8,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_3 + _definition.id '_cell_subsystem.matrix_W_9_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_3 = r. matrix_W [ 8,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_4 + _definition.id '_cell_subsystem.matrix_W_9_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_4 = r. matrix_W [ 8,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_5 + _definition.id '_cell_subsystem.matrix_W_9_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_5 = r. matrix_W [ 8,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_6 + _definition.id '_cell_subsystem.matrix_W_9_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_6 = r. matrix_W [ 8,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_7 + _definition.id '_cell_subsystem.matrix_W_9_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_7 = r. matrix_W [ 8,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_8 + _definition.id '_cell_subsystem.matrix_W_9_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_8 = r. matrix_W [ 8,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_9 + _definition.id '_cell_subsystem.matrix_W_9_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_9 = r. matrix_W [ 8,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_10 + _definition.id '_cell_subsystem.matrix_W_9_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_10 = r. matrix_W [ 8,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_9_11 + _definition.id '_cell_subsystem.matrix_W_9_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_9_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_9_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_9_11 = r. matrix_W [ 8,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_1 + _definition.id '_cell_subsystem.matrix_W_10_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_1 = r. matrix_W [ 9,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_2 + _definition.id '_cell_subsystem.matrix_W_10_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_2 = r. matrix_W [ 9,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_3 + _definition.id '_cell_subsystem.matrix_W_10_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_3 = r. matrix_W [ 9,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_4 + _definition.id '_cell_subsystem.matrix_W_10_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_4 = r. matrix_W [ 9,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_5 + _definition.id '_cell_subsystem.matrix_W_10_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_5 = r. matrix_W [ 9,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_6 + _definition.id '_cell_subsystem.matrix_W_10_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_6 = r. matrix_W [ 9,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_7 + _definition.id '_cell_subsystem.matrix_W_10_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_7 = r. matrix_W [ 9,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_8 + _definition.id '_cell_subsystem.matrix_W_10_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_8 = r. matrix_W [ 9,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_9 + _definition.id '_cell_subsystem.matrix_W_10_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_9 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_9 = r. matrix_W [ 9,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_10 + _definition.id '_cell_subsystem.matrix_W_10_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_10 = r. matrix_W [ 9,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_10_11 + _definition.id '_cell_subsystem.matrix_W_10_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_10_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_10_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_10_11 = r. matrix_W [ 9,10 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_1 + _definition.id '_cell_subsystem.matrix_W_11_1' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_1' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_1 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_1 = r. matrix_W [ 10,0 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_2 + _definition.id '_cell_subsystem.matrix_W_11_2' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_2' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_2 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_2 = r. matrix_W [ 10,1 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_3 + _definition.id '_cell_subsystem.matrix_W_11_3' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_3' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_3 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_3 = r. matrix_W [ 10,2 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_4 + _definition.id '_cell_subsystem.matrix_W_11_4' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_4' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_4 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_4 = r. matrix_W [ 10,3 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_5 + _definition.id '_cell_subsystem.matrix_W_11_5' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_5' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_5 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_5 = r. matrix_W [ 10,4 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_6 + _definition.id '_cell_subsystem.matrix_W_11_6' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_6' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_6 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_6 = r. matrix_W [ 10,5 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_7 + _definition.id '_cell_subsystem.matrix_W_11_7' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_7' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_7 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_7 = r. matrix_W [ 10,6 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_8 + _definition.id '_cell_subsystem.matrix_W_11_8' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_8' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_8 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_8 = r. matrix_W [ 10,7 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_9 + _definition.id '_cell_subsystem.matrix_W_11_9' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_9' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_9 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_9 = r. matrix_W [ 10,8 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_10 + _definition.id '_cell_subsystem.matrix_W_11_10' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_10' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_10 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 0.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_10 = r. matrix_W [ 10,9 ] +; + +save_ + +save_cell_subsystem.matrix_W_11_11 + _definition.id '_cell_subsystem.matrix_W_11_11' + loop_ + _alias.definition_id '_cell_subsystem_matrix_W_11_11' + _import.get [{"file":'templ_attr.cif',"save":'matrix_w'}] + _name.category_id cell_subsystem + _name.object_id matrix_W_11_11 + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.default 1.0 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as cell_subsystem + + cell_subsystem. matrix_W_11_11 = r. matrix_W [ 10,10 ] +; + +save_ + +save_CELL_SUBSYSTEMS + + _definition.id CELL_SUBSYSTEMS + _definition.scope Category + _definition.class Set + _definition.update 2016-11-17 + _description.text +; + + Data items in the CELL_SUBSYSTEMS category describe overall aspects + of the subsystems present in a composite. +; + _name.category_id MS_GROUP + _name.object_id CELL_SUBSYSTEMS + +save_ + +save_cell_subsystems.number + + _definition.id '_cell_subsystems.number' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_subsystems_number' + _description.text +; + + The number of subsystems used to define the structural model of + a composite structure. +; + _name.category_id cell_subsystems + _name.object_id number + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Count + _enumeration.range 2: + +save_ + +save_CELL_WAVE_VECTOR + + _definition.id CELL_WAVE_VECTOR + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the CELL_WAVE_VECTOR category list the + independent modulation wave vectors q~i~. The diffraction + vectors are indexed in the form + + ha*+kb*+lc*+sum~i~(m~i~q~i~). + + sum~i~ is taken over all wave vectors. In this version of the + dictionary, the index i has been restricted to be less than 9. +; + _name.category_id MS_GROUP + _name.object_id CELL_WAVE_VECTOR + _category_key.name '_cell_wave_vector.seq_id' + +save_ + +save_cell_wave_vector.seq_id + + _definition.id '_cell_wave_vector.seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vector_seq_id' + _description.text +; + + A numeric code to identify each independent wave vector. These + codes define uniquely the reciprocal basis and, therefore, + force the order of the Miller indices assigned to + intensities, crystal faces etc. +; + _name.category_id cell_wave_vector + _name.object_id seq_id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Count + +save_ + +save_cell_wave_vector.x + + _definition.id '_cell_wave_vector.x' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vector_x' + _description.text +; + + Component of a wave vector along the reciprocal axis a^*^ of the + reference structure. +; + _name.category_id cell_wave_vector + _name.object_id x + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _type.dimension [3] + _enumeration.default 0.0 +; + With m as cell_wave_vector + + cell_wave_vector.x = m.xyz[ 0 ] +; + +save_ + +save_cell_wave_vector.xyz + + _definition.id '_cell_wave_vector.xyz' + _definition.update 2014-06-27 + _description.text +; + + Independent modulation wave vector(s) with which the whole + diffraction pattern is indexed, expressed as fractions of the + three reciprocal basis vectors of the reference structure. In + the case of composites, the modulation wave vectors of each + subsystem are expressed in terms of the reciprocal basis of its + corresponding reference structure. Their number must match + _cell_modulation_dimension. In the case of composites described + in a single data block, the wave + vectors are expressed in the three-dimensional basis chosen as + reference in _cell.reciprocal_basis_description, which would + correspond to the subsystem (if any) whose W matrix is the + {(_cell.modulation_dimension + 3)*(_cell.modulation_dimension + 3)} + unit matrix. In this case, the wave vectors used to describe the + modulation of each subsystem are referred to their own reciprocal + basis via the W matrices (for details see _cell_subsystem.matrix_W_* + and _atom_site_Fourier_wave_vector.*). +; + _name.category_id cell_wave_vector + _name.object_id xyz + _type.purpose Measurand + _type.source Assigned + _type.container Matrix + _type.contents Real + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as cell_wave_vector + + cell_wave_vector.xyz = [ m.x, m.y, m.z ] +; + +save_ + +save_cell_wave_vector.y + + _definition.id '_cell_wave_vector.y' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vector_y' + _description.text +; + + Component of a wave vector along the reciprocal axis b^*^ of the + reference structure. +; + _name.category_id cell_wave_vector + _name.object_id y + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 +; + With m as cell_wave_vector + + cell_wave_vector.y = m.xyz[ 1 ] +; + +save_ + +save_cell_wave_vector.z + _definition.id '_cell_wave_vector.z' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vector_z' + _description.text +; + + Component of a wave vector along the reciprocal axis c^*^ of the + reference structure. +; + _name.category_id cell_wave_vector + _name.object_id z + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 +; + With m as cell_wave_vector + + cell_wave_vector.z = m.xyz[ 2 ] +; + +save_ + +save_CELL_WAVE_VECTORS + + _definition.id CELL_WAVE_VECTORS + _definition.scope Category + _definition.class Set + _definition.update 2016-11-17 + _description.text +; + + Data items in the CELL_WAVE_VECTORS category record overall details + about the set of independent modulation wave vectors q~i~ and + their measurement. The diffraction vectors are indexed in + the form + ha*+kb*+lc*+sum~i~ (m~i~q~i~). + + sum~i~ is taken over all wave vectors. In this version of the + dictionary, the index i has been restricted to be less than 9. +; + _name.category_id MS_GROUP + _name.object_id CELL_WAVE_VECTORS + +save_ + +save_cell_wave_vectors.meas_details + + _definition.id '_cell_wave_vectors.meas_details' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_meas_details' + _description.text +; + + Details about the method used to determine the independent + modulation wave vector(s). +; + _name.category_id cell_wave_vectors + _name.object_id meas_details + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + +save_ + +save_cell_wave_vectors.pressure_max + + _definition.id '_cell_wave_vectors.pressure_max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_pressure_max' + _description.text +; + + The maximum and minimum values of the pressure in kilopascals + defining the interval within which the modulation wave vector(s) + were measured. +; + _name.category_id cell_wave_vectors + _name.object_id pressure_max + _type.purpose Measurand + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code kilopascals + +save_ + +save_cell_wave_vectors.pressure_min + + _definition.id '_cell_wave_vectors.pressure_min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_pressure_min' + _description.text +; + + The maximum and minimum values of the pressure in kilopascals + defining the interval within which the modulation wave vector(s) + were measured. +; + _name.category_id cell_wave_vectors + _name.object_id pressure_min + _type.purpose Measurand + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code kilopascals + +save_ + +save_cell_wave_vectors.temp_max + + _definition.id '_cell_wave_vectors.temp_max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_temp_max' + _description.text +; + + The maximum and minimum values of the temperature in kelvins + defining the interval within which the modulation wave vector(s) + were measured. +; + _name.category_id cell_wave_vectors + _name.object_id temp_max + _type.purpose Measurand + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code kelvins + +save_ + +save_cell_wave_vectors.temp_min + + _definition.id '_cell_wave_vectors.temp_min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_temp_min' + _description.text +; + + The maximum and minimum values of the temperature in kelvins + defining the interval within which the modulation wave vector(s) + were measured. +; + _name.category_id cell_wave_vectors + _name.object_id temp_min + _type.purpose Measurand + _type.source Recorded + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code kelvins + +save_ + +save_cell_wave_vectors.variation + + _definition.id '_cell_wave_vectors.variation' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_cell_wave_vectors_variation' + _description.text +; + + Details concerning the behaviour (and its experimental + detection) of the wave vector(s) with temperature and/or + pressure within the ranges specified by + _cell_wave_vectors.pressure_max, _cell_wave_vectors.pressure_min, + _cell_wave_vectors.temp_max and _cell_wave_vectors.temp_min. +; + _name.category_id cell_wave_vectors + _name.object_id variation + _type.purpose Describe + _type.source Recorded + _type.container Single + _type.contents Text + +save_ + +save_DIFFRN_REFLN + + _definition.id DIFFRN_REFLN + _definition.scope Category + _definition.class Loop + _definition.update 2016-11-17 + _description.text +; + + Data items in the DIFFRN_REFLN category record details about + the intensities measured in the diffraction experiment. The + DIFFRN_REFLN data items refer to individual intensity + measurements and must be included in looped lists. (The + DIFFRN_REFLNS data items specify the parameters that apply + to all intensity measurements. The DIFFRN_REFLNS data items + are not looped.) Data items in this category are extensions + of the core CIF dictionary definitions to the indexing of + diffraction intensities by higher-dimensional components. +; + _name.category_id MS_GROUP + _name.object_id DIFFRN_REFLN + loop_ + _category_key.name + '_diffrn_refln.index_h' + '_diffrn_refln.index_k' + '_diffrn_refln.index_l' + '_diffrn_refln.index_m_list' + +save_ + +save_diffrn_refln.index_m_list + + _definition.id '_diffrn_refln.index_m_list' + _definition.update 2016-11-17 + _description.text +; + + Additional Miller indices needed to write the reciprocal vector + of a certain reflection in the basis described in + _cell_reciprocal_basis_description. Following the usual + convention, such a vector would be expressed as + + H=h*a*+k*b*+l*c*+m1*q(1)+...+m8*q(8), + + where h,k,l are the usual _diffrn_refln.index_, and q(1)...q(8) + represent the independent wave vectors given by + _cell_wave_vector.xyz and identified by _cell_wave_vector.seq_id. + Therefore, the total number of indices of a given reflection must + match (_cell.modulation_dimension + 3) and the order of the + additional indices must be consistent with the codes given in + _cell_wave_vector.seq_id. These indices need not match + _refln.index_m_list values if a transformation of the original + measured cell has occurred. +; + _name.category_id diffrn_refln + _name.object_id index_m_list + _type.purpose Number + _type.source Assigned + _type.container List + _type.contents Integer + _type.dimension [] + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_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 ] + + #Not meaningful indices are removed here + + diffrn_refln.index_m_list = + temp.index_m_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_diffrn_refln.index_m_1 + _definition.id '_diffrn_refln.index_m_1' + loop_ + _alias.definition_id '_diffrn_refln_index_m_1' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_1 = r.index_m_list [ 0 ] +; + +save_ + +save_diffrn_refln.index_m_2 + _definition.id '_diffrn_refln.index_m_2' + loop_ + _alias.definition_id '_diffrn_refln_index_m_2' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_2 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_2 = r.index_m_list [ 1 ] +; + +save_ + +save_diffrn_refln.index_m_3 + _definition.id '_diffrn_refln.index_m_3' + loop_ + _alias.definition_id '_diffrn_refln_index_m_3' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_3 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_3 = r.index_m_list [ 2 ] +; + +save_ + +save_diffrn_refln.index_m_4 + _definition.id '_diffrn_refln.index_m_4' + loop_ + _alias.definition_id '_diffrn_refln_index_m_4' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_4 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_4 = r.index_m_list [ 3 ] +; + +save_ + +save_diffrn_refln.index_m_5 + _definition.id '_diffrn_refln.index_m_5' + loop_ + _alias.definition_id '_diffrn_refln_index_m_5' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_5 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_5 = r.index_m_list [ 4 ] +; + +save_ + +save_diffrn_refln.index_m_6 + _definition.id '_diffrn_refln.index_m_6' + loop_ + _alias.definition_id '_diffrn_refln_index_m_6' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_6 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_6 = r.index_m_list [ 5 ] +; + +save_ + +save_diffrn_refln.index_m_7 + _definition.id '_diffrn_refln.index_m_7' + loop_ + _alias.definition_id '_diffrn_refln_index_m_7' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_7 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_7 = r.index_m_list [ 6 ] +; + +save_ + +save_diffrn_refln.index_m_8 + _definition.id '_diffrn_refln.index_m_8' + loop_ + _alias.definition_id '_diffrn_refln_index_m_8' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_refln + _name.object_id index_m_8 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_refln + + diffrn_refln.index_m_8 = r.index_m_list [ 7 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_max_list + + _definition.id '_diffrn_reflns.limit_index_m_max_list' + _definition.update 2014-06-27 + _description.text +; + + Maximum values of the additional Miller indices + appearing in _diffrn_refln.index_m_list. The number of ranges must + match _cell.modulation_dimension. The order of the additional + indices must be consistent with the codes given in + _cell.wave_vector_seq_id. +; + _name.category_id diffrn_reflns + _name.object_id limit_index_m_max_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as diffrn_reflns + + temp.limit_index_m_max_list = + + [ m.limit_index_m_1_max, m.limit_index_m_2_max, + m.limit_index_m_3_max, m.limit_index_m_4_max, + m.limit_index_m_5_max, m.limit_index_m_6_max, + m.limit_index_m_7_max, m.limit_index_m_8_max ] + + #Not meaningful indices are removed here + + diffrn_reflns.limit_index_m_max_list = + temp.limit_index_m_max_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_diffrn_reflns.limit_index_m_1_max + _definition.id '_diffrn_reflns.limit_index_m_1_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_1_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_1_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_1_max = r.limit_index_m_max_list [ 0 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_2_max + _definition.id '_diffrn_reflns.limit_index_m_2_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_2_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_2_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_2_max = r.limit_index_m_max_list [ 1 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_3_max + _definition.id '_diffrn_reflns.limit_index_m_3_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_3_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_3_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_3_max = r.limit_index_m_max_list [ 2 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_4_max + _definition.id '_diffrn_reflns.limit_index_m_4_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_4_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_4_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_4_max = r.limit_index_m_max_list [ 3 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_5_max + _definition.id '_diffrn_reflns.limit_index_m_5_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_5_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_5_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_5_max = r.limit_index_m_max_list [ 4 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_6_max + _definition.id '_diffrn_reflns.limit_index_m_6_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_6_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_6_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_6_max = r.limit_index_m_max_list [ 5 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_7_max + _definition.id '_diffrn_reflns.limit_index_m_7_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_7_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_7_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_7_max = r.limit_index_m_max_list [ 6 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_8_max + _definition.id '_diffrn_reflns.limit_index_m_8_max' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_8_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_8_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_8_max = r.limit_index_m_max_list [ 7 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_min_list + + _definition.id '_diffrn_reflns.limit_index_m_min_list' + _definition.update 2014-06-27 + _description.text +; + + Minimum values of the additional Miller indices + appearing in _diffrn_refln.index_m_list. The number of ranges must + match _cell.modulation_dimension. The order of the additional + indices must be consistent with the codes given in + _cell.wave_vector_seq_id. +; + _name.category_id diffrn_reflns + _name.object_id limit_index_m_min_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as diffrn_reflns + + temp.limit_index_m_min_list = + + [ m.limit_index_m_1_min, m.limit_index_m_2_min, + m.limit_index_m_3_min, m.limit_index_m_4_min, + m.limit_index_m_5_min, m.limit_index_m_6_min, + m.limit_index_m_7_min, m.limit_index_m_8_min ] + + #Not meaningful indices are removed here + + diffrn_reflns.limit_index_m_min_list = + temp.limit_index_m_min_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_diffrn_reflns.limit_index_m_1_min + _definition.id '_diffrn_reflns.limit_index_m_1_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_1_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_1_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_1_min = r.limit_index_m_min_list [ 0 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_2_min + _definition.id '_diffrn_reflns.limit_index_m_2_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_2_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_2_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_2_min = r.limit_index_m_min_list [ 1 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_3_min + _definition.id '_diffrn_reflns.limit_index_m_3_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_3_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_3_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_3_min = r.limit_index_m_min_list [ 2 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_4_min + _definition.id '_diffrn_reflns.limit_index_m_4_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_4_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_4_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_4_min = r.limit_index_m_min_list [ 3 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_5_min + _definition.id '_diffrn_reflns.limit_index_m_5_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_5_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_5_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_5_min = r.limit_index_m_min_list [ 4 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_6_min + _definition.id '_diffrn_reflns.limit_index_m_6_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_6_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_6_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_6_min = r.limit_index_m_min_list [ 5 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_7_min + _definition.id '_diffrn_reflns.limit_index_m_7_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_7_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_7_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_7_min = r.limit_index_m_min_list [ 6 ] +; + +save_ + +save_diffrn_reflns.limit_index_m_8_min + _definition.id '_diffrn_reflns.limit_index_m_8_min' + loop_ + _alias.definition_id '_diffrn_reflns_limit_index_m_8_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id diffrn_reflns + _name.object_id limit_index_m_8_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_reflns + + diffrn_reflns.limit_index_m_8_min = r.limit_index_m_min_list [ 7 ] +; + +save_ + +save_diffrn_reflns.satellite_order_max + + _definition.id '_diffrn_reflns.satellite_order_max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_diffrn_reflns_satellite_order_max' + _description.text +; + + Maximum order of observed satellites. +; + _name.category_id diffrn_reflns + _name.object_id satellite_order_max + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Count + +save_ + +save_DIFFRN_STANDARD_REFLN + + _definition.id DIFFRN_STANDARD_REFLN + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the DIFFRN_STANDARD_REFLN category record + details about the reflections treated as standards during the + measurement of diffraction intensities. Note that these are the + individual standard reflections, not the results of the analysis + of the standard reflections. Data items in this category are + extensions of the core CIF dictionary definitions + to the indexing of standard reflections by + higher-dimensional components. +; + _name.category_id MS_GROUP + _name.object_id DIFFRN_STANDARD_REFLN + loop_ + _category_key.name + '_diffrn_standard_refln.index_h' + '_diffrn_standard_refln.index_k' + '_diffrn_standard_refln.index_l' + '_diffrn_standard_refln.index_m_list' + +save_ + +save_diffrn_standard_refln.index_m_list + + _definition.id '_diffrn_standard_refln.index_m_list' + _definition.update 2014-06-27 + _description.text +; + + Additional Miller indices needed to write the reciprocal vectors + of the standard intensities used in the diffraction measurement + process, in the basis described in + _cell.reciprocal_basis_description. The total number of indices + of a given standard reflection must match + (_cell.modulation_dimension + 3) and the order of the + additional indices must be consistent with the codes given in + _cell_wave_vector.seq_id. +; + _name.category_id diffrn_standard_refln + _name.object_id index_m_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_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 ] + + #Not meaningful indices are removed here + + diffrn_standard_refln.index_m_list = + temp.index_m_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_diffrn_standard_refln.index_m_1 + _definition.id '_diffrn_standard_refln.index_m_1' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_1' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_1 = r.index_m_list [ 0 ] +; + +save_ + +save_diffrn_standard_refln.index_m_2 + _definition.id '_diffrn_standard_refln.index_m_2' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_2' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_2 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_2 = r.index_m_list [ 1 ] +; + +save_ + +save_diffrn_standard_refln.index_m_3 + _definition.id '_diffrn_standard_refln.index_m_3' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_3' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_3 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_3 = r.index_m_list [ 2 ] +; + +save_ + +save_diffrn_standard_refln.index_m_4 + _definition.id '_diffrn_standard_refln.index_m_4' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_4' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_4 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_4 = r.index_m_list [ 3 ] +; + +save_ + +save_diffrn_standard_refln.index_m_5 + _definition.id '_diffrn_standard_refln.index_m_5' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_5' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_5 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_5 = r.index_m_list [ 4 ] +; + +save_ + +save_diffrn_standard_refln.index_m_6 + _definition.id '_diffrn_standard_refln.index_m_6' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_6' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_6 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_6 = r.index_m_list [ 5 ] +; + +save_ + +save_diffrn_standard_refln.index_m_7 + _definition.id '_diffrn_standard_refln.index_m_7' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_7' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_7 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_7 = r.index_m_list [ 6 ] +; + +save_ + +save_diffrn_standard_refln.index_m_8 + _definition.id '_diffrn_standard_refln.index_m_8' + loop_ + _alias.definition_id '_diffrn_standard_refln_index_m_8' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id diffrn_standard_refln + _name.object_id index_m_8 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as diffrn_standard_refln + + diffrn_standard_refln.index_m_8 = r.index_m_list [ 7 ] +; + +save_ + +save_exptl_crystal.type_of_structure + + _definition.id '_exptl_crystal.type_of_structure' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_exptl_crystal_type_of_structure' + _description.text +; + + The type of structure. This is used to check the consistency of a + CIF: the data blocks that are expected and/or certain characteristic + parameters depend on whether the material is classified as crystalline + (periodic in three dimensions), modulated or composite. +; + _name.category_id exptl_crystal + _name.object_id type_of_structure + _type.purpose State + _type.source Recorded + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + cryst 'crystalline structure' + mod 'modulated structure' + comp 'composite (misfit) structure' + _enumeration.default cryst + +save_ + +save_EXPTL_CRYSTAL_FACE + + _definition.id EXPTL_CRYSTAL_FACE + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the EXPTL_CRYSTAL_FACE category record + details of the crystal faces. Data items in this category are + extensions of the core CIF dictionary definitions to the + indexing of crystal faces by higher-dimensional components. +; + _name.category_id MS_GROUP + _name.object_id EXPTL_CRYSTAL_FACE + loop_ + _category_key.name + '_exptl_crystal_face.index_h' + '_exptl_crystal_face.index_k' + '_exptl_crystal_face.index_l' + '_exptl_crystal_face.index_m_list' + +save_ + +save_exptl_crystal_face.index_m_list + + _definition.id '_exptl_crystal_face.index_m_list' + _definition.update 2014-06-27 + _description.text +; + + Additional Miller indices of the crystal face associated with the + value _exptl_crystal_face_perp_dist when the face is indexed + using a multidimensional scheme. The total number of indices must + match (_cell.modulation_dimension + 3). The order of the indices + must be consistent with the codes given in + _cell_wave_vector.seq_id. +; + _name.category_id exptl_crystal_face + _name.object_id index_m_list + _type.purpose Number + _type.source Recorded + _type.container Single + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as exptl_crystal_face + + 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 ] + #Not meaningful indices are removed here + + exptl_crystal_face.index_m_list = + temp.index_m_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_exptl_crystal_face.index_m_1 + _definition.id '_exptl_crystal_face.index_m_1' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_1' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_1 = f.index_m_list [ 0 ] +; + +save_ + +save_exptl_crystal_face.index_m_2 + _definition.id '_exptl_crystal_face.index_m_2' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_2' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_2 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_2 = f.index_m_list [ 1 ] +; + +save_ + +save_exptl_crystal_face.index_m_3 + _definition.id '_exptl_crystal_face.index_m_3' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_3' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_3 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_3 = f.index_m_list [ 2 ] +; + +save_ + +save_exptl_crystal_face.index_m_4 + _definition.id '_exptl_crystal_face.index_m_4' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_4' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_4 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_4 = f.index_m_list [ 3 ] +; + +save_ + +save_exptl_crystal_face.index_m_5 + _definition.id '_exptl_crystal_face.index_m_5' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_5' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_5 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_5 = f.index_m_list [ 4 ] +; + +save_ + +save_exptl_crystal_face.index_m_6 + _definition.id '_exptl_crystal_face.index_m_6' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_6' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_6 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_6 = f.index_m_list [ 5 ] +; + +save_ + +save_exptl_crystal_face.index_m_7 + _definition.id '_exptl_crystal_face.index_m_7' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_7' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_7 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_7 = f.index_m_list [ 6 ] +; + +save_ + +save_exptl_crystal_face.index_m_8 + _definition.id '_exptl_crystal_face.index_m_8' + loop_ + _alias.definition_id '_exptl_crystal_face_index_m_8' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id exptl_crystal_face + _name.object_id index_m_8 + loop_ + _method.purpose + _method.expression + Evaluation +; + With f as exptl_crystal_face + + exptl_crystal_face.index_m_8 = f.index_m_list [ 7 ] +; + +save_ + +save_function.Crenel + + _definition.id '_function.Crenel' + _definition.update 2014-06-27 +; + + The function: + + o = Crenel(c, w, x4) + + returns, 1 if x4 belongs to the interval [c-w/2,c+w/2], 0 otherwise. + x4 is a particular value of the internal coordinate, c is the centre of a + crenel function in internal space and w is its width. The use of this + function is restricted to one-dimensional modulated structures. +; + _name.category_id function + _name.object_id Crenel + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + loop_ + _method.purpose + _method.expression + Evaluation +; + Function Crenel( c :[Single, Real], + w :[Single, Real], + x4 :[Single,Real] ) + { + + Crenel = 0.0 + + If ( c-w/2.0 <= x4 and x4 <= c+w/2.0 ) Crenel = 1.0 + + } + +# Heavier alternative: only atom label and x4 + + Function Crenel( atlab :[Single, Code], + x4 :[Single,Real] ) + { + + Crenel = -1.0 # Atom not in list of crenel modulation or null crenel width + + Loop o as atom_site_occ_special_func { + + If (atlab == o.atom_site_label and o.crenel_w != 0.0){ + + Crenel = 0.0 + + If ( o.crenel_c-o.crenel_w/2.0 <= x4 and + x4 <= o.crenel_c+o.crenel_w/2.0 ) Crenel = 1.0 + + Break + + } # End of If + + } # End of Loop + + } +; + +save_ + +save_function.Sawtooth + + _definition.id '_function.Sawtooth' + _definition.update 2014-06-27 +; + + The function: + + s = Sawtooth(a, c, w, x4) + + returns + + 2* a * ((x4-c)/w) + + for x4 belonging to the interval [c-(w/2), c+(w/2)], where a is the array + containing the the amplitudes (maximum displacements) along each + crystallographic axis, w is the width of the sawtooth, x4 is a particular value + of the internal coordinate and c is the centre of the function in + internal space. The use of this function is restricted to one-dimensional + modulated structures. +; + _name.category_id function + _name.object_id Sawtooth + _type.purpose Number + _type.source Assigned + _type.container Array + _type_dimension [3] + _type.contents Real + loop_ + _method.purpose + _method.expression + Evaluation +; + Function Sawtooth( a :[Array, Real] , + c :[Single, Real], + w :[Single, Real], + x4 :[Single,Real] ) + { + + Sawtooth = [0.0,0.0,0.0] + + If ( c-w/2.0 <= x4 and x4 <= c+w/2.0 ) Sawtooth = 2*a*(x4-c)/w + + } + +# Heavier alternative: only atom label and x4 + + Function Sawtooth( atlab :[Single, Code], + x4 :[Single,Real] ) + { +# Atom not in list of sawtooth modulation or null sawtooth width + Sawtooh = [-1.0,-1.0,-1.0] + + Loop d as atom_site_displace_special_func { + + If (atlab == d.atom_site_label and d.sawtooth_w != 0.0){ + + Sawtooth = [0.0,0.0,0.0] + + If ( d.sawtooth_c-d.sawtooth_w/2.0 <= x4 and + x4 <= d.sawtooth_c+d.sawtooth_w/2.0 ) + + Sawtooth = 2*d.sawtooth_axyz*(x4- d.sawtooth_c)/d.sawtooth_w + + Break + + } # End of If + + } # End of Loop + + } +; + +save_ + +save_function.Zigzag + + _definition.id '_function.Zigzag' + _definition.update 2014-06-27 +; + + The function: + + z = Zigzag(a, c, w, x4) + + returns + + 2* a * ((x4-c)/w) + + for x4 belonging to the interval [c-(w/2), c+(w/2)] or + + -2* a * ((x4-c)/w) + + for x4 in the interval [c+1/2-(w/2), c+1/2+(w/2)] + + where a is the array containing the the amplitudes (maximum displacements) + along each crystallographic axis, w is the width of the zigzag, x4 is a + particular value of the internal coordinate and c is the centre of the function + in internal space. The use of this function is restricted to one-dimensional + modulated structures. +; + _name.category_id function + _name.object_id Zigzag + _type.purpose Number + _type.source Assigned + _type.container Array + _type_dimension [3] + _type.contents Real + loop_ + _method.purpose + _method.expression + Evaluation +; + Function Zigzag( a :[Array, Real] , + c :[Single, Real], + w :[Single, Real], + x4 :[Single,Real] ) + { + + Zigzag = [0.0,0.0,0.0] + + If ( c-w/2.0 <= x4 and x4 <= c+w/2.0 ) Zigzag = 2*a*(x4-c)/w + + Else if ( c+0.5-w/2.0 <= x4 and x4 <= c+0.5+w/2.0 ) Zigzag = -2*a*(x4-c)/w + + + } + +# Heavier alternative: only atom label and x4 + + Function Zigzag( atlab :[Single, Code], + x4 :[Single,Real] ) + { +# Atom not in list of sawtooth modulation or null zigzag width + Zigzag = [-1.0,-1.0,-1.0] + + Loop d as atom_site_displace_special_func { + + If (atlab == d.atom_site_label and d.zigzag_w != 0.0){ + + Zigzag = [0.0,0.0,0.0] + + If ( d.zigzag_c-d.zigzag_w/2.0 <= x4 and + x4 <= d.zigzag_c+d.zigzag_w/2.0 ) + + Zigzag = 2*d.zigzag_axyz*(x4- d.zigzag_c)/d.zigzag_w + + Else if ( d.zigzag_c+0.5-d.zigzag_w/2.0 <= x4 and + x4 <= d.zigzag_c+0.5+d.zigzag_w/2.0 ) + + Zigzag = -2*d.zigzag_axyz*(x4- d.zigzag_c)/d.zigzag_w + + Break + + } # End of If + + } # End of Loop + + } +; + +save_ + +save_GEOM_ANGLE + + _definition.id GEOM_ANGLE + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the GEOM_ANGLE category record + details about the bond angles, as calculated from the + ATOM, CELL and SYMMETRY data. These extensions + to the core CIF dictionary definitions record the maximum, + minimum and average values of angles and extend the + symmetry-operation code used in angle listings to the + higher-dimensional superspace form. Many GEOM_ANGLE + datanames are redefined due to the consequent change + in the way that they are calculated, even if the + calculation method is not explicit in either this + dictionary or the core. +; + _name.category_id MS_GROUP + _name.object_id GEOM_ANGLE + loop_ + _category_key.name + '_geom_angle.atom_site_label_1' + '_geom_angle.atom_site_label_2' + '_geom_angle.atom_site_label_3' + '_geom_angle.site_ssg_symmetry_1' + '_geom_angle.site_ssg_symmetry_2' + '_geom_angle.site_ssg_symmetry_3' + +save_ + +save_save_geom_angle.av + + _definition.id '_geom_angle.av' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_av' + _description.text +; + + Average angle bounded by _geom_angle.atom_site_label_1, + *_2, and *_3. The site at *_2 is at the apex of the angle. +; + _name.category_id geom_angle + _name.object_id av + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_ + +save_geom_angle.max + + _definition.id '_geom_angle.max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_max' + _description.text +; + + Maximum angle bounded by _geom_angle.atom_site_label_1, + *_2, and *_3. The site at *_2 is at the apex of the angle. +; + _name.category_id geom_angle + _name.object_id max + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_ + +save_geom_angle.min + + _definition.id '_geom_angle.min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_min' + _description.text +; + + Minimum angle bounded by _geom_angle.atom_site_label_1, + *_2, and *_3. The site at *_2 is at the apex of the angle. +; + _name.category_id geom_angle + _name.object_id min + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_save_geom_angle.site_ssg_symmetry_1 + + _definition.id '_geom_angle.site_ssg_symmetry_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_site_ssg_symmetry_1' + _description.text +; + + The symmetry code of each atom site as the symmetry operation + number 'n' and the higher-dimensional translation 'm1...mp'. + These numbers are combined to form the code 'n m1...mp' or + n_m1...mp. The character string n_m1...mp is composed as follows: + 'n' refers to the symmetry operation that is applied to the + superspace coordinates. It must match a number given in + _space_group_symop_ssg_id. 'm1...mp' refer to the translations + that are subsequently applied to the symmetry-transformed + coordinates to generate the atom used in calculating the angle. + These translations (t1,...tp) are related to (m1...mp) by the + relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, + the use of negative numbers is avoided. The number 'p' must agree + with (_cell_modulation_dimension + 3). If there are no cell + translations, the translation number may be omitted. If no + symmetry operations or translations are applicable, then a single + full stop '.' is used. +; + _name.category_id geom_angle + _name.object_id site_ssg_symmetry_1 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + loop_ + _description_example.case + _description_example.detail + "." 'no symmetry or translation to site' + "4" '4th symmetry operation applied' + "7_645" '7th symmetry position; +a on x, -b on y' + +save_ + +save_geom_angle.site_ssg_symmetry_2 + + _definition.id '_geom_angle.site_ssg_symmetry_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_site_ssg_symmetry_2' + _description.text +; + + See _geom_angle.site_ssg_symmetry_1 for description. +; + _name.category_id geom_angle + _name.object_id site_ssg_symmetry_2 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_ + +save_geom_angle.site_ssg_symmetry_3 + + _definition.id '_geom_angle.site_ssg_symmetry_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_angle_site_ssg_symmetry_3' + _description.text +; + + See _geom_angle.site_ssg_symmetry_1 for description. +; + _name.category_id geom_angle + _name.object_id site_ssg_symmetry_3 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_GEOM_BOND + +_definition.id GEOM_BOND +_definition.scope Category +_definition.class Loop +_definition.update 2016-11-17 +_description.text +; + Data items in the GEOM_BOND category record + details about bonds, as calculated from the + ATOM, CELL and SYMMETRY data. This category extends the + symmetry-operation code used in bond listings to the + higher-dimensional superspace form and therefore + redefines many datanames to reflect the changed + method of distance calculation. +; +_name.category_id GEOM +_name.object_id GEOM_BOND + +loop_ + _category_key.name + '_geom_bond.atom_site_label_1' + '_geom_bond.atom_site_label_2' + '_geom_bond.site_ssg_symmetry_1' + '_geom_bond.site_ssg_symmetry_2' + +save_ + +save_geom_bond.distance_av + + _definition.id '_geom_bond.distance_av' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_bond_distance_av' + _description.text +; + + Average value of the intramolecular bond distance. +; + _name.category_id geom_bond + _name.object_id distance_av + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_bond.distance_max + + _definition.id '_geom_bond.distance_max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_bond_distance_max' + _description.text +; + + Maximum value of the intramolecular bond distance. +; + _name.category_id geom_bond + _name.object_id distance_max + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_bond.distance_min + + _definition.id '_geom_bond.distance_min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_bond_distance_min' + _description.text +; + + Minimum value of the intramolecular bond distance. +; + _name.category_id geom_bond + _name.object_id distance_min + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_bond.site_ssg_symmetry_1 + + _definition.id '_geom_bond.site_ssg_symmetry_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_bond_site_ssg_symmetry_1' + _description.text +; + + The symmetry code of each atom site as the symmetry operation + number 'n' and the higher-dimensional translation 'm1...mp'. + These numbers are combined to form the code 'n m1...mp' or + n_m1...mp. The character string n_m1...mp is composed as follows: + 'n' refers to the symmetry operation that is applied to the + superspace coordinates. It must match a number given in + _space_group_symop_ssg_id. 'm1...mp' refer to the translations + that are subsequently applied to the symmetry-transformed + coordinates to generate the atom used in calculating the bond. + These translations (t1,...tp) are related to (m1...mp) by the + relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, + the use of negative numbers is avoided. The number 'p' must agree + with (_cell_modulation_dimension + 3). If there are no cell + translations, the translation number may be omitted. If no + symmetry operations or translations are applicable then a single + full stop '.' is used. +; + _name.category_id geom_bond + _name.object_id site_ssg_symmetry_1 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + loop_ + _description_example.case + _description_example.detail + "." 'no symmetry or translation to site' + "4" '4th symmetry operation applied' + "7_645" '7th symmetry position; +a on x, -b on y' + +save_ + +save_geom_bond.site_ssg_symmetry_2 + + _definition.id '_geom_bond.site_ssg_symmetry_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_bond_site_ssg_symmetry_2' + _description.text +; + + The symmetry code described in _geom_bond_site_ssg_symmetry_1. +; + _name.category_id geom_bond + _name.object_id site_ssg_symmetry_2 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_ + +save_GEOM_CONTACT + +_definition.id GEOM_CONTACT +_definition.scope Category +_definition.class Loop +_definition.update 2016-11-17 +_description.text +; + The CATEGORY of data items used to specify the interatomic + contact distances in the structural model. +; +_name.category_id GEOM +_name.object_id GEOM_CONTACT +loop_ + _category_key.name + '_geom_contact.atom_site_label_1' + '_geom_contact.atom_site_label_2' + '_geom_contact.site_ssg_symmetry_1' + '_geom_contact.site_ssg_symmetry_2' +save_ + +save_save_geom_contact.distance_av + + _definition.id '_geom_contact.distance_av' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_contact_distance_av' + _description.text +; + + Average value of the interatomic contact distance. +; + _name.category_id geom_contact + _name.object_id distance_av + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_contact.distance_max + + _definition.id '_geom_contact.distance_max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_contact_distance_max' + _description.text +; + + Maximum value of the interatomic contact distance. +; + _name.category_id geom_contact + _name.object_id distance_max + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_contact.distance_min + + _definition.id '_geom_contact.distance_min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_contact_distance_min' + _description.text +; + + Minimum value of the interatomic contact distance. +; + _name.category_id geom_contact + _name.object_id distance_min + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _enumeration.range 0.0: + _units.code angstroms + +save_ + +save_geom_contact.site_ssg_symmetry_1 + + _definition.id '_geom_contact.site_ssg_symmetry_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_contact_site_ssg_symmetry_1' + _description.text +; + + The symmetry code of each atom site as the symmetry operation + number 'n' and the higher-dimensional translation 'm1...mp'. + These numbers are combined to form the code 'n m1...mp' or + n_m1...mp. The character string n_m1...mp is composed as follows: + 'n' refers to the symmetry operation that is applied to the + superspace coordinates. It must match a number given in + _space_group_symop_ssg_id. 'm1...mp' refer to the translations + that are subsequently applied to the symmetry-transformed + coordinates to generate the atom used in calculating the contact. + These translations (t1,...tp) are related to (m1...mp) by the + relations m1=5+t1, ..., mp=5+tp. By adding 5 to the translations, + the use of negative numbers is avoided. The number 'p' must agree + with (_cell_modulation_dimension + 3). If there are no cell + translations, the translation number may be omitted. If no + symmetry operations or translations are applicable, then a single + full stop '.' is used. +; + _name.category_id geom_contact + _name.object_id site_ssg_symmetry_1 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + loop_ + _description_example.case + _description_example.detail + "." 'no symmetry or translation to site' + "4" '4th symmetry operation applied' + "7_645" '7th symmetry position; +a on x, -b on y' + +save_ + +save_geom_contact.site_ssg_symmetry_2 + + _definition.id '_geom_contact.site_ssg_symmetry_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_contact_site_ssg_symmetry_2' + _description.text +; + + The symmetry code described in _geom_contact.site_ssg_symmetry_1 +; + _name.category_id geom_contact + _name.object_id site_ssg_symmetry_2 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_GEOM_TORSION + +_definition.id GEOM_TORSION +_definition.scope Category +_definition.class Loop +_definition.update 2017-11-17 +_description.text +; + The CATEGORY of data items used to specify the torsion angles in the + structural model as derived from the atomic sites. +; +_name.category_id GEOM +_name.object_id GEOM_TORSION +loop_ + _category_key.name + '_geom_torsion.atom_site_label_1' + '_geom_torsion.atom_site_label_2' + '_geom_torsion.atom_site_label_3' + '_geom_torsion.atom_site_label_4' + '_geom_torsion.site_ssg_symmetry_1' + '_geom_torsion.site_ssg_symmetry_2' + '_geom_torsion.site_ssg_symmetry_3' + '_geom_torsion.site_ssg_symmetry_4' + +save_ + +save_geom_torsion.av + + _definition.id '_geom_torsion.av' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_av' + _description.text +; + + Average torsion angle; see _geom_torsion.max. +; + _name.category_id geom_torsion + _name.object_id av + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_ + +save_geom_torsion.max + + _definition.id '_geom_torsion.max' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_max' + _description.text +; + + Maximum torsion angle bounded by the four atom sites + identified by the _geom_torsion_atom_site_label_ codes. + These must match labels specified as _atom_site.label + in the atom list. The torsion-angle definition should + be that of Klyne and Prelog (1960). + Reference: Klyne, W. & Prelog, V. (1960). + Experientia, 16, 521-523. + Description of steric relationships across + single bonds +; + _name.category_id geom_torsion + _name.object_id max + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_ + +save_geom_torsion.min + + _definition.id '_geom_torsion.min' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_min' + _description.text +; + + Minimum torsion angle; see _geom_torsion.max. +; + _name.category_id geom_torsion + _name.object_id min + _type.purpose Measurand + _type.source Derived + _type.container Single + _type.contents Real + _units.code degrees + +save_ + +save_geom_torsion.site_ssg_symmetry_1 + + _definition.id '_geom_torsion.site_ssg_symmetry_1' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_site_ssg_symmetry_1' + _description.text +; + + The symmetry code of each atom site as the symmetry operation + number 'n' and the higher-dimensional translation 'm1...mp'. + These numbers are combined to form the code 'n m1...mp' or + n_m1...mp. The character string n_m1...mp is composed as follows: + 'n' refers to the symmetry operation that is applied to the + superspace coordinates. It must match a number given in + _space_group_symop_ssg_id. 'm1...mp' refer to the translations + that are subsequently applied to the symmetry-transformed + coordinates to generate the atom used in calculating the angle. + These translations (t1,...tp) are related to (m1...mp) by the + relations m1=5+t1, ..., mp=5+tp. By adding 5 to the + translations, the use of negative numbers is avoided. The number + 'p' must agree with (_cell_modulation_dimension + 3). If there + are no cell translations, the translation number may be omitted. + If no symmetry operations or translations are applicable, + then a single full stop '.' is used. +; + _name.category_id geom_torsion + _name.object_id site_ssg_symmetry_1 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + loop_ + _description_example.case + _description_example.detail + "." 'no symmetry or translation to site' + "4" '4th symmetry operation applied' + "7_645" '7th symmetry position; +a on x, -b on y' + +save_ + +save_geom_torsion.site_ssg_symmetry_2 + + _definition.id '_geom_torsion.site_ssg_symmetry_2' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_site_ssg_symmetry_2' + _description.text +; + + Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. +; + _name.category_id geom_torsion + _name.object_id site_ssg_symmetry_2 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_ + +save_geom_torsion.site_ssg_symmetry_3 + + _definition.id '_geom_torsion.site_ssg_symmetry_3' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_site_ssg_symmetry_3' + _description.text +; + + Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. +; + _name.category_id geom_torsion + _name.object_id site_ssg_symmetry_3 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_ + +save_geom_torsion.site_ssg_symmetry_4 + + _definition.id '_geom_torsion.site_ssg_symmetry_4' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_geom_torsion_site_ssg_symmetry_4' + _description.text +; + + Symmetry code of described in _geom_torsion.site_ssg_symmetry_1. +; + _name.category_id geom_torsion + _name.object_id site_ssg_symmetry_4 + _type.purpose Composite + _type.source Derived + _type.container Single + _type.contents Symop + +save_ + +save_REFINE + + _definition.id REFINE + _definition.scope Category + _definition.class Set + _definition.update 2016-11-17 + _description.text +; + + Data items in the REFINE category record + details about the structure refinement parameters. The + new items in this category extend those of the core CIF + dictionary and are specific to the refinement of + modulated structures. +; + _name.category_id MS_GROUP + _name.object_id REFINE + +save_ + +save_refine.ls_mod_func_description + + _definition.id '_refine.ls_mod_func_description' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_refine_ls_mod_func_description' + _description.text +; + + Types of modulation present in the structural model and their + parameterization. +; + _name.category_id refine + _name.object_id ls_mod_func_description + _type.purpose Describe + _type.source Assigned + _type.container Single + _type.contents Text + loop_ + _description_example.case + _description_example.detail + 'Only displacive modulation. Fourier series.' +; Modulation of atom S(1) described by a non-standard linear + sawtooth function +; + +save_ + +save_refine.ls_mod_hydrogen_treatment + + _definition.id '_refine.ls_mod_hydrogen_treatment' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_refine_ls_mod_hydrogen_treatment' + _description.text +; + + Treatment of hydrogen-atom modulation parameters in refinement. +; + _name.category_id refine + _name.object_id ls_mod_hydrogen_treatment + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + refA 'refined H-atom displacive modulation parameters only' + refxyzA 'refined H-atom coords and displacive modulation params only' + refP 'refined H-atom occupational modulation parameters only' + refUP 'refined H-atom U and occupational modulation parameters only' + nomod 'no modulation of H-atom parameters' + _enumeration.default nomod + +save_ + +save_refine.ls_mod_overall_phason_coeff + + _definition.id '_refine.ls_mod_overall_phason_coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_refine_ls_mod_overall_phason_coeff' + _description.text +; + + Phason coefficient used to calculate the overall phason correction. +; + _name.category_id refine + _name.object_id ls_mod_overall_phason_coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0: + +save_ + +save_refine.ls_mod_overall_phason_formula + + _definition.id '_refine.ls_mod_overall_phason_formula' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_refine_ls_mod_overall_phason_formula' + _description.text +; + + The expression for the overall phason correction, if used. +; + _name.category_id refine + _name.object_id ls_mod_overall_phason_formula + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + Axe 'Axe, J. D. (1980). Phys. Rev. B, 21, 4181-4190.' + Ovr 'Overhauser, A. W. (1971). Phys. Rev. B, 3, 3173-3182.' + +save_ + +save_REFLN + + _definition.id REFLN + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + Data items in the REFLN category record details about the + reflections used to determine the ATOM_SITE data items. + The REFLN data items refer to individual reflections and + must be included in looped lists. The REFLNS data items + specify the parameters that apply to all reflections. The + REFLNS data items are not looped. Data items in this category + are extensions of the core CIF dictionary definitions to the + indexing of reflections used in the refinement by + higher-dimensional components. +; + _name.category_id MS_GROUP + _name.object_id REFLN + loop_ + _category_key.name + '_refln.index_h' + '_refln.index_k' + '_refln.index_l' + '_refln.index_m_list' + +save_ + +save_refln.index_m_list + + _definition.id '_refln.index_m_list' + _definition.update 2014-06-27 + _description.text +; + + Additional Miller indices of a particular reflection in the basis + described in _cell_reciprocal_basis_description. 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. +; + _name.category_id refln + _name.object_id index_m_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as 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 ] + + #Not meaningful indices are removed here + + refln.index_m_list = temp.index_m_list[0:_cell.modulation_dimension – 1] +; + +save_ + +save_refln.index_m_1 + _definition.id '_refln.index_m_1' + loop_ + _alias.definition_id '_refln_index_m_1' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_1 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_1 = f.index_m_list [ 0 ] +; + +save_ + +save_refln.index_m_2 + _definition.id '_refln.index_m_2' + loop_ + _alias.definition_id '_refln_index_m_2' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_2 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_2 = f.index_m_list [ 1 ] +; + +save_ + +save_refln.index_m_3 + _definition.id '_refln.index_m_3' + loop_ + _alias.definition_id '_refln_index_m_3' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_3 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_3 = f.index_m_list [ 2 ] +; + +save_ + +save_refln.index_m_4 + _definition.id '_refln.index_m_4' + loop_ + _alias.definition_id '_refln_index_m_4' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_4 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_4 = f.index_m_list [ 3 ] +; + +save_ + +save_refln.index_m_5 + _definition.id '_refln.index_m_5' + loop_ + _alias.definition_id '_refln_index_m_5' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_5 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_5 = f.index_m_list [ 4 ] +; + +save_ + +save_refln.index_m_6 + _definition.id '_refln.index_m_6' + loop_ + _alias.definition_id '_refln_index_m_6' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_6 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_6 = f.index_m_list [ 5 ] +; + +save_ + +save_refln.index_m_7 + _definition.id '_refln.index_m_7' + loop_ + _alias.definition_id '_refln_index_m_7' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_7 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_7 = f.index_m_list [ 6 ] +; + +save_ + +save_refln.index_m_8 + _definition.id '_refln.index_m_8' + loop_ + _alias.definition_id '_refln_index_m_8' + _import.get [{"file":'templ_attr.cif',"save":'ms_index'}] + _name.category_id refln + _name.object_id index_m_8 + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as refln + + refln.index_m_8 = f.index_m_list [ 7 ] +; + +save_ + +save_REFLNS + + _definition.id REFLNS + _definition.scope Category + _definition.class Set + _definition.update 2014-06-27 + _description.text +; + + Data items in the REFLNS category record details about the + reflections used to determine the ATOM_SITE data items. + The REFLN data items refer to individual reflections and + must be included in looped lists. The REFLNS data items + specify the parameters that apply to all reflections. The + REFLNS data items are not looped. Data items in this category + extend the core CIF dictionary definitions providing independent + checks on the range of values recorded for each of the + additional Miller indices given in the REFLN category. +; + _name.category_id MS_GROUP + _name.object_id REFLNS +save_ + +save_reflns.limit_index_m_max_list + + _definition.id '_reflns.limit_index_m_max_list' + _definition.update 2014-06-27 + _description.text +; + + Maximum of the additional Miller indices + appearing in _refln.index_m_*. The number of ranges must match + _cell_modulation_dimension. The order of the additional indices + must be consistent with the codes given in + _cell.wave_vector_seq_id. These need not be the same as + the _reflns.limit_index_m_*. +; + _name.category_id reflns + _name.object_id limit_index_m_max_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as reflns + + temp.limit_index_m_max_list = + + [ m.limit_index_m_1_max, m.limit_index_m_2_max, + m.limit_index_m_3_max, m.limit_index_m_4_max, + m.limit_index_m_5_max, m.limit_index_m_6_max, + m.limit_index_m_7_max, m.limit_index_m_8_max ] + + #Not meaningful indices are removed here + + reflns.limit_index_m_max_list = + temp.limit_index_m_max_list [0:_cell.modulation_dimension – 1] +; + +save_ + +save_reflns.limit_index_m_min_list + + _definition.id '_reflns.limit_index_m_min_list' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_reflns_limit_index_m_min_list' + _description.text +; + + Minimum values of the additional Miller indices + appearing in _refln.index_m_*. The number of ranges must match + _cell_modulation_dimension. The order of the additional indices + must be consistent with the codes given in + _cell.wave_vector_seq_id. These need not be the same as + the _reflns.limit_index_m_*. +; + _name.category_id reflns + _name.object_id limit_index_m_min_list + _type.purpose Number + _type.source Recorded + _type.container List + _type.contents Integer + _type.dimension [8] + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as reflns + + temp.limit_index_m_min_list = + + [ m.limit_index_m_1_min, m.limit_index_m_2_min, + m.limit_index_m_3_min, m.limit_index_m_4_min, + m.limit_index_m_5_min, m.limit_index_m_6_min, + m.limit_index_m_7_min, m.limit_index_m_8_min ] + + #Not meaningful indices are removed here + + reflns.limit_index_m_min_list = + temp.limit_index_m_min_list [0:_cell.modulation_dimension – 1] +; + +save_ + +save_reflns.limit_index_m_1_max + _definition.id '_reflns.limit_index_m_1_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_1_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_1_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_1_max = f.m_max_list [ 0 ] +; + +save_ + +save_reflns.limit_index_m_2_max + _definition.id '_reflns.limit_index_m_2_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_2_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_2_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_2_max = f.m_max_list [ 1 ] +; + +save_ + +save_reflns.limit_index_m_3_max + _definition.id '_reflns.limit_index_m_3_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_3_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_3_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_3_max = f.m_max_list [ 2 ] +; + +save_ + +save_reflns.limit_index_m_4_max + _definition.id '_reflns.limit_index_m_4_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_4_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_4_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_4_max = f.m_max_list [ 3 ] +; + +save_ + +save_reflns.limit_index_m_5_max + _definition.id '_reflns.limit_index_m_5_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_5_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_5_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_5_max = f.m_max_list [ 4 ] +; + +save_ + +save_reflns.limit_index_m_6_max + _definition.id '_reflns.limit_index_m_6_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_6_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_6_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_6_max = f.m_max_list [ 5 ] +; + +save_ + +save_reflns.limit_index_m_7_max + _definition.id '_reflns.limit_index_m_7_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_7_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_7_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_7_max = f.m_max_list [ 6 ] +; + +save_ + +save_reflns.limit_index_m_8_max + _definition.id '_reflns.limit_index_m_8_max' + loop_ + _alias.definition_id '_reflns_limit_index_m_8_max' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_max'}] + _name.category_id reflns + _name.object_id limit_index_m_8_max + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_8_max = f.m_max_list [ 7 ] +; + +save_ + +save_reflns.limit_index_m_1_min + _definition.id '_reflns.limit_index_m_1_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_1_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_1_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_1_min = f.m_min_list [ 0 ] +; + +save_ + +save_reflns.limit_index_m_2_min + _definition.id '_reflns.limit_index_m_2_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_2_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_2_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_2_min = f.m_min_list [ 1 ] +; + +save_ + +save_reflns.limit_index_m_3_min + _definition.id '_reflns.limit_index_m_3_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_3_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_3_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_3_min = f.m_min_list [ 2 ] +; + +save_ + +save_reflns.limit_index_m_4_min + _definition.id '_reflns.limit_index_m_4_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_4_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_4_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_4_min = f.m_min_list [ 3 ] +; + +save_ + +save_reflns.limit_index_m_5_min + _definition.id '_reflns.limit_index_m_5_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_5_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_5_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_5_min = f.m_min_list [ 4 ] +; + +save_ + +save_reflns.limit_index_m_6_min + _definition.id '_reflns.limit_index_m_6_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_6_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_6_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_6_min = f.m_min_list [ 5 ] +; + +save_ + +save_reflns.limit_index_m_7_min + _definition.id '_reflns.limit_index_m_7_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_7_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_7_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_7_min = f.m_min_list [ 6 ] +; + + +save_ + +save_reflns.limit_index_m_8_min + _definition.id '_reflns.limit_index_m_8_min' + loop_ + _alias.definition_id '_reflns_limit_index_m_8_min' + _import.get [{"file":'templ_attr.cif',"save":'index_limit_min'}] + _name.category_id reflns + _name.object_id limit_index_m_8_min + loop_ + _method.purpose + _method.expression + Evaluation +; + With r as reflns + + reflns.limit_index_m_8_min = f.m_min_list [ 7 ] +; + +save_ + +save_space_group.ssg_IT_number + + _definition.id '_space_group.ssg_IT_number' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_ssg_IT_number' + _description.text +; + + Superspace-group number from International Tables for + Crystallography, Vol. C (2006). Valid only for one-dimensional + modulated structures. + Reference: International Tables for Crystallography (2006). Vol. C, + Chapter 9.8. John Wiley & Sons, Ltd. + Incommensurate and commensurate modulated structures +; + _name.category_id space_group + _name.object_id ssg_IT_number + _type.purpose Number + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.range 1.1: + +save_ + +save_space_group.ssg_name + + _definition.id '_space_group.ssg_name' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_ssg_name' + _description.text +; + + Superspace-group symbol conforming to an alternative definition + from that given in _space_group_ssg_name_IT and + _space_group_ssg_name_WJJ for one-dimensional modulated + structures or to the superspace-group name for higher dimensions. + When necessary, indicate the origin and the setting. Use a colon + ':' as a separator between the different parts of the + superspace-group symbol. Within each part, leave a space + between each component. Rules for the notation for + Hermann-Mauguin and Hall symbols (if present) are given in the + symmetry CIF dictionary (cif_sym.dic) and, partially, in + _space_group_ssg_name_IT and _space_group_ssg_name_WJJ. + For composites described in a single data block, the superspace + group describes the symmetry of the whole structure. The + symmetry of each subsystem can be derived using the + appropriate W matrices. +; + _name.category_id space_group + _name.object_id ssg_name + _type.purpose Describe + _type.source Assigned + _type.container Single + _type.contents Text + loop_ + _description_example.case + "Hall's notation W:-P -2xb -2ya:q q" + +save_ + +save_space_group.ssg_name_IT + + _definition.id '_space_group.ssg_name_IT' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_ssg_name_IT' + _description.text +; + + Superspace-group symbol as given in International Tables for + Crystallography, Vol. C (2006). Valid only for one-dimensional + modulated structures. The symbol is divided into three parts: + the Hermann-Mauguin space-group symbol of the reference + structure, the modulation wave vector and the phase shift + (or internal translation) associated with each component of + the space group. Each component of the space-group name is + separated by a space. Subscripts should appear without special + symbols and bars should be given as negative signs. The + components of the modulation wave vector (in parentheses) and + the phase shifts are also separated by a space. For composites + described in a single data block, the superspace group + describes the symmetry of the whole structure. The symmetry + of each subsystem can be derived using the appropriate W + matrices. + Reference: International Tables for Crystallography (2006). Vol. C, + Chapter 9.8. John Wiley & Sons, Ltd. + Incommensurate and commensurate modulated structures +; + _name.category_id space_group + _name.object_id ssg_name_IT + _type.purpose Describe + _type.source Assigned + _type.container Single + _type.contents Text + loop_ + _description_example.case + "P n m a (0 0 \g) 0 s 0" + +save_ + +save_space_group.ssg_name_WJJ + + _definition.id '_space_group.ssg_name_WJJ' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_ssg_name_WJJ' + _description.text +; + + Superspace-group symbol as given by de Wolff, Janssen & Janner + (1981). Valid only for one-dimensional modulated structures. + The symbol is divided into three parts separated by colons ':': + the superspace lattice symbol, the Hermann-Mauguin space-group + symbol of the reference structure and the phase shift (or + internal translation) associated with each component of the + space group. Each component of the space-group name is separated + by a space. Subscripts should appear without special symbols and + bars should be given as negative signs. The phase shifts are + also separated by a space. For composites described in a single + data block, the superspace group describes the symmetry of the + whole structure. The symmetry of each subsystem can be derived + using the appropriate W matrices. + Reference: Wolff, P. M. de, Janssen, T. & Janner, A. (1981). + Acta Cryst. A37, 625-636. + The superspace groups for incommensurate crystal + structures with a one-dimensional modulation + +; + _name.category_id space_group + _name.object_id ssg_name_WJJ + _type.purpose Describe + _type.source Assigned + _type.container Single + _type.contents Text + loop_ + _description_example.case + "P:P c m n:s s -1" + +save_ + +save_space_group.ssg_WJJ_code + + _definition.id '_space_group.ssg_WJJ_code' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_ssg_WJJ_code' + _description.text +; + + Superspace-group code as given by de Wolff, Janssen & Janner + (1981). Valid only for one-dimensional modulated structures. + Reference: Wolff, P. M. de, Janssen, T. & Janner, A. (1981). + Acta Cryst. A37, 625-636. + The superspace groups for incommensurate crystal + structures with a one-dimensional modulation + +; + _name.category_id space_group + _name.object_id ssg_WJJ_code + _type.purpose Describe + _type.source Assigned + _type.container Single + _type.contents Text + loop_ + _description_example.case + "28a.10.1/2" + +save_ + +save_SPACE_GROUP_SYMOP + + _definition.id SPACE_GROUP_SYMOP + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + The SPACE_GROUP_SYMOP category introduced in the symmetry CIF + dictionary (cif_sym.dic) is intended to replace the original + core SYMMETRY_EQUIV category. It contains information about the + symmetry operations of the space group. For modulated structures, + superspace-group descriptions may be included in the same + category, but include the _ssg_ flag to indicate their + dimensionality of > 3. +; + _name.category_id MS_GROUP + _name.object_id SPACE_GROUP_SYMOP +loop_ + _category_key.name '_space_group_symop.ssg_id' + +save_ + +save_space_group_symop.ssg_id + + _definition.id '_space_group_symop.ssg_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_space_group_symop_ssg_id' + _description.text +; + + A numeric code identifying each entry in the + _space_group_symop_ssg_operation_algebraic list. +; + _name.category_id space_group_symop + _name.object_id ssg_id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code + +save_ + +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 +; + + 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 + _cell_modulation_dimension. + All symmetry operations should be entered, including the + identity operation, those for lattice centring and that for + a centre of symmetry, if present. The symbolic notation for + coordinates is such that the identity operation is expressed + as x1,x2,x3,...,xn. + + _space_group_symop_ssg_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" + +save_ + + +save_geom_angle.distances + +_definition.id '_geom_angle.distances' +loop_ + _alias.definition_id + '_geom_angle.distances' +_definition.update 2012-11-22 +_description.text +; + The pair of distances between sites 1 - 2 and 2 - 3. +; +_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 + +save_ + +save_geom_angle.value + +_definition.id '_geom_angle.value' +loop_ + _alias.definition_id + '_geom_angle' +_definition.update 2016-11-17 +_description.text +; + 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. +; +_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 + +_definition.id '_geom_angle.value_su' +loop_ + _alias.definition_id + '_geom_angle_su' + '_geom_angle.value_esd' +_definition.update 2016-11-17 +_description.text +; + Standard Uncertainty of the + angle defined by the sites identified by _geom_angle.id +; +_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 + +_definition.id '_geom_bond.distance' +loop_ + _alias.definition_id + '_geom_bond_distance' + '_geom_bond.dist' +_definition.update 2012-12-14 +_description.text +; + Intramolecular bond distance between the sites identified +; +_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 + +_definition.id '_geom_bond.distance_su' +loop_ + _alias.definition_id + '_geom_bond.distance_su' + '_geom_bond_distance_su' + '_geom_bond.dist_esd' +_definition.update 2012-12-14 +_description.text +; + Standard Uncertainty of the intramolecular bond distance + between the sites identified by _geom_bond.id +; +_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_geom_contact.distance + +_definition.id '_geom_contact.distance' +loop_ + _alias.definition_id + '_geom_contact_distance' + '_geom_contact.dist' +_definition.update 2016-11-17 +_description.text +; + Intermolecular distance between the atomic sites +; +_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 + +_definition.id '_geom_contact.distance_su' +loop_ + _alias.definition_id + '_geom_contact.distance_su' + '_geom_contact_distance_su' + '_geom_contact.dist_esd' +_definition.update 2012-12-14 +_description.text +; + Standard Uncertainty of the intermolecular distance between + the atomic sites identified by _geom_contact.id +; +_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 + +_definition.id '_geom_torsion.angle' +loop_ + _alias.definition_id + '_geom_torsion' + '_geom_torsion.value' +_definition.update 2012-11-22 +_description.text +; + Angle defined by the sites identifyed in _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. +; +_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 + +_definition.id '_geom_torsion.angle_su' +loop_ + _alias.definition_id + '_geom_torsion.angle_su' + '_geom_torsion_su' + '_geom_torsion.value_esd' +_definition.update 2012-11-22 +_description.text +; + Standard Uncertainty of the torsion angle. +; +_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_reflns.limit_index_m_7_min - _definition.id '_reflns.limit_index_m_7_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_7_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_7_min - save_ -save_reflns.limit_index_m_8_min - _definition.id '_reflns.limit_index_m_8_min' - loop_ - _alias.definition_id '_reflns_limit_index_m_8_min' - _import.get [{"file":'templ_attr.cif' "save":'index_limit_min'}] - _name.category_id reflns - _name.object_id limit_index_m_8_min - save_ loop_ _dictionary_audit.version