xrayutilities-users Mailing List for xrayutilities
a package with useful scripts for X-ray diffraction physicists
Brought to you by:
dkriegner,
wintersberger
You can subscribe to this list here.
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(1) |
Nov
|
Dec
|
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
(1) |
Nov
|
Dec
|
2020 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(7) |
2021 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(4) |
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2023 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Dominik K. <dom...@gm...> - 2024-08-24 05:45:18
|
Dear all, Regarding the data import of RAS files xrayutilities I see nothing wrong with it. The data object contains three columns. If you plot only intensity then this is exactly what you get: the real measured intensity which one can also use to obtain the error bar from counting statistics. You have to multiply with the attenuation factor to get the corrected intensity. I believe this makes sense like this. kind regards Dominik On Sat, Aug 24, 2024 at 7:20 AM Dutta, Rajesh via xrayutilities-users < xra...@li...> wrote: > Dear Paritosh, > > > > Thanks for your effort and time, I appreciate it. There is no experimental > fault for the substrate peak. This was importing problem of xrayutitlities > itself. Please see the attached picture for clarity. If I just plot using > the raw data, it is fine. I found where the problem is. In the .ras file > there are three columns: 2theta, counts and attenuator normalization > factor. If you look the third column (attached) they are normalized with > the number around 45. When we plot, we need to multiply column 2 and 3 to > get the total counts. I guess, this is not included in xrayutilities and > this is why we see three bumbs if you just plot 2nd cloumn. I already > informed Dominik about this. > > > > Regarding the second strong peak, yes, they are coming from different > domain and the fringes are suppressed because of it’s higher thickness > nearly 100 nm and also probably bit rough. > > > > Regards, > > Rajesh > > > > *From:* Paritosh Wadekar <par...@gm...> > *Sent:* Friday, August 23, 2024 4:57 PM > *To:* Dutta,Rajesh <rd...@dr...> > *Subject:* Re: [Xrayutilities-users] XRD-Simulation needs elastic > parameters > > > > *External.* > > Thanks for the clarification. Well attached is a ppt with some of my > thoughts about your experimental data. Totally up to you if you want to use > it or not. > > Regards > > Paritosh > > > [image: Image removed by sender.] > > On Sat, Aug 24, 2024 at 2:56 AM Dutta,Rajesh <rd...@dr...> wrote: > > Hi Paritosh, > > > > No, it was MBE. > > > > Thanks, Rajesh > > > > *From:* Paritosh Wadekar <par...@gm...> > *Sent:* Friday, August 23, 2024 5:51 AM > *To:* Dutta,Rajesh <rd...@dr...> > *Cc:* Dominik Kriegner <dom...@gm...>; > xra...@li... > *Subject:* Re: [Xrayutilities-users] XRD-Simulation needs elastic > parameters > > > > *External.* > > Hello Rajesh, > > Interesting fittings but if I am right you have deposited your thin films > using pulsed laser deposition right ? > > Paritosh > > > > On Fri, Aug 23, 2024, 6:18 PM Dutta, Rajesh via xrayutilities-users < > xra...@li...> wrote: > > Dear Dominik, > > > > Many thanks for the fruitful hints. It is doable somehow even though it is > orthorhombic system on top of cubic. Luckily, our SrFeO2.5 (5.6, 5.65, > 15.7A) can be treated as pseudocubic system (rotating 45 deg around > c-axis). With this setting a,b axes of SrFeO2.5 become like cubic > SrTiO3(3.905A). However, I had to manually build both the SrTiO3 and > SrFeO2.5 to match the c-axis and to incorporate elastic constants as well. > Please have a look at the attached figure (simulation and experimental > data). Let me know your thoughts. > > > > Besides that, I have questions: (1) Only multibeam kinematical model takes > all the reflections using “surface_hkl=(0,0,1)” where others take only one > given (H, K, L). Is there any way to make a list for (H,K,L) so that other > model can calculate the XRD for several (H,K,L). I tried to give a list but > did not work. (2) Is the relaxation parameter treated as strain/stress > here? If not, how can I input in-plane stress or strain? I will try to fit > the data and let you know the outcomes. > > > > Thanks again, > > Bye, > > Rajesh > > > > *From:* Dominik Kriegner <dom...@gm...> > *Sent:* Thursday, August 22, 2024 5:46 AM > *To:* Dutta,Rajesh <rd...@dr...> > *Cc:* xra...@li... > *Subject:* Re: [Xrayutilities-users] XRD-Simulation needs elastic > parameters > > > > *External.* > > Dear Rajesh, > > > > Is there a standardized way the elastic parameters are provided in the cif > files? If so one could update the parser to allow to read it properly. > > > > But likely it's better you define the materials manually. I recommend you > to look at > > https://xrayutilities > .sourceforge.io/examples.html#using-the-materials-subpackage > > I am however afraid I did not include some documentation on how to add the > elastic parameters. For this maybe best look at how it is done for the > predefined materials in the code > > https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities > /materials/predefined_materials.py > > > > Finally I must warn you that I do believe that the pseudomorphic stack was > never tested for orthorhombic materials on top of a cubic material. I am > almost certain it won't exactly do what you expect. > > You might be able to help yourself and distort the material as you see > fit, but I would not rely on the pseudomorphicstack code to work without > changes! > > > > cheers > > Dominik > > > > On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users < > xra...@li...> wrote: > > Dear xrayutilities users, > > > > I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 > (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the > model using cif files. However, in the cif file seemingly it is not > possible to incorporate cij (elastic parameters). Therefore, the fitting > XRD gives an error saying “layer’ argument needs elastic parameters. > > > > How to solve this issue while importing cif files. I attach few parts of > the code below: > > > > # global parameters > > wavelength = xu.wavelength('CuKa1') > > offset = -0.00 # angular offset of the zero position of the data > > > > # set up LayerStack for simulation: SrTiO3/SrFeO2.5 > > Sr = xu.materials.elements.Sr <http://xu.materials.elements.sr/> > > Ti = xu.materials.elements.Ti > > O = xu.materials.elements.O > > Fe = xu.materials.elements.Fe > > STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) > > SFO = xu.materials.Crystal.fromCIF(os.path.join("data", > "Sr2Fe2O5-along.cif")) > > > > lSTO = xu.simpack.Layer(STO, inf) > > lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) > > > > pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) > > > > # set up simulation object > > thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) > > Cmono = cos(2 * thetaMono) > > dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, > > resolution_width=2e-3, polarization='both', > > Cmono=Cmono) > > fitmdyn = xu.simpack.FitModel(dyn) > > fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) > > fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) > > fitmdyn.set_param_hint('resolution_width', vary=True) > > params = fitmdyn.make_params() > > > > I tried to build the materials using Crystal class and SGLattice, there I > can define elastic tensors but it does not account proper Wyckoff > positions, this is why I used cif files. > > > > Any help, please let me know if you need more info. > > > > Thanks, > > Rajesh > > > > *-------------------------------------* > > *Dr. Rajesh Dutta* > > > *Research Staff Scientist Drexel University College of Engineering > Pronouns: he/his/him* > > Drexel University > 3100 Market Street > <https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> > Philadelphia, PA 19104 > <https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> > drexel.edu > > -------------------------------------------- > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > > > > > -- > > > > *Dr Paritosh Wadekar* > > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > |
From: Dutta,Rajesh <rd...@dr...> - 2024-08-23 21:11:55
|
Dear Paritosh, Thanks for your effort and time, I appreciate it. There is no experimental fault for the substrate peak. This was importing problem of xrayutitlities itself. Please see the attached picture for clarity. If I just plot using the raw data, it is fine. I found where the problem is. In the .ras file there are three columns: 2theta, counts and attenuator normalization factor. If you look the third column (attached) they are normalized with the number around 45. When we plot, we need to multiply column 2 and 3 to get the total counts. I guess, this is not included in xrayutilities and this is why we see three bumbs if you just plot 2nd cloumn. I already informed Dominik about this. Regarding the second strong peak, yes, they are coming from different domain and the fringes are suppressed because of it’s higher thickness nearly 100 nm and also probably bit rough. Regards, Rajesh From: Paritosh Wadekar <par...@gm...> Sent: Friday, August 23, 2024 4:57 PM To: Dutta,Rajesh <rd...@dr...> Subject: Re: [Xrayutilities-users] XRD-Simulation needs elastic parameters External. Thanks for the clarification. Well attached is a ppt with some of my thoughts about your experimental data. Totally up to you if you want to use it or not. Regards Paritosh [Image removed by sender.] On Sat, Aug 24, 2024 at 2:56 AM Dutta,Rajesh <rd...@dr...<mailto:rd...@dr...>> wrote: Hi Paritosh, No, it was MBE. Thanks, Rajesh From: Paritosh Wadekar <par...@gm...<mailto:par...@gm...>> Sent: Friday, August 23, 2024 5:51 AM To: Dutta,Rajesh <rd...@dr...<mailto:rd...@dr...>> Cc: Dominik Kriegner <dom...@gm...<mailto:dom...@gm...>>; xra...@li...<mailto:xra...@li...> Subject: Re: [Xrayutilities-users] XRD-Simulation needs elastic parameters External. Hello Rajesh, Interesting fittings but if I am right you have deposited your thin films using pulsed laser deposition right ? Paritosh On Fri, Aug 23, 2024, 6:18 PM Dutta, Rajesh via xrayutilities-users <xra...@li...<mailto:xra...@li...>> wrote: Dear Dominik, Many thanks for the fruitful hints. It is doable somehow even though it is orthorhombic system on top of cubic. Luckily, our SrFeO2.5 (5.6, 5.65, 15.7A) can be treated as pseudocubic system (rotating 45 deg around c-axis). With this setting a,b axes of SrFeO2.5 become like cubic SrTiO3(3.905A). However, I had to manually build both the SrTiO3 and SrFeO2.5 to match the c-axis and to incorporate elastic constants as well. Please have a look at the attached figure (simulation and experimental data). Let me know your thoughts. Besides that, I have questions: (1) Only multibeam kinematical model takes all the reflections using “surface_hkl=(0,0,1)” where others take only one given (H, K, L). Is there any way to make a list for (H,K,L) so that other model can calculate the XRD for several (H,K,L). I tried to give a list but did not work. (2) Is the relaxation parameter treated as strain/stress here? If not, how can I input in-plane stress or strain? I will try to fit the data and let you know the outcomes. Thanks again, Bye, Rajesh From: Dominik Kriegner <dom...@gm...<mailto:dom...@gm...>> Sent: Thursday, August 22, 2024 5:46 AM To: Dutta,Rajesh <rd...@dr...<mailto:rd...@dr...>> Cc: xra...@li...<mailto:xra...@li...> Subject: Re: [Xrayutilities-users] XRD-Simulation needs elastic parameters External. Dear Rajesh, Is there a standardized way the elastic parameters are provided in the cif files? If so one could update the parser to allow to read it properly. But likely it's better you define the materials manually. I recommend you to look at https://xrayutilities.sourceforge.io/examples.html#using-the-materials-subpackage I am however afraid I did not include some documentation on how to add the elastic parameters. For this maybe best look at how it is done for the predefined materials in the code https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities/materials/predefined_materials.py Finally I must warn you that I do believe that the pseudomorphic stack was never tested for orthorhombic materials on top of a cubic material. I am almost certain it won't exactly do what you expect. You might be able to help yourself and distort the material as you see fit, but I would not rely on the pseudomorphicstack code to work without changes! cheers Dominik On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users <xra...@li...<mailto:xra...@li...>> wrote: Dear xrayutilities users, I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the model using cif files. However, in the cif file seemingly it is not possible to incorporate cij (elastic parameters). Therefore, the fitting XRD gives an error saying “layer’ argument needs elastic parameters. How to solve this issue while importing cif files. I attach few parts of the code below: # global parameters wavelength = xu.wavelength('CuKa1') offset = -0.00 # angular offset of the zero position of the data # set up LayerStack for simulation: SrTiO3/SrFeO2.5 Sr = xu.materials.elements.Sr<http://xu.materials.elements.sr/> Ti = xu.materials.elements.Ti O = xu.materials.elements.O Fe = xu.materials.elements.Fe STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) SFO = xu.materials.Crystal.fromCIF(os.path.join("data", "Sr2Fe2O5-along.cif")) lSTO = xu.simpack.Layer(STO, inf) lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) # set up simulation object thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) Cmono = cos(2 * thetaMono) dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, resolution_width=2e-3, polarization='both', Cmono=Cmono) fitmdyn = xu.simpack.FitModel(dyn) fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) fitmdyn.set_param_hint('resolution_width', vary=True) params = fitmdyn.make_params() I tried to build the materials using Crystal class and SGLattice, there I can define elastic tensors but it does not account proper Wyckoff positions, this is why I used cif files. Any help, please let me know if you need more info. Thanks, Rajesh ------------------------------------- Dr. Rajesh Dutta Research Staff Scientist Drexel University College of Engineering Pronouns: he/his/him Drexel University 3100 Market Street<https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> Philadelphia, PA 19104<https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> drexel.edu<http://drexel.edu/> -------------------------------------------- _______________________________________________ xrayutilities-users mailing list xra...@li...<mailto:xra...@li...> https://lists.sourceforge.net/lists/listinfo/xrayutilities-users _______________________________________________ xrayutilities-users mailing list xra...@li...<mailto:xra...@li...> https://lists.sourceforge.net/lists/listinfo/xrayutilities-users -- Dr Paritosh Wadekar |
From: Paritosh W. <par...@gm...> - 2024-08-23 09:51:19
|
Hello Rajesh, Interesting fittings but if I am right you have deposited your thin films using pulsed laser deposition right ? Paritosh On Fri, Aug 23, 2024, 6:18 PM Dutta, Rajesh via xrayutilities-users < xra...@li...> wrote: > Dear Dominik, > > > > Many thanks for the fruitful hints. It is doable somehow even though it is > orthorhombic system on top of cubic. Luckily, our SrFeO2.5 (5.6, 5.65, > 15.7A) can be treated as pseudocubic system (rotating 45 deg around > c-axis). With this setting a,b axes of SrFeO2.5 become like cubic > SrTiO3(3.905A). However, I had to manually build both the SrTiO3 and > SrFeO2.5 to match the c-axis and to incorporate elastic constants as well. > Please have a look at the attached figure (simulation and experimental > data). Let me know your thoughts. > > > > Besides that, I have questions: (1) Only multibeam kinematical model takes > all the reflections using “surface_hkl=(0,0,1)” where others take only one > given (H, K, L). Is there any way to make a list for (H,K,L) so that other > model can calculate the XRD for several (H,K,L). I tried to give a list but > did not work. (2) Is the relaxation parameter treated as strain/stress > here? If not, how can I input in-plane stress or strain? I will try to fit > the data and let you know the outcomes. > > > > Thanks again, > > Bye, > > Rajesh > > > > *From:* Dominik Kriegner <dom...@gm...> > *Sent:* Thursday, August 22, 2024 5:46 AM > *To:* Dutta,Rajesh <rd...@dr...> > *Cc:* xra...@li... > *Subject:* Re: [Xrayutilities-users] XRD-Simulation needs elastic > parameters > > > > *External.* > > Dear Rajesh, > > > > Is there a standardized way the elastic parameters are provided in the cif > files? If so one could update the parser to allow to read it properly. > > > > But likely it's better you define the materials manually. I recommend you > to look at > > https://xrayutilities > .sourceforge.io/examples.html#using-the-materials-subpackage > > I am however afraid I did not include some documentation on how to add the > elastic parameters. For this maybe best look at how it is done for the > predefined materials in the code > > https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities > /materials/predefined_materials.py > > > > Finally I must warn you that I do believe that the pseudomorphic stack was > never tested for orthorhombic materials on top of a cubic material. I am > almost certain it won't exactly do what you expect. > > You might be able to help yourself and distort the material as you see > fit, but I would not rely on the pseudomorphicstack code to work without > changes! > > > > cheers > > Dominik > > > > On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users < > xra...@li...> wrote: > > Dear xrayutilities users, > > > > I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 > (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the > model using cif files. However, in the cif file seemingly it is not > possible to incorporate cij (elastic parameters). Therefore, the fitting > XRD gives an error saying “layer’ argument needs elastic parameters. > > > > How to solve this issue while importing cif files. I attach few parts of > the code below: > > > > # global parameters > > wavelength = xu.wavelength('CuKa1') > > offset = -0.00 # angular offset of the zero position of the data > > > > # set up LayerStack for simulation: SrTiO3/SrFeO2.5 > > Sr = xu.materials.elements.Sr <http://xu.materials.elements.sr/> > > Ti = xu.materials.elements.Ti > > O = xu.materials.elements.O > > Fe = xu.materials.elements.Fe > > STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) > > SFO = xu.materials.Crystal.fromCIF(os.path.join("data", > "Sr2Fe2O5-along.cif")) > > > > lSTO = xu.simpack.Layer(STO, inf) > > lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) > > > > pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) > > > > # set up simulation object > > thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) > > Cmono = cos(2 * thetaMono) > > dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, > > resolution_width=2e-3, polarization='both', > > Cmono=Cmono) > > fitmdyn = xu.simpack.FitModel(dyn) > > fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) > > fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) > > fitmdyn.set_param_hint('resolution_width', vary=True) > > params = fitmdyn.make_params() > > > > I tried to build the materials using Crystal class and SGLattice, there I > can define elastic tensors but it does not account proper Wyckoff > positions, this is why I used cif files. > > > > Any help, please let me know if you need more info. > > > > Thanks, > > Rajesh > > > > *-------------------------------------* > > *Dr. Rajesh Dutta* > > > *Research Staff Scientist Drexel University College of Engineering > Pronouns: he/his/him* > > Drexel University > 3100 Market Street > <https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> > Philadelphia, PA 19104 > <https://www.google.com/maps/search/3100+Market+Street+%0D%0APhiladelphia,+PA+19104?entry=gmail&source=g> > drexel.edu > > -------------------------------------------- > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > |
From: Dominik K. <dom...@gm...> - 2024-08-23 08:54:25
|
Dear Rajesh, Just as an extra warning. Just that the code works for your orthorhombic system on top of the cubic does not mean it does the correct thing. It should also be rather clear that the code can not know how the two materials are stacked on top of each other. (In your case you likely have some 45degree rotation between the substrate and layer.) So it can only work if you match it manually. I would be curious what the code does in your case. can you still share the code you used to build the stack? Maybe I will add some extra warning when the code is very likely to misbehave. ad. 1) Regarding the diffraction models: In fact only the kinematical multibeam and the dynamical model (only full dynamic) are recommended to use. The substrate can only be really correct with the dynamical model. But something is wrong with your measurement of the substrate anyways. The other models are there only for testing the theory I would say. And it's true that the dynamic one can always only calculate one peak. Since version 1.7.8 you can actually specify a list of hkl, but this list is interpreted in a way to allow for different hkl values of the film and the substrate. If you need to simulate multiple peaks of film and substrate you have to write a small wrapper to do that. ad 2) I am afraid the relaxation parameter might not be well defined in your case. this parameter works for cubic on cubic, but likely not for anything else. At least I never tested it! In your case you will have to input inplane stress into the stack you build. Unless you do a lot of testing of the PseudomorphicStack I would recommend to use a LayerStack and apply the stress/strain manually with the GetStrain/ApplyStrain method of the material. In this way you can also check the resulting deformation of the material before you run the simulation. The problem you then have is that a direct automatic fitting using built in tools in xrayutilities is currently not possible. You will maybe need some coding for some automatic fitting, but judging from your experimental data you anyway will never numerically be able to fit them since in the experiment no thickness fringes are visible, there is some extra peak, and the substrate seems also wrong. I would play a bit with manually adjusting the simulation to your data and stick to that. kind regards Dominik On Fri, Aug 23, 2024 at 12:34 AM Dutta,Rajesh <rd...@dr...> wrote: > Dear Dominik, > > > > Many thanks for the fruitful hints. It is doable somehow even though it is > orthorhombic system on top of cubic. Luckily, our SrFeO2.5 (5.6, 5.65, > 15.7A) can be treated as pseudocubic system (rotating 45 deg around > c-axis). With this setting a,b axes of SrFeO2.5 become like cubic > SrTiO3(3.905A). However, I had to manually build both the SrTiO3 and > SrFeO2.5 to match the c-axis and to incorporate elastic constants as well. > Please have a look at the attached figure (simulation and experimental > data). Let me know your thoughts. > > > > Besides that, I have questions: (1) Only multibeam kinematical model takes > all the reflections using “surface_hkl=(0,0,1)” where others take only one > given (H, K, L). Is there any way to make a list for (H,K,L) so that other > model can calculate the XRD for several (H,K,L). I tried to give a list but > did not work. (2) Is the relaxation parameter treated as strain/stress > here? If not, how can I input in-plane stress or strain? I will try to fit > the data and let you know the outcomes. > > > > Thanks again, > > Bye, > > Rajesh > > > > *From:* Dominik Kriegner <dom...@gm...> > *Sent:* Thursday, August 22, 2024 5:46 AM > *To:* Dutta,Rajesh <rd...@dr...> > *Cc:* xra...@li... > *Subject:* Re: [Xrayutilities-users] XRD-Simulation needs elastic > parameters > > > > *External.* > > Dear Rajesh, > > > > Is there a standardized way the elastic parameters are provided in the cif > files? If so one could update the parser to allow to read it properly. > > > > But likely it's better you define the materials manually. I recommend you > to look at > > https://xrayutilities > .sourceforge.io/examples.html#using-the-materials-subpackage > > I am however afraid I did not include some documentation on how to add the > elastic parameters. For this maybe best look at how it is done for the > predefined materials in the code > > https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities > /materials/predefined_materials.py > > > > Finally I must warn you that I do believe that the pseudomorphic stack was > never tested for orthorhombic materials on top of a cubic material. I am > almost certain it won't exactly do what you expect. > > You might be able to help yourself and distort the material as you see > fit, but I would not rely on the pseudomorphicstack code to work without > changes! > > > > cheers > > Dominik > > > > On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users < > xra...@li...> wrote: > > Dear xrayutilities users, > > > > I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 > (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the > model using cif files. However, in the cif file seemingly it is not > possible to incorporate cij (elastic parameters). Therefore, the fitting > XRD gives an error saying “layer’ argument needs elastic parameters. > > > > How to solve this issue while importing cif files. I attach few parts of > the code below: > > > > # global parameters > > wavelength = xu.wavelength('CuKa1') > > offset = -0.00 # angular offset of the zero position of the data > > > > # set up LayerStack for simulation: SrTiO3/SrFeO2.5 > > Sr = xu.materials.elements.Sr <http://xu.materials.elements.sr/> > > Ti = xu.materials.elements.Ti > > O = xu.materials.elements.O > > Fe = xu.materials.elements.Fe > > STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) > > SFO = xu.materials.Crystal.fromCIF(os.path.join("data", > "Sr2Fe2O5-along.cif")) > > > > lSTO = xu.simpack.Layer(STO, inf) > > lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) > > > > pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) > > > > # set up simulation object > > thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) > > Cmono = cos(2 * thetaMono) > > dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, > > resolution_width=2e-3, polarization='both', > > Cmono=Cmono) > > fitmdyn = xu.simpack.FitModel(dyn) > > fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) > > fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) > > fitmdyn.set_param_hint('resolution_width', vary=True) > > params = fitmdyn.make_params() > > > > I tried to build the materials using Crystal class and SGLattice, there I > can define elastic tensors but it does not account proper Wyckoff > positions, this is why I used cif files. > > > > Any help, please let me know if you need more info. > > > > Thanks, > > Rajesh > > > > *-------------------------------------* > > *Dr. Rajesh Dutta* > > > *Research Staff Scientist Drexel University College of Engineering > Pronouns: he/his/him* > > Drexel University > 3100 Market Street > Philadelphia, PA 19104 > drexel.edu > > -------------------------------------------- > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > > |
From: Dutta,Rajesh <rd...@dr...> - 2024-08-23 01:10:41
|
Dear Dominik, Many thanks for the fruitful hints. It is doable somehow even though it is orthorhombic system on top of cubic. Luckily, our SrFeO2.5 (5.6, 5.65, 15.7A) can be treated as pseudocubic system (rotating 45 deg around c-axis). With this setting a,b axes of SrFeO2.5 become like cubic SrTiO3(3.905A). However, I had to manually build both the SrTiO3 and SrFeO2.5 to match the c-axis and to incorporate elastic constants as well. Please have a look at the attached figure (simulation and experimental data). Let me know your thoughts. Besides that, I have questions: (1) Only multibeam kinematical model takes all the reflections using “surface_hkl=(0,0,1)” where others take only one given (H, K, L). Is there any way to make a list for (H,K,L) so that other model can calculate the XRD for several (H,K,L). I tried to give a list but did not work. (2) Is the relaxation parameter treated as strain/stress here? If not, how can I input in-plane stress or strain? I will try to fit the data and let you know the outcomes. Thanks again, Bye, Rajesh From: Dominik Kriegner <dom...@gm...> Sent: Thursday, August 22, 2024 5:46 AM To: Dutta,Rajesh <rd...@dr...> Cc: xra...@li... Subject: Re: [Xrayutilities-users] XRD-Simulation needs elastic parameters External. Dear Rajesh, Is there a standardized way the elastic parameters are provided in the cif files? If so one could update the parser to allow to read it properly. But likely it's better you define the materials manually. I recommend you to look at https://xrayutilities.sourceforge.io/examples.html#using-the-materials-subpackage I am however afraid I did not include some documentation on how to add the elastic parameters. For this maybe best look at how it is done for the predefined materials in the code https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities/materials/predefined_materials.py Finally I must warn you that I do believe that the pseudomorphic stack was never tested for orthorhombic materials on top of a cubic material. I am almost certain it won't exactly do what you expect. You might be able to help yourself and distort the material as you see fit, but I would not rely on the pseudomorphicstack code to work without changes! cheers Dominik On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users <xra...@li...<mailto:xra...@li...>> wrote: Dear xrayutilities users, I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the model using cif files. However, in the cif file seemingly it is not possible to incorporate cij (elastic parameters). Therefore, the fitting XRD gives an error saying “layer’ argument needs elastic parameters. How to solve this issue while importing cif files. I attach few parts of the code below: # global parameters wavelength = xu.wavelength('CuKa1') offset = -0.00 # angular offset of the zero position of the data # set up LayerStack for simulation: SrTiO3/SrFeO2.5 Sr = xu.materials.elements.Sr<http://xu.materials.elements.sr/> Ti = xu.materials.elements.Ti O = xu.materials.elements.O Fe = xu.materials.elements.Fe STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) SFO = xu.materials.Crystal.fromCIF(os.path.join("data", "Sr2Fe2O5-along.cif")) lSTO = xu.simpack.Layer(STO, inf) lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) # set up simulation object thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) Cmono = cos(2 * thetaMono) dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, resolution_width=2e-3, polarization='both', Cmono=Cmono) fitmdyn = xu.simpack.FitModel(dyn) fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) fitmdyn.set_param_hint('resolution_width', vary=True) params = fitmdyn.make_params() I tried to build the materials using Crystal class and SGLattice, there I can define elastic tensors but it does not account proper Wyckoff positions, this is why I used cif files. Any help, please let me know if you need more info. Thanks, Rajesh ------------------------------------- Dr. Rajesh Dutta Research Staff Scientist Drexel University College of Engineering Pronouns: he/his/him Drexel University 3100 Market Street Philadelphia, PA 19104 drexel.edu<http://drexel.edu/> -------------------------------------------- _______________________________________________ xrayutilities-users mailing list xra...@li...<mailto:xra...@li...> https://lists.sourceforge.net/lists/listinfo/xrayutilities-users |
From: Dominik K. <dom...@gm...> - 2024-08-22 09:46:39
|
Dear Rajesh, Is there a standardized way the elastic parameters are provided in the cif files? If so one could update the parser to allow to read it properly. But likely it's better you define the materials manually. I recommend you to look at https://xrayutilities .sourceforge.io/examples.html#using-the-materials-subpackage I am however afraid I did not include some documentation on how to add the elastic parameters. For this maybe best look at how it is done for the predefined materials in the code https://github.com/dkriegner/xrayutilities/blob/main/lib/xrayutilities /materials/predefined_materials.py Finally I must warn you that I do believe that the pseudomorphic stack was never tested for orthorhombic materials on top of a cubic material. I am almost certain it won't exactly do what you expect. You might be able to help yourself and distort the material as you see fit, but I would not rely on the pseudomorphicstack code to work without changes! cheers Dominik On Thu, Aug 22, 2024 at 2:21 AM Dutta, Rajesh via xrayutilities-users < xra...@li...> wrote: > Dear xrayutilities users, > > > > I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 > (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the > model using cif files. However, in the cif file seemingly it is not > possible to incorporate cij (elastic parameters). Therefore, the fitting > XRD gives an error saying “layer’ argument needs elastic parameters. > > > > How to solve this issue while importing cif files. I attach few parts of > the code below: > > > > # global parameters > > wavelength = xu.wavelength('CuKa1') > > offset = -0.00 # angular offset of the zero position of the data > > > > # set up LayerStack for simulation: SrTiO3/SrFeO2.5 > > Sr = xu.materials.elements.Sr > > Ti = xu.materials.elements.Ti > > O = xu.materials.elements.O > > Fe = xu.materials.elements.Fe > > STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) > > SFO = xu.materials.Crystal.fromCIF(os.path.join("data", > "Sr2Fe2O5-along.cif")) > > > > lSTO = xu.simpack.Layer(STO, inf) > > lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) > > > > pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) > > > > # set up simulation object > > thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) > > Cmono = cos(2 * thetaMono) > > dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, > > resolution_width=2e-3, polarization='both', > > Cmono=Cmono) > > fitmdyn = xu.simpack.FitModel(dyn) > > fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) > > fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) > > fitmdyn.set_param_hint('resolution_width', vary=True) > > params = fitmdyn.make_params() > > > > I tried to build the materials using Crystal class and SGLattice, there I > can define elastic tensors but it does not account proper Wyckoff > positions, this is why I used cif files. > > > > Any help, please let me know if you need more info. > > > > Thanks, > > Rajesh > > > > *-------------------------------------* > > *Dr. Rajesh Dutta* > > > *Research Staff Scientist Drexel University College of Engineering > Pronouns: he/his/him* > > Drexel University > 3100 Market Street > Philadelphia, PA 19104 > drexel.edu > > -------------------------------------------- > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > |
From: Dutta,Rajesh <rd...@dr...> - 2024-08-22 00:21:23
|
Dear xrayutilities users, I am very new to this tool. I am trying to build a layer stack of Sr2Fe2O5 (ortho) on top of SrTiO3 substrate (cubic). I managed to construct the model using cif files. However, in the cif file seemingly it is not possible to incorporate cij (elastic parameters). Therefore, the fitting XRD gives an error saying "layer' argument needs elastic parameters. How to solve this issue while importing cif files. I attach few parts of the code below: # global parameters wavelength = xu.wavelength('CuKa1') offset = -0.00 # angular offset of the zero position of the data # set up LayerStack for simulation: SrTiO3/SrFeO2.5 Sr = xu.materials.elements.Sr Ti = xu.materials.elements.Ti O = xu.materials.elements.O Fe = xu.materials.elements.Fe STO = xu.materials.Crystal.fromCIF(os.path.join("data", "STO.cif")) SFO = xu.materials.Crystal.fromCIF(os.path.join("data", "Sr2Fe2O5-along.cif")) lSTO = xu.simpack.Layer(STO, inf) lSFO = xu.simpack.Layer(SFO, 800, relaxation=0) pstack = xu.simpack.PseudomorphicStack001('list', lSTO, lSFO) # set up simulation object thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0))) Cmono = cos(2 * thetaMono) dyn = xu.simpack.DynamicalModel(pstack, I0=1.5e5, background=0, resolution_width=2e-3, polarization='both', Cmono=Cmono) fitmdyn = xu.simpack.FitModel(dyn) fitmdyn.set_param_hint('SFO_a', vary=True, min=15.7, max=15.8) fitmdyn.set_param_hint('STO_a', vary=True, min=3.90, max=3.91) fitmdyn.set_param_hint('resolution_width', vary=True) params = fitmdyn.make_params() I tried to build the materials using Crystal class and SGLattice, there I can define elastic tensors but it does not account proper Wyckoff positions, this is why I used cif files. Any help, please let me know if you need more info. Thanks, Rajesh ------------------------------------- Dr. Rajesh Dutta Research Staff Scientist Drexel University College of Engineering Pronouns: he/his/him Drexel University 3100 Market Street Philadelphia, PA 19104 drexel.edu<http://drexel.edu/> -------------------------------------------- |
From: Dominik K. <dom...@gm...> - 2023-03-03 07:42:53
|
Dear Allen, few hints for your questions: If you will need InGaP often and all the variation of the lattice parameter and other needed parameters (elasticity?) are known well enough, then I think it would make sense to create a class derived from the 'Alloy' or 'CubicAlloy' classes like SiGe and AlGaAs. Regarding the scan directions on top of the reciprocal space maps: have a look here: https://xrayutilities.sourceforge.io/examples.html#line-cuts-from-reciprocal-space-maps and in the example https://github.com/dkriegner/xrayutilities/blob/main/examples/xrayutilities_read_panalytical.py There such scan directions are shown on top of reciprocal space maps. These directions can be automatically generated by doing line cuts. cheers Dominik On Fri, Mar 3, 2023 at 5:56 AM Allen Hall <aj...@gm...> wrote: > Hi Dominik! > > Thanks so much for this discussion/information regarding the package! > This is great news! Yes, I had a feeling it was 2theta-omega, but wasn't > sure on this... and you are of course correct it really only makes sense > for epitaxial crystals to use radial scans (with the exception of the > omega-rocking curve). Coming from the machine side, I'm used to using the > machines only in angle space, not in Qspace - so it takes a bit of head > scratching here and there to mentally go back and forth... I'm still > learning from your examples here. > > A few q's... I need to make an InGaP for my current work, and I see the > example for InP in the docs. I have in the past imported CIF's for say > CuInSe2, and that worked out ok... but wasn't sure if I should ask about > making a class like AlGaAs... there are a number of mixtures that are > similar to the AlGaAs issue - are these difficult to create? I could stick > to a common star-file ICDD file example of InGaP, but I wasn't sure if that > was limiting for modelling purposes. [I'm hoping to start simple here so > probably thinking about a new class is a bad idea to start with.] > > Lastly- an idea that might be cute... I'm tempted to try and draw lines > ontop of the RSM diffraction spot presentation... one could probably show > what a 2-theta-omega or omega or theta scan looked like at specific angles > but represented in q-space as a line or even curved square for planar > detectors... would this be farily easy to plot directly onto the same > axes? I guess we'd have to generate the poins in q-space based on the scan > parameters and then add them to the plot... > > Thanks so much for the excellent package! I'm enjoying learning from the > examples and the mailing list here. Big cheers, > -Allen > > > Allen Hall > aj...@gm... > al...@al... > (old:ah...@il...) > > > On Sat, Feb 25, 2023 at 10:50 AM Dominik Kriegner < > dom...@gm...> wrote: > >> Dear Allen, >> >> the simpack_xrd_InAs_fitting of course models a radial 2theta-omega scan. >> The documentation examples ( >> https://xrayutilities.sourceforge.io/simulations.html) also clearly >> specify that all models are for crystal truncation rod analysis (and are >> mostly tested for the symmetric 2theta-omega case). A pure 2theta scan >> would make not so much sense for an epitaxial system. so pure 2Theta scans >> can actually (somewhat limited) in xrayutilities only be simulated for >> powder/textured samples. >> >> So actually all "XRD" simulation examples are basically what you look >> for. I think the example file simpack_xrd_SiGe_superlattice.py could be >> particularly interesting since it shows also how a slightly more complex >> layer structure can be built. >> >> hope this helps >> Dominik >> > |
From: Allen H. <aj...@gm...> - 2023-03-03 04:56:45
|
Hi Dominik! Thanks so much for this discussion/information regarding the package! This is great news! Yes, I had a feeling it was 2theta-omega, but wasn't sure on this... and you are of course correct it really only makes sense for epitaxial crystals to use radial scans (with the exception of the omega-rocking curve). Coming from the machine side, I'm used to using the machines only in angle space, not in Qspace - so it takes a bit of head scratching here and there to mentally go back and forth... I'm still learning from your examples here. A few q's... I need to make an InGaP for my current work, and I see the example for InP in the docs. I have in the past imported CIF's for say CuInSe2, and that worked out ok... but wasn't sure if I should ask about making a class like AlGaAs... there are a number of mixtures that are similar to the AlGaAs issue - are these difficult to create? I could stick to a common star-file ICDD file example of InGaP, but I wasn't sure if that was limiting for modelling purposes. [I'm hoping to start simple here so probably thinking about a new class is a bad idea to start with.] Lastly- an idea that might be cute... I'm tempted to try and draw lines ontop of the RSM diffraction spot presentation... one could probably show what a 2-theta-omega or omega or theta scan looked like at specific angles but represented in q-space as a line or even curved square for planar detectors... would this be farily easy to plot directly onto the same axes? I guess we'd have to generate the poins in q-space based on the scan parameters and then add them to the plot... Thanks so much for the excellent package! I'm enjoying learning from the examples and the mailing list here. Big cheers, -Allen Allen Hall aj...@gm... al...@al... (old:ah...@il...) On Sat, Feb 25, 2023 at 10:50 AM Dominik Kriegner < dom...@gm...> wrote: > Dear Allen, > > the simpack_xrd_InAs_fitting of course models a radial 2theta-omega scan. > The documentation examples ( > https://xrayutilities.sourceforge.io/simulations.html) also clearly > specify that all models are for crystal truncation rod analysis (and are > mostly tested for the symmetric 2theta-omega case). A pure 2theta scan > would make not so much sense for an epitaxial system. so pure 2Theta scans > can actually (somewhat limited) in xrayutilities only be simulated for > powder/textured samples. > > So actually all "XRD" simulation examples are basically what you look for. > I think the example file simpack_xrd_SiGe_superlattice.py could be > particularly interesting since it shows also how a slightly more complex > layer structure can be built. > > hope this helps > Dominik > |
From: Dominik K. <dom...@gm...> - 2023-02-25 16:50:15
|
Dear Allen, the simpack_xrd_InAs_fitting of course models a radial 2theta-omega scan. The documentation examples ( https://xrayutilities.sourceforge.io/simulations.html) also clearly specify that all models are for crystal truncation rod analysis (and are mostly tested for the symmetric 2theta-omega case). A pure 2theta scan would make not so much sense for an epitaxial system. so pure 2Theta scans can actually (somewhat limited) in xrayutilities only be simulated for powder/textured samples. So actually all "XRD" simulation examples are basically what you look for. I think the example file simpack_xrd_SiGe_superlattice.py could be particularly interesting since it shows also how a slightly more complex layer structure can be built. hope this helps Dominik |
From: Allen H. <aj...@gm...> - 2023-02-24 21:23:06
|
Hi Xrayutilities users! I'm back again it seems... doing more in python these days, and revisited xrayutilities to do some simulations and viewing reciprocal space for different substrates. I need to work on some omega-twotheta and two-theta-omega scans... it seems that doing q-space work is fairly straight forward based on the examples, but I don't see any great examples for the simple 0D detector doing two-theta-omega scans? There's one example of fitting to a two-theta scan (is it purely two-theta or is it two-theta-omega?) with a RASfile (unfortunately I can't see the Rasfile internals in the variable browser, so will read about the structure of the RAS importer... ) I have parsed imported data that was unstructured data from a fairly old system that I'd like to simulate and also attempt fitting, so this example appears the closest to me for the analysis. Is the two-theta scan in the example "simpack_xrd_InAs_fitting.py" actually a two-theta-omega scan? Is the resulting graph any different in simulation if we only give it two-theta -v- two-theta omega? (seems it would be a different scan in q-space for asymmetric peaks? maybe not for symmetric peaks...) Would love to see a simple simulation in two-theta-omega or omega-two-theta space with multilayers. Any and all pointers are greatly appreciated! I'll be attempting to apply this to fairly complicated layer stacks if this works out. Thanks so much! -Allen Allen Hall aj...@gm... al...@al... (old:ah...@il...) |
From: Dominik K. <dom...@gm...> - 2023-01-11 12:00:39
|
Hi Carsten, Unfortunately, currently warnings coming from the C-code (like the one you mention) can't be influenced. Generally warnings (printouts from the Python code) should all be removed when setting a lower `xrayutilities.config.VERBOSITY` (e.g. 0). I will fix/change the c-code to also respect this verbosity setting and remove this (and maybe other warnings) if `VERBOSITY` is set to zero. I have created a GitHub issue so that everyone can see when this change is implemented: https://github.com/dkriegner/xrayutilities/issues/145 cheers Dominik On 11/01/2023 11.23, Richter, Dr. Carsten wrote: > > Dear all, > > when using the gridders, it may happen that some data points are outside > a range that is fixed which causes this warning: > > “XU.Gridder3D(c): more than half of the datapoints out of the data > range, consider regridding with extended range!” > > Is it possible to disable the warning? This is a bit annoying when > gridding a large amount of data in serial manner (the warning repeats > during each call of the ridder). > > Thanks > > Carsten > > ================================= > > Leibniz-Institut für Kristallzüchtung (IKZ) > > https://www.ikz-berlin.de > > Max Born Str. 2 > > 12489 Berlin / Germany > > Phone: +49 30 6392 2859 > > > ------------------------------------------------------------------------ > Dr. Carsten Richter > NachwuchsgruppenleiterX-Ray Imaging > Materialwissenschaften/Experimentelle Charakterisierung > T: +49 (0)30 6392 2859 > F: +49 (0)30 6392 3003 > E: car...@ik... <mailto:car...@ik...> > > > LEIBNIZ-INSTITUT > FÜR KRISTALLZÜCHTUNG > im Forschungsverbund Berlin e.V > Max-Born-Straße 2 > 12489 Berlin > www.ikz-berlin.de <https://www.ikz-berlin.de/> > > ------------------------------------------------------------------------ > > Diese Nachricht enthält vertrauliche Informationen und ist nur für die > genannten Empfänger bestimmt. Falls Sie kein genannter Empfänger sind, > dürfen Sie diese E-Mail nicht verbreiten, verteilen oder kopieren. Bitte > benachrichtigen Sie car...@ik... umgehend per E-Mail, > falls Sie diese E-Mail fälschlicherweise erhalten haben, und löschen Sie > sie von lhrem System. Eine sichere und fehlerfreie E-Mail-Übertragung > kann nicht gewährleistet werden, da Informationen abgefangen, > beschädigt, zerstört, verzögert werden, verloren gehen, unvollständig > sein oder Viren enthalten können. Aus diesem Grund übernimmt keine > Haftung für jedwede Fehler oder Auslassungen in dieser Nachricht, die > auf eine E-Mail-Übertragung zurückzuführen sind. Falls eine Bestätigung > erforderlich ist, fordern Sie bitte eine gedruckte Version an. > > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users |
From: Richter, D. C. <car...@ik...> - 2023-01-11 10:40:21
|
Dear all, when using the gridders, it may happen that some data points are outside a range that is fixed which causes this warning: “XU.Gridder3D(c): more than half of the datapoints out of the data range, consider regridding with extended range!” Is it possible to disable the warning? This is a bit annoying when gridding a large amount of data in serial manner (the warning repeats during each call of the ridder). Thanks Carsten ================================= Leibniz-Institut für Kristallzüchtung (IKZ) https://www.ikz-berlin.de Max Born Str. 2 12489 Berlin / Germany Phone: +49 30 6392 2859 ________________________________ Dr. Carsten Richter Nachwuchsgruppenleiter X-Ray Imaging Materialwissenschaften/Experimentelle Charakterisierung T: +49 (0)30 6392 2859 F: +49 (0)30 6392 3003 E: car...@ik...<mailto:car...@ik...> [cid:image3836ad.PNG@4b6d40c0.4b8eb113] LEIBNIZ-INSTITUT FÜR KRISTALLZÜCHTUNG im Forschungsverbund Berlin e.V Max-Born-Straße 2 12489 Berlin www.ikz-berlin.de<https://www.ikz-berlin.de/> ________________________________ Diese Nachricht enthält vertrauliche Informationen und ist nur für die genannten Empfänger bestimmt. Falls Sie kein genannter Empfänger sind, dürfen Sie diese E-Mail nicht verbreiten, verteilen oder kopieren. Bitte benachrichtigen Sie car...@ik... umgehend per E-Mail, falls Sie diese E-Mail fälschlicherweise erhalten haben, und löschen Sie sie von lhrem System. Eine sichere und fehlerfreie E-Mail-Übertragung kann nicht gewährleistet werden, da Informationen abgefangen, beschädigt, zerstört, verzögert werden, verloren gehen, unvollständig sein oder Viren enthalten können. Aus diesem Grund übernimmt keine Haftung für jedwede Fehler oder Auslassungen in dieser Nachricht, die auf eine E-Mail-Übertragung zurückzuführen sind. Falls eine Bestätigung erforderlich ist, fordern Sie bitte eine gedruckte Version an. |
From: Dominik K. <dom...@gm...> - 2023-01-04 13:06:51
|
Dear Mischa, If you are already adapting the code and are comfortable with that then I think you should be able to achieve what you are looking for. The example you mention should be a good starting point. Now to change the crystal alignment I think there are two main options: 1) If you turn the crystal using a goniometer then it should be straight forward to obtain the rotation matrix the goniometer rotations correspond to and apply this transformation to the Bragg peak positions. 2) In the example you mention [1] there are used two crystal directions which define the orientation of the crystal in the experiment. e.g. line 9 of the code uses 11-2 and 111 directions to orient the substrate. You can change/turn those two vectors and therefore also effectively change the orientation. Just be sure to keep using two perpendicular directions. The HXRD initialization otherwise will use some projections (and should print out a warning/message). I hope this helps. Also if you manage to obtain something useful it would be nice to contribute the resulting function/script via a Github Pull request. cheers Dominik [1] https://xrayutilities.sourceforge.io/examples.html#visualization-of-the-bragg-peaks-in-a-reciprocal-space-plane On 04/01/2023 11.47, Mischa Stifter wrote: > Dear Xrayutilities-Team, > > I am currently looking for a single crystal diffraction simulator. Your > package seems very promising for that since it’s very strong and > provides all degrees of changeability in an experimental setup. > Unfortunately, I didn’t figure it out yet, how to use it in the proper > manner. > > What I am looking for is, a changeable crystal alignment in an X-ray > beam that produces a single diffraction pattern on the detector for > further use. (I have currently worked with the Laue method and am > therefore thinking in that kind of setups etc.) I was able to modify the > example of section ‘Visualization of the Bragg peaks in a reciprocal > space plane’ to a full image, because that seems for me as the starting > point. But now I am stuck on how to rotate the crystal in the > experimental alignment. Best would be to have just the crystal > orientation as a free parameter, without the detector aswell. > > Is there this possibility of creating such patterns and if yes can you > help me to get it done? > > Thanks a lot for your help! > Best, > > Mischa > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users |
From: Mischa S. <mis...@uz...> - 2023-01-04 11:02:46
|
Dear Xrayutilities-Team, I am currently looking for a single crystal diffraction simulator. Your package seems very promising for that since it's very strong and provides all degrees of changeability in an experimental setup. Unfortunately, I didn't figure it out yet, how to use it in the proper manner. What I am looking for is, a changeable crystal alignment in an X-ray beam that produces a single diffraction pattern on the detector for further use. (I have currently worked with the Laue method and am therefore thinking in that kind of setups etc.) I was able to modify the example of section 'Visualization of the Bragg peaks in a reciprocal space plane' to a full image, because that seems for me as the starting point. But now I am stuck on how to rotate the crystal in the experimental alignment. Best would be to have just the crystal orientation as a free parameter, without the detector aswell. Is there this possibility of creating such patterns and if yes can you help me to get it done? Thanks a lot for your help! Best, Mischa |
From: Dominik K. <dom...@gm...> - 2022-10-31 13:33:21
|
xrayutilities-1.7.4 is available This version is compatible with Python >3.6. Version 1.7.4 contains several bug fixes. In particular it contains [1]: * fix for a mistake in the docstring of the March-Dollase texture model in xu.simpack.Powder, * a correction of the Poisson ratio of the GaInAs Darwin model, * new GetStrain and GeStress functions for xu.material.Material (Github Pull request #138) * improvements for kappa goniometers and removal of some deprecated scipy namespaces. In order to obtain the new version, go to SourceForge [2] or use PyPI [3]. Wheel packages for Windows, macOS and Linux are found on PyPI for 64-bit Python in versions 3.6, 3.7, 3.8, 3.9, and 3.10. There is also a conda-forge package [4]. If you encounter problems, please report them on GitHub or on the mailinglist [5]. [1] https://github.com/dkriegner/xrayutilities/blob/main/CHANGES.txt [2] https://sourceforge.net/projects/xrayutilities [3] https://pypi.python.org/pypi/xrayutilities [4] https://github.com/conda-forge/xrayutilities-feedstock [5] https://sourceforge.net/p/xrayutilities/mailman/xrayutilities-users/ |
From: Dominik K. <dom...@gm...> - 2021-12-13 20:59:44
|
Hi Allen, let me comment on your remaining questions below On Mon, Dec 13, 2021 at 4:53 PM Allen Hall <aj...@gm...> wrote: > One thing I don't see is a description of the resulting vector from > clicking the plot (for example): > GaAs > hkl: (1, 3, -1) > angles: [-31.6513 0. 0. 53.7331] > > It appears that this is [ om, ?, ?, ttheta] > > Are the others Psi or Chi and Phi? > yes those other two are the sample tilt and sample azimuth. I have changed the print statement to include the angle names. > > Is there a method to rotate all spots from all rotations in Phi into the > RSM? (this would look weird, so I would suspect not- we'd get streaks > on the RSM I believe). > Actually there is a possibility show all peaks by projecting them into the plot plane. There are two options for that which can be controlled by the 'projection' and 'maxqout' arguments to show_reciprocal_space_plane see: https://xrayutilities.sourceforge.io/xrayutilities.materials.html?highlight=show_reciprocal#xrayutilities.materials.plot.show_reciprocal_space_plane > > Also- is the red halo around the plot the ttmax = 160 (for example). > yes , the red area is the one you can only access by angles above ttmax. > I don't notice a change when I request a Laue zone plot... > This is because its by default on. The option is only there to switch it off in case one does not want it. cheers dominik > > Thanks so much for this utility and the ability to ask questions on the > mailing list here! I really appreciate it! > -Allen > > -- > Allen Hall > aj...@gm... > al...@il... > > |
From: Allen H. <aj...@gm...> - 2021-12-13 15:53:50
|
Hi Dominik! Thanks for the warm welcome! Yes, I see now that the GaAs .cif was imported to my local database. I hope that the chemical info isn't very critical for S calculations. And you're absolutely right, I needed to specify an in-plane primary beam direction in the plot, it seems I've gone and mixed up a few errors here. My apologies! And thank you for explaining. One thing I don't see is a description of the resulting vector from clicking the plot (for example): GaAs hkl: (1, 3, -1) angles: [-31.6513 0. 0. 53.7331] It appears that this is [ om, ?, ?, ttheta] Are the others Psi or Chi and Phi? Is there a method to rotate all spots from all rotations in Phi into the RSM? (this would look weird, so I would suspect not- we'd get streaks on the RSM I believe). Also- is the red halo around the plot the ttmax = 160 (for example). I don't notice a change when I request a Laue zone plot... Thanks so much for this utility and the ability to ask questions on the mailing list here! I really appreciate it! -Allen -- Allen Hall aj...@gm... al...@il... |
From: Dominik K. <dom...@gm...> - 2021-12-11 08:24:50
|
HI Allen, welcome to the mailing list. The problem you experience seems to be unrelated to the CIF file import. The code you sent works for me by only printing a message (a warning). GaAs = xu.materials.Crystal.fromCIF("gaas4.cif") XU.materials: element As used instead of As3- This warning informs you that for the oxidation state used in the CIF file no atomic form factors are available and that the neutral atom is used instead. Only for selected elements form factor information is available for various oxidation states. Here xrayutilities just relies on information from common databases. If there are some available which contain more information it could be included. The oxidation state does however usually not change much with respect to X-ray diffraction (only would slightly change the intensities of peaks). The error you mention seems to be related to the fact that you forgot to specify the second obligatory argument to the HXRD class constructor. HXRD is derived from Experiment which documents the parameters which need to be used here: https://xrayutilities.sourceforge.io/xrayutilities.html?highlight=hxrd#xrayutilities.experiment.Experiment.__init__ A full example of HXRD use can be found here: https://xrayutilities.sourceforge.io/examples.html#angle-calculation-using-experiment-and-materials-classes or here: https://github.com/dkriegner/xrayutilities/blob/main/examples/xrayutilities_show_reciprocal_space_plane.py The latter script directly produces a plot which shows the various Bragg peaks within one plane of reciprocal space. If you use some interactive plot backend you can click on a peak and get its diffraction angles. cheers Dominik On Fri, Dec 10, 2021 at 9:49 PM Allen Hall <aj...@gm...> wrote: > Hi XrayUtilities Mailing list!! > > Great python package!! > > I'm attempting to use the CIF import to run an RS visualization on a > substrate (for peak finding purposes), and I'm using the following for > import: > > import os > > import numpy > import xrayutilities as xu > > # create material > GaAs = xu.materials.Crystal.fromCIF(os.path.join("data", "gaas4.cif")) > > The error: > XU.materials: element As used instead of As3- > Traceback (most recent call last): > > File "/Users/allenhall/Desktop/reciprocal > space/xrayutilities-main/examples/GaAs RSM attempt.py", line 18, in > <module> > geom = xu.HXRD(GaAs.Q(1, 1, 1)) > > TypeError: __init__() missing 1 required positional argument: 'ndir' > > To help in completeness, I'm adding the full text of the CIF file I have > for GaAs here: > > data_43359-ICSD > #©2003 by Fachinformationszentrum Karlsruhe, and the U.S. Secretary of > #Commerce on behalf of the United States. All rights reserved. > _database_code_ICSD 43359 > _audit_creation_date 2000/07/15 > _chemical_name_systematic 'Gallium Arsenide' > _chemical_formula_structural 'Ga As' > _chemical_formula_sum 'As1 Ga1' > _publ_section_title > ; > An X-ray study of some A(III) B(V) compounds which display deviataion > from stoichoimetry > ; > loop_ > _citation_id > _citation_journal_abbrev > _citation_year > _citation_journal_volume > _citation_page_first > _citation_page_last > _citation_journal_id_ASTM > primary Kristallografiya 1962 7 850 853 KRISAJ > loop_ > _publ_author_name > 'Ozolins, G.' > 'Averkieva, G.K.' > 'Ievins, A.' > 'Goryunova, N.A.' > _cell_length_a 5.65317(10) > _cell_length_b 5.65317 > _cell_length_c 5.65317 > _cell_angle_alpha 90. > _cell_angle_beta 90. > _cell_angle_gamma 90. > _cell_volume 180.67 > _cell_formula_units_Z 4 > _symmetry_space_group_name_H-M 'F -4 3 m' > _symmetry_Int_Tables_number 216 > loop_ > _symmetry_equiv_pos_site_id > _symmetry_equiv_pos_as_xyz > 1 '-z, -y, x' > 2 '-y, -x, z' > 3 '-x, -z, y' > 4 '-z, -x, y' > 5 '-y, -z, x' > 6 '-x, -y, z' > 7 '-z, y, -x' > 8 '-y, x, -z' > 9 '-x, z, -y' > 10 '-z, x, -y' > 11 '-y, z, -x' > 12 '-x, y, -z' > 13 'z, -y, -x' > 14 'y, -x, -z' > 15 'x, -z, -y' > 16 'z, -x, -y' > 17 'y, -z, -x' > 18 'x, -y, -z' > 19 'z, y, x' > 20 'y, x, z' > 21 'x, z, y' > 22 'z, x, y' > 23 'y, z, x' > 24 'x, y, z' > 25 '-z, -y+1/2, x+1/2' > 26 '-z+1/2, -y, x+1/2' > 27 '-z+1/2, -y+1/2, x' > 28 '-y, -x+1/2, z+1/2' > 29 '-y+1/2, -x, z+1/2' > 30 '-y+1/2, -x+1/2, z' > 31 '-x, -z+1/2, y+1/2' > 32 '-x+1/2, -z, y+1/2' > 33 '-x+1/2, -z+1/2, y' > 34 '-z, -x+1/2, y+1/2' > 35 '-z+1/2, -x, y+1/2' > 36 '-z+1/2, -x+1/2, y' > 37 '-y, -z+1/2, x+1/2' > 38 '-y+1/2, -z, x+1/2' > 39 '-y+1/2, -z+1/2, x' > 40 '-x, -y+1/2, z+1/2' > 41 '-x+1/2, -y, z+1/2' > 42 '-x+1/2, -y+1/2, z' > 43 '-z, y+1/2, -x+1/2' > 44 '-z+1/2, y, -x+1/2' > 45 '-z+1/2, y+1/2, -x' > 46 '-y, x+1/2, -z+1/2' > 47 '-y+1/2, x, -z+1/2' > 48 '-y+1/2, x+1/2, -z' > 49 '-x, z+1/2, -y+1/2' > 50 '-x+1/2, z, -y+1/2' > 51 '-x+1/2, z+1/2, -y' > 52 '-z, x+1/2, -y+1/2' > 53 '-z+1/2, x, -y+1/2' > 54 '-z+1/2, x+1/2, -y' > 55 '-y, z+1/2, -x+1/2' > 56 '-y+1/2, z, -x+1/2' > 57 '-y+1/2, z+1/2, -x' > 58 '-x, y+1/2, -z+1/2' > 59 '-x+1/2, y, -z+1/2' > 60 '-x+1/2, y+1/2, -z' > 61 'z, -y+1/2, -x+1/2' > 62 'z+1/2, -y, -x+1/2' > 63 'z+1/2, -y+1/2, -x' > 64 'y, -x+1/2, -z+1/2' > 65 'y+1/2, -x, -z+1/2' > 66 'y+1/2, -x+1/2, -z' > 67 'x, -z+1/2, -y+1/2' > 68 'x+1/2, -z, -y+1/2' > 69 'x+1/2, -z+1/2, -y' > 70 'z, -x+1/2, -y+1/2' > 71 'z+1/2, -x, -y+1/2' > 72 'z+1/2, -x+1/2, -y' > 73 'y, -z+1/2, -x+1/2' > 74 'y+1/2, -z, -x+1/2' > 75 'y+1/2, -z+1/2, -x' > 76 'x, -y+1/2, -z+1/2' > 77 'x+1/2, -y, -z+1/2' > 78 'x+1/2, -y+1/2, -z' > 79 'z, y+1/2, x+1/2' > 80 'z+1/2, y, x+1/2' > 81 'z+1/2, y+1/2, x' > 82 'y, x+1/2, z+1/2' > 83 'y+1/2, x, z+1/2' > 84 'y+1/2, x+1/2, z' > 85 'x, z+1/2, y+1/2' > 86 'x+1/2, z, y+1/2' > 87 'x+1/2, z+1/2, y' > 88 'z, x+1/2, y+1/2' > 89 'z+1/2, x, y+1/2' > 90 'z+1/2, x+1/2, y' > 91 'y, z+1/2, x+1/2' > 92 'y+1/2, z, x+1/2' > 93 'y+1/2, z+1/2, x' > 94 'x, y+1/2, z+1/2' > 95 'x+1/2, y, z+1/2' > 96 'x+1/2, y+1/2, z' > loop_ > _atom_type_symbol > _atom_type_oxidation_number > As3- -3 > Ga3+ 3 > loop_ > _atom_site_label > _atom_site_type_symbol > _atom_site_symmetry_multiplicity > _atom_site_Wyckoff_symbol > _atom_site_fract_x > _atom_site_fract_y > _atom_site_fract_z > _atom_site_occupancy > _atom_site_attached_hydrogens > Ga1 Ga3+ 4 a 0 0 0 1. 0 > As2 As3- 4 c 0.25 0.25 0.25 1. 0 > > #End of data_43359-ICSD > > > > -- > Allen Hall > aj...@gm... > al...@il... > > > > _______________________________________________ > xrayutilities-users mailing list > xra...@li... > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > |
From: Allen H. <aj...@gm...> - 2021-12-10 20:49:49
|
Hi XrayUtilities Mailing list!! Great python package!! I'm attempting to use the CIF import to run an RS visualization on a substrate (for peak finding purposes), and I'm using the following for import: import os import numpy import xrayutilities as xu # create material GaAs = xu.materials.Crystal.fromCIF(os.path.join("data", "gaas4.cif")) The error: XU.materials: element As used instead of As3- Traceback (most recent call last): File "/Users/allenhall/Desktop/reciprocal space/xrayutilities-main/examples/GaAs RSM attempt.py", line 18, in <module> geom = xu.HXRD(GaAs.Q(1, 1, 1)) TypeError: __init__() missing 1 required positional argument: 'ndir' To help in completeness, I'm adding the full text of the CIF file I have for GaAs here: data_43359-ICSD #©2003 by Fachinformationszentrum Karlsruhe, and the U.S. Secretary of #Commerce on behalf of the United States. All rights reserved. _database_code_ICSD 43359 _audit_creation_date 2000/07/15 _chemical_name_systematic 'Gallium Arsenide' _chemical_formula_structural 'Ga As' _chemical_formula_sum 'As1 Ga1' _publ_section_title ; An X-ray study of some A(III) B(V) compounds which display deviataion from stoichoimetry ; loop_ _citation_id _citation_journal_abbrev _citation_year _citation_journal_volume _citation_page_first _citation_page_last _citation_journal_id_ASTM primary Kristallografiya 1962 7 850 853 KRISAJ loop_ _publ_author_name 'Ozolins, G.' 'Averkieva, G.K.' 'Ievins, A.' 'Goryunova, N.A.' _cell_length_a 5.65317(10) _cell_length_b 5.65317 _cell_length_c 5.65317 _cell_angle_alpha 90. _cell_angle_beta 90. _cell_angle_gamma 90. _cell_volume 180.67 _cell_formula_units_Z 4 _symmetry_space_group_name_H-M 'F -4 3 m' _symmetry_Int_Tables_number 216 loop_ _symmetry_equiv_pos_site_id _symmetry_equiv_pos_as_xyz 1 '-z, -y, x' 2 '-y, -x, z' 3 '-x, -z, y' 4 '-z, -x, y' 5 '-y, -z, x' 6 '-x, -y, z' 7 '-z, y, -x' 8 '-y, x, -z' 9 '-x, z, -y' 10 '-z, x, -y' 11 '-y, z, -x' 12 '-x, y, -z' 13 'z, -y, -x' 14 'y, -x, -z' 15 'x, -z, -y' 16 'z, -x, -y' 17 'y, -z, -x' 18 'x, -y, -z' 19 'z, y, x' 20 'y, x, z' 21 'x, z, y' 22 'z, x, y' 23 'y, z, x' 24 'x, y, z' 25 '-z, -y+1/2, x+1/2' 26 '-z+1/2, -y, x+1/2' 27 '-z+1/2, -y+1/2, x' 28 '-y, -x+1/2, z+1/2' 29 '-y+1/2, -x, z+1/2' 30 '-y+1/2, -x+1/2, z' 31 '-x, -z+1/2, y+1/2' 32 '-x+1/2, -z, y+1/2' 33 '-x+1/2, -z+1/2, y' 34 '-z, -x+1/2, y+1/2' 35 '-z+1/2, -x, y+1/2' 36 '-z+1/2, -x+1/2, y' 37 '-y, -z+1/2, x+1/2' 38 '-y+1/2, -z, x+1/2' 39 '-y+1/2, -z+1/2, x' 40 '-x, -y+1/2, z+1/2' 41 '-x+1/2, -y, z+1/2' 42 '-x+1/2, -y+1/2, z' 43 '-z, y+1/2, -x+1/2' 44 '-z+1/2, y, -x+1/2' 45 '-z+1/2, y+1/2, -x' 46 '-y, x+1/2, -z+1/2' 47 '-y+1/2, x, -z+1/2' 48 '-y+1/2, x+1/2, -z' 49 '-x, z+1/2, -y+1/2' 50 '-x+1/2, z, -y+1/2' 51 '-x+1/2, z+1/2, -y' 52 '-z, x+1/2, -y+1/2' 53 '-z+1/2, x, -y+1/2' 54 '-z+1/2, x+1/2, -y' 55 '-y, z+1/2, -x+1/2' 56 '-y+1/2, z, -x+1/2' 57 '-y+1/2, z+1/2, -x' 58 '-x, y+1/2, -z+1/2' 59 '-x+1/2, y, -z+1/2' 60 '-x+1/2, y+1/2, -z' 61 'z, -y+1/2, -x+1/2' 62 'z+1/2, -y, -x+1/2' 63 'z+1/2, -y+1/2, -x' 64 'y, -x+1/2, -z+1/2' 65 'y+1/2, -x, -z+1/2' 66 'y+1/2, -x+1/2, -z' 67 'x, -z+1/2, -y+1/2' 68 'x+1/2, -z, -y+1/2' 69 'x+1/2, -z+1/2, -y' 70 'z, -x+1/2, -y+1/2' 71 'z+1/2, -x, -y+1/2' 72 'z+1/2, -x+1/2, -y' 73 'y, -z+1/2, -x+1/2' 74 'y+1/2, -z, -x+1/2' 75 'y+1/2, -z+1/2, -x' 76 'x, -y+1/2, -z+1/2' 77 'x+1/2, -y, -z+1/2' 78 'x+1/2, -y+1/2, -z' 79 'z, y+1/2, x+1/2' 80 'z+1/2, y, x+1/2' 81 'z+1/2, y+1/2, x' 82 'y, x+1/2, z+1/2' 83 'y+1/2, x, z+1/2' 84 'y+1/2, x+1/2, z' 85 'x, z+1/2, y+1/2' 86 'x+1/2, z, y+1/2' 87 'x+1/2, z+1/2, y' 88 'z, x+1/2, y+1/2' 89 'z+1/2, x, y+1/2' 90 'z+1/2, x+1/2, y' 91 'y, z+1/2, x+1/2' 92 'y+1/2, z, x+1/2' 93 'y+1/2, z+1/2, x' 94 'x, y+1/2, z+1/2' 95 'x+1/2, y, z+1/2' 96 'x+1/2, y+1/2, z' loop_ _atom_type_symbol _atom_type_oxidation_number As3- -3 Ga3+ 3 loop_ _atom_site_label _atom_site_type_symbol _atom_site_symmetry_multiplicity _atom_site_Wyckoff_symbol _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z _atom_site_occupancy _atom_site_attached_hydrogens Ga1 Ga3+ 4 a 0 0 0 1. 0 As2 As3- 4 c 0.25 0.25 0.25 1. 0 #End of data_43359-ICSD -- Allen Hall aj...@gm... al...@il... |
From: Dominik K. <dom...@gm...> - 2021-11-27 02:56:09
|
xrayutilities-1.7.3 is available. The release was necessary since the previous version had some broken files on PyPI [1]. It is otherwise equivalent with version 1.7.2. Python wheel packages are now provided in an updated format for versions 3.6 to 3.10 [1]. If you encounter problems, please report them on Github [2] or on the mailinglist [3] [1] https://pypi.python.org/pypi/xrayutilities [2] https://github.com/dkriegner/xrayutilities/ [3] https://sourceforge.net/p/xrayutilities/mailman/xrayutilities-users/ |
From: Dominik K. <dom...@gm...> - 2021-11-23 10:44:07
|
xrayutilities-1.7.2 is available. This version is compatible with Python >3.6. Version 1.7.2 contains some bug fixes and is compatible with matplotlib 3.5. Details can be found in the Changes.txt file [1]. In order to obtain the new version, go to SourceForge [2] or use PyPI [3]. Wheel packages for Windows, macOS and Linux are found on PyPI for 64-bit Python in versions 3.6, 3.7, 3.8, and 3.9. Python 3.10 is also supported, but currently no wheel packages can be provided. There is also a conda-forge package [4] which should make installing for Conda users more straightforward. If you encounter problems, please report them on GitHub or on the mailinglist [5]. [1] https://github.com/dkriegner/xrayutilities/blob/main/CHANGES.txt [2] https://sourceforge.net/projects/xrayutilities [3] https://pypi.python.org/pypi/xrayutilities [4] https://github.com/conda-forge/xrayutilities-feedstock [5] https://sourceforge.net/p/xrayutilities/mailman/xrayutilities-users/ |
From: Dominik K. <dom...@gm...> - 2021-01-02 20:27:17
|
Dear xrayutilities users, This is an updated version of how to install the latest GIT master [1] of xrayutilities. Upon questions and bug reports it is usually a good idea to reproduce your problem with the latest GIT version. Since installation from source requires a working C-compiler sometimes people have problems with this. However, every change on GIT master triggers automatic building of Python wheel files [2], hence obtaining the latest development version is rather easy. Just run: pip install --user --upgrade xrayutilities --extra-index-url https://pkgs.dev.azure.com/dominikkriegner/xrayutilities/_packaging/xrayutilities-dev/pypi/simple Likely you want the '--user' option as included above to not interfere with your system packages. But variations of this command are of course possible. On systems with appropriate C-compiler (manual/alternative version) you also can: 1) download the latest git version either by GIT or from the following link: https://github.com/dkriegner/xrayutilities/archive/master.zip 2) open a command line with access to your python executables and go to the folder where you have the 'xrayutilities' source files. 3) run 'pip install .' or variants thereof outlined in the Readme [3]. cheers dominik [1] https://sourceforge.net/p/xrayutilities/mailman/message/36512225/ [2] https://dev.azure.com/dominikkriegner/xrayutilities/_packaging?_a=feed&feed=xrayutilities-dev [3] https://github.com/dkriegner/xrayutilities#installation-source |
From: Dominik K. <dom...@gm...> - 2020-12-12 06:55:06
|
Dear Ruggero, It seems to me everyone using xrayutilities for the first time has problems with the directions. If somebody sees how one can explain this better in some documentation I would appreciate suggestions for changes. From the many discussions I have had so far it always turns out that different people use different coordinate frames and not always all things are adjusted according to their imagination and it's not always obvious what everything is autoadjusted by xrayutilities. One thing which is not clear to me from the pseudoscript you sent in your first email is if you redefined the goniometer rotation directions? FourC assumes the following which is in contrast to what you write in your email with a detector rotation around z. If you deviate from this system you have to specify a custom 'qconv' in the constructor of FourC: sample geometry(3): x+y+z- detector geometry(1): x+ primary beam direction: ( 0.00 1.00 0.00) This could be a potential source of confusion because what you call surface normal is likely determined by the detector rotation plane! The surface normal is also configurable in xrayutilities by "sampleor" parameter to the constructor of Experiment classes. I copied the relevant documentation to the end of this email! I can further not comment on the specific directions you write because all obviously depends on your a,b,c, alpha,beta, gamma. kind regards Dominik from the docstring of Experiment._set_transform: The sampleor variable determines the sample surface orientation with respect to the coordinate system in which the goniometer rotations are given. You can use the [xyz][+-] syntax to specify the nominal surface orientation (when all goniometer angles are zero). In addition two special values 'det' and 'sam' are available, which will let the code determine the orientation from either the inner most detector or sample rotation. 'det' means the surface is in the plane spanned by the inner most detector rotation (rotation around primary beam is ignored) and perpendicular to the primary beam. 'sam' means the surface orientation is along the innermost sample circles rotation direction (in this case this should be the azimuth motor to yield the expected results). Default is 'det'. On Sat, Dec 12, 2020 at 1:45 AM ruggero frison <rug...@uz...> wrote: > Dear Dominik, > > thanks for the explanation. > > I see. > The Q2AngFit works but unfortunately not at best since with reasonable > bounds the fit converges to values that do not match my experimental ones. > This suggest me that one possibility is that the experimental parameters > are not all correct. > > One thing I am not sure about is still the call to FourC, where the second > direction should be the out of plane one. Setting such that > hxrd = xu.FourC(sample.Q(1, 0, 0), sample.Q(0, 1, 0), en=energy) > The normal to the scattering plane results in: (0.000000 0.000000 > -1.000000). > But in my experiment the scattering plane is the a,c-plane, which is also > the xy-plane of the reference system when the angles are at 0. The detector > rotates with 2th around the z-axis, so in the xy-plane. > So I would think that the second direction in FourC should be (0,0,1). > > In any case thank you for your help. > > Best > Ruggero > > > > > On 11 Dec 2020, at 13:14, Dominik Kriegner <dom...@gm...> > wrote: > > > > Dear Ruggero > > > > Actually using Q2Ang for consistency checks is not really feasible. > > Let me explain why: > > Q2Ang takes the orientation of the material from the definition of > "hxrd" (in your case FourC). > > This is somehow elaborate and likely by default fits best applications > of thin film diffraction. > > The two directions you specify in the constructor of FourC define the > crystal axis which is along the primary beam (when all goniometer angles > are at zero) and a second direction which for the thin film case > corresponds to the out of plane direction. In fact the meaning of the > second direction also depends on the setting of the optional 'sample_or'. > So yes you can set the sample orientation. I see that somebody would want > to set this directly using an orientation matrix. Maybe you could report an > issue on github about this if you agree. > > > > But there is a more fundamental problem why Q2Ang likely will not be > useful for you: You basically want to determine four goniometer angles from > three reciprocal space coordinates/Miller indices. So the problem is > overdetermined. > > The implementation of Q2Ang in FourC (and HXRD) make some assumptions > about how to angles are calculated (in fact they turn the sample to obtain > a coplanar setting of incidence/diffracted and surface normal). There is > also NonCOP which describes the same goniometer with a different Q2Ang > implementation. For your 2D detector both will likely not help. There is an > alternative, however, look at Q2AngFit. There you can define your own > orientation matrix and other geometrical restrictions and the function by > numerical optimization determines the diffraction angles. [1] > > > > cheers > > dominik > > > > [1] > https://xrayutilities.sourceforge.io/examples.html#calculation-of-diffraction-angles-for-a-general-geometry > > ps: I realized now a major problem in the documentation (both online and > in the pdf) which do not contain the docstrings of __init__ functions. I > will fix this asap. > > > > On Fri, Dec 11, 2020 at 11:59 AM ruggero frison <rug...@uz...> > wrote: > > Dear Dominik, > > > > thank you. > > That helped and things work thought the results are not fully consisten > with the experiment, but it might be > > some little error that I hope I will figure out myself with a more > careful look at. > > > > One more thing. To check the results I understand that I could use Q2Ang. > > I expect the return values of Q2Ang should match the experimental values. > > Where from the Q2Ang gets the sample orientation? > > > > In the example xrayutilities_angular2hkl_conversion.py there is: > > [om, chi, phi, tt] = hxrd.Q2Ang(mat.Q(H, K, L)) > > > > Is there a way to set the sample orientation? > > > > Thank you > > > > Best regards > > Ruggero > > > > > > > > > On 11 Dec 2020, at 00:37, Dominik Kriegner <dom...@gm...> > wrote: > > > > > > Dear Ruggero, > > > > > > I think you seemed to look more or less in the right places. I see > three problems in the the dummy script you sent: > > > > > > 1) I am not sure which version or xrayutilities you are using but > reasonable up to date versions the material definition would need to be > > > sam = xu.materials.material.Crystal('sample1', > xu.materials.SGLattice(1, *abcabg)) > > > > > > 2) Since you say you are describing a four circle machine you should > likely use FourC > > > hxrd = xu.FourC(sam.Q(-2, 0, 0), sam.Q(0, 0, -4), en=energy) > > > you then will need to specify chi and phi in your call to Ang2HKL > > > > > > 3) Ang2HKL takes an optional parameter dettype [1]. This should in > your case likely be set to 'area' > > > h,k,l = hxrd.Ang2HKL(omega, chi, phi, towtheta, U=ubmat, > dettype='area') > > > > > > h,k,l should then be matrices of the shape (Nch1, Nch2) for every > angular position you specify. If you specify arrays of angles h,k,l will be > three dimensional arrays with according dimensions. > > > > > > I hope this helps. > > > > > > kind regards > > > Dominik > > > > > > [1] > https://xrayutilities.sourceforge.io/xrayutilities.html?highlight=ang2hkl#xrayutilities.experiment.Experiment.Ang2HKL > > > > > > On Thu, Dec 10, 2020 at 6:38 PM ruggero frison <rug...@uz...> > wrote: > > > > > > > > Hello, > > > > > > > > I would need some help, I am trying to index a frame of an Area > detector into hkl coordinateds following the example provided in Appendix B > of the reference paper and in some scripts provided in the example folder > of the distribution. > > > > > > > > I have some frames of an area detector with a 4-circles Eulerian > cradle. > > > > > > > > I paste below a dummy script, which > > > > I prepared a script building on the examples but it does not give > results, I do not understand why. > > > > I guess because I do not understand the underlying action of > xrayutilities. > > > > > > > > I understand that Ang2HKL would create the arrays of hkl vlaues > using the experimental angles. > > > > Thus I could feed it with the scan parameters I retrieve from the > scan files and the UB matrix determined during the sample alignment. > > > > > > > > Would that work or I am getting wrong? > > > > > > > > I paste below a dummy script to avoid useless details. > > > > > > > > Thanks > > > > > > > > Best regards > > > > > > > > Ruggero > > > > > > > > > > > > ##__set the material > > > > abcabg = [a,b,c,alpha, beta, gamma] > > > > sam = xru.materials.material.Crystal(’sample1', abcabg) > > > > > > > > ##__the UB matrix is retrieved during the experiment > > > > ubmat = np.array([[1.364,-0.131,0.270],[-0.044, 1.639, > 0.083],[-0.950, -0.264, 0.384]]) > > > > > > > > > > > > ##__load the frame and associated parameter file to get scan > parameters, > > > > omega, twotheta, chi, phi, energy, detector_distance = ... > > > > > > > > ##__fix detector spec > > > > > > > > #__define experiment geometry > > > > hxrd = xru.HXRD(sam.Q(-2, 0, 0), sam.Q(0, 0, -4), en=energy) > > > > > > > > ##__assign orientation matrix > > > > hxrd.Ang2Q.init_area('z+','x+', cch1=cpix, cch2=cpiy, Nch1=npix, > Nch2=npiy, > > > > pwidth1=xpix, pwidth2=ypix, distance=sam_det) > > > > > > > > ## conversion to h,k,l > > > > h,k,l = hxrd.Ang2HKL(omega, towtheta, U=ubmat) > > > > > > > > > > > > > > > > ================================================================== > > > > Ruggero Frison > > > > University of Zurich, Physik Institut > > > > > > > > Winterthurerstrasse 190 > > > > CH-8057 Zurich, Switzerland > > > > Office: Y36-H-76 > > > > Phone: +41 44 635 5780 > > > > ================================================================== > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > xrayutilities-users mailing list > > > > xra...@li... > > > > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > > > > |
From: ruggero f. <rug...@uz...> - 2020-12-12 00:45:16
|
Dear Dominik, thanks for the explanation. I see. The Q2AngFit works but unfortunately not at best since with reasonable bounds the fit converges to values that do not match my experimental ones. This suggest me that one possibility is that the experimental parameters are not all correct. One thing I am not sure about is still the call to FourC, where the second direction should be the out of plane one. Setting such that hxrd = xu.FourC(sample.Q(1, 0, 0), sample.Q(0, 1, 0), en=energy) The normal to the scattering plane results in: (0.000000 0.000000 -1.000000). But in my experiment the scattering plane is the a,c-plane, which is also the xy-plane of the reference system when the angles are at 0. The detector rotates with 2th around the z-axis, so in the xy-plane. So I would think that the second direction in FourC should be (0,0,1). In any case thank you for your help. Best Ruggero > On 11 Dec 2020, at 13:14, Dominik Kriegner <dom...@gm...> wrote: > > Dear Ruggero > > Actually using Q2Ang for consistency checks is not really feasible. > Let me explain why: > Q2Ang takes the orientation of the material from the definition of "hxrd" (in your case FourC). > This is somehow elaborate and likely by default fits best applications of thin film diffraction. > The two directions you specify in the constructor of FourC define the crystal axis which is along the primary beam (when all goniometer angles are at zero) and a second direction which for the thin film case corresponds to the out of plane direction. In fact the meaning of the second direction also depends on the setting of the optional 'sample_or'. So yes you can set the sample orientation. I see that somebody would want to set this directly using an orientation matrix. Maybe you could report an issue on github about this if you agree. > > But there is a more fundamental problem why Q2Ang likely will not be useful for you: You basically want to determine four goniometer angles from three reciprocal space coordinates/Miller indices. So the problem is overdetermined. > The implementation of Q2Ang in FourC (and HXRD) make some assumptions about how to angles are calculated (in fact they turn the sample to obtain a coplanar setting of incidence/diffracted and surface normal). There is also NonCOP which describes the same goniometer with a different Q2Ang implementation. For your 2D detector both will likely not help. There is an alternative, however, look at Q2AngFit. There you can define your own orientation matrix and other geometrical restrictions and the function by numerical optimization determines the diffraction angles. [1] > > cheers > dominik > > [1] https://xrayutilities.sourceforge.io/examples.html#calculation-of-diffraction-angles-for-a-general-geometry > ps: I realized now a major problem in the documentation (both online and in the pdf) which do not contain the docstrings of __init__ functions. I will fix this asap. > > On Fri, Dec 11, 2020 at 11:59 AM ruggero frison <rug...@uz...> wrote: > Dear Dominik, > > thank you. > That helped and things work thought the results are not fully consisten with the experiment, but it might be > some little error that I hope I will figure out myself with a more careful look at. > > One more thing. To check the results I understand that I could use Q2Ang. > I expect the return values of Q2Ang should match the experimental values. > Where from the Q2Ang gets the sample orientation? > > In the example xrayutilities_angular2hkl_conversion.py there is: > [om, chi, phi, tt] = hxrd.Q2Ang(mat.Q(H, K, L)) > > Is there a way to set the sample orientation? > > Thank you > > Best regards > Ruggero > > > > > On 11 Dec 2020, at 00:37, Dominik Kriegner <dom...@gm...> wrote: > > > > Dear Ruggero, > > > > I think you seemed to look more or less in the right places. I see three problems in the the dummy script you sent: > > > > 1) I am not sure which version or xrayutilities you are using but reasonable up to date versions the material definition would need to be > > sam = xu.materials.material.Crystal('sample1', xu.materials.SGLattice(1, *abcabg)) > > > > 2) Since you say you are describing a four circle machine you should likely use FourC > > hxrd = xu.FourC(sam.Q(-2, 0, 0), sam.Q(0, 0, -4), en=energy) > > you then will need to specify chi and phi in your call to Ang2HKL > > > > 3) Ang2HKL takes an optional parameter dettype [1]. This should in your case likely be set to 'area' > > h,k,l = hxrd.Ang2HKL(omega, chi, phi, towtheta, U=ubmat, dettype='area') > > > > h,k,l should then be matrices of the shape (Nch1, Nch2) for every angular position you specify. If you specify arrays of angles h,k,l will be three dimensional arrays with according dimensions. > > > > I hope this helps. > > > > kind regards > > Dominik > > > > [1] https://xrayutilities.sourceforge.io/xrayutilities.html?highlight=ang2hkl#xrayutilities.experiment.Experiment.Ang2HKL > > > > On Thu, Dec 10, 2020 at 6:38 PM ruggero frison <rug...@uz...> wrote: > > > > > > Hello, > > > > > > I would need some help, I am trying to index a frame of an Area detector into hkl coordinateds following the example provided in Appendix B of the reference paper and in some scripts provided in the example folder of the distribution. > > > > > > I have some frames of an area detector with a 4-circles Eulerian cradle. > > > > > > I paste below a dummy script, which > > > I prepared a script building on the examples but it does not give results, I do not understand why. > > > I guess because I do not understand the underlying action of xrayutilities. > > > > > > I understand that Ang2HKL would create the arrays of hkl vlaues using the experimental angles. > > > Thus I could feed it with the scan parameters I retrieve from the scan files and the UB matrix determined during the sample alignment. > > > > > > Would that work or I am getting wrong? > > > > > > I paste below a dummy script to avoid useless details. > > > > > > Thanks > > > > > > Best regards > > > > > > Ruggero > > > > > > > > > ##__set the material > > > abcabg = [a,b,c,alpha, beta, gamma] > > > sam = xru.materials.material.Crystal(’sample1', abcabg) > > > > > > ##__the UB matrix is retrieved during the experiment > > > ubmat = np.array([[1.364,-0.131,0.270],[-0.044, 1.639, 0.083],[-0.950, -0.264, 0.384]]) > > > > > > > > > ##__load the frame and associated parameter file to get scan parameters, > > > omega, twotheta, chi, phi, energy, detector_distance = ... > > > > > > ##__fix detector spec > > > > > > #__define experiment geometry > > > hxrd = xru.HXRD(sam.Q(-2, 0, 0), sam.Q(0, 0, -4), en=energy) > > > > > > ##__assign orientation matrix > > > hxrd.Ang2Q.init_area('z+','x+', cch1=cpix, cch2=cpiy, Nch1=npix, Nch2=npiy, > > > pwidth1=xpix, pwidth2=ypix, distance=sam_det) > > > > > > ## conversion to h,k,l > > > h,k,l = hxrd.Ang2HKL(omega, towtheta, U=ubmat) > > > > > > > > > > > > ================================================================== > > > Ruggero Frison > > > University of Zurich, Physik Institut > > > > > > Winterthurerstrasse 190 > > > CH-8057 Zurich, Switzerland > > > Office: Y36-H-76 > > > Phone: +41 44 635 5780 > > > ================================================================== > > > > > > > > > > > > > > > _______________________________________________ > > > xrayutilities-users mailing list > > > xra...@li... > > > https://lists.sourceforge.net/lists/listinfo/xrayutilities-users > |