python同步加速器波动器计算

pySRU的Python项目详细描述


警告:项目正在开发中!!

python中的同步辐射波动器发射

主要开发网站:https://github.com/SophieTh/und_Sophie_2016

计算储存环中波动器辐射的工具箱。

这个软件库实现了计算储存环中波动器辐射发射的公式,等等 一般来说,相对论性电子在任意磁场中的发射。

该软件是用纯python编写的,使用标准包numpy和scipy。它对绘图使用matplotlib,但计算时不需要它。

许可证

此代码在麻省理工学院的许可证下转发,详见许可证文件。

安装

要构建供python使用的库,只需使用python setup.py install方法。

示例

文件simulations.py包含许多仿真。例如,下面的代码创建了波动器的发射,如x射线数据手册(http://xdb.lbl.gov/Section2/Sec_2-1.html)中的图2.5所示

这段python代码展示了如何通过其python绑定使用库。

frompySRU.ElectronBeamimportElectronBeamfrompySRU.MagneticStructureUndulatorPlaneimportMagneticStructureUndulatorPlaneasUndulatorfrompySRU.Simulationimportcreate_simulationfrompySRU.TrajectoryFactoryimportTRAJECTORY_METHOD_ANALYTIC,TRAJECTORY_METHOD_ODEfrompySRU.RadiationFactoryimportRADIATION_METHOD_NEAR_FIELD,RADIATION_METHOD_APPROX_FARFIELDprint("======================================================================")print("======      Undulator from X-ray data booklet                  =======")print("====== fig 2.5 in  http://xdb.lbl.gov/Section2/Sec_2-1.html    =======")print("======================================================================")# note that the flux in the reference fig 2.6 is a factor 10 smaller than the calculated here.# This factor comes from the units:#     here: phot / s  / A / 0.1%bw / (mrad)^2#     ref : phot / s  / A /   1%bw / (0.1 mrad)^2undulator_test=Undulator(K=1.87,period_length=0.035,length=0.035*14)electron_beam_test=ElectronBeam(Electron_energy=1.3,I_current=1.0)simulation_test=create_simulation(magnetic_structure=undulator_test,electron_beam=electron_beam_test,magnetic_field=None,photon_energy=None,traj_method=TRAJECTORY_METHOD_ANALYTIC,Nb_pts_trajectory=None,rad_method=RADIATION_METHOD_APPROX_FARFIELD,Nb_pts_radiation=101,initial_condition=None,distance=None,XY_are_list=False,X=None,Y=None)simulation_test.print_parameters()simulation_test.trajectory.plot_3D(title="Electron Trajectory")simulation_test.radiation.plot(title="Flux in far field vs angle")
https://github.com/SophieTh/und_Sophie_2016/blob/master/doc/radiation_xraybooklet.jpeg

结果链接:https://github.com/SophieTh/und_Sophie_2016/blob/master/doc/radiation_xraybooklet.jpeg

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?