没有合适的资源?快使用搜索试试~ 我知道了~
精密光学干涉仪建模的Python软件包PY kat
软件X 12(2020)100613原始软件出版物PY kat:用于精密光学干涉仪建模的Python软件包丹尼尔·D.布朗a,菲利普琼斯b,塞缪尔罗林森b,肖恩利维e,f,安娜C。绿色g,Daniel Töyräh,Andreas Freiseb,c,daOzGrav-Adelaide,School of Physical Sciences,University of Adelaide,5005,Adelaide,Australiab伯明翰大学物理与天文学院和引力波天文研究所,Edgbaston,Birmingham B15 2TT,英国c物理和天文学系,VU阿姆斯特丹,De Boelelaan 1081,1081,HV,阿姆斯特丹,荷兰dNikhef,Science Park 105,1098,XG Amsterdam,荷兰爱因斯坦引力物理研究所(德国汉诺威)f德国汉诺威莱布尼茨大学佛罗里达大学,Gainesville,FL 32611,USAhOzGrav-ANU,澳大利亚国立大学理学院引力天体物理中心,堪培拉,ACT 2601澳大利亚ar t i cl e i nf o文章历史记录:收到2020年收到修订版2020年8月17日接受2020年保留字:干涉测量建模引力波探测器建模量子光学量子噪声a b st ra ctPY kat是一个Python软件包,它扩展了流行的光学干涉仪建模软件Finesse。它为进行复杂的数值模拟提供了一个更现代、更高效的用户界面,并支持使用Python广泛的科学软件生态系统。在本文中,我们强调了PY kat和Finesse之间的关系,它是如何使用的,并提供了一个说明性的例子,它如何帮助更好地理解当前一代引力波干涉仪的特性。©2020作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.2用于此代码版本的代码/存储库的永久链接例如:https://github.com/ElsevierSoftwareX/SOFTX_2020_117法律代码许可证GPL v2使用Git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,操作环境依赖性Numpy,scipy,six,h5 py,pandas,matplotlib,tabulate,click如果可用开发人员文档/手册链接http://www.gwoptics.org/learn/问题支持电子邮件Finesse-dev@nikhef.nl1. 介绍为了设计先进引力波探测器核心的精密干涉仪,已经开发了大量定制和通用光学仿真软件包[1]。对这些干涉仪进行建模的最流行的方法之一是使用频域图像,这允许用户研究准稳态行为*通讯作者。电子邮件地址:daniel.d. adelaide.edu.au(D. D. Brown)。https://doi.org/10.1016/j.softx.2020.100613一个干涉仪。这些工具被用来模拟噪声耦合,设计控制系统,以及干涉仪中的缺陷如何由于这些干涉仪的物理复杂性增加,以满足提高灵敏度的目标,所以有复杂的建模包,以跟上社会所面临的问题。多年来,已经开发了几种使用这种频域方法的软件包:Melody [2],Optickle [3],MIST [4]和Finesse[5,6]。通常用于引力波探测通过各种组件之间的一组线性耦合方程很好地描述了保护。当光学元件的数量、光场的频率和这些光的高阶空间模式2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxD.D. Brown,P.琼斯,S。Rowlinson等人软件X 12(2020)1006132Fig. 1. 用户使用PY kat的典型工作流程示意图。 最初,用户必须对他们想要建模的物理设置有一个具体的想法,然后在kat脚本中表达这个设置。然后,该脚本可以加载到一个PY kat对象中,该对象允许用户运行多个模拟,执行更复杂的分析并生成图。在幕后,PY kat将无缝地设置和调用Finesse二进制文件来运行所需的模拟。场增加。所有上述软件包都对干涉仪进行了一些描述,构建了一个稀疏矩阵,表示描述系统的方程组,然后针对各种激励和配置对其进行求解。Finesse是功能最丰富的软件包之一,在引力波社区中得到了广泛的使用。它是用C编程的,是免费的,开源的,跨平台的。它由一个名为kat的二进制可执行文件组成,执行所需的数值计算。用户提供一个文本文件,称为kat文件,它使用特定领域的语言kat脚本描述干涉仪的模型和要执行的模拟类型。然后,这种交互完全通过系统终端的命令行界面来执行。尽管Finesse的计算效率非常高,但随着建模任务的复杂性增加,简单的用户界面开始成为一个障碍。然而,由于简单的命令行界面,它很容易通过其他高级编程语言(如Bash,Perl,MATLAB和最终的Python)调用和操作。Python包装器PY kat是最新的,也是迄今为止最先进的包装器。它使用户能够轻松高效地执行复杂的建模任务,并使Finesse能够与各种Python包结合使用,例如,用于生成图,用于解决复杂的优化问题或用于生成降阶模型[7]。从最初的设想到现在,派吉已经广泛地发展起来。最初,它的目标只是简单地读取kat脚本,并产生一个面向对象的描述模型和仿真,以产生一个图形用户界面(GUI)。然而,面向对象的描述被证明对开发和运行模拟更有用。然后,我们开发了PY kat,以便更专注于提供与Finesse二进制文件更好的互操作性。到目前为止,绝大多数基于Finesse的建模任务都是通过PY kat完成的.在本文中,我们将重点介绍PY kat如何与Finesse合作,以更高效和程序化的方式运行模拟我们还提供了一个说明性的例子,说明如何在实践中使用PY kat,以更好地了解真正的引力波干涉仪的行为。2. 安装PY kat可从http://www.gwoptics.org/pykat/获得,并链接到包含源代码的git存储库,包括正在开发的最新版本。发布版本可以通过Conda包管理系统https://anaconda.org/gwoptics/pykat或PyPi https://pypi安装。org/project/PyKat/.在撰写本文时,建议使用Conda安装PY kat,因为Conda还为多个平台托管Finesse二进制文件,并且必须安装Finesse才能使PY kat工作。3. 使用PythonPY kat应该被认为是运行Finesse模拟的包装器。因此,为了有效地使用它,用户必须熟悉Finesse如何计算,它可以计算什么,不能计算什么,以及如何使用kat脚本。为此,最好的参考是Finesse用户手册[8]和Bond的评论文章等[9]。其他学习材料也可以在http://www.gwoptics.org/learn/,其中包含用于学习干涉测量的在线笔记本以及我们使用PY kat教授的几个研讨会的材料。Kat-script有三种不同的指令类:组件,探测器和命令。 组件是物体,如镜子、分束器、透镜等。 组件可以连接在一起形成网络。每个组件都有许多节点来代表入射和出射的光场;网络的边缘描述了光如何从一个组件到达下一个组件。检测器是在运行模拟时产生输出的对象例如,如果你想测量干涉仪中特定位置的光功率,你可以在那里放置一个“光电二极管”探测器。然而,探测器可以更抽象,例如用于测量激光束形状的特定属性,否则在实际设置中很难或不可能。命令是配置组件或检测器或设置要运行的模拟类型的指令这三类指令的Python代码可以在pykat.components、pykat.detectors和pykat.命令。当以传统方式使用Finesse时,用户将他们的kat脚本写入文本 文 件 , 然 后 从 命 令 行 调 用 二 进 制 文 件 来 运 行 它 ,katmy_simulation.kat 。 然 后 , 这 将 产 生 一 个 名 为my_simulation.out的文本文件,其中包含模拟输出数据,并显示探测器输出随某个模型参数变化的曲线图图1示出了用户通常如何与PY kat交互的概述。PY kat旨在提供表示所有可用kat脚本指令的Python类。模型和模拟可以通过两个接口在PY kat中构建:通过解析kat脚本;或通过使用面向对象的接口。Kat脚本指令被解析为PY kat的Kat实例D.D. Brown,P.琼斯,S。Rowlinson等人软件X 12(2020)1006133object.用户想象一个Kat对象是有建设性的类似于在命令行传递给Finesse二进制文件的kat文件,但kat文件是由PY kat动态生成的。解析kat脚本将指令转换为Python对象,这些对象被添加到用户可以与之交互的Kat这些对象可以根据需要进行操作,例如更改属性,解析进一步的命令等。一旦用户准备就绪,就可以运行模拟。Kat对象将首先从其中包含的对象构造一个kat文件,然后将其传递给Finesse二进制文件。然后,在仿真运行期间,PY kat和Finesse通过进程间通信管道相互通信,从而允许交换数据和命令。一旦完成,输出的文本文件与模拟结果将被加载并处理到KatRun对象中,该对象为用户提供了一个简单的界面,可以通过numpy数组访问所有检测器输出。考虑清单1中的示例,我们创建一个简单的一台激光器和一面镜子。在这个模型中,我们增加了两个探测器来测量反射和透射通过镜子的光场的复振幅。这些命令被解析为一个Kat对象。然后我们改变反射镜的反射率和透射率并运行它,然后像字典一样使用探测器的名称访问输出文件。这允许用户快速绘制和操纵任何输出。1234567891011121314151617181920212223242526272829303132清单1:运行Finesse模拟的简单Pykat用法第二个接口选项是直接使用对象-面向对象的接口来构建和运行模拟,如清单2所示。Python对象支持大多数常用的Finesse特性和组件,但并非所有高级特性都支持。该接口非常适合以编程方式构建光学实验模型,因为它不依赖于过多的字符串操作和操纵。组件和检测器的参数可以使用关键字参数更容易地设置,而不是依赖于严格和简洁的kat脚本指令。12345678910111213清单2:面向对象的界面,构建一个腔体并扫描激光频率。虽然这个接口可能更受程序员的青睐,它确实删除了用户与Finesse二进制文件的更直接的连接。因此,他们必须注意Finesse实际运行的内容。对于更复杂的建模任务和调试,有时需要显式地提供此信息。然后,用户可以通过简单地打印kat对象print(kat)来快速查看将发送到Finesse的当前kat脚本。但是,完全可以混合使用这两种接口。虽然清单1中的示例显示了原则上可以仅使用Finesse和单个kat脚本完成的任务,但用户通常需要运行多个模拟来产生特定的结果,如果没有PY kat,这将是一项繁琐的手动任务。这种任务的一个常见例子是一些实验参数的优化。使用PY kat,我们可以轻松地访问各种软件包来完成这样的任务,例如Scipy。上市3描述了一个玩具优化问题,我们希望找到第二反射镜在腔中的最佳透射率,以优化透射的功率量。当运行时,结果应该是它等于第一个反射镜的透射率[9],即所谓的阻抗匹配腔配置。1234567891011121314151617181920212223242526272829303132333435清单3:优化传输功率的示例。突出显示用于运行多个模拟的基本模型深度复制模式。Importpykat从我嘴里说出来。Componentsimportlaser,miror,spaceImportpykatimportscipybase= pykat。finesse.kat()base. parse(“ll11 0 n1ss11 n1 n2M M1 0.99 0.01 0 n2 n3属性m1Rc -10s s2 1 n3 n4mm2 1 0 0 n4n5attrm2 Rc 10 cav cm1 n3 m2 n4pdP_tn5pdP_r n 2maxtem0“”)base. verbose=Falsebase.noxaxis =真deffunc(T):ifT>1orT<=0:returnfloat(“i n f”)kat= base. deepcopy()kat。 m2。R=1-Tkat.m2。T=Tout=kat.run()return-1*out[res=scipy. 最好的朋友。 minimize(func,x0=0. 1)#现在就更新数据库模式,#新的工作时间是最佳的。 m2。setRTL(R=1-res. x,T=res. x)的Importpykatkat= pykat。finesse.kat()kat. parse(“ll110n1%laserwhP=1Ws s11 n1 n2% 1米长的空间mm10. 50.50n2n3%mirror%nadad_r0 n2在0.5 0 100的范围内,%ch%plot ingampl itidhedhehersul tsy轴abs的相位:度“”)#Changesomeprpert iesofhemirorkat。 M1.R=0。6kat。 M1. T=0。4#Generatekat-fileandthenrunFinessseout=kat.run()#Det ttortputsareaccessssed fromthehe#按名称print(out[#Caneasilydomathwithariousoutts#as theyarenumpyarraysP_total=abs(out[plt。 plot(outt. x,P_total)从我嘴里说出来。 从pykat开始。commandsimportxaxiskat=pykat。finesse.kat. add(laser(kat。 add(mirrorr(' m 1 ',' n 1 ',' n 2 ',R = 0.99,T=0。01))kat。 add(space(kat。 add(mirrorr(' m 2 ',' n 3 ',' n 4 ',R = 0.99,T=0。01))kat. add(pd(kat。 add(xaxis(' li n ',(0,10 0 e3),k a t. l1. f,100))out=kat.run()D.D. Brown,P.琼斯,S。Rowlinson等人软件X 12(2020)1006134∝清单3还介绍了PY kat中的一个重要编码模式:深度复制Kat对象。这里我们借用Python术语深度复制,即我们制作一个完全独立于原始对象的全新Kat对象。同样,这可以被认为是制作一个单独的kat文件,可以对其进行修改以运行替代模拟。模式是用户应该首先创建一个描述光学设置和探测器的基本模型。对于所需的每个仿真,应制作基础模型的新深度副本,向其添加额外的仿真代码,然后新模式可以运行。当运行单个模拟时,Finesse本身并没有从并行化中获得显著的大参数扫描。在这些情况下,用户通常不得不探索一些大的参数空间为了改善运行时间,必须执行多个模拟并联这需要创建许多不同的kat脚本文件,并将它们传递给Finesse二进制文件,手动执行这一操作很麻烦。PY Kat提供了一个易于使 用的界面, 用于快速运 行多个模拟。 该接口使用Ipyparallel包,允许它利用从单个机器上的多个核心到将任务分发到整个集群的任何内容。清单4提供了这一工作原理的概述。1234567891011121314151617清单4:运行并行Finesse模拟的代码4. 说明性示例:先进LIGO中的噪声耦合建模从事引力波探测器工作的仪器科学家遇到的一个典型问题是了解干涉仪中的各种噪声源如何有时,这些耦合可以用简单的分析模型来解释或探索。然而,随着工具的复杂性增加,简单的模型往往不再代表现实中这就是Finesse变得特别有用的地方,因为它允许我们模拟如此复杂的设置。在这个例子中,我们强调了对高级LIGO [10]干涉仪之一的测量进行的建模任务。目前的问题是理解输入激光的频率噪声如何耦合到引力波输出通道。这种噪声耦合的实测传递函数如图所示。二、简单模型预测频率噪声耦合以1/f下降,然而测量显示在100 Hz附近的一些结构,其平滑地上升到1 kHz以上为了模拟这种类型的问题,我们首先必须制作一个先进的LIGO探测器的现实模型。这必须包括我们知道或期望存在的现实缺陷然后图二. 所示为输入激光频率噪声的测量传递函数引力波通道作为频率的函数(黑色,虚线)。绘制用于比较的是各种模型配置,这些模型配置被发现具有来自所执行的100k模拟的最佳拟合。颜色条显示输入模清洁器(IMC)产生的激光束形状与干涉仪的形状失配的程度。对于镜像散和IMC失配的组合,该噪声在100 Hz附近和1我们对不同的特定配置进行建模,并输出在激光源处注入的频率噪声如何传播到重力读出通道。最后,我们可以将结果与测量值进行比较,并询问哪种配置最适合数据。一个Finesse模型描述了引力波探测器中的一个现实干涉仪,可以很容易地达到300多条指令。当使用单个kat文件和Finesse时,这样的模型可能会变得很大,而且很麻烦。PY kat已经简化了高级探测器的创建模型,例如,在这里,我们展示了如何创建一个高级LIGO模型,并将其初始化为正确的操作点,只需几行:1234567891011121314清单5: 获取高级LIGO模型该基础模型代表了理想的干涉仪,不包括任何缺陷。setup()函数用于优化所有反射镜位置,以确保它们处于正确的工作点[9]。简单地说,这意味着反射镜被保持在正确的微观位置,以确保光场在干涉仪中按设计共振。从这个理想化的LIGO模型中,我们可以开始引入缺陷:尺寸不正确的激光束;反射镜特性的偏差,如光学损耗,曲率半径或对准;以及我们在显微镜下定位反射镜的误差。所有这些效应都可能出现在实验中,我们有这些偏差的强度范围,但每个偏差的确切数量和相对比例并不清楚。在这种情况下,给定自由参数的数量,我们选择运行简单的Monte-Carlo搜索来计算频率Importpykat从我嘴里说出来。parallelimportparakatpk=parakat()kat= pykat。finesse.kat()kat. parse(“...[kat-脚本指令]...“”)forvalueinvalues:kat. component.parameter=valuepk.run(kat)或ts=pk。getResults()Importpykat从我嘴里说出来。Ifoimportaligoimportpykat.我爱你。阿利戈。plot#Createanwasemo delfhasdesigned #Ad vancedLIGOintermeterbase=aligo. make_kat()#这是一个充满活力的地方,#anddoperat ingpointintsfortheinterferometermodelaligo.设置(基础)#如果你不知道我是谁的话#sensitivityaligo.plot. 应变灵敏度(基线)#Plotallthelengthsensingersignalsaligo.plot.误差信号(基)D.D. Brown,P.琼斯,S。Rowlinson等人软件X 12(2020)1006135噪声耦合为每个。使用Pykat并行化功能,使用计算机集群快速探索参数空间。对于每一种可能的缺陷组态,我们都必须确保我们的干涉仪仍然正确地工作;否则,我们可能会在干涉仪状态下模拟噪声耦合,而这种状态不能用于引力波探测。一个重要的优点是确保我们仍然可以有效地感测和控制干涉仪的所有长度,也称为锁定干涉仪。PY Kat包括功能(Seekat.IFO.lock_drag())来执行称为锁定-拖动[11],其允许用户容易地找到合适的操作点,当不正确地执行或根本不执行时,其导致非物理的和不正确的模型,并且对于新用户来说是常见的绊脚石。运行了100k级模拟,观察干涉仪的不同几何配置和输入激光束状态。最适合的配置如图所示。 二、人们发现,产生这种形式的噪声耦合要求LIGO测试质量光学器件的表面图形中必须存在一些像散,而输入模式清洁器产生的光束形状与干涉仪光束形状相比也必须相差百分之几,称为模式失配[9]。这种配置可能不是真实干涉仪的确切状态,但它突出了可以进一步实验研究的特征,以排除或确认这种额外噪声耦合的假设来源。显然,在如此大的参数空间上仅使用Finesse执行此分析是不切实际的。5. 影响在过去的20年里,只有Finesse在引力波科学领域产生了重大影响[12]。 然而,通过使用PY kat,我们大大提高了模拟软件的功能和覆盖范围。首先,PY kat使Finesse能够轻松地执行更加复杂的建模任务。它通过提供一个更现代和适应性更强的用户界面来实现这一点,允许Finesse与Python中的各种科学软件包连接。专家用户现在可以将他们的知识编码到函数中,如清单5所示的aligo.setup(),其他用户可以轻松地调用它。它还通过提供以更过程化的方式处理多个kat文件的工具,大大减少了处理多个kat文件时的错误。从Python脚本中使用PY kat使研究人员能够通过版本控制的存储库轻松共享他们的建模,从而提高研究软件的可持续性[13]。特别是,Py kat Notebooks [14]提供了一种更具交互性的格式,用于执行,记录和分发数值建模任务和结果-这使得它们成为许多用户使用PY kat和FinessePY kat是利用整个Python生态系统并从Python语言在科学界日益流行中受益的关键工具。更重要的是,笔记本格式使我们能够制作更具吸引力和互动性的学习材料,不仅适用于使用Finesse,还适用于在更实际的环境中教授本科生和早期职业研究人员有关精密干涉测量的知识。这导致了通过在线资源或研讨会进行的前所未有的引力波探测干涉仪模拟培训。这对于新引力波组的年轻研究人员来说尤其重要。今年,我们制作了专门的培训材料,并组织了一次这种培训和教学是围绕着体育运动的关键组成部分发展 的 。 类 似 研 讨 会 的 多 个 例 子 和 相 应 的 材 料 可 以 在http://www.gwoptics.org/learn上找到。6. 结论本文介绍了干涉仪仿真软件PY kat以及PY kat与Finesse的共生关系。PY kat提供了一个新的现代和高效的Python接口,使我们能够模拟以前不可能的精密光学实验。我们概述了一个说明性的例子,它如何使我们能够执行一个复杂的建模任务,以更好地了解当前的噪声耦合的LIGO引力波干涉仪之一。PY kat的成功使我们能够为学生提供更好的学习材料,提高软件的可持续性,并使研究人员能够解决更复杂的问题。虽然PY kat主要用于使用Finesse进行光学实验建模,但它还包括其他几个未在此处讨论的功能。它也成为其他几种用户可能会发现有用的计算工具的所在地,例如基于软件包Oscar的快速傅里叶变换光学建模工具[16],ABCD高斯光束传播代码,用于计算高阶模式高斯光束散射的例程,以及生成光散射的降阶模型[7]。展望未来,我们在开发PY kat和Finesse时学到的很多东西将在Finessev3中结合并进一步改进C代码中的核心引擎将被保留,以确保模拟时间保持在最低限度。而所有的解析、用户界面和组件都将用Python编写,以提供一个更具适应性和开放性的Python编程接口,以解决未来的问题。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢作者要感谢国际引力波社区在开发PY kat和Finesse方面的反馈和支持。DDB和DT由ARC资助CE170100004支持。SL得到了德国研究基金会(DFG)在德国卓越战略(EXC-2123 QuantumFrontiers -390837967)下的支持。AF得到了科学和技术设施委员会(STFC)以及由英国皇家学会和沃尔夫森基金会共同资助的皇家学会沃尔夫森奖学金的支持。作者要感谢AaronJones提供的DDB还感谢CraigCahillane就干涉仪建模和频率噪声耦合数据进行了富有成效的讨论。作者还要感谢LIGO-Virgo协作组使用计算集群运行我们的Finesse模型。该文件的LIGO DCC编号为P2000104。提交人没有竞争利益或经济利益需要申报。引用[1] Reitze David,Saulson Peter,Grote Hartmut.先进的干涉引力波探测器。WorldScientific;2019,http://dx.doi.org/10。1142/10181,URLhttps://www.worldscientific.com/doi/abs/10.1142/10181。[2] 博索莱伊·雷蒙德·G旋律2001,https://dcc.ligo.org/public/0034/G010301/000/G010301-00.pdf,URLhttps://dcc.ligo.org/public/0034/G010301/000/G010301-00.pdf。[3]埃文斯马特。光学模拟软件。2004,https://git.ligo.org/IFOsim/Optickle2,URLhttps://git.ligo.org/IFOsim/Optickle2。D.D. Brown,P.琼斯,S。Rowlinson等人软件X 12(2020)1006136[4] 瓦真特·加布里埃莱近轴光学系统的快速模态模拟:MIST开源工具箱。经典量 子 引 力 2013;30 ( 7 ) : 075014.http://dx.doi.org/10.1088/0264-9381/30/7/075014网站。[5] 布朗·丹尼尔·大卫,弗里斯·安德烈亚斯。手腕。2014,http://dx.doi.org/10。5281/zenodo.821364 , http://www.gwoptics.org/finesse 。 http : //www.gwoptics.org/finesse网站。您可以从http://www.gwoptics.org/finesse下载二进制文件和源代码。[6] [10] Freise A,Heinzel G,Lück H,Schilling R,Willke B,Danzmann K.具有高阶空间模式的频域干涉仪模拟。经典量子引力2004;21(5):S1067-74,URLhttp : //stacks. iop.org/0264-9381/21/S1067 网 站 。 Finesse 可 在www.example.com上获得http://www.gwoptics。org/finesse.[7] 放大图片作者:Brown D,Smith RJE,Freise A.精密干涉测量中高斯模散射的快 速模 拟。 J Opt 2016;18 (2 ) :025604 。http://dx.doi.org/10 的网 站。1088/2040-8978/18/2/025604。[8] 弗莱斯·安德烈亚斯布朗·丹尼尔邦德·夏洛特频域干涉仪仿真软件。2013,arXiv电子印刷品,art. arXiv:1306. 2973年。[9] 邦德夏洛特,布朗丹尼尔,弗莱斯安德烈亚斯,应变肯尼斯A。引力波探测的干涉仪技术。2017;19(1):3. http://dx.doi.org/10.1007/s41114-016-0002-8网站。[10]LIGO 科 学 合 作 。 先 进 的 LIGO 经 典 量 子 引 力 2015;32 ( 7 ) : 074001.http://dx.doi.org/10.1088/0264-9381/32/7/074001网站。[11]布朗·丹尼尔·大卫。光与镜的相互作用:模拟未来引力波探测器的先进技术论文),2016年。[12]弗 里 斯 · 安 德 烈 亚 斯 , 布 朗 · 丹 尼 尔 · 大 卫 . 技 巧 , 历 史 和 影 响 。 2017 ,http://www.gwoptics.org/finesse/impact.php,URL http://www.gwoptics.org/finesse/impact.php。[13]de Souza Mário Rosado,Haines Robert,Vigo Markel,Jay Caroline.是什么让研究软件可持续发展?与研究软件工程师的访谈研究。第12届软件工程合作与人文方面国际研讨会论文集。CHASEhttp://dx.doi.org/10.1109/CHASE.2019.00039网站。[14]Kluyver Thomas , Ragan-Kelley Benjamin , Pérez Fernando , GrangerBrian , Bussonnier Matthias , Frederic Jonathan , Kelley Kyle , HamrickJessica , Grout Jason , Corlay Sylvain , Ivanov Paul , Avila Damián ,Abdalla Safia,Willing Carol.可复制的计算工作流的发布格式。In:LoizidesF,Schmidt B,editors. 学术出版中的定位和权力:玩家,代理人和议程。Press;2016,p. 87比90[15]Iyer Bala , Souradeep Tarun , Unnikrishnan CS , Dhurandhar Sanjeev ,Raja Sendhil,Sengupta Anand. 印度引力波观测倡议联盟提案。 2015年,URLhttps://dcc.ligo.org/LIGO-M1100296/public,https://dcc.ligo.org/LIGO-M1100296/public。[16]德加莱奥斯卡:一个基于matlab的 fft代码。Matlab Cent File Exch 2008.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功