kipil
Hi all,
I prepared new '*.nff' with more details, and would like to update in the '/ssf' folder. I replaced an old file 'nff' file to the new 'nff' file, but the TOPAS6 program (academic version) still use the old 'nff' file, even though I moved it to the other folder.
Is there a way to make the program recognize new 'nff' file?
Thanks,
Kipil
alancoelho
If the program can't find the NFF file then it uses fixed wavelength coefficients corresponding to the nearest energy; a message, similar to the following, is displayed:
Using fixed wavelength dispersion coefficients for atom…
The ‘str’ dependent keyword ‘report_on_str’ can be used to display the f’ and f’’ used for all atoms in the structure.
If you get stuck then send me your INP and data file and I will have a look.
kipil
Thanks for your reply!
Yes, I had that message. The format of my new nff file was wrong, and the program calculate coefficients rather than reading the new nff file. Now I solve the problem.
I have one more question. I am using absorption correction function in the resonant diffraction refinement. I found that 'mixture_MAC' value is not calculated by new nff file. I found that it is calculated from the file in '/mac' folder.
Is there a way to report f' and f'' value from the given wavelength? Then I can calculate correct 'mixture_MAC' value from those.
Thanks,
Kipil
rowlesmr
Hi Kipil
You can also set the f' and f'' values in the input file.
Look up the f0_f1_f11_atom, f0, f1, and f11 keywords in the TechRef.
Matthew
kipil
Hi Matthew,
Thanks for your comment. My refinement has another issue. I know the exact lattice parameter of my material, but the energy is not defined. So I refine the energy of the X-ray to the lattice parameter. The f' and f'' are so sensitive to the energy as I measured several diffraction patterns across the edge, for the resonant diffraction. This is a reason why I want to get the f' and f'' value from the Topas program rather than giving the value.
Kipil
alancoelho
Hi Kipil
The report_on_str keyword outputs the f' and f'' (for version 6). Including the keyword for CeO2 gives:
*** f1 and f11 values for CeO2 ***
Ce+4 -1.81997611 10.0820179
O-2 0.0523209357 0.0337069703
cheers
alan
kipil
Thanks Alan,
I would like to use those value (f1 and f11) during the refinement, using f11 value for absorption calibration instead of 'mixture_MAC' value. Can you please let me know if there is a way to call those value in the .inp file?
To be clear, what I would like to know is whether I can record f11 value to other parameters for additional calculation.
Ex) prm !absorption =Get(f11);
Thanks,
Kipil
alancoelho
>what I would like to know is whether I can record f11 value to other
>parameters for additional calculation.
>Ex) prm !absorption =Get(f11);
You would need to explicitly define f11 and then give it a parameter name; ie.
load f0_f1_f11_atom f11 {
Pb+2
pb_f11 5 ' this is f11 for Pb
}
The parameter name pb_f11 can then be used in equations.
kipil
Thanks so much Alan!
kipil
Hi Alan,
Thanks for your previous response. I tried that command, but that command refines f1 and f11 of Ni instead of importing those values from the 'ni.nff' file from 'C:\Topas6\ssf' folder. Is there a way to only read the f1 and f11 values at specific energy instead of refining them? To be more clear, I attach a screenshot. In the screenshot, I loaded f1 and f11 curve (as function of energy) in the TOPAS program. I indicated two lines at ~7.6 keV and ~8.2 keV. For example, I would like to import f1 and f11 values from those two specific energies in my script. Then it would be helpful to calculate absorption correction factor for resonant diffraction.
https://www.dropbox.com/s/rdmvwbz6ull1nl3/f1f11.png?dl=0
Thanks,
Kipil
rowlesmr
maybe try
load f0_f1_f11_atom f11 {
Pb+2
!pb_f11 5 ' this is f11 for Pb
}
kipil
Hi Matthew,
Thanks for suggesting. Unfortunately, it does not work. I think that function apply a fixed value of Pb_f11 as 5. For example, if I use really big vale like '!ni_f11 10000', the refinement diverge.
Thanks,
Kipil
alancoelho
Hi Kipil
>Is there a way to only read the f1 and f11 values at specific energy instead of refining them
There isn’t; what I think you want is a phase dependent function that looks something like:
str
prm = Get_f1(Al); 0
prm = Get_f11(Al); 0
etc…
I will try and put this in for the next version.
cheers
alan
kipil
Yes, that kind of function is what I want to use.
Thanks for your reply, and I am looking forward to using it in the next version!
Best,
Kipil