pascal
Hello everybody,
I have an issue concerning rigid bodies which I am sure someone can come up with a better solution for.
I very often have structures that require a rigid or semi-rigid tetrahedron to be modelled.
Commonly I do this by defining the tetrahedron with the macro using the point_for_site definition.
Here is an example of a tetrahedron sitting on special position ..m:
' Tetrahedra(B1, H21, H22, H23)
rigid
point_for_site B1
' point_for_site H13 ux = -0.816496580927726 r; uy = 0.4714045207910317 r; uz = -r/3;
point_for_site H13 ux = 0.816496580927726 r; uy = 0.4714045207910317 r; uz = -r/3;
point_for_site H11 uy = -0.942809041582063 r; uz = -r/3;
point_for_site H12 uz = r;
' point_for_site A1 ux = 0.1; uy = 0; uz = 0;
Translate_point_amount(B1, -) operate_on_points "B* H* A*"
rotate 90.0 qa 1
rotate 30.0 qb 1
rotate @ 188.96804`_1.73326 qc 1
' Rotate_about_points (90, B1, A1, "H11 H12 H13")
Translate_point_amount(B1, +) operate_on_points "B* H* A*"
translate
ta @ 0.91324`_0.00088 min = Val-.5/Lpa; max = Val+.5/Lpa;
tb @ 0.97969`_0.00103 min = Val-.5/Lpb; max = Val+.5/Lpb;
tc 0.25 min = Val-.5/Lpc; max = Val+.5/Lpc;
start_values_from_site B1
prm r 1.13997`_0.00682_LIMIT_MIN_1.13 min 1.13 max 1.15
' prm !r 1.08
This macro is excellent for general positions but as most users I am having trouble with the special ones.
I can get around this quite well by rotating the tetrahedron manually until atoms are reproduced by the corresponding symmetry operations correctly, due to the convention between internal kartesian coordinates of the rigid body and the crystallographic axes.
for the above give example on ..m
rotate 90.0 qa 1
rotate 30.0 qb 1
rotate @ 188.96804`_1.73326 qc 1
' Rotate_about_points (90, B1, A1, "H11 H12 H13")
here I have rotated 90° around a followed by 30° around b. Rotation around c is undefined due to ..m.
Now this works, but gets really tedious really quickly when you have many different .inp files to write or sub- supergroups to check. Especially in monoclinic systems this approach is not very good.
Is there any way, in TOPAS Academic, that allows you to basically just place a rigid body on a special whyckoff site and let TOPAS do the rest? An example where this is done would be FOX, which we use for structure solution.
On another note, is there an editor that can transform .cif files into .inp syntax for TOPAS?
I greatly appreciate any advice which makes writing the rigid-body easier and quicker, as an inexperienced TOPAS academic user I find it really hard to find anything on this.
Thanks a lot to everyone!!
Pascal
alancoelho
Hi Pascal
The occ_merge keyword merges atoms such that when atoms are coincident the occupancy is adjusted. Look up occ_merge in the Technical_Reference.PDF. Also view the test_example\occ-merge.inp example where for PbSO4 the following is used:
occ_merge S* occ_merge_radius .6
occ_merge O* occ_merge_radius .6
occ_merge Pb* occ_merge_radius .6
cheers
alan
pascal
Hi Alan,
thanks for your quick answer :)
Actually I am not so much worried about occupancies, I can correct this manually anyhow in the inp file, our structures are not that huge.
My problem is much more about actually inserting the tetrahedron and orienting it in such a way that it actually stays a tetrahedron. The convention between the internal kart coord of the rigid body and the crystallographic system mean that on special positions the symmetry of the site and that of the rigid body (as inserted following this convention) usually won't coincide.
For now I am placing it with the central atom on the respective wyckoff position, if this is a special one the tetrahedron as defined by the macro above will have too many atoms and bad angles.
I then visually inspect the structure in diamond e.g. and then decide how to rotate around which axes. This is quite quick for most space groups but when you have many different sites occupied by rigid bodies or it goes monoclinic the procedure gets to be quite annoying.
Maybe I am missing a point here... but I have not found a better method.
The occupancy correction you were mentioning is an issue when the respective rigid body has been placed on a special position, if I understand correctly.
hmm.. not sure if I am being clear ...?
Pascal