没有合适的资源?快使用搜索试试~ 我知道了~
用于反射率拟合的中子散射反射法用户界面软件
=∑⏐第四季dzeDZSoftwareX 7(2018)287原始软件出版物用于反射率拟合的M. Doucet*,R.M.Ferraz Leal,TC霍布森美国橡树岭国家实验室中子散射部。Box 2008,Oak Ridge,TN 37831,USAar t i cl e i nf o文章历史记录:2018年1月25日收到2018年5月9日收到修订版,2018年关键词:中子散射反射法用户界面a b st ra ct橡树岭国家实验室的中子源的液体反射计提供了平均每年约30次近年来,一直在努力简化仪器的数据处理和分析。虽然大部分数据减少可以自动化,但数据分析仍然需要科学家完成。为此,我们提出了一个反射率拟合Web界面,该界面捕获了设置和执行拟合的过程,同时减少了安装软件或编写Python脚本的需要版权所有©2018作者.由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.0此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_44合法代码许可证Apache许可证,2.0使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求、操作环境依赖性https://web-reflectivity.readthedocs.io/en/latest/testing.html如果可用,链接到开发人员文档/手册https://web-reflectivity.readthedocs.io/en/latest/问题支持电子邮件doucetm@ornl.gov1. 动机和意义液体反射计(LR)是橡树岭国家实验室的Spiritual中子源(SNS)的两个反射计之一镜面反射率允许我们通过测量从其表面散射的中子或X射线光子束的反射分布来探测薄平面膜的深度在LR的情况下,中子反射率测量使我们能够探测长度尺度在几埃到几千埃之间的层结构测量了反射率分布R(Q)与动量传递Q4π sin(θ)/λ的关系,其中θ为散射角,λ为中子波长。R(Q)取决于沿着垂直于散射平面的轴的散射长度密度(SLD)分布,并且近似地由[2]给出:对于给定的化合物,散射长度密度β与系统中每个原子的散射长度有关nβ = ρN A/mb我i=1其中ρ是化合物的质量密度,m是其质量,NA是阿伏伽德罗因此,拟合反射率分布为我们提供了作为深度函数的样品的SLD轮廓该剖面又为我们提供了有关层状系统化学成分的信息。分层系统的反射率剖面的计算通常使用层边界处反射和透射粒子波的薛定谔方程的解来完成[3,4]。这种方法给出了一个准确的反射率值在所有16π∞dβ2−izQQ范围,与上面的R(Q)方程相反,在第一玻恩近似有效的区域测量的反射率R(Q)通常通过定义初始SLD轮廓并使用拟合引擎进行优化来建模* 通讯作者。电子邮件地址:doucetm@ornl.gov(M.Doucet)。https://doi.org/10.1016/j.softx.2018.09.001它的参数。该SLD轮廓被定义为一系列层,每个都具有厚度、均匀的SLD和界面混合2352-7110/©2018作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxR(Q)−∞288M. Doucet等人/SoftwareX 7(2018)287深度与上面的层。混合深度通常被称为计算SLD剖面的反射率,并与测量数据进行比较。拟合引擎用于最小化计算的反射率与测量值之间的最小二乘差。在本文中,我们将此过程称为最小化或细化,其结果是一个层系统,其厚度,SLD和粗糙度的估计值,每个都具有不确定性值。作为SNS用户计划的一部分,LR每年平均为大约30个实验提供数据,每年产生大约10000个每个实验通常需要三到五天,有些只需要一天,有些需要一周。尽可能自动化和简化数据处理非常重要。一旦获得,LR数据将使用Mantid框架自动减少,以进行数据分析和可视化[5]。在大多数情况下,用户可以带着已降低的R(Q)反射率数据离开实验室,反射率数据的后续建模通常使用Motofit [6]或REFL1D [7]完成也使用其他软件包,如GenX [8]或Motofit是一个在IGOR Pro环境中提供反射率建模的软件包。1除了最小化和误差分析功能外,Motofit还提供图形用户界面。REFL1D是最初由DANSE Project2开发的Python包,它还提供反射率模型的最小化和误差分析它不提供图形用户界面。反射率拟合软件的选择通常在SNS工作人员的帮助下完成仪器科学家还培训用户使用所选软件。出于这个原因,开发工具来简化这一过程,并使访问科学家能够适应他们的数据一直是LR工作人员在过去几年的重点在本文中,我们描述了一个作为REFL1D前端开发的Web应用程序它与SNS [9]上现有的网络监测站点集成它允许从实验期间进行的建模活动和在自己的机构进行的分析工作轻松过渡,而无需安装商业软件。应用程序代码可在https://github.com/neutrons/web_reflectivity上获得。2. 软件描述2.1. 非功能性需求这项工作的目标是为反射计用户提供一个简单的数据建模应用程序,不需要安装软件。为此,主要的非功能性要求有三方面。首先,应用程序需要可用,无需安装软件其次,应用程序应该允许用户上传他们的数据,同时足够灵活,以便机构使用自己的机制访问数据。第三,应用程序需要使用一个现有的、完善的包来进行计算。2.2. 软件功能应用程序提供的功能可以分为四个主要主题:2.2.1. REFL1D作业设置和执行该应用程序旨在让用户使用Web表单为给定的数据集定义模型,以建立其初始层结构1 https://www.wavemetrics.com/网站。2 http://danse.us/网站。和 拟合 参数 。 提交 拟合 作业 后, 将 创建 Python 脚 本以 使用REFL1D执行最小化与模型和拟合状态相关的信息在应用程序数据库中保持最新状态,这允许用户返回到特定数据集,查看拟合结果,修改其模型并在必要时重新提交2.2.2. 可用引擎反射率应用程序可以生成使用三个拟合引擎的REFL 1D脚本DREAM算法是一种混合算法,它使用差分进化来适应马尔可夫链的进化。REFL1D使用DREAM算法来推断拟合参数的概率分布,并提供误差分析,为我们提供每个拟合参数的不确定性估计以及这些参数之间的相关性图。不确定性报告在Web应用程序的拟合结果页面上。产生的其他文件包括相关图、理论SLD剖面和理论反射率剖面的REFL1D的数据保存在计算节点上的用户主目录中2.2.3. 功能约束REFL1D的一个优势是能够处理复杂的约束,作为拟合参数的函数。Web界面允许用户在模型的层参数之间添加多个约束可以输入用Python编写的公式。有一个专用页面可用于验证和管理给定模型的约束。2.2.4. 同时拟合Web应用程序提供了一个界面,用于设置多个数据集的同时拟合。这些同时拟合的结果单独存储在应用程序数据库中,以便可以在不相互干扰的情况下完成涉及相同数据集的几个拟合。用户可以通过简单的拖放操作从选定的数据集中绑定模型参数以进行协同优化。一旦设置了这些约束并执行了拟合,将显示所得到的拟合的反射率和SLD图以及输出参数。2.3. 软件构架我们选择构建一个Web应用程序来解决上面列出这种选择使我们能够将计算与用户界面干净地Django Web Framework3因其灵活性和简单性而被选为应用程序的基础Django遵循模型-视图-模板架构模式,这推动了设计。 图 1显示了应用程序的中心流程图。它详细描述了从用户的作业请求到计算完成的流程下面详细介绍了图表的不同部分:2.3.1. 数据管理该软件附带了一个简单的数据管理器,允许用户将数据上传到服务器,服务器解析每个文件并将数据存储在应用程序数据库中作为json。选择JSON是因为它很容易序列化,这使我们能够快速地将数据提供给Web客户端进行绘图。名为datahandler的数据管理器组件被打包为Django“应用程序”3 https://www.djangoproject.com/网站。M. Doucet等人/SoftwareX 7(2018)287289Fig. 1. 应用程序的主要活动图。在接收到HTTP请求时,应用程序从数据库中检索模型对象,根据请求更新它们,生成作业脚本,并通过ssh将其提交给计算节点。作业完成后,数据库将使用拟合结果进行更新。客户端轮询服务器以了解作业何时完成。图二. 应用程序的主类关系图。FitProblem由初始层结构和远程作业信息组成。层结构由一个ReflectivityModel对象和任意数量的ReflectivityLayer对象定义。数据以json的形式存储在PlotData对象中,DataRun对象包含附加元数据。所有类都继承自django.db.Model。User类由Django提供,Job类由Django Remote Submission提供[14]。Instrument类只包含中子仪器的标识信息,为了简单起见,在图中没有列出。2.3.2. 装修工作我们将拟合问题定义为执行最小化所需的所有信息。配合问题是设计的中心概念。在其核心,应用程序主要生成,存储,检索和更新适合的问题。图2显示了所涉及的主要类这些类继承自Django Django还提供了一种机制,通过框架的模板系统生成要呈现给用户的表单对象(参见图1的示例)。 3)。选择模型类以最小化从数据库中提取信息所需查询的复杂性2.3.3. REFL1D接口、执行和结果存储通过使用反射率模型脚本调用REFL1D来执行该脚本负责加载数据并实例化REFL1D定义最小化问题所需的对象。Web应用程序使用模板系统来生成作业脚本。图2中所示的模型对象和前面部分中所描述的模型对象用于创建将插入到290M. Doucet等人/SoftwareX 7(2018)287图三. 模型类、其视图类和REFL1D脚本模板之间的关系示例。ReflectivityLayer类用于存储层的参数。Django提供了一些实用工具来创建一个ModelForm类,这个类提供了将自身表示为HTML的功能。我们的LayerForm类扩展了此功能,以提供在REFL1D脚本模板中使用的代码片段。见图4。反射率拟合Web界面概述,显示用于构建应用程序的软件包。工作模板。图3显示了ReflectivityLayer对象的这个过程的一个例子。创建的脚本也打包了最小化中使用的数据,通过ftp复制到执行节点,并通过ssh执行。Django远程提交包[14]负责处理作业,并在应用程序数据库中创建条目以跟踪每个作业。2.4. 执行Web应用程序是使用Django Web框架在Python中开发的。它托管 在 一 个 运 行 Apache 的 Red Hat Enterprise Linux 节 点 上 ,mod_wsgi 4,并使用PostgreSQL数据库5(见图5)。 4).在用户的SNS分析节点之一上执行拟合。Django远程提交包使用Celery分布式任务队列6管理远程作业,并提供远程作业及其相关日志的实时监控。Celery使用消息代理在Django应用程序和计算节点之间传递消息Redis7内存中的数据结构存储被用作消息代理。交互式图是使用Plotly8 for Python生成的2.5. 性能和用户测试执行REFL1D拟合所需的时间长度将取决于层结构的复杂性、拟合次数4 https://github.com/GrahamDumpleton/mod_wsgi/网站。5 https://www.postgresql.org/网站。6 http://www.celeryproject.org/网站。7 https://redis.io/网站。8 https://plot.ly/python/网站。图五、示 例 数 据 集 的薄膜结构,由硅衬底上的Cu沉积层、非晶硅沉积层和PAA旋涂层组成。SiOx表示硅衬底参数,以及匹配发动机的选择。例如,当使用Nelder-Mead算法时,使用6层模型和14个自由参数拟合包含200个数据点的数据将在5到8秒内在具有264 GB内存的32核AMD机器上完成使用DREAM [13]拟合引擎进行相同的拟合需要大约4分钟才能完成。基准测试显示,远程提交的处理增加了1.5秒的exaction-tion时间。这包括传输数据和启动作业所需的时间。该应用程序部署在LR仪器上,并提供给我们的用户试用,在撰写本文时,15.从收到的反馈中得出的结论是,这确实是一个方便的工具,有助于科学家在获取数据时了解数据,由于该应用程序的潜在用户群体不是很大,该工具的真正影响将根据其采用时间来判断。3. 说明性实例Web应用程序最好通过使用LR数据的示例进行演示在本节中,我们将描述一个简单拟合的示例,以及两个相关数据集的联合优化。3.1. 单反射率模型下面的例子是在薄膜上进行的反射率测量(见图1)。 5)具有铜和非晶硅层M. Doucet等人/SoftwareX 7(2018)287291见图6。具有PAA的示例薄膜的模型拟合形式(在该图中标识为运行ref_l/152922)。还绘制了在PAA沉积之前测量的相同膜(标记为ref_l/152783)用于比较。沉积在硅衬底上,顶部是聚丙烯酸(PAA)的旋涂层在对薄膜结构建模时,我们还考虑了硅衬底表面上的原生氧化层反射率测量在LR处进行,入射光束穿过空气并撞击在膜的PAA表面上。SNS后处理系统会自动减少这些数据,以便立即准备好进行拟合。该数据集的模型形式如图所示。 六、为每个292M. Doucet等人/SoftwareX 7(2018)287见图7。同步拟合页面,显示两个数据集的数据和模型。同时拟合作业的约束矩阵显示在页面底部。通过在两个模型之间拖放参数来添加约束。绑定的参数由蓝色标签指示。单击此标签将删除约束并将参数恢复为其原始值。(For对于图中颜色的解释,请读者参考本文的网络版本。)选定的模型参数,可以在表格的底部输入值范围。用于拟合的总体Q范围也可以修改。REFL1D拟合完成后,拟合页面会通知用户。刷新拟合页后,模型表和拟合参数范围表中的参数值将更新,如图所示M. Doucet等人/SoftwareX 7(2018)287293在图6中。R(Q)数据图将使用输出模型进行更新,同时还显示了该模型的SLD曲线如果使用DREAM多个拟合作业的结果可以叠加进行比较。可以使用每个参数旁边的复选框选择不同的参数。拟合结果可用后,如果所选的最小化技术对其进行了估计,则每个拟合参数的不确定性将显示在“拟合参数”部分中3.2. 协同求精有时,对同一样品在两种配置下进行两次测量可以帮助提取有关薄膜结构的更好信息。在上面的示例中,我们尝试测量原生氧化物、铜、非晶硅和PAA的厚度、SLD和粗糙度值。为了约束拟合,我们还可以使用在旋涂PAA之前在膜上进行的测量。由于沉积PAA预计不会改变膜的其余部分我们可以在一个最小化问题中拟合两个数据集,并将PAA沉积前后应保持不变的参数联系在一起。如果我们允许沉积PAA后非晶硅的表面粗糙度参数发生变化,则在两个模型之间留下九个约束。使用图7所示的同步拟合形式,可以通过在两个模型之间拖放参数来输入此类约束。一旦设置了模型之间的约束,单击“执行拟合”按钮提交作业以供执行。模型的起始参数将是来自现有个体拟合的参数。完成同步拟合后,用户可以在同步拟合页面上查看其拟合结果绘制了R(Q)的拟合结果,图7的模型表现在显示了拟合参数的输出值。如果通过最小化估计,也会显示不确定性。4. 影响该软件为强大的反射率拟合包(REFL1D)提供了用户界面,无需安装软件或编写Python脚本。该软件允许设施用户在获得数据后立即开始分析数据,使他们能够在进行时调整实验计划。通过提供反射率拟合作为一个网络应用程序,该软件将允许用户轻松地从实验室过渡到他们的家庭机构。虽然这个软件现在只在ORNL使用,但它被设计用于任何中子或X射线设施。5. 结论在SNS的液体反射计上进行的实验数量要求简化数据处理,以便用户离开实验室时具有高质量的数据集以及如何分析这些数据的明确计划。这项工作的一个重要部分是提供分析工具,使用户能够独立工作,无论他们是否有科学计算的背景。为了满足这一需求,我们开发了一个用户界面,简化了建模反射率数据的工作。通过将其部署为Web应用程序,我们还大大减少了在各种平台上安装软件的问题,我们已经实现了从实验室到家庭机构的无缝过渡反射率拟合应用程序允许用户管理其拟合作业、模型和数据文件。它提供了一个简单的界面,让用户通过消除安装软件或编写Python脚本的需要来确认这项研究由美国能源部基础能源科学办公室这项研究的一部分使用了来自Spanish中子源的液体反射计的数据本工作中使用的REFL 1D包最初是作为NSF奖励DMR-0520547下的DANSE项目的一部分开发的特别感谢Jim Browning和John Ankner立即开始使用界面并给我们反馈。MD要感谢合作者Jim Browning,JoshKim,Katie Browning和Gabe Veith允许我们使用本文中显示的数据最后,MD还要感谢Paul Kienzle开发和维护REFL1D,以及所有关于软件和最小化主题的讨论。本手稿由UT-Battelle,LLC根据合同编号DE-AC 05 - 00 OR 22725与美国能源部美国政府保留和出版商,通过接受出版的文章,承认美国政府保留一个非排他性的,付费的,不可撤销的,世界范围的许可,出版或复制本手稿的出版形式,或允许他人这样做,为美国政府的目的。能源部将根据能源部公共获取计划(http://energy.gov/downloads/doe-public-access-plan)向公众提供利益申报没有一引用[1] MasonTE,et al.橡树岭的中子源:材料研究的有力工具。Physica B2006;385:955-60.[2] 西维亚基本散射理论:用于X射线和中子用户。牛津大学出版社;2011.[3] 阿贝莱斯湾电磁波在分层环境中的传播。Ann Phys1948;3:504-20.[4] Parratt LG.用X射线全反射研究固体表面。物理学评论1954;95:359-69。[5] Arnold O,et al.用于中子散射和SR实验的Mantid数据分析和可视化包。核仪器方法物理研究A2014;764:156-66。[6] 纳尔逊A.使用MOTOFIT的多重对比中子/x射线反射率数据的联合精化。J ApplCryst2006;39(2):273-6.[7] 放大图片作者:Kienzle PA,Krycka JA,Patel N.Refl1D:交互式深度剖面建模器。[8] Björck M,Andersson G.利用差分进化的可扩展x射线反射率精化程序。J ApplCryst2007;40:1174-8.[9] Shipman GM等.加速空间中子源的数据采集、处理和分析IEEE第10届电子科学国际会议。2014.[10] 莱 文 伯 格 湾 用最小二乘法求 解 某 些 非 线 性 问 题 的 一 种 方 法 。 Quart ApplMath1944;2:164-8.[11] MarquardtDW. 非 线 性 参 数 的 最 小 二 乘 估 计 算 法 。 J Soc Indust ApplMath1963;11(2):431-41.[12] Nelder JA,Mead R.函数极小化的单纯形法。Computer J1965;7(4):308-13.[13] VrugtJA,et al.自适应随机子空间采样的并行进化加速马尔可夫链蒙特卡罗模拟Int J NonlinScience2009;10(3):273.[14] Hobson TC,Doucet M,Ferraz Leal RM. Django远程提交。J OpenSourceSoftw2017;2(16).····
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- BSC关键绩效财务与客户指标详解
- 绘制企业战略地图:从财务到客户价值的六步法
- BSC关键绩效指标详解:财务与运营效率评估
- 手持移动数据终端:常见问题与WIFI设置指南
- 平衡计分卡(BSC):绩效管理与战略实施工具
- ESP8266智能家居控制系统设计与实现
- ESP8266在智能家居中的应用——网络家电控制系统
- BSC:平衡计分卡在绩效管理与信息技术中的应用
- 手持移动数据终端:常见问题与解决办法
- BSC模板:四大领域关键绩效指标详解(财务、客户、运营与成长)
- BSC:从绩效考核到计算机网络的关键概念
- BSC模板:四大维度关键绩效指标详解与预算达成分析
- 平衡计分卡(BSC):绩效考核与战略实施工具
- K-means聚类算法详解及其优缺点
- 平衡计分卡(BSC):从绩效考核到战略实施
- BSC:平衡计分卡与计算机网络中的应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功