Skip to content

A package for calculating some bent Laue monochromator properties for synchrotron x-ray source..

Notifications You must be signed in to change notification settings

pqibd/bent-laue-xray-optics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLXO (Bent Laue X-ray Optics)

Installation

Option 1

pip install blxo

Option 2

Download the repository. Import the blxo folder as a python package.

How to use it

  1. Define a monochromator with your parameters.

    Example:

from blxo import *
mono = mc.BentLaueMono(chi=np.radians(4.4671),theta=np.radians(8.99),nu=0.2,t=0.3,r=2000,p=22000) # Length unit is mm. Angle unit is radians.
  1. Get the interested properties from the monochromator.

    1. Quasi-mono beam
    qmb = mono.qmb
    # Quasi-mono beam width (mm)
    width = qmb['width']
    # Quasi-mono beam footlength (mm)
    footlength = qmb['foot_length']
    # Energy spread of the QMB in terms of angle (rad)
    ang_spread = qmb['angular_spread']
    1. Resolutions
    # Energy resolution
    mono.energy_resolution
    # Energy resolution in terms of angle
    mono.angle_resolution
    1. Optimal focus-to-detector distance
    mono.f2d_optimal
    1. Calculators for magic condition
    from blxo import *
    # Expect the result to be zero when the magic condition is met.
    # Magic condition function in terms of angle
    mc_angle_misalignment = mc.magic_condition_angles(chi=np.radians(4.4671),theta=np.radians(8.99),nu=0.2,t=0.3,r=2000,p=22000)
    # `mc_angle_misalignment` is expected to be zero (or zero enough) when the magic condition is met.
    
    # Magic condition function in terms of foci
    mc_focus_misalignment = mc.magic_condition_foci(chi=np.radians(4.4671),theta=np.radians(8.99),nu=0.2,t=0.3,r=2000,p=22000) # Thickness (t) is not a factor in the calculation, but a called module requires it for some other functions. So just give it any number.
    1. Others
    mono.lengths.geo_focus()
    mono.lengths.single_ray_focus()

About

A package for calculating some bent Laue monochromator properties for synchrotron x-ray source..

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages