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,

thanks to your helpful input, I've now come up
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
described as isotropic size broadening.
   [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)) / 10000) /
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)) / 10000).
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) / 10000); :  0.24382`_0.01190
         prm c0k0 = (Lpb^2 * Sqrt(s040) / 10000); :  0.45185`_0.02287
         prm c00l = (Lpc^2 * Sqrt(s004) / 10000); :  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
1/Cos(Th) convolution on the "Additional
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 a separate
RAW file, then I delete the range again.
5) I repeat steps 3 and 4 for c0k0 and c00l.
6) I delete the additional convolution
again and re-activate the "Cry Size L" parameter
instead. I make sure that the check box for
calculating LVol-IB is activated.
7) I replace the measured range with one of
the previously exported calculated ranges
and start the refinement. After convergence,
I obtain the LVol-IB value for this particular
crystal direction and write it down.
   [Of course, this fit will be a "perfect" one,
   which unfortunately means that the
   LVol-IB(hkl) parameter obtained will have
   an error calculated as zero.]
8) I repeat step 7 for the remaining two
calculated patterns/crystal directions.

Finally, I have three parameters
LVol-IB(h00), LVol-IB(0k0) and LVol-IB(00l),
which I freely interpret as "anisotropic
equivalents" of the isotropic LVol-IB, which
is exactly what I originally wanted.

PLEASE NOTE: I definitely do NOT claim that
these parameters have any real physical
meaning. I just use them to "parametrize"
sample XRDs exhibiting anisotropic size
broadening. I have chosen this particular
approach because I consider it intuitive
(and I'm an intuitive guy).

Of course, I will try in the future to see
if there are correlations between these
anisotropic "size" parameters and other
experimental results, especially from
the shape analysis of electron microscopy.

I hope that my lengthy explanations are
clear enough and maybe useful for some
of you.

Thanks again to all people who sent
replies, especially to Peter Stephens!

Of course, If someone could teach me
how to replace my clumsy GUI workaround
with some nice launch mode code, I'd
really appreciate that...

Cheers,
Frank


Frank Girgsdies wrote:
> Dear Topas experts,
> 
> this is my first email to the list, so if you would like
> to know something about my background, please refer to
> the "about me" section at the end of this mail.
> 
> My question is concerning advanced modeling of anisotropic
> peak broadening with Alan Coelhos program "Topas".
> 
> I'm working on a transition metal mixed oxide phase of
> orthorhombic symmetry. Composition, lattice parameters,
> crystallite size etc. may vary from sample to sample.
> I'm using Topas to fit the powder patterns with a
> "structure phase". If the peaks exhibit more or less
> homogeneous peak widths, I refine the "Cry Size L"
> and/or "Cry Size G" parameters to model the peak
> shapes. Thus, I can obtain the LVol-IB as a measure
> for the average crystallite size.
> 
> In some cases, however, I observe strongly anisotropic
> peak broadening, with the 00l series of reflections
> being much sharper then the hk0 and hkl reflections.
> This observation fits nicely with the electron
> microscopy results, where the crystals are needles of
> high aspect ratio, the long axis being the c-axis of
> the crystal (thus, I assume that the peak broadening
> is dominated by the crystallite size effect, so
> let us ignore the possibility of strain etc.).
> In such case, I leave the GUI and switch to launch mode,
> where I can successfully model the anisotropic peak
> broadening with a second order spherical harmonics
> function, following section 7.6.2. of the Topas (v3.0)
> Technical Reference. So far, so good.
> 
> However, since the peak width is now primarily a
> function of hkl (i.e. the crystallographic direction)
> instead of a function of 1/cos(theta), I lose the size
> related information. Of course, I'm aware of the
> fact that the LVol-IB parameter is based on the
> 1/cos(theta) dependence and thus cannot be calculated
> for a spherical harmonics model.
> But the peaks still have a width, so it should be
> possible somehow to calculate hkl-dependent size
> parameters. And this is the point where I'm hoping
> for some input from more experienced Topas users.
> 
> I could imagine three directions of approach:
> 
> A) The refined spherical harmonics functions
> yields a set of coefficients. I'm not a mathematician,
> so how to make use of these coefficients for my
> purpose is beyond my comprehension.
> I imagine the refined spherical harmonics function
> as a 3-dimensional correction or scaling function,
> which yields different values (scaling factors)
> for different crystallographic directions.
> Thus, it should be possible to calculate the
> values for certain directions, e.g. 001 and 100.
> I would expect that the ratio of these two values
> is somehow correlated with the physically observed
> aspect ratio of the crystal needles, or at least a
> measure to quantify the "degree of anisotropy".
> Is there a recipe to re-calculate (or output) these
> values for certain hkl values from the set of
> sh coefficients?
> 
> B) As far as I understand the spherical harmonics
> approach as given in the Topas manual, it REPLACES
> the Cry Size approach. However, it might be possible
> to COMBINE both functionalities instead. Within a
> given series of reflections (e.g. 00l) the
> 1/cos(theta) dependence might still be valid.
> I could imagine that the spherical harmonics model
> might be used as a secondary correction function
> on top of a 1/cos(theta) model.
> I think such approach would be analogous to the use
> of spherical harmonics in a PO model, where the
> reflection intensities are first calculated from
> the crystal structure model and then re-scaled
> with a spherical harmonics function to account for
> PO.
> If such an approach would be feasible, it should
> be possible to extract not only relative (e.g. aspect
> ratio) information as in A), but direction dependent
> analogues of LVol-IB, e.g. LVol-IB(a), LVol-IB(b)
> and LVol-IB(c) for an orthorhombic case.
> 
> 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.
> 
> So, if anyone has a suggestion how to realize one
> or another approach to model anisotropic peak
> broadening AND extract size-related parameters
> using Topas, I'd be very grateful.
> Please mention the letter of the approach (A, B, C)
> you are referring to in your reply.
> Thanks!
> 
> And now, as this is my first mail to the list,
> a brief introduction about myself:
> I'm an inorganic chemist who became interested
> in crystal structures and has picked up some
> crystallography knowledge here and there.
> I did my diploma in solid state chemistry,
> using powder diffraction on perowskite-related
> materials.
> For my Ph.D. I turned to organometallic chemistry
> to learn single crystal structure analysis on
> molecular compounds, solving around 100 small
> molecule crystal structures.
> Now, I'm back to solid state chemistry and powder
> diffraction in the context of heterogeneous
> catalysis. Exploiting the structure solution
> approach of the Topas software, I even managed to
> solve two inorganic structures from powder data
> (mainly by trial-and-error), thus bridging between
> my current and former occupation.
> I am a pragmatically oriented guy, i.e. I am a
> "structure solver", not a real crystallographer,
> because I lack the deep and thorough training
> of a real crystallographer. My mathematical
> and programming skills are just basic.
> I tend to dive into such things just as deep as
> necessary to achieve my goals.
> I hope that you do not think by now that I am a
> "I just push the button on that black box"
> type of guy. I'm fully aware of the fact that
> some insight into the things that go on inside
> the "black box" is necessary to evaluate the
> results for their physical relevance.
> However, as my emphasis is on application of
> XRD in chemistry and not on its fundamentals,
> my insight naturally has its limitations.
> 
> Cheers,
> Frank
> 
> ------------------------------------------
> Frank Girgsdies
> Department of Inorganic Chemistry
> Fritz Haber Institute (Max Planck Society)
> ------------------------------------------
> 
> 


Reply via email to