### Re: Anisotropic peak broadening with TOPAS

```
Dear Topas users,

with a (probably clumsy) solution to achieve my
goal (see my original post far down below).

For those who are interested, I'll explain it
in relatively high detail, but before I do so,
I want to make some statements to prevent
unnecessary discussions.

The reasoning behind my doing is the following:
Investigating a large series of similar but
somehow variable samples, my goal is to derive
numerical parameters for each sample from its
powder XRD. Using these parameters, I can compare
and group samples, e.g. by making statements
like sample A and B are similar (or dissimilar)
with respect to this parameter. Thus, the primary
task is to parametrize the XRD results. Ideally,
such parameters would have some physical meaning,
like lattice parameters, crystallite size etc.
However, this does not necessarily mean that I
would interpret or trust parameters like e.g.
LVol-IB on an absolute scale!!! After all, it
is mainly relative trends I'm interested in.

LVol-IB is is one of the parameters I get and
tabulate if the peak broadening can be successfully
[For details on LVol-IB, see Topas (v3) Users
Manual, sections 3.4.1 and 3.4.2)]
If, however, the peak broadening is clearly
anisotropic, applying the isotropic model gives
inferior fit results. LVol-IB is still calculated,
but more or less meaningless.
Thus, I wanted an anisotropic fit model that BOTH
(a) yields a satisfactory fit AND (b) still
delivers parameters with a similar meaning as
the isotropic LVol-IB.

Applying a spherical harmonics function satisfied
condition (a), but not (b) (maybe just due to my
lack in mathematical insight).

Applying Peter Stephens' code (but modified for
size broadening) met condition (a) and brought
me halfway to reach condition (b). As I did not
find a way of teaching (coding) Topas to do
all calculations I wanted in the launch mode,
I developed a workaround to reach (b).

Now in detail:
The modified Stephens code I use looks like
this:
prm s400  29.52196`_2.88202 min 0
prm s040  40.52357`_4.10160 min 0
prm s004  6631.09739`_227.63909 min 0
prm s220  54.23582`_13.82762
prm s202  1454.83518`_489.04664
prm s022  5423.10499`_765.48349
prm mhkl = H^4 s400 + K^4 s040 + L^4 s004 + H^2 K^2 s220 + H^2
L^2 s202 + K^2 L^2 s022;

lor_fwhm = (D_spacing^2 * Sqrt(Max(0,mhkl)) / 1) / Cos(Th);
Compared to Peters original code, I have changed
the strain dependence * Tan(Th) into the size
dependence / Cos(Th) and re-arranged the remaining
terms in that line of code.
[Peter has mentioned that from the fundamental
theoretical point of view, spherical harmonics
might be better justified then his formula
for the case of SIZE broadening. Anyway,
it works for me from the practical point of
view, thus I'll use it.]
This rearrangement emphasizes the analogy between
the isotropic case c / Cos(Th) (where c is valid
for ALL peaks) and the anisotropic one, where
c is replaced by the hkl dependent term
(D_spacing^2 * Sqrt(Max(0,mhkl)) / 1).
Thus, I freely interpret this term as some
sort of c(hkl), which I will use for some
specific values of hkl to derive hkl dependent
analogues of LVol-IB.
The first step of this calculation I managed
to code for Topas based on Peters equations,
but for specifc hkl values:
prm ch00 = (Lpa^2 * Sqrt(s400) / 1); :  0.24382`_0.01190
prm c0k0 = (Lpb^2 * Sqrt(s040) / 1); :  0.45185`_0.02287
prm c00l = (Lpc^2 * Sqrt(s004) / 1); :  0.13114`_0.00225
As you can see, the c(hkl) term becomes
very simple for the cases hkl = 100, 010
and 001. For these reflections, the
D_spacing can be replaced with the
corresponding reserved variables for the
lattice parameters.

Now, I want to calculate something like
LVol-IB(hkl) from these c(hkl) values.
I still don't know how to code this in launch
mode, so I developed a workaround and switch
back to GUI mode.
In the GUI, I do the following:
1) I fix the lattice parameters to the
values obtained after running the anisotropic
fit in launch mode.
2) I deactivate the Cry Size L parameter on
the Structure tab and add a Lorentzian type
Convolutions tab instead. Both do the same
thing, but only the latter has the input format
I need.
3) I paste one of the c(hkl) values from
the *.out file of the anisotropic refinement,
e.g. the value calculated for ch00, into the
Value box of that convolution and keep
it fixed. Then I start the refinement.
Since lattice parameters and peak shape
are fixed, there is not much to be refined.
Not surprisingly, I obtain an ugly looking
fit in which only few reflections are
adequately described (e.g. the h00 series in
this case).
4) I use the Capture option to grab the
calculated pattern which is then inserted as
a new range. I export this range as ```

### RE: Anisotropic peak broadening with TOPAS

```Hi Frank

I'm not 100% sure what you have been doing but I think the copying and
pasting to get LVol values for particular sets of hkls can be maybe done in
a more simple manner as shown below. If it's not clear then contact me off
the list.

prm lor_h00 300 min .3
prm lor_0k0 300 min .3
prm lor_00l 300 min .3
prm lor_hkl 300 min .3
prm gauss_h00 300 min .3
prm gauss_0k0 300 min .3
prm gauss_00l 300 min .3
prm gauss_hkl 300 min .3

prm = 1 / IB_from_CS(gauss_h00, lor_h00); : 0 ' This is LVol
prm = 0.89 / Voigt_FWHM_from_CS(gauss_h00, lor_h00); : 0 ' This is
LVol_FWHM

lor_fwhm =
(0.1 Rad Lam / Cos(Th)) /
IF And(K == 0, L == 0) THEN
lor_h00
ELSE IF And(H == 0, L == 0) THEN
lor_0k0
ELSE IF And(H == 0, K == 0) THEN
lor_00L
ELSE
lor_hkl
ENDIF
ENDIF
ENDIF
;

gauss_fwhm =
(0.1 Rad Lam / Cos(Th)) /
IF And(K == 0, L == 0) THEN
gauss_h00
ELSE IF And(H == 0, L == 0) THEN
gauss_0k0
ELSE IF And(H == 0, K == 0) THEN
gauss_00L
ELSE
gauss_hkl
ENDIF
ENDIF
ENDIF
;

Cheers
Alan

-Original Message-
From: Frank Girgsdies [mailto:[EMAIL PROTECTED]
Sent: Friday, 31 October 2008 11:29 PM
To: Frank Girgsdies; Rietveld_l@ill.fr
Subject: Re: Anisotropic peak broadening with TOPAS

Dear Topas users,

with a (probably clumsy) solution to achieve my
goal (see my original post far down below).

For those who are interested, I'll explain it
in relatively high detail, but before I do so,
I want to make some statements to prevent
unnecessary discussions.

The reasoning behind my doing is the following:
Investigating a large series of similar but
somehow variable samples, my goal is to derive
numerical parameters for each sample from its
powder XRD. Using these parameters, I can compare
and group samples, e.g. by making statements
like sample A and B are similar (or dissimilar)
with respect to this parameter. Thus, the primary
task is to parametrize the XRD results. Ideally,
such parameters would have some physical meaning,
like lattice parameters, crystallite size etc.
However, this does not necessarily mean that I
would interpret or trust parameters like e.g.
LVol-IB on an absolute scale!!! After all, it
is mainly relative trends I'm interested in.

LVol-IB is is one of the parameters I get and
tabulate if the peak broadening can be successfully
[For details on LVol-IB, see Topas (v3) Users
Manual, sections 3.4.1 and 3.4.2)]
If, however, the peak broadening is clearly
anisotropic, applying the isotropic model gives
inferior fit results. LVol-IB is still calculated,
but more or less meaningless.
Thus, I wanted an anisotropic fit model that BOTH
(a) yields a satisfactory fit AND (b) still
delivers parameters with a similar meaning as
the isotropic LVol-IB.

Applying a spherical harmonics function satisfied
condition (a), but not (b) (maybe just due to my
lack in mathematical insight).

Applying Peter Stephens' code (but modified for
size broadening) met condition (a) and brought
me halfway to reach condition (b). As I did not
find a way of teaching (coding) Topas to do
all calculations I wanted in the launch mode,
I developed a workaround to reach (b).

Now in detail:
The modified Stephens code I use looks like
this:
prm s400  29.52196`_2.88202 min 0
prm s040  40.52357`_4.10160 min 0
prm s004  6631.09739`_227.63909 min 0
prm s220  54.23582`_13.82762
prm s202  1454.83518`_489.04664
prm s022  5423.10499`_765.48349
prm mhkl = H^4 s400 + K^4 s040 + L^4 s004 + H^2 K^2 s220 +
H^2
L^2 s202 + K^2 L^2 s022;
lor_fwhm = (D_spacing^2 * Sqrt(Max(0,mhkl)) / 1) /
Cos(Th);
Compared to Peters original code, I have changed
the strain dependence * Tan(Th) into the size
dependence / Cos(Th) and re-arranged the remaining
terms in that line of code.
[Peter has mentioned that from the fundamental
theoretical point of view, spherical harmonics
might be better justified then his formula
for the case of SIZE broadening. Anyway,
it works for me from the practical point of
view, thus I'll use it.]
This rearrangement emphasizes the analogy between
the isotropic case c / Cos(Th) (where c is valid
for ALL peaks) and the anisotropic one, where
c is replaced by the hkl dependent term
(D_spacing^2 * Sqrt(Max(0,mhkl)) / 1).
Thus, I freely interpret this term as some
sort of c(hkl), which I will use for some
specific values of hkl to derive hkl dependent
analogues of LVol-IB.
The first step of this calculation I managed
to code for Topas based on Peters equations,
but for specifc hkl values:
prm ch00 = (Lpa^2 * Sqrt(s400) / 1); :  0.24382`_0.01190```

### Re: Anisotropic peak broadening with TOPAS

```
Dear Matthew,

I hope to look a bit deeper into it (and try the code)
a little later today.
At the first glance, however, I'm not sure whether
treating hk0 and hkl the same way would be appropriate
from the theoretical point of view.
But as I'm a practical guy, I will just give it a try.

Thanks again!
Frank

[EMAIL PROTECTED] wrote:

Sorry, pressed the wrong button...

If you just want to try fitting the peaks, you could try something like this:

str
phase_name Metal_oxide
local broad 100 'crys size for hk0 and hkl
local sharp 2000 'crys size for 00l
local csL =
IF (And(H == 0, K == 0, L  0)) THEN
sharp
ELSE
ENDIF;

CS_L(csL)
'insert remainder of structure...

I don't know much about Lvol, but isn't an average crystallite size for a
highly asymmetric crystal not all that meaningful? I am willing to be educated here, as I
haven't had much need to get accurate crystallite size from diffraction data before

Cheers

Matthew

Matthew Rowles

CSIRO Minerals
Box 312
Clayton South, Victoria
AUSTRALIA 3169

Ph: +61 3 9545 8892
Fax: +61 3 9562 8919 (site)
Email: [EMAIL PROTECTED]
-Original Message-
From: Frank Girgsdies [mailto:[EMAIL PROTECTED]
Sent: Wednesday, 29 October 2008 22:05
To: Rietveld_l@ill.fr
Subject: Anisotropic peak broadening with TOPAS

Dear Topas experts,
C) One could leave the spherical harmonics approach
and go to a user defined model, which refines different
Cry Size parameters for different crystal directions.
In my case, two parameters would probably be sufficient,
one for the c-direction, and a common one for the a- and
b-direction.
The Topas Technical Reference, section 7.6.3. gives a
similar example of a user defined peak broadening function,
depending on the value of l in hkl.
I could probably come up with an analogous solution
which has a 1/cos(theta) dependence and two parameters,
one for the 00l and one for the hk0 case.
My problem with this approach is how to treat the
mixed reflections hkl. I suppose they should be
scaled with a somehow weighted mix of the two
parameters, where the weighting depends on the
angle between the specific hkl and the c-axis.
However, I no idea how a physically reasonable
weighting scheme (and the corresponding Topas syntax)
should look like.
--
Frank Girgsdies
Department of Inorganic Chemistry
Fritz Haber Institute (Max Planck Society)
--

```

### RE: Anisotropic peak broadening with TOPAS

```Sorry, pressed the wrong button...

If you just want to try fitting the peaks, you could try something like this:

str
phase_name Metal_oxide
local broad 100 'crys size for hk0 and hkl
local sharp 2000 'crys size for 00l
local csL =
IF (And(H == 0, K == 0, L  0)) THEN
sharp
ELSE
ENDIF;

CS_L(csL)
'insert remainder of structure...

I don't know much about Lvol, but isn't an average crystallite size for a
highly asymmetric crystal not all that meaningful? I am willing to be educated
here, as I haven't had much need to get accurate crystallite size from
diffraction data before

Cheers

Matthew

Matthew Rowles

CSIRO Minerals
Box 312
Clayton South, Victoria
AUSTRALIA 3169

Ph: +61 3 9545 8892
Fax: +61 3 9562 8919 (site)
Email: [EMAIL PROTECTED]
-Original Message-
From: Frank Girgsdies [mailto:[EMAIL PROTECTED]
Sent: Wednesday, 29 October 2008 22:05
To: Rietveld_l@ill.fr
Subject: Anisotropic peak broadening with TOPAS

Dear Topas experts,
C) One could leave the spherical harmonics approach
and go to a user defined model, which refines different
Cry Size parameters for different crystal directions.
In my case, two parameters would probably be sufficient,
one for the c-direction, and a common one for the a- and
b-direction.
The Topas Technical Reference, section 7.6.3. gives a
similar example of a user defined peak broadening function,
depending on the value of l in hkl.
I could probably come up with an analogous solution
which has a 1/cos(theta) dependence and two parameters,
one for the 00l and one for the hk0 case.
My problem with this approach is how to treat the
mixed reflections hkl. I suppose they should be
scaled with a somehow weighted mix of the two
parameters, where the weighting depends on the
angle between the specific hkl and the c-axis.
However, I no idea how a physically reasonable
weighting scheme (and the corresponding Topas syntax)
should look like.
--
Frank Girgsdies
Department of Inorganic Chemistry
Fritz Haber Institute (Max Planck Society)
--

```