Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/common.php on line 1955

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/actions.php on line 38
adps_with_symmetry_constraints [topas wiki]

User Tools

Site Tools


adps_with_symmetry_constraints

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
adps_with_symmetry_constraints [2018/03/06 02:47] rowlesmr3adps_with_symmetry_constraints [2024/02/10 07:58] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== ADPs with Symmetry Constraints ======
 +Description: Include symmetry constraints with anisotropic displacement parameters.
 +
 +Comment: In a particular version of Topas 5, it doesn't constrain the values of anisotropic displacement parameters according to the site symmetry. Symmetry constraints were taken from [1], which is a reprint of [2].
 +
 +In all other versions of Topas, use the keyword "adps" to get Topas to insert the correct, symmetry-constrained values.
 +
 +The macros below correspond to Table 4.1 in [1], which refers to Table 4.2, which gives the necessary restrictions for each Wyckoff site in each spacegroup. I'm assuming that a general position in any space group has no constraints on the ADP values.
 +
 +
 +The U12, U13, U23 values in the tables are listed as 2*U12, 2*U13, 2*U23, so I think this means that they should be divided by two. But I think this should only be an issue in nos 13-16, where there is a constraint between U22 and U12.
 +
 +Note added by John:
 +Be careful in space group 227 if you're using the Willis table.  It's missing one "18" in the list.  This means that the constraints for Wyckoff sites f onwards are displace one column to the left.  It should read "17 17 18 18 18 9 6 10".
 +
 +The Willis table is {{ :willis_adps.pdf |here}}.  You should always check carefully against (e.g. international tables) when you don't use TOPAS to generate adps.  A program like VESTA will also warn you if they are incorrect.  There is a small number of space-group/Wyckoff site combinations where TOPAS crashes when generating adps so this is sometimes needed.
 +
 +
 +References: 
 +  * [1] Willis, B. T. M., and A. W. Pryor. 1975. Thermal Vibrations in Crystallography. London: Cambridge University Press, pp. 104-110.
 +  * [2] [[https://doi.org/10.1107/S0365110X66000318|Peterse, W. J. A. M., and J. H. Palm. 1966. "The Anisotropic Temperature Factor of Atoms in Special Positions." Acta Crystallographica 20 (1): 147-150.]]
 +
 +Contributed by: Matthew Rowles
 +
 +<code topas>
 +macro ADP(U11, U22, U33, U12, U13, U23) {
 + u11 U11
 + u22 U22
 + u33 U33
 + u12 U12
 + u13 U13
 + u23 U23
 +}
 +
 +macro ADP_0 (U11, U22, U33, U12, U13, U23) { ADP(U11, U22       , U33       , U12         , U13       , U23         ) }
 +macro ADP_1 (U11, U22, U33,      U13     ) { ADP(U11, U22       , U33       , 0           , U13       , 0           ) }
 +macro ADP_2 (U11, U22, U33, U12          ) { ADP(U11, U22       , U33       , U12         , 0         , 0           ) }
 +macro ADP_3 (U11, U22, U33,           U23) { ADP(U11, U22       , U33       , 0           , 0         , U23         ) }
 +macro ADP_4 (U11, U22, U33               ) { ADP(U11, U22       , U33       , 0           , 0         , 0           ) }
 +macro ADP_5 (U11,      U33, U12          ) { ADP(U11, =Get(u11);, U33       , U12         , 0         , 0           ) }
 +macro ADP_6 (U11,      U33, U12, U13     ) { ADP(U11, =Get(u11);, U33       , U12         , U13       , =Get(u13);  ) }
 +macro ADP_7 (U11,      U33, U12, U13     ) { ADP(U11, =Get(u11);, U33       , U12         , U13       , =-Get(u13); ) }
 +macro ADP_8 (U11,      U33               ) { ADP(U11, =Get(u11);, U33       , 0           , 0         , 0           ) }
 +macro ADP_9 (U11, U22,                U23) { ADP(U11, U22       , =Get(u22);, 0           , 0         , U23         ) }
 +macro ADP_10(U11, U22,      U12,      U23) { ADP(U11, U22       , =Get(u22);, U12         , =Get(u12);, U23         ) }
 +macro ADP_11(U11, U22,           U13, U23) { ADP(U11, U22       , =Get(u22);, =-Get(u13)  , U13       , U23         ) }
 +macro ADP_12(U11, U22                    ) { ADP(U11, U22       , =Get(u22);, 0           , 0         , 0           ) }
 +macro ADP_13(U11, U22, U33,      U13     ) { ADP(U11, U22       , U33       , =Get(u22)/2;, U13       , 0           ) }
 +macro ADP_14(U11, U22, U33               ) { ADP(U11, U22       , U33       , =Get(u22)/2;, 0         , 0           ) }
 +macro ADP_15(U11, U22, U33,      U13     ) { ADP(U11, U22       , U33       , =Get(u22)/2;, U13       , =2 Get(u13);) }
 +macro ADP_16(U11,      U33               ) { ADP(U11, =Get(u11);, U33       , =Get(u11)/2;, 0         , 0           ) }
 +macro ADP_17(U11                         ) { ADP(U11, =Get(u11);, =Get(u11);, 0           , 0         , 0           ) }
 +macro ADP_18(U11,           U12          ) { ADP(U11, =Get(u11);, =Get(u11);, U12         , =Get(u12);, =Get(u12);  ) }
 +</code>
 +