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/Action/Export.php on line 106
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/Action/Export.php on line 106
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/Action/Export.php on line 106
====== 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
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); ) }