Structure factor across backends

[1]:
%matplotlib inline
import matplotlib
matplotlib.rcParams['figure.dpi'] = 100

try:
    import srxraylib.plot.gol as _gol
    _gol.set_qt = lambda: None
except Exception:
    pass

[2]:
from crystalpy.diffraction.GeometryType import BraggDiffraction
from crystalpy.diffraction.DiffractionSetupXraylib import DiffractionSetupXraylib
from crystalpy.diffraction.DiffractionSetupDabax import DiffractionSetupDabax
from crystalpy.diffraction.DiffractionSetupShadowPreprocessorV1 import DiffractionSetupShadowPreprocessorV1
from crystalpy.diffraction.DiffractionSetupShadowPreprocessorV2 import DiffractionSetupShadowPreprocessorV2
from dabax.dabax_xraylib import DabaxXraylib
from xoppylib.crystals.create_bragg_preprocessor_file_v1 import create_bragg_preprocessor_file_v1
from xoppylib.crystals.create_bragg_preprocessor_file_v2 import create_bragg_preprocessor_file_v2
import numpy

a = DiffractionSetupXraylib(geometry_type=BraggDiffraction,
                                       crystal_name="Si", thickness=1e-5,
                                       miller_h=1, miller_k=1, miller_l=1,
                                       asymmetry_angle=0.0,
                                       azimuthal_angle=0.0,)


a2 = DiffractionSetupDabax(geometry_type=BraggDiffraction,
                                       crystal_name="Si", thickness=1e-5,
                                       miller_h=1, miller_k=1, miller_l=1,
                                       asymmetry_angle=0.0,
                                       azimuthal_angle=0.0,
                                       dabax=DabaxXraylib())

create_bragg_preprocessor_file_v1(interactive=False,
                                  DESCRIPTOR="Si",
                                  H_MILLER_INDEX=1,
                                  K_MILLER_INDEX=1,
                                  L_MILLER_INDEX=1,
                                  TEMPERATURE_FACTOR=1.0,
                                  E_MIN=5000.0, E_MAX=15000.0, E_STEP=100.0,
                                  SHADOW_FILE="bragg_v1.dat")

a3 = DiffractionSetupShadowPreprocessorV1(geometry_type=BraggDiffraction,
                                       crystal_name="Si", thickness=1e-5,
                                       miller_h=1, miller_k=1, miller_l=1,
                                       asymmetry_angle=0.0,
                                       azimuthal_angle=0.0,
                                       preprocessor_file="bragg_v1.dat")

create_bragg_preprocessor_file_v2(interactive=False,
                                  DESCRIPTOR="Si",
                                  H_MILLER_INDEX=1,
                                  K_MILLER_INDEX=1,
                                  L_MILLER_INDEX=1,
                                  TEMPERATURE_FACTOR=1.0,
                                  E_MIN=5000.0, E_MAX=15000.0, E_STEP=100.0,
                                  SHADOW_FILE="bragg_v2.dat")

a4 = DiffractionSetupShadowPreprocessorV2(geometry_type=BraggDiffraction,
                                       crystal_name="Si", thickness=1e-5,
                                       miller_h=1, miller_k=1, miller_l=1,
                                       asymmetry_angle=0.0,
                                       azimuthal_angle=0.0,
                                       preprocessor_file="bragg_v2.dat")

energy = 8000.0
print("Photon energy: %g deg " % (energy))
print("d_spacing: %g %g %g %g A " %         (a.dSpacing(),a2.dSpacing(),a3.dSpacing(),a4.dSpacing()))
print("unitCellVolumw: %g %g %g %g A**3 " % (a.unitcellVolume(),a2.unitcellVolume(),a3.unitcellVolume(),a4.unitcellVolume()))
print("Bragg angle: %g %g %g %g deg " % (a.angleBragg(energy) * 180 / numpy.pi,
                                a2.angleBragg(energy) * 180 / numpy.pi,
                                a3.angleBragg(energy) * 180 / numpy.pi,
                                a4.angleBragg(energy) * 180 / numpy.pi,
                                         ))

print("F0 ",     a.F0(energy), a2.F0(energy), a3.F0(energy), a4.F0(energy))
print("FH ",     a.FH(energy), a2.FH(energy), a3.FH(energy), a4.FH(energy))
print("FH_BAR ", a.FH_bar(energy), a2.FH_bar(energy), a3.FH_bar(energy), a4.FH_bar(energy))

print("PSI0 ",     a.psi0(energy), a2.psi0(energy), a3.psi0(energy), a4.psi0(energy))
print("PSIH ",     a.psiH(energy), a2.psiH(energy), a3.psiH(energy), a4.psiH(energy))
print("PSIH_bar ", a.psiH_bar(energy), a2.psiH_bar(energy), a3.psiH_bar(energy), a4.psiH_bar(energy))
  Unit cell dimensions are 5.430700 5.430700 5.430700
  Unit cell angles are 90.000000 90.000000 90.000000
  Unit cell volume is 160.164932 A^3
  Atoms at:
     Z  fraction    X        Y        Z
     14 1.000000 0.000000 0.000000 0.000000
     14 1.000000 0.000000 0.500000 0.500000
     14 1.000000 0.500000 0.000000 0.500000
     14 1.000000 0.500000 0.500000 0.000000
     14 1.000000 0.250000 0.250000 0.250000
     14 1.000000 0.250000 0.750000 0.750000
     14 1.000000 0.750000 0.250000 0.750000
     14 1.000000 0.750000 0.750000 0.250000

File written to disk: bragg_v1.dat
File written to disk: bragg_v2.dat
Photon energy: 8000 deg
d_spacing: 3.13542 3.13542 3.13542 3.13542 A
unitCellVolumw: 160.165 160.165 160.165 160.165 A**3
Bragg angle: 14.3086 14.3086 14.3086 14.3086 deg
F0  (114.0671599778+2.7210611299816887j) [114.36691391+2.62954001j] (114.0671599778+2.721061129984j) (114.0671599778+2.721061129984j)
FH  (44.5361940515001-41.81513292151844j) [44.65102865-42.02148864j] (44.536196014226284-41.81513488424231j) (45.20550401662895-42.484442886644956j)
FH_BAR  (41.81513292151842+44.536194051500125j) [42.02148864+44.65102865j] (41.81513488424228+44.53619601422631j) (42.484442886644956+45.20550401662895j)
PSI0  (-1.534361936013982e-05-3.660205640452224e-07j) [-1.53839403e-05-3.53709699e-07j] (-1.534361879346813e-05-3.6602055052763464e-07j) (-1.534361879346813e-05-3.6602055052763464e-07j)
PSIH  (-5.990737469123762e-06+5.624716905078544e-06j) [-6.00618428e-06+5.65247458e-06j] (-5.990737511887359e-06+5.624716961359728e-06j) (-6.080768743017185e-06+5.71474819248955e-06j)
PSIH_bar  (-5.624716905078541e-06-5.9907374691237654e-06j) [-5.65247458e-06-6.00618428e-06j] (-5.624716961359724e-06-5.990737511887362e-06j) (-5.71474819248955e-06-6.080768743017185e-06j)