diff --git a/cif_ms.dic b/cif_ms.dic index d6a50ef..be5f7f8 100644 --- a/cif_ms.dic +++ b/cif_ms.dic @@ -644,7 +644,9 @@ save_ATOM_SITE_DISPLACE_LEGENDRE 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. + ATOM_SITE_ROT_LEGENDRE category. The coefficients of each Legendre function + belong to the category ATOM_SITE_DISPLACE_LEGENDRE_PARAM and are listed + separately. References: Petricek, V., Van Der Lee & Evain, M. (1995). Acta Cryst. A51, 529-535. DOI 10.1107/S0108767395000365 @@ -811,6 +813,81 @@ save_atom_site_displace_Legendre.order save_ +save_ATOM_SITE_DISPLACE_LEGENDRE_PARAM + + _definition.id ATOM_SITE_DISPLACE_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 MS_GROUP + _name.object_id ATOM_SITE_DISPLACE_LEGENDRE_PARAM + loop_ + _category_key.name '_atom_site_displace_Legendre_param.id' + +save_ + +### JRH Notes: is there any reason to have this as a separate category +### if there is a one-to-one relationship between the id of this category +### and the id of the parent category? + +save_atom_site_displace_Legendre_param.coeff + + _definition.id '_atom_site_displace_Legendre_param.coeff' + _definition.update 2017-09-28 + _description.text +; + + The coefficient corresponding to the Legendre function + defined by _atom_site_displace_Legendre.atom_site_label, + _atom_site_displace_Legendre.axis and _atom_site_displace_Legendre.order. + Atomic or rigid-group displacements must be expressed as fractions + of the unit cell or in angstroms if the modulations are referred to some + special axes defined by the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_Legendre.matrix_seq_id. +; + _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 + + _definition.id '_atom_site_displace_Legendre_param.id' + _definition.update 2017-09-28 + _description.text +; + + A code identifying the coefficient of each Legendre polynomial describing the displacive + modulation of a given atom or rigid group. In the case of a rigid + group, it applies only to the translational part of the + distortion. This code must match _atom_site_displace_Legendre.id. +; + _name.category_id atom_site_displace_Legendre_param + _name.object_id id + _name.linked_item_id '_atom_site_displace_Legendre.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ save_ATOM_SITE_DISPLACE_ORTHO @@ -832,7 +909,9 @@ save_ATOM_SITE_DISPLACE_ORTHO 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. + 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 @@ -999,6 +1078,80 @@ save_atom_site_displace_ortho.matrix_seq_id save_ +save_ATOM_SITE_DISPLACE_ORTHO_PARAM + + _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_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_DISPLACE_ORTHO_PARAM + loop_ + _category_key.name '_atom_site_displace_ortho_param.id' + +save_ + +save_atom_site_displace_ortho_param.coeff + + _definition.id '_atom_site_displace_ortho_param.coeff' + _definition.update 2014-06-27 + _description.text +; + + The coefficient corresponding to the orthogonalized function + Defined by _atom_site_displace_ortho.atom_site_label, + _atom_site_displace_ortho.axis and _atom_site_displace_ortho.func_id. + Atomic or rigid-group displacements must be expressed as fractions + of the unit cell or in angstroms if the modulations are referred to some + special axes defined by the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_ortho.matrix_seq_id. +; + _name.category_id atom_site_displace_ortho_param + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_ + +save_atom_site_displace_ortho_param.id + + _definition.id '_atom_site_displace_ortho_param.id' + _definition.update 2014-06-27 + _description.text +; + + A code identifying the coefficient of each term present in the + series of orthogonalized functions describing the displacive + modulation of a given atom or rigid group. In the case of a rigid + group, it applies only to the translational part of the + distortion. This code must match _atom_site_displace_ortho.id. +; + _name.category_id atom_site_displace_ortho_param + _name.object_id id + _name.linked_item_id '_atom_site_displace_ortho.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ + save_ATOM_SITE_DISPLACE_SPECIAL_FUNC _definition.id ATOM_SITE_DISPLACE_SPECIAL_FUNC @@ -1258,6 +1411,7 @@ save_atom_site_displace_special_func.sawtooth_ay atom_site_displace_special_func.sawtooth_ay = s.sawtooth_axyz[1] ; + save_ @@ -1431,9 +1585,104 @@ save_atom_site_displace_special_func.zigzag_axyz _type.contents Real _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.zigzag_axyz = + [ s.zigzag_ax, s.zigzag_ay, s.zigzag_az ] +; + +save_ + +save_atom_site_displace_special_func.zigzag_ax + + _definition.id '_atom_site_displace_special_func.zigzag_ax' + _definition.update 2014-06-27 + _description.text +; + + 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_displace_special_func + _name.object_id zigzag_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 + + atom_site_displace_special_func.zigzag_ax = s.zigzag_axyz[0] +; + +save_ + +save_atom_site_displace_special_func.zigzag_ay + + _definition.id '_atom_site_displace_special_func.zigzag_ay' + _definition.update 2014-06-27 + _description.text +; + + 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_displace_special_func + _name.object_id zigzag_ay + _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 + + atom_site_displace_special_func.zigzag_ay = s.zigzag_axyz[1] +; save_ +save_atom_site_displace_special_func.zigzag_az + + _definition.id '_atom_site_displace_special_func.zigzag_az' + _definition.update 2014-06-27 + _description.text +; + + 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_displace_special_func + _name.object_id zigzag_az + _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 + + atom_site_displace_special_func.zigzag_az = s.zigzag_axyz[2] +; + +save_ save_atom_site_displace_special_func.zigzag_c @@ -1513,7 +1762,9 @@ save_ATOM_SITE_DISPLACE_XHARM 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. + 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 @@ -1681,6 +1932,77 @@ save_atom_site_displace_xharm.order 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_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_DISPLACE_XHARM_PARAM + loop_ + _category_key.name '_atom_site_displace_xharm_param.id' + +save_ + +save_atom_site_displace_xharm_param.coeff + + _definition.id '_atom_site_displace_xharm_param.coeff' + _definition.update 2014-06-27 + _description.text +; + + 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 the items belonging to the + ATOM_SITES_AXES category, through _atom_site_rot_xharm.matrix_seq_id. +; + _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 + +save_ + +save_atom_site_displace_xharm_param.id + + _definition.id '_atom_site_displace_xharm_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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_displace_xharm_param + _name.object_id id + _name.linked_item_id '_atom_site_displace_xharm.id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ save_ATOM_SITE_FOURIER_WAVE_VECTOR @@ -1785,7 +2107,19 @@ save_atom_site_Fourier_wave_vector.q_coeff _type.contents Integer _type.dimension '[]' _enumeration.default [0] + loop_ + _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] +#Not meaningful coefficients are removed here + atom_site_Fourier_wave_vector.q_coeff = + temp.q_coeff[0:_cell_modulation_dimension-1] +; save_ save_atom_site_Fourier_wave_vector.q_coeff_seq_id @@ -1810,7 +2144,22 @@ save_atom_site_Fourier_wave_vector.q_coeff_seq_id _type.container List _type.contents Code _type.dimension '[]' - _enumeration.default [1] + _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_ @@ -1999,631 +2348,527 @@ save_atom_site_Fourier_wave_vector.z atom_site_Fourier_wave_vector.z = m.xyz[ 2 ] ; - save_ -save_ATOM_SITE_OCC_FOURIER - - _definition.id ATOM_SITE_OCC_FOURIER - _definition.scope Category - _definition.class Loop +### +### JRH: Do we need all of the coefficients if they never existed originally? +### +save_atom_site_Fourier_wave_vector.q1_coeff + _definition.id '_atom_site_Fourier_wave_vector.q1_coeff' _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 child category - ATOM_SITE_OCC_FOURIER_PARAM and may be listed separately. + 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 MS_GROUP - _name.object_id ATOM_SITE_OCC_FOURIER - loop_ - _category_key.name '_atom_site_occ_Fourier.id' - -save_ + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q1_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.q1_coeff = m.q_coeff[ 0 ] +; -save_atom_site_occ_Fourier.atom_site_label +save_ - _definition.id '_atom_site_occ_Fourier.atom_site_label' +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_occ_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 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. + 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_occ_Fourier - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' + _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_occ_Fourier.id +save_ - _definition.id '_atom_site_occ_Fourier.id' +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_occ_Fourier_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Fourier - _name.object_id id - _type.purpose Key - _type.source Related + _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 - -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_occ_Fourier.wave_vector_seq_id +save_ - _definition.id '_atom_site_occ_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_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_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' + _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 - -save_ - - -save_ATOM_SITE_OCC_FOURIER_PARAM - - _definition.id ATOM_SITE_OCC_FOURIER_PARAM - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 - _description.text + _enumeration.range 1:8 + _enumeration.default 2 + loop_ + _method.purpose + _method.expression + Evaluation ; + With m as atom_site_Fourier_wave_vector - 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 - parent category ATOM_SITE_OCC_FOURIER. Notice that items in this - category may be listed together with those of the - ATOM_SITE_DISPLACE_FOURIER category. + atom_site_Fourier_wave_vector.q2_coeff_seq_id = m.q_coeff_seq_id[ 1 ] ; - _name.category_id ATOM_SITE_OCC_FOURIER - _name.object_id ATOM_SITE_OCC_FOURIER_PARAM - loop_ - _category_key.name '_atom_site_occ_Fourier_param.id' save_ - -save_atom_site_occ_Fourier_param.cos - - _definition.id '_atom_site_occ_Fourier_param.cos' +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_occ_Fourier_param_cos' _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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id cos - _type.purpose Measurand + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q3_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ + _type.contents Integer + _enumeration.default 0 +loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With p as atom_site_occ_Fourier_param + With m as atom_site_Fourier_wave_vector - atom_site_occ_Fourier_param.cos = p.modulus*Cos(TwoPi*p.phase) -; + atom_site_Fourier_wave_vector.q3_coeff = m.q_coeff[ 2 ] +; save_ - -save_atom_site_occ_Fourier_param.id - - _definition.id '_atom_site_occ_Fourier_param.id' +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_occ_Fourier_param_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_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_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 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ - + atom_site_Fourier_wave_vector.q3_coeff_seq_id = m.q_coeff_seq_id[ 2 ] +; -save_atom_site_occ_Fourier_param.modulus +save_ - _definition.id '_atom_site_occ_Fourier_param.modulus' +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_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id modulus - _type.purpose Measurand + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q4_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 0.0: - loop_ + _type.contents Integer + _enumeration.default 0 +loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With p as atom_site_occ_Fourier_param + With m as atom_site_Fourier_wave_vector - atom_site_occ_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) -; + atom_site_Fourier_wave_vector.q4_coeff = m.q_coeff[ 3 ] +; save_ - -save_atom_site_occ_Fourier_param.phase - - _definition.id '_atom_site_occ_Fourier_param.phase' +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_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id phase - _type.purpose Measurand - _type.source Assigned + _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 Real - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 - _units.code cycles + _type.contents Code + _enumeration.range 1:8 + _enumeration.default 4 loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With p as atom_site_occ_Fourier_param - - atom_site_occ_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi -; + With m as atom_site_Fourier_wave_vector + atom_site_Fourier_wave_vector.q4_coeff_seq_id = m.q_coeff_seq_id[ 3 ] +; save_ - -save_atom_site_occ_Fourier_param.sin - - _definition.id '_atom_site_occ_Fourier_param.sin' +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_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), - 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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Fourier_param - _name.object_id sin - _type.purpose Measurand + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q5_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 - loop_ + _type.contents Integer + _enumeration.default 0 +loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With p as atom_site_occ_Fourier_param - - atom_site_occ_Fourier_param.sin = -p.modulus*Sin(TwoPi*p.phase) -; - -save_ - -save_ATOM_SITE_OCC_LEGENDRE + With m as atom_site_Fourier_wave_vector - _definition.id ATOM_SITE_OCC_LEGENDRE - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 - _description.text + atom_site_Fourier_wave_vector.q5_coeff = m.q_coeff[ 4 ] ; - - 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. -; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_LEGENDRE - loop_ - _category_key.name '_atom_site_occ_Legendre.id' - -save_ -save_atom_site_occ_Legendre.atom_site_label +save_ - _definition.id '_atom_site_occ_Legendre.atom_site_label' +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 _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_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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_occ_Legendre - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' + _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 Code + _enumeration.range 1:8 + _enumeration.default 5 + loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.q5_coeff_seq_id = m.q_coeff_seq_id[ 4 ] +; -save_atom_site_occ_Legendre.coeff +save_ - _definition.id '_atom_site_occ_Legendre.coeff' +save_atom_site_Fourier_wave_vector.q6_coeff + _definition.id '_atom_site_Fourier_wave_vector.q6_coeff' _definition.update 2014-06-27 _description.text ; - The coefficient corresponding to the Legendre polynomial describing - the occupational modulation of a given atom or rigid group. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Legendre - _name.object_id coeff - _type.purpose Measurand + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q6_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.q6_coeff = m.q_coeff[ 5 ] +; -save_atom_site_occ_Legendre.id +save_ - _definition.id '_atom_site_occ_Legendre.id' +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 _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 Legendre polynomials. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_occ_Legendre - _name.object_id id - _type.purpose Key + _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 Code + _enumeration.range 1:8 + _enumeration.default 6 + loop_ + _method.purpose + _method.expression + Evaluation -save_ +; + With m as atom_site_Fourier_wave_vector -save_atom_site_occ_Legendre.order + atom_site_Fourier_wave_vector.q6_coeff_seq_id = m.q_coeff_seq_id[ 5 ] +; - _definition.id '_atom_site_occ_Legendre.order' - _definition.update 2019-09-25 +save_ + +save_atom_site_Fourier_wave_vector.q7_coeff + _definition.id '_atom_site_Fourier_wave_vector.q7_coeff' + _definition.update 2014-06-27 _description.text ; - The order of the Legendre polynomial. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_Legendre - _name.object_id order - _type.purpose Key + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q7_coeff + _type.purpose Number _type.source Assigned _type.container Single _type.contents Integer - _enumeration.range 0: - -save_ - -save_ATOM_SITE_OCC_ORTHO - - _definition.id ATOM_SITE_OCC_ORTHO - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 - _description.text + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation ; - - 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). + With m as atom_site_Fourier_wave_vector - 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. + atom_site_Fourier_wave_vector.q7_coeff = m.q_coeff[ 6 ] ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_ORTHO - loop_ - _category_key.name '_atom_site_occ_ortho.id' - -save_ -save_atom_site_occ_ortho.atom_site_label +save_ - _definition.id '_atom_site_occ_ortho.atom_site_label' +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 _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_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. + + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_occ_ortho - _name.object_id atom_site_label - _name.linked_item_id '_atom_site.label' + _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 Code + _enumeration.range 1:8 + _enumeration.default 7 + loop_ + _method.purpose + _method.expression + Evaluation -save_ +; + With m as atom_site_Fourier_wave_vector -save_atom_site_occ_ortho.coeff + atom_site_Fourier_wave_vector.q7_coeff_seq_id = m.q_coeff_seq_id[ 6 ] +; - _definition.id '_atom_site_occ_ortho.coeff' +save_ + +save_atom_site_Fourier_wave_vector.q8_coeff + _definition.id '_atom_site_Fourier_wave_vector.q8_coeff' _definition.update 2014-06-27 _description.text ; - The coefficient corresponding to the orthogonalized function - defined by _atom_site_occ_ortho.atom_site_label and - _atom_site_occ_ortho.func_id. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff ; - _name.category_id atom_site_occ_ortho - _name.object_id coeff - _type.purpose Measurand + _name.category_id atom_site_Fourier_wave_vector + _name.object_id q8_coeff + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 + _type.contents Integer + _enumeration.default 0 +loop_ + _method.purpose + _method.expression + Evaluation +; + With m as atom_site_Fourier_wave_vector -save_ + atom_site_Fourier_wave_vector.q8_coeff = m.q_coeff[ 7 ] +; -save_atom_site_occ_ortho.func_id +save_ - _definition.id '_atom_site_occ_ortho.func_id' +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 _description.text ; - 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. + See the definition of _atom_site_Fourier_wave_vector.q1_coeff_seq_id ; - _name.category_id atom_site_occ_ortho - _name.object_id func_id - _name.linked_item_id '_atom_sites_ortho.func_id' + _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 Code + _enumeration.range 1:8 + _enumeration.default 8 + loop_ + _method.purpose + _method.expression + Evaluation -save_ - -save_atom_site_occ_ortho.id - - _definition.id '_atom_site_occ_ortho.id' - _definition.update 2014-06-27 - _description.text ; + With m as atom_site_Fourier_wave_vector - 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. + atom_site_Fourier_wave_vector.q8_coeff_seq_id = m.q_coeff_seq_id[ 7 ] ; - _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_ATOM_SITE_OCC_SPECIAL_FUNC - _definition.id ATOM_SITE_OCC_SPECIAL_FUNC +save_ATOM_SITE_OCC_FOURIER + + _definition.id ATOM_SITE_OCC_FOURIER _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _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 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 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. - - 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 - + 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 child category + ATOM_SITE_OCC_FOURIER_PARAM and may be listed separately. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_SPECIAL_FUNC + _name.object_id ATOM_SITE_OCC_FOURIER loop_ - _category_key.name '_atom_site_occ_special_func.atom_site_label' + _category_key.name '_atom_site_occ_Fourier.id' save_ -save_atom_site_occ_special_func.atom_site_label - _definition.id '_atom_site_occ_special_func.atom_site_label' +save_atom_site_occ_Fourier.atom_site_label + + _definition.id '_atom_site_occ_Fourier.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_atom_site_label' + '_atom_site_occ_Fourier_atom_site_label' _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 + 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_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_site_occ_special_func + _name.category_id atom_site_occ_Fourier _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -2634,283 +2879,323 @@ save_atom_site_occ_special_func.atom_site_label save_ -save_atom_site_occ_special_func.crenel_c +save_atom_site_occ_Fourier.id - _definition.id '_atom_site_occ_special_func.crenel_c' + _definition.id '_atom_site_occ_Fourier.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_crenel_c' + '_atom_site_occ_Fourier_id' _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 JANA2006 (Petricek, Dusek - & Palatinus, 2014) - - 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 + 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 atom_site_occ_special_func - _name.object_id crenel_c - _type.purpose Measurand - _type.source Assigned + _name.category_id atom_site_occ_Fourier + _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_occ_special_func.crenel_ortho_eps - - _definition.id '_atom_site_occ_special_func.crenel_ortho_eps' - _definition.update 2019-04-01 - _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 - - 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_ -save_atom_site_occ_special_func.crenel_w +save_atom_site_occ_Fourier.wave_vector_seq_id - _definition.id '_atom_site_occ_special_func.crenel_w' + _definition.id '_atom_site_occ_Fourier.wave_vector_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_occ_special_func_crenel_w' + '_atom_site_occ_Fourier_wave_vector_seq_id' _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 JANA2006 (Petricek, Dusek - & Palatinus, 2014) - - 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 + 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_special_func - _name.object_id crenel_w - _type.purpose Measurand - _type.source Assigned + _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 Real - _enumeration.default 0.0 + _type.contents Code save_ -save_ATOM_SITE_OCC_XHARM - _definition.id ATOM_SITE_OCC_XHARM +save_ATOM_SITE_OCC_FOURIER_PARAM + + _definition.id ATOM_SITE_OCC_FOURIER_PARAM _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. + + 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 + parent category ATOM_SITE_OCC_FOURIER. Notice that items in this + category may be listed together with those of the + ATOM_SITE_DISPLACE_FOURIER category. ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_OCC_XHARM + _name.category_id ATOM_SITE_OCC_FOURIER + _name.object_id ATOM_SITE_OCC_FOURIER_PARAM loop_ - _category_key.name '_atom_site_occ_xharm.id' - + _category_key.name '_atom_site_occ_Fourier_param.id' + save_ -save_atom_site_occ_xharm.atom_site_label - _definition.id '_atom_site_occ_xharm.atom_site_label' +save_atom_site_occ_Fourier_param.cos + + _definition.id '_atom_site_occ_Fourier_param.cos' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_Fourier_param_cos' _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_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 + 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 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_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_occ_Fourier_param + + atom_site_occ_Fourier_param.cos = p.modulus*Cos(TwoPi*p.phase) +; save_ -save_atom_site_occ_xharm.id - _definition.id '_atom_site_occ_xharm.id' +save_atom_site_occ_Fourier_param.id + + _definition.id '_atom_site_occ_Fourier_param.id' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_occ_Fourier_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 x-harmonics. + + 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 atom_site_occ_xharm + _name.category_id atom_site_occ_Fourier_param _name.object_id id - _type.purpose Key + _name.linked_item_id '_atom_site_occ_Fourier.id' + _type.purpose Link _type.source Related _type.container Single _type.contents Code save_ -save_atom_site_occ_xharm.order - _definition.id '_atom_site_occ_xharm.order' - _definition.update 2019-09-25 +save_atom_site_occ_Fourier_param.modulus + + _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 ; - The order of each x-harmonics function. + 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. ; - _name.category_id atom_site_occ_xharm - _name.object_id order - _type.purpose Key + _name.category_id atom_site_occ_Fourier_param + _name.object_id modulus + _type.purpose Measurand _type.source Assigned _type.container Single - _type.contents Integer - _enumeration.range 0: + _type.contents Real + _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_atom_site_occ_xharm.coeff - _definition.id '_atom_site_occ_xharm.coeff' +save_atom_site_occ_Fourier_param.phase + + _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 ; - The coefficient corresponding to the x-harmonic function describing the - Occupational modulation of a given atom or rigid group. + 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. ; - _name.category_id atom_site_occ_xharm - _name.object_id coeff + _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 + + atom_site_occ_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi +; + + +save_ + + +save_atom_site_occ_Fourier_param.sin + + _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), + 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. +; + _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 + + atom_site_occ_Fourier_param.sin = -p.modulus*Sin(TwoPi*p.phase) +; save_ -save_ATOM_SITE_PHASON +save_ATOM_SITE_OCC_LEGENDRE - _definition.id ATOM_SITE_PHASON + _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_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. + + 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_PHASON + _name.object_id ATOM_SITE_OCC_LEGENDRE loop_ - _category_key.name '_atom_site_phason.atom_site_label' - + _category_key.name '_atom_site_occ_Legendre.id' + save_ -save_atom_site_phason.atom_site_label +save_atom_site_occ_Legendre.atom_site_label - _definition.id '_atom_site_phason.atom_site_label' + _definition.id '_atom_site_occ_Legendre.atom_site_label' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_phason_atom_site_label' _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, 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. + 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_phason + _name.category_id atom_site_occ_Legendre _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -2920,119 +3205,176 @@ save_atom_site_phason.atom_site_label save_ +save_atom_site_occ_Legendre.coeff -save_atom_site_phason.coeff - - _definition.id '_atom_site_phason.coeff' + _definition.id '_atom_site_occ_Legendre.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_phason_coeff' _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, 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_*). + The coefficient corresponding to the Legendre polynomial describing + the occupational modulation of a given atom or rigid group. ; - _name.category_id atom_site_phason + _name.category_id atom_site_occ_Legendre _name.object_id coeff _type.purpose Measurand _type.source Assigned _type.container Single _type.contents Real _enumeration.default 0.0 - _enumeration.range 0.0: save_ +save_atom_site_occ_Legendre.id -save_atom_site_phason.formula - - _definition.id '_atom_site_phason.formula' + _definition.id '_atom_site_occ_Legendre.id' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_phason_formula' _description.text ; - 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_*). + 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_phason - _name.object_id formula - _type.purpose State - _type.source Assigned + _name.category_id atom_site_occ_Legendre + _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_occ_Legendre.order -save_ATOM_SITE_ROT_FOURIER + _definition.id '_atom_site_occ_Legendre.order' + _definition.update 2019-09-25 + _description.text +; - _definition.id ATOM_SITE_ROT_FOURIER + 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 Integer + _enumeration.range 0: + +save_ + +save_ATOM_SITE_OCC_LEGENDRE_PARAM + + _definition.id ATOM_SITE_OCC_LEGENDRE_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - 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 child category ATOM_SITE_ROT_FOURIER_PARAM and may be listed - separately. + 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_ROT_FOURIER + _name.object_id ATOM_SITE_OCC_LEGENDRE_PARAM loop_ - _category_key.name '_atom_site_rot_Fourier.atom_site_label' + _category_key.name '_atom_site_occ_Legendre_param.id' save_ +save_atom_site_occ_Legendre_param.coeff -save_atom_site_rot_Fourier.atom_site_label + _definition.id '_atom_site_occ_Legendre_param.coeff' + _definition.update 2014-06-27 + _description.text +; - _definition.id '_atom_site_rot_Fourier.atom_site_label' + 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_ + +save_atom_site_occ_Legendre_param.id + + _definition.id '_atom_site_occ_Legendre_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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_ + +save_ATOM_SITE_OCC_ORTHO + + _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_ - _alias.definition_id - '_atom_site_rot_Fourier_atom_site_label' + _category_key.name '_atom_site_occ_ortho.id' + +save_ + +save_atom_site_occ_ortho.atom_site_label + + _definition.id '_atom_site_occ_ortho.atom_site_label' + _definition.update 2014-06-27 _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_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. + 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_rot_Fourier + _name.category_id atom_site_occ_ortho _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -3042,185 +3384,202 @@ save_atom_site_rot_Fourier.atom_site_label save_ +save_atom_site_occ_ortho.coeff -save_atom_site_rot_Fourier.axis - - _definition.id '_atom_site_rot_Fourier.axis' + _definition.id '_atom_site_occ_ortho.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_rot_Fourier_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 - 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. + 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_rot_Fourier - _name.object_id axis - _type.purpose State + _name.category_id atom_site_occ_ortho + _name.object_id coeff + _type.purpose Measurand _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' + _type.contents Real + _enumeration.default 0.0 save_ -save_atom_site_rot_Fourier.matrix_seq_id +save_atom_site_occ_ortho.func_id - _definition.id '_atom_site_rot_Fourier.matrix_seq_id' + _definition.id '_atom_site_occ_ortho.func_id' _definition.update 2014-06-27 _description.text ; - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + A code identifying 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_rot_Fourier - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_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_ -save_atom_site_rot_Fourier.wave_vector_seq_id +save_atom_site_occ_ortho.id - _definition.id '_atom_site_rot_Fourier.wave_vector_seq_id' + _definition.id '_atom_site_occ_ortho.id' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_rot_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 rotational distortion of a rigid group. This - code must match _atom_site_Fourier_wave_vector.seq_id. + 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_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_occ_ortho + _name.object_id id + _type.purpose Key _type.source Related _type.container Single _type.contents Code save_ +save_ATOM_SITE_OCC_ORTHO_PARAM -save_ATOM_SITE_ROT_FOURIER_PARAM - - _definition.id ATOM_SITE_ROT_FOURIER_PARAM + _definition.id ATOM_SITE_OCC_ORTHO_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 parent category ATOM_SITE_ROT_FOURIER. Notice - that items in this category may be listed together with those of the - ATOM_SITE_DISPLACE_FOURIER category. + 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 ATOM_SITE_ROT_FOURIER - _name.object_id ATOM_SITE_ROT_FOURIER_PARAM + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_OCC_ORTHO_PARAM loop_ - _category_key.name '_atom_site_rot_Fourier_param.id' + _category_key.name '_atom_site_occ_ortho_param.id' save_ +save_atom_site_occ_ortho_param.coeff -save_atom_site_rot_Fourier_param.cos - - _definition.id '_atom_site_rot_Fourier_param.cos' + _definition.id '_atom_site_occ_ortho_param.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_rot_Fourier_param_cos' _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 orthogonalized function + defined by _atom_site_occ_ortho.atom_site_label and + _atom_site_occ_ortho.func_id. ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id cos + _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 - _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(TwoPi*p.phase) -; +save_ + +save_atom_site_occ_ortho_param.id + + _definition.id '_atom_site_occ_ortho_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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_ATOM_SITE_OCC_SPECIAL_FUNC -save_atom_site_rot_Fourier_param.id + _definition.id ATOM_SITE_OCC_SPECIAL_FUNC + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; - _definition.id '_atom_site_rot_Fourier_param.id' + 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: + (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. + + 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 MS_GROUP + _name.object_id ATOM_SITE_OCC_SPECIAL_FUNC + loop_ + _category_key.name '_atom_site_occ_special_func.atom_site_label' + +save_ + +save_atom_site_occ_special_func.atom_site_label + + _definition.id '_atom_site_occ_special_func.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_id' + '_atom_site_occ_special_func_atom_site_label' _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. + 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_rot_Fourier_param - _name.object_id id - _name.linked_item_id '_atom_site_rot_Fourier.id' + _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 @@ -3229,363 +3588,1927 @@ save_atom_site_rot_Fourier_param.id save_ -save_atom_site_rot_Fourier_param.modulus - - _definition.id '_atom_site_rot_Fourier_param.modulus' +save_atom_site_occ_special_func.crenel_c + + _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 +; + + _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 JANA2006 (Petricek, Dusek + & Palatinus, 2014) + + 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_special_func + _name.object_id crenel_c + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_ + +save_atom_site_occ_special_func.crenel_ortho_eps + + _definition.id '_atom_site_occ_special_func.crenel_ortho_eps' + _definition.update 2019-04-01 + _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 + + 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_ + +save_atom_site_occ_special_func.crenel_w + + _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 +; + + _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 JANA2006 (Petricek, Dusek + & Palatinus, 2014) + + 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_special_func + _name.object_id crenel_w + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_ + +save_ATOM_SITE_OCC_XHARM + + _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_atom_site_occ_xharm.atom_site_label + + _definition.id '_atom_site_occ_xharm.atom_site_label' + _definition.update 2014-06-27 + _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_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_ + +save_atom_site_occ_xharm.id + + _definition.id '_atom_site_occ_xharm.id' + _definition.update 2014-06-27 + _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 x-harmonics. +; + _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 + + _definition.id '_atom_site_occ_xharm.order' + _definition.update 2019-09-25 + _description.text +; + + The order of each x-harmonics function. +; + _name.category_id atom_site_occ_xharm + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.range 0: + +save_ + +save_ATOM_SITE_OCC_XHARM_PARAM + + _definition.id ATOM_SITE_OCC_XHARM_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 ATOM_SITE_OCC_XHARM_PARAM + loop_ + _category_key.name '_atom_site_occ_xharm_param.id' + +save_ + +save_atom_site_occ_xharm_param.coeff + + _definition.id '_atom_site_occ_xharm_param.coeff' + _definition.update 2014-06-27 + _description.text +; + + The coefficient corresponding to the x-harmonic function describing the + Occupational modulation of a given atom or rigid group. +; + _name.category_id atom_site_occ_xharm_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_occ_xharm_param.id + + _definition.id '_atom_site_occ_xharm_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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 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 Code + +save_ + +save_atom_site_occ_xharm.coeff + + _definition.id '_atom_site_occ_xharm.coeff' + _definition.update 2014-06-27 + _description.text +; + + The coefficient corresponding to the x-harmonic function describing the + Occupational modulation of a given atom or rigid group. +; + _name.category_id atom_site_occ_xharm + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + +save_ + +save_ATOM_SITE_PHASON + + _definition.id ATOM_SITE_PHASON + _definition.scope Category + _definition.class Loop + _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, JANA2006) allow for this (theoretically dubious) + atom-dependent phason treatment. +; + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_PHASON + loop_ + _category_key.name '_atom_site_phason.atom_site_label' + +save_ + +save_atom_site_phason.atom_site_label + + _definition.id '_atom_site_phason.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_phason_atom_site_label' + _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, 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 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 Code + +save_ + + +save_atom_site_phason.coeff + + _definition.id '_atom_site_phason.coeff' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_phason_coeff' + _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, 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 atom_site_phason + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned + _type.container Single + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0: + +save_ + + +save_atom_site_phason.formula + + _definition.id '_atom_site_phason.formula' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_phason_formula' + _description.text +; + + 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 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 + + _definition.id ATOM_SITE_ROT_FOURIER + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 child category ATOM_SITE_ROT_FOURIER_PARAM and may be listed + separately. +; + _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 + + _definition.id '_atom_site_rot_Fourier.atom_site_label' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_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 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 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 Code + +save_ + + +save_atom_site_rot_Fourier.axis + + _definition.id '_atom_site_rot_Fourier.axis' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_Fourier_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 + 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 atom_site_rot_Fourier + _name.object_id axis + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + x '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 + + _definition.id '_atom_site_rot_Fourier.matrix_seq_id' + _definition.update 2014-06-27 + _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_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_rot_Fourier.wave_vector_seq_id + + _definition.id '_atom_site_rot_Fourier.wave_vector_seq_id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_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 rotational distortion of a rigid group. This + code must match _atom_site_Fourier_wave_vector.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 + _type.source Related + _type.container Single + _type.contents Code + +save_ + + +save_ATOM_SITE_ROT_FOURIER_PARAM + + _definition.id ATOM_SITE_ROT_FOURIER_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 parent category ATOM_SITE_ROT_FOURIER. Notice + that items in this category may be listed together with those of the + ATOM_SITE_DISPLACE_FOURIER category. +; + _name.category_id ATOM_SITE_ROT_FOURIER + _name.object_id ATOM_SITE_ROT_FOURIER_PARAM + loop_ + _category_key.name '_atom_site_rot_Fourier_param.id' + +save_ + + +save_atom_site_rot_Fourier_param.cos + + _definition.id '_atom_site_rot_Fourier_param.cos' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_Fourier_param_cos' + _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. +; + _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(TwoPi*p.phase) +; + +save_ + + +save_atom_site_rot_Fourier_param.id + + _definition.id '_atom_site_rot_Fourier_param.id' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_Fourier_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. +; + _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 + +save_ + + +save_atom_site_rot_Fourier_param.modulus + + _definition.id '_atom_site_rot_Fourier_param.modulus' + _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. +; + _name.category_id atom_site_rot_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 degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_rot_Fourier_param + + atom_site_rot_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) +; + + +save_ + + +save_atom_site_rot_Fourier_param.phase + + _definition.id '_atom_site_rot_Fourier_param.phase' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_Fourier_param_phase' + _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. +; + _name.category_id atom_site_rot_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_rot_Fourier_param + + atom_site_rot_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi +; + +save_ + + +save_atom_site_rot_Fourier_param.sin + + _definition.id '_atom_site_rot_Fourier_param.sin' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_rot_Fourier_param_sin' + _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. +; + _name.category_id atom_site_rot_Fourier_param + _name.object_id sin + _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.sin = -p.modulus*Sin(TwoPi*p.phase) +; + +save_ + +save_ATOM_SITE_ROT_LEGENDRE + + _definition.id ATOM_SITE_ROT_LEGENDRE + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 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 + + _definition.id '_atom_site_rot_Legendre.atom_site_label' + _definition.update 2014-06-27 + _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_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 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 Code + +save_ + +save_atom_site_rot_Legendre.axis + + _definition.id '_atom_site_rot_Legendre.axis' + _definition.update 2014-06-27 + _description.text +; + + 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 atom_site_rot_Legendre + _name.object_id axis + _type.purpose State + _type.source Assigned + _type.container Single + _type.contents Code + loop_ + _enumeration_set.state + _enumeration_set.detail + x 'displacement along the a axis' + y 'displacement along the b axis' + z 'displacement along the c axis' + a1 'displacement along an arbitrary a1 axis' + a2 'displacement along an arbitrary a2 axis' + a3 'displacement along an arbitrary a3 axis' + +save_ + +save_atom_site_rot_Legendre.id + + _definition.id '_atom_site_rot_Legendre.id' + _definition.update 2014-06-27 + _description.text +; + + A code identifying each component of the displacive modulation of + a given atom or rigid group when the modulation is expressed in + terms of Legendre polynomials. In the case of a rigid group, it + applies only to the rotational part of the distortion. +; + _name.category_id atom_site_rot_Legendre + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code + +save_ + +save_atom_site_rot_Legendre.matrix_seq_id + + _definition.id '_atom_site_rot_Legendre.matrix_seq_id' + _definition.update 2014-06-27 + _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_Legendre + _name.object_id matrix_seq_id + _name.linked_item_id '_atom_sites_axes.matrix_seq_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ + +save_atom_site_rot_Legendre.order + + _definition.id '_atom_site_rot_Legendre.order' + _definition.update 2019-09-25 + _description.text +; + + The order of the Legendre polynomial. +; + _name.category_id atom_site_rot_Legendre + _name.object_id order + _type.purpose Key + _type.source Assigned + _type.container Single + _type.contents Integer + _enumeration.range 0: + +save_ + +save_atom_site_rot_Legendre.coeff + + _definition.id '_atom_site_rot_Legendre.coeff' + _definition.update 2014-06-27 + _description.text +; + + 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 atom_site_rot_Legendre + _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_ROT_LEGENDRE_PARAM + + _definition.id ATOM_SITE_ROT_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 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 + + _definition.id '_atom_site_rot_Legendre_param.coeff' + _definition.update 2014-06-27 + _description.text +; + + 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 atom_site_rot_Legendre_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_rot_Legendre_param.id + + _definition.id '_atom_site_rot_Legendre_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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 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 Code + +save_ + +save_ATOM_SITE_ROT_ORTHO + + _definition.id ATOM_SITE_ROT_ORTHO + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 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 ATOM_SITE_ROT_ORTHO + loop_ + _category_key.name '_atom_site_rot_ortho.id' + +save_ + +save_atom_site_rot_ortho.atom_site_label + + _definition.id '_atom_site_rot_ortho.atom_site_label' + _definition.update 2014-06-27 + _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_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 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 Code + +save_ + +save_atom_site_rot_ortho.axis + + _definition.id '_atom_site_rot_ortho.axis' + _definition.update 2014-06-27 + _description.text +; + + 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 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 + 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 + + _definition.id '_atom_site_rot_ortho.func_id' + _definition.update 2014-06-27 + _description.text +; + + A code identifying the orthogonalized function used in the + structural model to describe the displacive modulation of an atom + or rigid group. In the case of a rigid group, it applies only + to the rotational part of the distortion. This code must match + _atom_sites_ortho_func_id. +; + _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 Code + +save_ + +save_atom_site_rot_ortho.id + + _definition.id '_atom_site_rot_ortho.id' + _definition.update 2014-06-27 + _description.text +; + + A code identifying each component of the displacive modulation of + a given atom or rigid group when the modulation is expressed in + terms of ortho series. In the case of a rigid group, it + applies only to the rotational part of the distortion. +; + _name.category_id atom_site_rot_ortho + _name.object_id id + _type.purpose Key + _type.source Related + _type.container Single + _type.contents Code + +save_ + +save_atom_site_rot_ortho.matrix_seq_id + + _definition.id '_atom_site_rot_ortho.matrix_seq_id' + _definition.update 2014-06-27 + _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_ortho + _name.object_id matrix_seq_id + _name.linked_item_id '_atom_sites_axes.matrix_seq_id' + _type.purpose Link + _type.source Related + _type.container Single + _type.contents Code + +save_ + +save_atom_site_rot_ortho.coeff + + _definition.id '_atom_site_rot_ortho.coeff' + _definition.update 2014-06-27 + _description.text +; + + 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 atom_site_rot_ortho + _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_ROT_ORTHO_PARAM + + _definition.id ATOM_SITE_ROT_ORTHO_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 MS_GROUP + _name.object_id ATOM_SITE_ROT_ORTHO_PARAM + loop_ + _category_key.name '_atom_site_rot_ortho_param.id' + +save_ + +save_atom_site_rot_ortho_param.coeff + + _definition.id '_atom_site_rot_ortho_param.coeff' + _definition.update 2014-06-27 + _description.text +; + + 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 atom_site_rot_ortho_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_rot_ortho_param.id + + _definition.id '_atom_site_rot_ortho_param.id' + _definition.update 2014-06-27 + _description.text +; + + 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 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 Code + +save_ + +save_ATOM_SITE_ROT_SPECIAL_FUNC + + _definition.id ATOM_SITE_ROT_SPECIAL_FUNC + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 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 + + _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 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 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 + + _definition.id '_atom_site_rot_special_func.matrix_seq_id' + _definition.update 2014-06-27 + _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_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_rot_special_func.sawtooth + + _definition.id '_atom_site_rot_special_func.sawtooth' + _definition.update 2019-04-01 + _description.text +; + + _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: + + [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 atom_site_rot_special_func + _name.object_id sawtooth + _type.purpose Measurand + _type.source Assigned + _type.container Matrix + _type.contents Real + _type.dimension '[3]' + _enumeration.default [0.0 0.0 0.0] + loop_ + _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_atom_site_rot_special_func.sawtooth_axyz + + _definition.id '_atom_site_rot_special_func.sawtooth_axyz' + _definition.update 2019-04-01 + _description.text +; + + The vector of amplitudes (maximum displacements) along the a (or a1), + b (or a2) and c (or a3) axis of the sawtooth function described in + _atom_site_rot_special_func.sawtooth +; + _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_ + _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_atom_site_rot_special_func.sawtooth_ax + + _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 +; + + 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 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 +; + With r as atom_site_rot_special_func + + atom_site_rot_special_func.sawtooth_ax = r.sawtooth_axyz[0] +; + +save_ + +save_atom_site_rot_special_func.sawtooth_ay + + _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 + + atom_site_rot_special_func.sawtooth_ay = r.sawtooth_axyz[1] +; + +save_ + +save_atom_site_rot_special_func.sawtooth_az + + _definition.id '_atom_site_rot_special_func.sawtooth_az' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_modulus' + '_atom_site_rot_special_func_sawtooth_az' _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. + 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 atom_site_rot_Fourier_param - _name.object_id modulus + _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 - _enumeration.range 0.0: - _units.code degrees + _units.code degrees loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With p as atom_site_rot_Fourier_param + With r as atom_site_rot_special_func - atom_site_rot_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) + atom_site_rot_special_func.sawtooth_az = r.sawtooth_axyz[2] ; - save_ +save_atom_site_rot_special_func.sawtooth_c -save_atom_site_rot_Fourier_param.phase - - _definition.id '_atom_site_rot_Fourier_param.phase' + _definition.id '_atom_site_rot_special_func.sawtooth_c' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_phase' + '_atom_site_rot_special_func_sawtooth_c' _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. + The centre of the sawtooth function described in + _atom_site_rot_special_func.sawtooth ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id phase + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_c _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_rot_Fourier_param - - atom_site_rot_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi -; + _enumeration.range 0.0:1.0 + save_ +save_atom_site_rot_special_func.sawtooth_w -save_atom_site_rot_Fourier_param.sin - - _definition.id '_atom_site_rot_Fourier_param.sin' + _definition.id '_atom_site_rot_special_func.sawtooth_w' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_Fourier_param_sin' + '_atom_site_rot_special_func_sawtooth_w' _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. + The width of the sawtooth function described in + _atom_site_rot_special_func.sawtooth ; - _name.category_id atom_site_rot_Fourier_param - _name.object_id sin + _name.category_id atom_site_rot_special_func + _name.object_id sawtooth_w _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.sin = -p.modulus*Sin(TwoPi*p.phase) -; + _enumeration.range 0.0:1.0 save_ -save_ATOM_SITE_ROT_LEGENDRE +save_atom_site_rot_special_func.zigzag - _definition.id ATOM_SITE_ROT_LEGENDRE - _definition.scope Category - _definition.class Loop - _definition.update 2014-06-27 + _definition.id '_atom_site_rot_special_func.zigzag' + _definition.update 2019-04-01 _description.text ; - 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 + _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: + + 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 translational part would appear in a separate list of items - belonging to the ATOM_SITE_DISPLACE_LEGENDRE category. + The rotational part would appear in a separate list of items belonging + to the ATOM_SITE_DISPLACE_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 MS_GROUP - _name.object_id ATOM_SITE_ROT_LEGENDRE + _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_ - _category_key.name '_atom_site_rot_Legendre.id' - + _method.purpose + _method.expression + Evaluation +; + With r as atom_site_rot_special_func + + 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_atom_site_rot_Legendre.atom_site_label +save_atom_site_rot_special_func.zigzag_axyz - _definition.id '_atom_site_rot_Legendre.atom_site_label' - _definition.update 2014-06-27 - _description.text + _definition.id '_atom_site_rot_special_func.zigzag_axyz' + _definition.update 2019-04-01 + _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_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. + 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_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 + _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_atom_site_rot_Legendre.axis +save_atom_site_rot_special_func.zigzag_ax - _definition.id '_atom_site_rot_Legendre.axis' + _definition.id '_atom_site_rot_special_func.zigzag_ax' _definition.update 2014-06-27 _description.text ; - - 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 atom_site_rot_Legendre - _name.object_id axis - _type.purpose State + + 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 Code + _type.contents Real + _enumeration.default 0.0 + _units.code degrees 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' + _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_ -save_atom_site_rot_Legendre.id +save_atom_site_rot_special_func.zigzag_ay - _definition.id '_atom_site_rot_Legendre.id' + _definition.id '_atom_site_rot_special_func.zigzag_ay' _definition.update 2014-06-27 _description.text ; - A code identifying each component of the displacive modulation of - a given atom or rigid group when the modulation is expressed in - terms of Legendre polynomials. In the case of a rigid group, it - applies only to the rotational part of the distortion. + 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 atom_site_rot_Legendre - _name.object_id id - _type.purpose Key - _type.source Related + _name.category_id atom_site_rot_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 + _units.code degrees + loop_ + _method.purpose + _method.expression + Evaluation +; + With rs as atom_site_rot_special_func + + atom_site_rot_special_func.zigzag_ay = r.zigzag_axyz[1] +; save_ -save_atom_site_rot_Legendre.matrix_seq_id +save_atom_site_rot_special_func.zigzag_az - _definition.id '_atom_site_rot_Legendre.matrix_seq_id' + _definition.id '_atom_site_rot_special_func.zigzag_az' _definition.update 2014-06-27 _description.text ; - A numeric code identifying the transformation matrix that defines - the arbitrary axes a1, a2 and a3 in terms of the crystallographic axes. - This code must match _atom_sites_axes.matrix_seq_id. + The amplitude (maximum displacement) along the c (or a3) axis of the + zigzag function described in _atom_site_rot_special_func.zigzag ; - _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 + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_az + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Code + _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_az = s.zigzag_axyz[2] +; save_ -save_atom_site_rot_Legendre.order +save_atom_site_rot_special_func.zigzag_c - _definition.id '_atom_site_rot_Legendre.order' - _definition.update 2019-09-25 + _definition.id '_atom_site_rot_special_func.zigzag_c' + _definition.update 2014-06-27 _description.text ; - The order of the Legendre polynomial. + The centre of the zigzag function described in + _atom_site_rot_special_func.zigzag ; - _name.category_id atom_site_rot_Legendre - _name.object_id order - _type.purpose Key + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_c + _type.purpose Measurand _type.source Assigned _type.container Single - _type.contents Integer - _enumeration.range 0: + _type.contents Real + _enumeration.default 0.0 + _enumeration.range 0.0:1.0 + save_ -save_atom_site_rot_Legendre.coeff +save_atom_site_rot_special_func.zigzag_w - _definition.id '_atom_site_rot_Legendre.coeff' + _definition.id '_atom_site_rot_special_func.zigzag_w' _definition.update 2014-06-27 _description.text ; - 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. + The width of the zigzag function described in + _atom_site_rot_special_func.zigzag ; - _name.category_id atom_site_rot_Legendre - _name.object_id coeff + _name.category_id atom_site_rot_special_func + _name.object_id zigzag_w _type.purpose Measurand _type.source Assigned _type.container Single _type.contents Real _enumeration.default 0.0 - _units.code degrees + _enumeration.range 0.0:1.0 save_ -save_ATOM_SITE_ROT_ORTHO +save_ATOM_SITE_ROT_XHARM - _definition.id ATOM_SITE_ROT_ORTHO + _definition.id ATOM_SITE_ROT_XHARM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - 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 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. - - 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. + 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_ORTHO + _name.object_id ATOM_SITE_ROT_XHARM loop_ - _category_key.name '_atom_site_rot_ortho.id' + _category_key.name '_atom_site_rot_xharm.id' save_ -save_atom_site_rot_ortho.atom_site_label +save_atom_site_rot_xharm.atom_site_label - _definition.id '_atom_site_rot_ortho.atom_site_label' + _definition.id '_atom_site_rot_xharm.atom_site_label' _definition.update 2014-06-27 _description.text ; @@ -3594,17 +5517,16 @@ save_atom_site_rot_ortho.atom_site_label 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. + _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_ortho + _name.category_id atom_site_rot_xharm _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -3614,22 +5536,21 @@ save_atom_site_rot_ortho.atom_site_label save_ -save_atom_site_rot_ortho.axis +save_atom_site_rot_xharm.axis - _definition.id '_atom_site_rot_ortho.axis' + _definition.id '_atom_site_rot_xharm.axis' _definition.update 2014-06-27 _description.text ; 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. + 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 atom_site_rot_ortho + _name.category_id atom_site_rot_xharm _name.object_id axis _type.purpose State _type.source Assigned @@ -3647,42 +5568,44 @@ save_atom_site_rot_ortho.axis save_ -save_atom_site_rot_ortho.func_id +save_atom_site_rot_xharm.coeff - _definition.id '_atom_site_rot_ortho.func_id' + _definition.id '_atom_site_rot_xharm.coeff' _definition.update 2014-06-27 _description.text ; - A code identifying the orthogonalized function used in the - structural model to describe the displacive modulation of an atom - or rigid group. In the case of a rigid group, it applies only - to the rotational part of the distortion. This code must match - _atom_sites_ortho_func_id. + 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 atom_site_rot_ortho - _name.object_id func_id - _name.linked_item_id '_atom_sites_ortho.func_id' - _type.purpose Link - _type.source Related + _name.category_id atom_site_rot_xharm + _name.object_id coeff + _type.purpose Measurand + _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 + _units.code degrees save_ -save_atom_site_rot_ortho.id +save_atom_site_rot_xharm.id - _definition.id '_atom_site_rot_ortho.id' + _definition.id '_atom_site_rot_xharm.id' _definition.update 2014-06-27 _description.text ; A code identifying each component of the displacive modulation of a given atom or rigid group when the modulation is expressed in - terms of ortho series. In the case of a rigid group, it + terms of x-harmonics. In the case of a rigid group, it applies only to the rotational part of the distortion. ; - _name.category_id atom_site_rot_ortho + _name.category_id atom_site_rot_xharm _name.object_id id _type.purpose Key _type.source Related @@ -3691,9 +5614,9 @@ save_atom_site_rot_ortho.id save_ -save_atom_site_rot_ortho.matrix_seq_id +save_atom_site_rot_xharm.matrix_seq_id - _definition.id '_atom_site_rot_ortho.matrix_seq_id' + _definition.id '_atom_site_rot_xharm.matrix_seq_id' _definition.update 2014-06-27 _description.text ; @@ -3702,31 +5625,75 @@ save_atom_site_rot_ortho.matrix_seq_id 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_ortho - _name.object_id matrix_seq_id - _name.linked_item_id '_atom_sites_axes.matrix_seq_id' - _type.purpose Link - _type.source Related - _type.container Single - _type.contents Code + _name.category_id atom_site_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_ + +save_atom_site_rot_xharm.order + + _definition.id '_atom_site_rot_xharm.order' + _definition.update 2019-09-25 + _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 Integer + _enumeration.range 0: + +save_ + +save_ATOM_SITE_ROT_XHARM_PARAM + + _definition.id ATOM_SITE_ROT_XHARM_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + + 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 ATOM_SITE_ROT_XHARM_PARAM + loop_ + _category_key.name '_atom_site_rot_xharm_param.id' save_ -save_atom_site_rot_ortho.coeff +save_atom_site_rot_xharm_param.coeff - _definition.id '_atom_site_rot_ortho.coeff' + _definition.id '_atom_site_rot_xharm_param.coeff' _definition.update 2014-06-27 _description.text ; - 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. + 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_ortho.matrix_seq_id. + through _atom_site_rot_xharm.matrix_seq_id. ; - _name.category_id atom_site_rot_ortho + _name.category_id atom_site_rot_xharm_param _name.object_id coeff _type.purpose Measurand _type.source Assigned @@ -3737,76 +5704,72 @@ save_atom_site_rot_ortho.coeff save_ -save_ATOM_SITE_ROT_SPECIAL_FUNC +save_atom_site_rot_xharm_param.id - _definition.id ATOM_SITE_ROT_SPECIAL_FUNC - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_rot_xharm_param.id' _definition.update 2014-06-27 _description.text ; - 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: + 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 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 -(1) Sawtooth functions for the displacive modulation of atoms and -rigid groups. - (2) Zig-Zag functions for the displacive modulation of atoms and - rigid groups. - (3) Crenel functions for the occupational modulation of atoms - and rigid groups. Both of these only apply to - one-dimensional modulated structures. +save_ - References: Petricek, V., Dusek, M. & Palatinus, L. (2014). - Z. Kristallogr. 229(5), 345-352. DOI 10.1515/zkri-2014-1737 - Crystallographic Computing System JANA2006: General features +save_ATOM_SITE_U_FOURIER - Petricek, V., Eigner, V., Dusek, M. & Cejchan, A. (2016). Z. - Kristallogr. 231(5), 301-312. DOI 10.1515/zkri-2015-1913 - Discontinuous modulation functions and their application for - analysis of modulated structures with the computing system JANA2006 + _definition.id ATOM_SITE_U_FOURIER + _definition.scope Category + _definition.class Loop + _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 + ADPs in a modulated structure. ; _name.category_id MS_GROUP - _name.object_id ATOM_SITE_ROT_SPECIAL_FUNC - _category_key.name '_atom_site_rot_special_func.atom_site_label' + _name.object_id ATOM_SITE_U_FOURIER + loop_ + _category_key.name '_atom_site_U_Fourier.id' save_ -save_atom_site_rot_special_func.atom_site_label - _definition.id '_atom_site_rot_special_func.atom_site_label' +save_atom_site_U_Fourier.atom_site_label + + _definition.id '_atom_site_U_Fourier.atom_site_label' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_special_func_atom_site_label' + '_atom_site_U_Fourier_atom_site_label' _description.text ; - 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. + 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_Fourier.atom_site_label is the code that + identifies an atom in a loop in which the Fourier 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_rot_special_func - _name.object_id atom_site_label + _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 @@ -3815,427 +5778,350 @@ save_atom_site_rot_special_func.atom_site_label save_ -save_atom_site_rot_special_func.matrix_seq_id +save_atom_site_U_Fourier.id - _definition.id '_atom_site_rot_special_func.matrix_seq_id' + _definition.id '_atom_site_U_Fourier.id' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_Fourier_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. + A code identifying each Fourier component used to describe + the modulation of ADP. ; - _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 + _name.category_id atom_site_U_Fourier + _name.object_id id + _type.purpose Key _type.source Related _type.container Single _type.contents Code -save_ - -save_atom_site_rot_special_func.sawtooth - - _definition.id '_atom_site_rot_special_func.sawtooth' - _definition.update 2019-04-01 - _description.text -; - - _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: - - [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 atom_site_rot_special_func - _name.object_id sawtooth - _type.purpose Measurand - _type.source Assigned - _type.container Matrix - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] - loop_ - _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_atom_site_rot_special_func.sawtooth_axyz +save_atom_site_U_Fourier.tens_elem - _definition.id '_atom_site_rot_special_func.sawtooth_axyz' - _definition.update 2019-04-01 + _definition.id '_atom_site_U_Fourier.tens_elem' + _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_Fourier_tens_elem' _description.text ; - The vector of amplitudes (maximum displacements) along the a (or a1), - b (or a2) and c (or a3) axis of the sawtooth function described in - _atom_site_rot_special_func.sawtooth + A label identifying the ADP tensor element U(ij) of a + given atom whose modulation is being parameterized + by Fourier series. ; - _name.category_id atom_site_rot_special_func - _name.object_id sawtooth_axyz - _type.purpose Measurand + _name.category_id atom_site_U_Fourier + _name.object_id tens_elem + _type.purpose State _type.source Assigned - _type.container Array - _type.contents Real - _type.dimension '[3]' - _enumeration.default [0.0 0.0 0.0] - _units.code degrees + _type.container Single + _type.contents Code loop_ - _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 ] -; + _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_rot_special_func.sawtooth_ax - _definition.id '_atom_site_rot_special_func.sawtooth_ax' +save_atom_site_U_Fourier.wave_vector_seq_id + + _definition.id '_atom_site_U_Fourier.wave_vector_seq_id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_special_func_sawtooth_ax' + '_atom_site_U_Fourier_wave_vector_seq_id' _description.text ; - 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 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 + A numeric code identifying the wave vectors of the Fourier terms + used to describe the modulation functions corresponding to the + ADP of an atom. This code must + match _atom_site_Fourier_wave_vector.seq_id. ; - With r as atom_site_rot_special_func - - atom_site_rot_special_func.sawtooth_ax = r.sawtooth_axyz[0] -; + _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 Code save_ -save_atom_site_rot_special_func.sawtooth_ay - _definition.id '_atom_site_rot_special_func.sawtooth_ay' +save_ATOM_SITE_U_FOURIER_PARAM + + _definition.id ATOM_SITE_U_FOURIER_PARAM + _definition.scope Category + _definition.class Loop _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 + 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 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 + _name.category_id ATOM_SITE_U_FOURIER + _name.object_id ATOM_SITE_U_FOURIER_PARAM loop_ - _method.purpose - _method.expression - Evaluation -; - With r as atom_site_rot_special_func - - atom_site_rot_special_func.sawtooth_ay = r.sawtooth_axyz[1] -; + _category_key.name '_atom_site_U_Fourier_param.id' save_ -save_atom_site_rot_special_func.sawtooth_az - _definition.id '_atom_site_rot_special_func.sawtooth_az' +save_atom_site_U_Fourier_param.cos + + _definition.id '_atom_site_U_Fourier_param.cos' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_special_func_sawtooth_az' + '_atom_site_U_Fourier_param_cos' _description.text ; - The amplitude (maximum displacement) along the c (or a3) axis of the sawtooth - function described in _atom_site_rot_special_func.sawtooth + 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 atom_site_rot_special_func - _name.object_id sawtooth_az + _name.category_id atom_site_U_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 + _units.code angstrom_squared loop_ _method.purpose _method.expression - Evaluation + Evaluation ; - With r as atom_site_rot_special_func + With p as atom_site_U_Fourier_param - atom_site_rot_special_func.sawtooth_az = r.sawtooth_axyz[2] + atom_site_U_Fourier_param.cos = p.modulus*Cos(TwoPi*p.phase) ; save_ -save_atom_site_rot_special_func.sawtooth_c - _definition.id '_atom_site_rot_special_func.sawtooth_c' +save_atom_site_U_Fourier_param.id + + _definition.id '_atom_site_U_Fourier_param.id' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_special_func_sawtooth_c' + '_atom_site_U_Fourier_param_id' _description.text ; - The centre of the sawtooth function described in - _atom_site_rot_special_func.sawtooth + 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 atom_site_rot_special_func - _name.object_id sawtooth_c - _type.purpose Measurand - _type.source Assigned + _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 Real - _enumeration.default 0.0 - _enumeration.range 0.0:1.0 - + _type.contents Code save_ -save_atom_site_rot_special_func.sawtooth_w - _definition.id '_atom_site_rot_special_func.sawtooth_w' +save_atom_site_U_Fourier_param.modulus + + _definition.id '_atom_site_U_Fourier_param.modulus' _definition.update 2014-06-27 loop_ _alias.definition_id - '_atom_site_rot_special_func_sawtooth_w' + '_atom_site_U_Fourier_param_modulus' _description.text ; - The width of the sawtooth function described in - _atom_site_rot_special_func.sawtooth + 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.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. ; - _name.category_id atom_site_rot_special_func - _name.object_id sawtooth_w + _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:1.0 - -save_ - -save_atom_site_rot_special_func.zigzag - - _definition.id '_atom_site_rot_special_func.zigzag' - _definition.update 2019-04-01 - _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: - - 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. - - 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_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] - -save_ - -save_atom_site_rot_special_func.zigzag_axyz - - _definition.id '_atom_site_rot_special_func.zigzag_axyz' - _definition.update 2019-04-01 - _description.text -; - - 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 + _enumeration.range 0.0: + _units.code angstrom_squared loop_ _method.purpose _method.expression - Evaluation + 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 ] + With p as atom_site_U_Fourier_param + + atom_site_U_Fourier_param.modulus = Sqrt(p.cos**2+p.sin**2) ; + save_ -save_atom_site_rot_special_func.zigzag_c - _definition.id '_atom_site_rot_special_func.zigzag_c' +save_atom_site_U_Fourier_param.phase + + _definition.id '_atom_site_U_Fourier_param.phase' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_Fourier_param_phase' _description.text ; - The centre of the zigzag function described in - _atom_site_rot_special_func.zigzag + 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.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. ; - _name.category_id atom_site_rot_special_func - _name.object_id zigzag_c + _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 0.0:1.0 - + _enumeration.range -1.0:1.0 + _units.code cycles + loop_ + _method.purpose + _method.expression + Evaluation +; + With p as atom_site_U_Fourier_param + + atom_site_U_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi +; + save_ -save_atom_site_rot_special_func.zigzag_w - _definition.id '_atom_site_rot_special_func.zigzag_w' +save_atom_site_U_Fourier_param.sin + + _definition.id '_atom_site_U_Fourier_param.sin' _definition.update 2014-06-27 + loop_ + _alias.definition_id + '_atom_site_U_Fourier_param_sin' _description.text ; - The width of the zigzag function described in - _atom_site_rot_special_func.zigzag + 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 atom_site_rot_special_func - _name.object_id zigzag_w + _name.category_id atom_site_U_Fourier_param + _name.object_id sin _type.purpose Measurand _type.source Assigned _type.container Single _type.contents Real _enumeration.default 0.0 - _enumeration.range 0.0:1.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(TwoPi*p.phase) +; save_ -save_ATOM_SITE_ROT_XHARM +save_ATOM_SITE_U_LEGENDRE - _definition.id ATOM_SITE_ROT_XHARM + _definition.id ATOM_SITE_U_LEGENDRE _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - 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. + 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_ROT_XHARM + _name.object_id ATOM_SITE_U_LEGENDRE loop_ - _category_key.name '_atom_site_rot_xharm.id' + _category_key.name '_atom_site_u_Legendre.id' save_ -save_atom_site_rot_xharm.atom_site_label +save_atom_site_U_Legendre.atom_site_label - _definition.id '_atom_site_rot_xharm.atom_site_label' + _definition.id '_atom_site_U_Legendre.atom_site_label' _definition.update 2014-06-27 _description.text ; @@ -4244,16 +6130,13 @@ save_atom_site_rot_xharm.atom_site_label 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. + _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_rot_xharm + _name.category_id atom_site_U_Legendre _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -4263,76 +6146,40 @@ save_atom_site_rot_xharm.atom_site_label save_ -save_atom_site_rot_xharm.axis - - _definition.id '_atom_site_rot_xharm.axis' - _definition.update 2014-06-27 - _description.text -; - - 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 atom_site_rot_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 '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.coeff +save_atom_site_U_Legendre.coeff - _definition.id '_atom_site_rot_xharm.coeff' + _definition.id '_atom_site_U_Legendre.coeff' _definition.update 2014-06-27 _description.text ; - 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. + 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 atom_site_rot_xharm + _name.category_id atom_site_U_Legendre _name.object_id coeff _type.purpose Measurand _type.source Assigned _type.container Single _type.contents Real _enumeration.default 0.0 - _units.code degrees + _units.code angstrom_squared save_ -save_atom_site_rot_xharm.id +save_atom_site_U_Legendre.id - _definition.id '_atom_site_rot_xharm.id' + _definition.id '_atom_site_U_Legendre.id' _definition.update 2014-06-27 _description.text ; - A code identifying each component of the displacive modulation of - a given atom or rigid group when the modulation is expressed in - terms of x-harmonics. In the case of a rigid group, it - applies only to the rotational part of the distortion. + 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 atom_site_rot_xharm + _name.category_id atom_site_U_Legendre _name.object_id id _type.purpose Key _type.source Related @@ -4341,37 +6188,16 @@ save_atom_site_rot_xharm.id save_ -save_atom_site_rot_xharm.matrix_seq_id - - _definition.id '_atom_site_rot_xharm.matrix_seq_id' - _definition.update 2014-06-27 - _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_ - -save_atom_site_rot_xharm.order +save_atom_site_U_Legendre.order - _definition.id '_atom_site_rot_xharm.order' + _definition.id '_atom_site_U_Legendre.order' _definition.update 2019-09-25 _description.text ; - The order of each x-harmonic function. + The order of the Legendre polynomial. ; - _name.category_id atom_site_rot_xharm + _name.category_id atom_site_U_Legendre _name.object_id order _type.purpose Key _type.source Assigned @@ -4381,131 +6207,93 @@ save_atom_site_rot_xharm.order save_ -save_ATOM_SITE_U_FOURIER +save_atom_site_U_Legendre.tens_elem - _definition.id ATOM_SITE_U_FOURIER - _definition.scope Category - _definition.class Loop + _definition.id '_atom_site_U_Legendre.tens_elem' _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 - ADPs in a modulated structure. + _description.text ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_U_FOURIER - loop_ - _category_key.name '_atom_site_U_Fourier.id' - -save_ + A label identifying the ADP tensor element U(ij) a given atom + whose modulation is being parameterized by Legendre polynomials. -save_atom_site_U_Fourier.atom_site_label - - _definition.id '_atom_site_U_Fourier.atom_site_label' - _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_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 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 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_Fourier - _name.object_id site_label - _name.linked_item_id '_atom_site.label' - _type.purpose Link - _type.source Related + _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_atom_site_U_Fourier.id +save_ATOM_SITE_U_LEGENDRE_PARAM - _definition.id '_atom_site_U_Fourier.id' + _definition.id ATOM_SITE_U_LEGENDRE_PARAM + _definition.scope Category + _definition.class Loop _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_id' _description.text ; - A code identifying each Fourier component used to describe - the modulation of ADP. + 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 atom_site_U_Fourier - _name.object_id id - _type.purpose Key - _type.source Related - _type.container Single - _type.contents Code + _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_Fourier.tens_elem +save_atom_site_U_Legendre_param.coeff - _definition.id '_atom_site_U_Fourier.tens_elem' + _definition.id '_atom_site_U_Legendre_param.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_tens_elem' _description.text ; - A label identifying the ADP tensor element U(ij) of a - given atom whose modulation is being parameterized - by Fourier series. + 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 atom_site_U_Fourier - _name.object_id tens_elem - _type.purpose State + _name.category_id atom_site_U_Legendre_param + _name.object_id coeff + _type.purpose Measurand _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~' + _type.contents Real + _enumeration.default 0.0 + _units.code angstrom_squared save_ +save_atom_site_U_Legendre_param.id -save_atom_site_U_Fourier.wave_vector_seq_id - - _definition.id '_atom_site_U_Fourier.wave_vector_seq_id' + _definition.id '_atom_site_U_Legendre_param.id' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_wave_vector_seq_id' _description.text ; - A numeric code identifying the wave vectors of the Fourier terms - used to describe the modulation functions corresponding to the - ADP of an atom. This code must - match _atom_site_Fourier_wave_vector.seq_id. + 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 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_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 @@ -4513,94 +6301,100 @@ save_atom_site_U_Fourier.wave_vector_seq_id save_ +save_ATOM_SITE_U_ORTHO -save_ATOM_SITE_U_FOURIER_PARAM - - _definition.id ATOM_SITE_U_FOURIER_PARAM + _definition.id ATOM_SITE_U_ORTHO _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _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 ADP in a modulated - structure. The Fourier components are defined in the category - ATOM_SITE_U_FOURIER and are listed separately. + + 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 ATOM_SITE_U_FOURIER - _name.object_id ATOM_SITE_U_FOURIER_PARAM + _name.category_id MS_GROUP + _name.object_id ATOM_SITE_U_ORTHO loop_ - _category_key.name '_atom_site_U_Fourier_param.id' - + _category_key.name '_atom_site_U_ortho.id' + save_ +save_atom_site_u_ortho.atom_site_label -save_atom_site_U_Fourier_param.cos + _definition.id '_atom_site_U_ortho.atom_site_label' + _definition.update 2014-06-27 + _description.text +; - _definition.id '_atom_site_U_Fourier_param.cos' + 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.coeff + + _definition.id '_atom_site_U_ortho.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_param_cos' _description.text ; - 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. + 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_Fourier_param - _name.object_id cos + _name.category_id atom_site_U_ortho + _name.object_id coeff _type.purpose Measurand _type.source Assigned _type.container Single _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.cos = p.modulus*Cos(TwoPi*p.phase) -; + _units.code angstrom_squared save_ +save_atom_site_U_ortho.func_id -save_atom_site_U_Fourier_param.id - - _definition.id '_atom_site_U_Fourier_param.id' + _definition.id '_atom_site_U_ortho.func_id' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_param_id' _description.text ; - A code identifying the (in general complex) coefficient of each - term present in the Fourier series describing the modulation of - the ADP. This code must match - _atom_site_U_Fourier.id. + 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 atom_site_U_Fourier_param - _name.object_id id - _name.linked_item_id '_atom_site_U_Fourier.id' + _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 @@ -4608,172 +6402,147 @@ save_atom_site_U_Fourier_param.id save_ +save_atom_site_U_ortho.id -save_atom_site_U_Fourier_param.modulus - - _definition.id '_atom_site_U_Fourier_param.modulus' + _definition.id '_atom_site_U_ortho.id' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_param_modulus' _description.text ; - 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.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. + A code identifying each component of the ADP modulation of + a given atom when the modulation is expressed in terms of ortho + series. ; - _name.category_id atom_site_U_Fourier_param - _name.object_id modulus - _type.purpose Measurand - _type.source Assigned + _name.category_id atom_site_U_ortho + _name.object_id id + _type.purpose Key + _type.source Related _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range 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.modulus = Sqrt(p.cos**2+p.sin**2) -; - + _type.contents Code save_ +save_atom_site_U_ortho.tens_elem -save_atom_site_U_Fourier_param.phase - - _definition.id '_atom_site_U_Fourier_param.phase' + _definition.id '_atom_site_U_ortho.tens_elem' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_param_phase' - _description.text + _description.text ; - 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.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. + A label identifying the ADP tensor element U(ij) a given atom + whose modulation is being parameterized by orthogonalized + functions. + ; - _name.category_id atom_site_U_Fourier_param - _name.object_id phase - _type.purpose Measurand + _name.category_id atom_site_U_ortho + _name.object_id tens_elem + _type.purpose State _type.source Assigned _type.container Single - _type.contents Real - _enumeration.default 0.0 - _enumeration.range -1.0:1.0 - _units.code cycles + _type.contents Code loop_ - _method.purpose - _method.expression - Evaluation -; - With p as atom_site_U_Fourier_param + _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~' - atom_site_U_Fourier_param.phase = Phase(Complex(p.cos,-p.sin))/TwoPi -; +save_ +save_ATOM_SITE_U_ORTHO_PARAM -save_ + _definition.id ATOM_SITE_U_ORTHO_PARAM + _definition.scope Category + _definition.class Loop + _definition.update 2014-06-27 + _description.text +; + 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 MS_GROUP + _name.object_id ATOM_SITE_U_ORTHO_PARAM + loop_ + _category_key.name '_atom_site_U_ortho_param.id' -save_atom_site_U_Fourier_param.sin +save_ - _definition.id '_atom_site_U_Fourier_param.sin' +save_atom_site_U_ortho_param.coeff + + _definition.id '_atom_site_U_ortho_param.coeff' _definition.update 2014-06-27 - loop_ - _alias.definition_id - '_atom_site_U_Fourier_param_sin' _description.text ; - 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. + 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_Fourier_param - _name.object_id sin + _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 - loop_ - _method.purpose - _method.expression - Evaluation + _units.code angstrom_squared + +save_ + +save_atom_site_U_ortho_param.id + + _definition.id '_atom_site_U_ortho_param.id' + _definition.update 2014-06-27 + _description.text ; - With p as atom_site_U_Fourier_param - atom_site_U_Fourier_param.sin = -p.modulus*Sin(TwoPi*p.phase) -; + 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_ATOM_SITE_U_LEGENDRE +save_ATOM_SITE_U_XHARM - _definition.id ATOM_SITE_U_LEGENDRE + _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_LEGENDRE category record - details about the Legendre polynomials used to describe the ADP + + 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. + 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_LEGENDRE + _name.object_id ATOM_SITE_U_XHARM loop_ - _category_key.name '_atom_site_u_Legendre.id' + _category_key.name '_atom_site_U_xharm.id' save_ -save_atom_site_U_Legendre.atom_site_label +save_atom_site_U_xharm.atom_site_label - _definition.id '_atom_site_U_Legendre.atom_site_label' + _definition.id '_atom_site_U_xharm.atom_site_label' _definition.update 2014-06-27 _description.text ; @@ -4782,13 +6551,13 @@ save_atom_site_U_Legendre.atom_site_label 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 + _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_Legendre + _name.category_id atom_site_U_xharm _name.object_id atom_site_label _name.linked_item_id '_atom_site.label' _type.purpose Link @@ -4798,18 +6567,18 @@ save_atom_site_U_Legendre.atom_site_label save_ -save_atom_site_U_Legendre.coeff +save_atom_site_U_xharm.coeff - _definition.id '_atom_site_U_Legendre.coeff' + _definition.id '_atom_site_rot_U_xharm.coeff' _definition.update 2014-06-27 _description.text ; 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. + 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_Legendre + _name.category_id atom_site_U_xharm _name.object_id coeff _type.purpose Measurand _type.source Assigned @@ -4820,18 +6589,17 @@ save_atom_site_U_Legendre.coeff save_ -save_atom_site_U_Legendre.id +save_atom_site_U_xharm.id - _definition.id '_atom_site_U_Legendre.id' + _definition.id '_atom_site_U_xharm.id' _definition.update 2014-06-27 _description.text ; A code identifying each component of the ADP modulation of - a given atom when the modulation is expressed in terms of Legendre - functions. + a given atom when the modulation is expressed in terms of x-harmonics. ; - _name.category_id atom_site_U_Legendre + _name.category_id atom_site_U_xharm _name.object_id id _type.purpose Key _type.source Related @@ -4840,16 +6608,16 @@ save_atom_site_U_Legendre.id save_ -save_atom_site_U_Legendre.order +save_atom_site_U_xharm.order - _definition.id '_atom_site_U_Legendre.order' + _definition.id '_atom_site_U_xharm.order' _definition.update 2019-09-25 _description.text ; - The order of the Legendre polynomial. + The order of each x-harmonic function. ; - _name.category_id atom_site_U_Legendre + _name.category_id atom_site_U_xharm _name.object_id order _type.purpose Key _type.source Assigned @@ -4859,18 +6627,18 @@ save_atom_site_U_Legendre.order save_ -save_atom_site_U_Legendre.tens_elem +save_atom_site_U_xharm.tens_elem - _definition.id '_atom_site_U_Legendre.tens_elem' + _definition.id '_atom_site_U_xharm.tens_elem' _definition.update 2014-06-27 _description.text ; A label identifying the ADP tensor element U(ij) a given atom - whose modulation is being parameterized by Legendre polynomials. + whose modulation is being parameterized by x-harmonics. ; - _name.category_id atom_site_U_Legendre + _name.category_id atom_site_U_xharm _name.object_id tens_elem _type.purpose State _type.source Assigned @@ -4889,74 +6657,39 @@ save_atom_site_U_Legendre.tens_elem save_ -save_ATOM_SITE_U_ORTHO +save_ATOM_SITE_U_XHARM_PARAM - _definition.id ATOM_SITE_U_ORTHO + _definition.id ATOM_SITE_U_XHARM_PARAM _definition.scope Category _definition.class Loop _definition.update 2014-06-27 _description.text ; - - 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). + + 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_ORTHO + _name.object_id ATOM_SITE_U_XHARM_PARAM loop_ - _category_key.name '_atom_site_U_ortho.id' - -save_ - -save_atom_site_u_ortho.atom_site_label - - _definition.id '_atom_site_U_ortho.atom_site_label' - _definition.update 2014-06-27 - _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_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 + _category_key.name '_atom_site_U_xharm_param.id' save_ -save_atom_site_U_ortho.coeff +save_atom_site_U_xharm_param.coeff - _definition.id '_atom_site_U_ortho.coeff' + _definition.id '_atom_site_rot_U_param.coeff' _definition.update 2014-06-27 _description.text ; 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. + 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_ortho + _name.category_id atom_site_U_xharm_param _name.object_id coeff _type.purpose Measurand _type.source Assigned @@ -4967,20 +6700,20 @@ save_atom_site_U_ortho.coeff save_ -save_atom_site_U_ortho.func_id +save_atom_site_U_xharm_param.id - _definition.id '_atom_site_U_ortho.func_id' + _definition.id '_atom_site_U_xharm_param.id' _definition.update 2014-06-27 _description.text ; - 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. + 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_ortho - _name.object_id func_id - _name.linked_item_id '_atom_sites_ortho.func_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 @@ -4988,240 +6721,316 @@ save_atom_site_U_ortho.func_id save_ -save_atom_site_U_ortho.id +save_ATOM_SITES_AXES - _definition.id '_atom_site_U_ortho.id' - _definition.update 2014-06-27 + _definition.id ATOM_SITES_AXES + _definition.scope Category + _definition.class Loop + _definition.update 2017-03-11 _description.text ; - A code identifying each component of the ADP modulation of - a given atom when the modulation is expressed in terms of ortho - series. + 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 atom_site_U_ortho - _name.object_id id - _type.purpose Key - _type.source Related - _type.container Single - _type.contents Code + _name.category_id MS_GROUP + _name.object_id ATOM_SITES_AXES + loop_ + _category_key.name '_atom_sites_axes.matrix_seq_id' +save_ + +save_atom_sites_axes.matrix + + _definition.id '_atom_sites_axes.matrix' + _definition.update 2019-04-01 + _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_site_U_ortho.tens_elem +save_atom_sites_axes.matrix_1_1 - _definition.id '_atom_site_U_ortho.tens_elem' + _definition.id '_atom_sites_axes.matrix_1_1' _definition.update 2014-06-27 - _description.text + _description.text ; - A label identifying the ADP tensor element U(ij) a given atom - whose modulation is being parameterized by orthogonalized - functions. + 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_site_U_ortho - _name.object_id tens_elem - _type.purpose State + _name.category_id atom_sites_axes + _name.object_id matrix_1_1 + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 1.0 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~' + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_1_1 = d.matrix[0,0] +; save_ -save_ATOM_SITE_U_XHARM +save_atom_sites_axes.matrix_1_2 - _definition.id ATOM_SITE_U_XHARM - _definition.scope Category - _definition.class Loop + _definition.id '_atom_sites_axes.matrix_1_2' _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. + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITE_U_XHARM + _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_ - _category_key.name '_atom_site_U_xharm.id' - + _method.purpose + _method.expression + Evaluation +; + With d as atom_sites_axes + + atom_sites_axes.matrix_1_2 = d.matrix[0,1] +; + save_ -save_atom_site_U_xharm.atom_site_label +save_atom_sites_axes.matrix_1_3 - _definition.id '_atom_site_U_xharm.atom_site_label' + _definition.id '_atom_sites_axes.matrix_1_3' _definition.update 2014-06-27 _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_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. + See the definition of _atom_sites_axes.matrix_1_1. ; - _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 + _name.category_id atom_sites_axes + _name.object_id matrix_1_3 + _type.purpose Number + _type.source Assigned _type.container Single - _type.contents Code + _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_site_U_xharm.coeff +save_atom_sites_axes.matrix_2_1 - _definition.id '_atom_site_rot_U_xharm.coeff' + _definition.id '_atom_sites_axes.matrix_2_1' _definition.update 2014-06-27 _description.text ; - - 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. + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id atom_site_U_xharm - _name.object_id coeff - _type.purpose Measurand + _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 - _units.code angstrom_squared + 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_site_U_xharm.id +save_atom_sites_axes.matrix_2_2 - _definition.id '_atom_site_U_xharm.id' + _definition.id '_atom_sites_axes.matrix_2_2' _definition.update 2014-06-27 _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. + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id atom_site_U_xharm - _name.object_id id - _type.purpose Key - _type.source Related + _name.category_id atom_sites_axes + _name.object_id matrix_2_2 + _type.purpose Number + _type.source Assigned _type.container Single - _type.contents Code + _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_site_U_xharm.order +save_atom_sites_axes.matrix_2_3 - _definition.id '_atom_site_U_xharm.order' - _definition.update 2019-09-25 + _definition.id '_atom_sites_axes.matrix_2_3' + _definition.update 2014-06-27 _description.text ; - - The order of each x-harmonic function. + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id atom_site_U_xharm - _name.object_id order - _type.purpose Key + _name.category_id atom_sites_axes + _name.object_id matrix_2_3 + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Integer - _enumeration.range 0: + _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_site_U_xharm.tens_elem +save_atom_sites_axes.matrix_3_1 - _definition.id '_atom_site_U_xharm.tens_elem' + _definition.id '_atom_sites_axes.matrix_3_1' _definition.update 2014-06-27 - _description.text + _description.text ; - - A label identifying the ADP tensor element U(ij) a given atom - whose modulation is being parameterized by x-harmonics. - + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id atom_site_U_xharm - _name.object_id tens_elem - _type.purpose State + _name.category_id atom_sites_axes + _name.object_id matrix_3_1 + _type.purpose Number _type.source Assigned _type.container Single - _type.contents Code + _type.contents Real + _enumeration.default 0.0 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~' + _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 +save_atom_sites_axes.matrix_3_2 - _definition.id ATOM_SITES_AXES - _definition.scope Category - _definition.class Loop - _definition.update 2017-03-11 + _definition.id '_atom_sites_axes.matrix_3_2' + _definition.update 2014-06-27 _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. + See the definition of _atom_sites_axes.matrix_1_1. ; - _name.category_id MS_GROUP - _name.object_id ATOM_SITES_AXES + _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_ - _category_key.name '_atom_sites_axes.matrix_seq_id' + _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 +save_atom_sites_axes.matrix_3_3 - _definition.id '_atom_sites_axes.matrix' - _definition.update 2019-04-01 + _definition.id '_atom_sites_axes.matrix_3_3' + _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 - + See the definition of _atom_sites_axes.matrix_1_1. ; _name.category_id atom_sites_axes - _name.object_id matrix + _name.object_id matrix_3_3 _type.purpose Number _type.source Assigned - _type.container Matrix + _type.container Single _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]] + _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_ @@ -5625,6 +7434,27 @@ save_ATOM_SITES_ORTHO save_ +save_atom_sites_ortho.coeff_cos + + _definition.id '_atom_sites_ortho.coeff_cos' + _definition.update 2017-03-11 + _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_ + save_atom_sites_ortho.coeff_cos_list _definition.id '_atom_sites_ortho.coeff_cos_list' @@ -5647,6 +7477,28 @@ save_atom_sites_ortho.coeff_cos_list save_ +save_atom_sites_ortho.coeff_sin + + _definition.id '_atom_sites_ortho.coeff_sin' + _definition.update 2017-03-11 + _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'