麋鹿光学输出数据的绘制与分析
elkoa的Python项目详细描述
说明
ELK光学分析仪(ELKOA)帮助分析光学输出数据 The Elk Code。
功能
麋鹿光学分析仪…
- 带有一个gui和一个python cli
- 支持ELK任务121、187、320和330
- 自动识别可用的任务/(张量)字段
- 易于扩展
用户可以…
- 可视化麋鹿光学系统的实部和虚部输出数据 多种方式
- 导入其他数据文件,例如实验测量ctrl+o
- 通过Universal Response Relations转换响应函数,例如εσctrl+c
- 将介电张量转换为(超)普通折射率 对于任意波矢量,按ctrl+c
- 通过对话框ctrl+t选择要单独绘制的张量元素
- 对所有绘图使用全局张量元素设置ctrl+g
- 批量加载参数的可视化分析 不同的参数设置ctrl+b
- 以不同格式写出显示的数据ctrl+w
即将到来:
- 索引椭球体的三维绘图
- 一组不同q点的批量转换
- 样品/几何相关(即薄膜)响应转换 功能
要求
您应该使用Linux发行版提供的软件包。打开 例如,您可以通过 运行
apt install python3-numpy python3-matplotlib python3-pyqt5 python3-pbr
或者,您可以获取每个包的最新pypi版本 通过pip自动安装(见下文)。
出于测试目的,您还需要以下软件包:* pytest*pytest qt*pytest mpl*鼻子
安装
安装elkoa的最简单方法是通过pip,直接从pypi安装。
pip install elkoa
或者,如果您想要最新的git版本,
git clone https://github.com/PandaScience/ElkOpticsAnalyzer.git
cd ElkOpticsAnalyzer
pip install .
这也将安装所有必需但不存在的python包 自动从PYPI。
如果您只想为当前用户安装elkoa,请添加标志 --user。如果您想处理所需的python包 您自己(即使用Linux发行版提供的软件) 添加--no-deps。如果要运行开发人员安装(否 复制文件,而不是直接使用git repo文件),添加-e。
无论如何,在安装之后,您可以从 使用elkoa或 ElkOpticsAnalyzer。
另一种安装方法是如上文所述克隆repo,而不是 通过pip安装,放置类似于
exportPATH=$PATH:/path/to/ElkOpticsAnalyzer/elkoa/gui exportPYTHONPATH=$PYTHONPATH:/path/to/ElkOpticsAnalyzer/
给你的.bashrc或.bash_profile。然后你就可以开始 带ElkOpticsAnalyzer.py的图形用户界面。
测试
使用pytest库完成测试。确保已安装 所有附加要求。
- 下载并提取样本数据
- 待办事项
- 运行(–mpl标志是必需的!)
pytesttest_figures.py--mpl
python cli
在包含文件的elk输出目录中
elk.in INFO.OUT EPSILON_11.OUT EPSILON_12.OUT EPSILON_13.OUT EPSILON_21.OUT EPSILON_22.OUT EPSILON_23.OUT EPSILON_31.OUT EPSILON_32.OUT EPSILON_33.OUT
您可以在python3解释器中运行:
fromelkoa.utilsimportelk,io,convert# parse Elk input fileelk_input=elk.ElkInput()# read specific input parametereta=elk.readElkInputParameter("swidth")# read tensorial Elk optics output (ij = dummy for 11, 12, etc.)freqs,epsilon=io.readTenElk("EPSILON_TDDFT_ij.OUT")# create converter instanceq=[0,0,0]converter=convert.Converter(q,freqs,eta,opticalLimit=True)# convert dielectric tensor to optical conductivitysigma=converter.epsilonToSigma(epsilon)# write out converted tensorio.writeTensor("sigma_ij_test.dat",freqs,sigma,threeColumn=True)# write out 11-element of converted tensorio.writeScalar("sigma_11-scalar.dat",freqs,sigma[0,0,:],threeColumn=True)
其他
- 自动将文件名转换为文本标签
- 要使用此功能,文件名必须遵循以下模式 root+_sub+.ext,它将显示为rootsub。
- 如果root包含不区分大小写的子字符串,如eps, epsilon、sig、sigma等,对应的希腊字母为 使用,即eps ex datεex.
- 附加数据图
- 数字限制为6,但作为回报,我们使用一致的 连续添加更多绘图后着色。