import gradio as gr import numpy as np title="计算X射线在材料中的穿透深度" description=""" 此程序计算的X射线为Cu Ka,波长为1.5406 埃,对应的能量为8.04 keV (查元素质量衰减系数时用) \n 角度的单位为:° \n 密度的单位为:g/cm\u00b3 \n packing: 表示粉体压实的程度,压的越实值越大,最大为1。块材默认为1 \n HighScore:可计算大入射角,一般用于XRD计算 \n 临界角全反射模型:可计算小入射角,一般用于GIXRD计算 \n 元素的相对原子质量和质量衰减系数可在页面底部链接查询 \n 需要注意的是:这里clear不能用,请不要点,否则需要刷新页面。如果多输入了一行,则把那一行全部置为0即可 """ article = "

元素质量衰减系数

相对原子质量表

visitor badge

" def calc_X_ray_penetration(incident_angle,density, packing, calc_equation, chemical_formula): n=len(chemical_formula['元素']) t_atom_number=chemical_formula['原子个数'] t_relative_atomic_mass=chemical_formula['相对原子质量'] t_um=chemical_formula['质量衰减系数'] t_a_m=0 for i in range(n): t_a_m+=float(t_atom_number[i])*float(t_relative_atomic_mass[i]) um=0 for i in range(n): um+=float(t_um[i])*(float(t_atom_number[i])*float(t_relative_atomic_mass[i])/t_a_m) u=um*density if calc_equation=="HighScore": # # np.sin 需要把计算时需要把°换成弧度 d=0.5*np.log(100)/u*np.sin(incident_angle/180.*np.pi) d=d*1e4 return f" 材料的质量衰减系数为:{um:.2f} cm\u00b2/g\n 材料的线衰减系数为:{u:.2f} cm\u207B\u00b9\n X射线在材料中的穿透深度为:{d:.4f} um" # return np.array([d,u]) if calc_equation=="临界角全反射模型": ac=1.6e-3*np.sqrt(density)*1.5406 a=incident_angle/180*np.pi if a