chloec19
Hi all,
I am performing a distortion mode refinement from tetragonal to monoclinic C2/c. I have started by refining simply the strain modes (GM5+, GM4+, 2 * GM1+). However, the resulting lattice parameters have alpha ~ 90.5 gamma ~ 90.1, so the distortions have resulted in a triclinic cell.
I wonder if this is just a feature of rounding from all the transformations required, or whether there is some other way of constraining my refinement to make sure alpha = gamma = 90?
Thanks in advance for any insight,
Chloe
johnsoevans
Chloe,
Do you really need to refine the strain directly?
You should just be able to refine a/b/c/al/be/ga in the same way as you would for a conventional refinement. i.e. fix al/ga to 90. Just check that the low symmetry description is in a standard b-unique monoclinic setting.
John
rowlesmr
Found them. I've attached the input file I sent to Alan. I can't do the data file as it is too big, and I'm on my phone.
Emails are reproduced below. I'm going to assume that my input file is legible. I can't remember what the final fix was, but perhaps we should pass the result on to Brandon to update the output from isodistort.
From me to Alan :
Hi Alan
I’ve come across a slight difference in refined cell parameter values depending on whether or not I use a macro, or explicitly type out all of the formulae contained in the macro.
I’m doing a distortion mode refinement with a structure generated from Isodistort. The macros in question are also generated by Isodistort.
I am doing a strain-mode refinement, where I refine strain modes to give me the lattice parameters. There are 3 strain modes to give the 3 unit cell lengths. They are also used to calculate al, be and ga, but, in my case, these should evaluate to exactly 90.
If I use the macros, then the beta parameter gives a value of ~90.00002°, and if I explicitly copy out the macro contents, then the value is exactly 90. Furthermore, if I fix the three strain modes and use the macros, the a,c,al,be,ga parameters show as refining. If I fix the three strain modes and do not use the macros, then all cell parameters are shown as fixed parameters (as expected).
By inspection of the error matrix, it appears that parameter “a0x” (see line 227) is refining when I use macros.
You can switch on and off USE_MACROS on line 43.
The strain mode parameters are on lines 59-61.
The strain-mode macros are on lines 215-274.
The expected behaviour is that al, be, ga always evaluate to exactly 90, and that all cell parameters show as not refining.
Regards
Matthew
Cccccccccccccccccccvcccccccccccccccccccccc
From Alan to me
Hi Matthew
First, use Rad instead of radian; ie.
prm radian = Rad;
Rad is defined with double precision in mind in TOPAS.INC, ie.
macro Rad { 57.2957795130823 }
This makes a difference when one wants 90 degrees to the nth decimal place.
The With and Without USE_MACROS is doing different things. Consider the following:
macro fwhm(& g)
{
prm f = g;
gauss_fwhm = f;
}
fwhm(2)
Here the macro expands to (ignoring the comment):
prm f = 2; ‘ f is refined as the equation contains only constants and evaluates to a constant
gauss_fwhm = f;
f is refined and the gauss_fwhm is refined. This what you have in your USE_MACROS case.
If we don’t have USE_MACROS and instead write out fwhm then we would have:
prm !g 2
prm f = g; ‘ f is not refined as g is not refined
gauss_fwhm = f;
The f parameter is similar to your a0x parameter. With USE_MACROS in your INP file, the a0x line in TOPAS.LOG is:
prm a0x = 3.87600;
a0x is refined.
Without USE_MACROS the line in TOPAS.LOG is:
prm a0x = pa0;
However, pa0 is defined as:
prm !pa0 3.87600
Thus a0x is not refined.
Thus a0x is refined when USE_MACROS is defined and not refined when USE_MACROS is not defined.
Not sure how to make things work better in regards to defining what is refined and what is not refined except one has to use the ! character where needed.
Cheers
Alan