工程建模与仿真

工程建模与仿真/2008年/文章

研究文章|开放访问

体积 2008年 |文章的ID 937542 | https://doi.org/10.1155/2008/937542

Madhava Syamlal,Thomas J. o'Brien,索非亚尼希亚,Aytekin Gel,Sreekanth Pannala 计算研究中的开源软件:案例研究",工程建模与仿真 卷。2008年 文章的ID937542 10. 页面 2008年 https://doi.org/10.1155/2008/937542

计算研究中的开源软件:案例研究

学术编辑器:andreas tolk.
收到了 2008年2月11日
接受 2008年3月11日
发表 2008年4月15日

抽象的

本文介绍了用于多相计算流体动力学模拟的计算研究软件MFIX的开源(OS)开发实例。讨论了构建现代计算软件所需的验证和验证步骤,以及在这些步骤中开发操作系统的优势。介绍了用于支持MFIX操作系统开发的基础设施。演示了操作系统的发展对计算研究和气固流动教育的影响,以及对地球物理和火山研究等其他领域的信息传播的影响。研究表明,在MFIX的情况下,实现了操作系统开发的优势:多用户验证,提高了软件质量;利用软件作为积累和交换信息的手段;促进对计算研究结果的同行评审。

1.介绍

开源(OS)软件无处不在;故意或不知不觉地,当读取本文时,现在的读者可能正在使用嵌入在小工具或设备中的OS软件。正如软件应用程序一样,OS软件也对计算研究产生了影响。在本文中,我们研究了OS软件开发在工程计算研究中的作用。在计算研究软件的情况下,可以实现应用软件(如Linux和Apache)中显示的OS开发的优势。为了解决这个问题,我们展示了具有相互交换(MFIX)的计算研究软件多相流的案例研究。自2001年以来,MFIX的源代码正在向MFIX网站注册的用户分发。但是,MFIX许可证并未严格符合当前接受的操作系统许可标准。尽管如此,许可证已明确允许研究操作系统开发的优势(参见部分讨论3.1).(预计MFIX许可证将被改为类似于麻省理工学院开源软件许可的形式。)我们讨论OS开发如何促进软件验证,模型验证,对等审查的计算结果,以及计算研究中的信息累积和交流。

虽然此类软件从20世纪90年代初存在,但术语开源软件存在于1998年存在[12].其主要特点是用户可以访问源代码,他们可以学习或增强代码以更改软件的功能。在这一术语中创造一年,在1997年被创造出一个鲜为人知的术语,集市开发过程,提出标记互联网促进的社区风格软件开发。用户可以访问源代码,也可以观看并贡献软件的开发。此开发过程具有革命性的软件开发,如高度成功的软件产品,如操作系统Linux和Web服务器Apache。

研究团体,例如放射学[3.4,以及药物发现和生物信息学[56]这是这种发展过程的早期采用者。例如,OS开发周围的经济和励志问题,承诺和陷阱在档案期刊上争论,例如[3.- - - - - -11.].令人惊讶的是,据我们所知,没有任何内容在工程期刊上没有任何关于计算研究中的作用的期刊,这是本文的主题。由于参与计算科学和工程的研究人员较少,而且不仅有效,而且还有问题的效力。

在本案例研究中的讨论仅涉及用于计算研究的软件;也就是说,用于开发数学模型和数值技术的软件。我们的讨论与工程软件的最终使用涉及用于行业或实验室的设备的分析和故障排除。在这些情况下,模拟结果用于设计或故障排除设备,并且数学模型以及软件本身底层的数值技术是调查的对象。

对于案例研究,我们使用气体固体流软件MFIX(http://www.mfix.org/)由美国国家能源技术实验室(NETL, WVa, USA)开发。用户体验信息是从两次用户调查中收集的,这使我们能够确定谁使用了软件,它是如何使用的,用户有多成功,以及有什么重要的结果。这里报告了来自这些调查和MFIX开发团队的信息,以说明在MFIX的情况下操作系统开发过程是如何工作的。

我们首先简要概述了部分开发过程2并讨论验证和验证背景下OS开发过程的优缺点。MFIX的背景和OS功能将在一节中介绍3..部分4描述了MFIX的操作系统体验:软件对计算天然气流量的研究和教育的影响以及对外部用户的MFIX的贡献。结论是在一节中给出的5

2.开源开发

许多计算研究代码一直以源代码的形式免费提供(例如,NETLIB库、帝国理工学院的TEACH代码、KFIX和洛斯阿拉莫斯国家实验室的KIVA)。操作系统标签的显著特征是该软件附有许可证[710.要求用户遵循一些简单的规则,比如在每个源文件中包含许可头文件。这种类型的许可在操作系统开发过程的成功中扮演了至关重要的角色。

这种开发和维护软件的新方式与用户参与的软件在商业软件世界产生了很大的影响。雷蒙德[12.]呼叫新的进程集市并将其与传统进行对比大教堂商业软件开发人员使用的模型。在里面大教堂模型,一些专家开发了软件,并尽一切努力在修复所有错误后才能释放它,但用户不涉及开发过程。在里面集市模型,用户可以观看并参与代码开发过程。雷蒙德[12.[借助于该模型中的源代码可用于公开测试,审查和实验,将在该模型的发明中的贷记Linus Torvalds和声明将以快速的速率发现错误。相比之下,几个开发人员在正在开发的代码中击败错误的开发人员花费了过多的时间。大教堂模型。Raymond预测,虽然个人视觉和光彩在启动软件项目期间,但软件将越来越多地使用开源开发过程开发。在本文中,我们将使用术语OS开发,这是对此的代名词集市模型,表示以源代码形式的软件的可用性以及完整的公众视图中的开发,促进用户参与。

然而,所有支持操作系统开发过程的证据都来自商业软件产品,这些产品相对来说比较大(有数百万行代码),并且有大量的用户(数以千计)。即使在这种情况下,OS开发是软件开发的“最佳”方法的说法仍然存在争议[8].相对较小(数千行代码)、用户基数较小(数十或数百)的计算研究软件的操作系统开发的优势是不确定的。这项研究表明,在MFIX的情况下,操作系统开发的优势已经实现,并显示了促进计算机代码的同行评审的额外好处,这些代码用于生成在期刊文章中发表的结果。

2.1。验证和验证

通过验证和验证过程确保计算软件的准确性。As defined by the American Institute of Aeronautics and Astronautics (AIAA), verification is “the process of determining that a model implementation accurately represents the developer’s conceptual description of the model and the solution to the model” and validation is “the process of determining the degree to which a model is an accurate representation of the real world from the perspective of the intended uses of the model” [13.].

复杂软件的验证是一项关键而又艰苦的工作。当数学模型和数值技术不断改进时,这也是一个持续的过程,就像MFIX中的气固流动模型一样。每一次数学模型或数值技术的改变,都可能带来错误。一个大的用户社区的优势是可以快速检测到bug。这是商业软件很容易享有的优势。操作系统软件的用户基础必须达到临界量,才能实现其优势。一旦用户达到了临界数量,那么操作系统软件就提供了额外的优势,除了在闭源软件的情况下仅仅报告它们之外,用户还有能力识别和修复源代码中的错误,从而减少了开发人员的负担。此外,操作系统软件允许用户在没有错误提示的情况下进行代码检查。当用户阅读代码以了解特定方程的实现细节时,就会发生这种情况。Raymond引用的操作系统开发的优势[12.在闭源软件开发中是无法实现的,因为只有少数开发人员能够审查代码。

2.2。对计算结果的同行评审

与验证研究不同,模型的验证研究具有很多科学的兴趣,并在日记文章中报告。OS开发为同行评审提供了两种优势,对已发表的计算结果进行了同行评审。首先,因为OS软件自由可用,更多的研究人员有机会重现公布的结果,这使得研究人员能够更好地理解并贡献共享信息。研究人员经常检查研究论文中提出的数学衍生,并且通常检查实验结果以进行再现性。类似地计算科学家经常尝试重现公布的结果,操作系统开发有助于使研究软件普遍可用。

其次,OS软件的更重要优势是对等审阅者可以访问软件的所有实现细节。在比较已发布的计算结果的同时,问题可能提出了数学模型(例如,方程式,边界条件,常数)和计算算法(例如,如何评估某些限制)。即使数学模型通常在纸张中完全陈述,能够从代码中“读取”模型方程是一个优点。例如,[中的两个方程中的排版错误14.]通过审查相应的MFIX代码可以检测到[15.].在审查数值算法的审查中,优点甚至更大,因为它的完整描述通常不会在论文中报告。虽然论文详细描述了主要算法,但可能不会报告某些看似的次要细节。事实上,商业软件中的某些算法甚至可以被保护为专有信息。在没有这样的细节的情况下,有时难以建立两个代码给出的解决方案的差异是由底层数学模型,数值算法或数值算法的代码实现的差异产生的。源代码的可用性允许读者和审阅者明确地解决有关数学模型,数值算法和代码实现的这些问题。

本节中讨论的优势是用于计算研究的软件是独一无二的。当在期刊文章中报告此类研究的结果时,读者对软件中使用的数学模型和数值算法的细节感兴趣。这不是典型的操作系统软件的情况,因此,OS软件的文献中未讨论该优点(例如,[12.])。

2.3.操作系统开发的障碍

虽然OS开发提供了对公布结果的软件验证和验证和对等审查的优势,但在用于计算研究时可能有几个缺点。一个,对于它的存在,OS软件需要一个核心组的研究人员,这些研究人员在一个足够长的时间内支持,这并不总是可行的OS软件作为主要目标。二,为了实现社区验证和验证的优势,用户社区必须增长到临界大小。这很难实现,因为研究软件通常只有有限数量的功能,这可能仅感兴趣少量用户。此外,由于所需的独特专业知识和涉及知识产权问题,吸引开发商是困难的[5].三,开发软件足够高的外部用户有吸引力,操作系统团队需要遵循良好的软件开发过程。例如,Gambardella和Hall [9表明“领导”研究人员建立一种贡献规范是很重要的。即使源代码是免费的,编写得很差的代码也不能吸引用户。然而,编写可读和可维护的代码并不是研究人员的最高优先级,他们通常试图在紧迫的时间限制内解决问题。第四,软件和它的使用需要被记录下来,而这通常不会被记录下来,因为科学家不会因为发布的操作系统代码而获得荣誉[16.].

如果研究人员实现了OS软件和机构的优势,开始重视OS软件贡献,那么可以克服上述困难。事实上,这是政府资助的计算研究中最近的趋势。2000年,总统资讯科技咨询委员会建议“联邦政府应鼓励开放源软件的发展作为高端计算的软件开发的替代路径。”此外,美国能源和国家卫生部等政府机构现在正在鼓励他们所资助的几个项目中的操作系统方法[3.].

3.开源代码MFIX

我们使用我们的经验与MFIX进行审查操作系统开发的优势在典型的计算研究软件的情况下是否承担了经验。在提出案例研究信息之前,我们将讨论MFIX及其OS功能的背景。

3.1。背景信息

MFIX的开发始于1991年的NETL。其主要目标是开发一种工具来建模流化床反应器,如煤气化炉,通常用于化石燃料工厂。第一版于1993年1月完成。代码中使用的所有变量都在注释语句中进行了描述;在理论手册中记录的方程式[17.];用户手册中记录的数值技术,代码架构和用户指令[18.].第一组气化器模拟于1995年进行[19.].通过能源科技软件中心(http://www.osti.gov/estsc.)开始于1995年。

MFIX是一种通用计算机代码,用于描述流体 - 固体系统中的流体动力学,传热和化学反应。例如,该代码通常在NetL上用于气化器建模,例如[20.].它解决了一组普遍接受的偏微分方程,用于多相的质量、动量、物种和能量守恒,例如,[21.].对平衡方程的总结见[22.].MFIX已被用于模拟鼓泡、循环流化床和喷动床。计算给出了体积分数、压力、速度、温度和物种质量分数的三维分布的瞬态数据。模拟使用输入数据文件建立,在某些情况下,用户定义的子程序。两个后处理代码用于可视化结果,并从输出文件中以表的形式提取数据。

自1995年以来,该准则经历了几次修订。代码中使用的数值技术在1996年进行了更改,并在1996年添加了几种高分辨率离散化方法[23.].1998年,该代码使用太平洋-塞拉研究公司开发的翻译软件VAST/77to90从Fortran 77翻译成Fortran 90。随后,代码被并行化以在共享内存处理器(SMP)、分布式内存处理器(DMP)上运行[24.,或SMP/DMP混合机[25.].1999年,MFIX的版本跟踪开始使用并发版本控制系统(CVS)软件。如今,MFIX由118,000行Fortran 90代码组成,组织成508个文件和969个子程序。

一个网站,http://www.mfix.org/,于2001年推出,分发源代码并传播与计算天然气固体流有关的信息。到2006年8月,全球250名研究机构的1000多名研究人员在网站上注册。该网站通常每月收到5,000到10,000次点击。

收集本文数据时的MFIX许可允许注册用户下载和修改源代码;但是,除了通过MFIX代码存储库之外,允许重新分配代码。由于注册要求和重新分配的限制,MFIX许可证不满足开源计划指定的操作系统定义(http://www.opensource.org/docs/osd/).(预计MFIX许可证很快就会改为类似于麻省理工学院开放源许可证的许可证。)可以说,缺乏自由重新分配代码的能力可能会减少用户的热情和贡献MFIX。尽管如此,许多用户签署了使用,审查和改进代码。这里提出的数据表明,实现了OS分布的优点,这可能是对OS分配的保守评估,因为标准操作系统许可证可能会增加用户响应。

3.2.开源开发的基础设施

今天,典型的操作系统项目受到一些流行站点的支持,例如(http://sourceforge.net/index.php).当MFIX在2001年成为OS时,SourceForge有点少,MFIX团队决定创建自己的OS开发基础架构。不使用着名的操作系统网站降低了OS开发人员之间项目的可见性。但是,由于MFIX是计算研究代码,因此其潜在的用户和开发人员通过技术会议和研究论文有效地达到。

典型操作系统开发环境的另一个功能是一个错误跟踪系统,它具有用于报告错误和数据库的用户界面,以存储有关该错误的信息。MFIX基础架构中缺少此功能,错误报告和分辨率由MFIX-Help邮件列表处理。

MFIX基础结构由7个组件组成,下面将按照它们的重要性顺序对它们进行描述。

(1)下载代码.可以从网站下载三个版本的代码。

(i)CVS版本。用户可以查看代码中的最新更改并下载所需的文件。这可确保开发在完全公共视图下完成,所有修改都可以立即使用给用户。

(2)开发版本。每天将前一天的整个代码版本收集并放置在网站上,方便用户下载最新版本的代码。

(3)稳定版本。这个版本,在完成一个主要的修订或几个小的修订和错误修复之后,每年发布一到两次,经过测试并保证与所有的测试和教程用例一起工作。

(2)源代码修订控制.CVS (http://ximbiot.com/cvs)用于源代码修订版控制。CVS允许多个开发人员同时在同一文件上工作,并合并其代码的修订。CVS记录代码中的所有更改;所有先前版本的代码都在数据库中归档。因此,开发人员可以通过指定所需的日期和时间轻松检索任何版本的代码。在发布中引用的版本是可用于公共审查(如果作者保留了用户定义的例程,如果有的话)。使用CVS Web界面(http://www.freebsd.org/projects/cvsweb.html),用户可以立即访问源代码中的更改。web界面给出了文件名、文件的版本号、文件的年龄、签入最新版本的开发人员的名称,以及对所做更改的评论。该界面允许用户图形化地比较两个版本的文件,并指出差异。所有用户都可以从CVS检出代码,但主要开发人员充当把关人,负责将代码检入CVS。

(3)测试和教程.MFIX目录包含40多个测试用例和13个教程用例。测试用例孤立地验证代码的各种特性(例如,不含固体的流体流动),并且通常在短时间内运行。当向代码中添加新特性时,测试该特性的新用例也会添加到测试用例目录中。本教程用例测试代码的功能组合(例如,组合流体-固体流动),并可用于学习如何设置模拟。

(4)文件.文档部分提供了详细的手册[17.18.23.和开发人员说明,为每个实现的新特性编写。将详细的手册与不断演进的代码同步是不切实际的。因此,MFIX团队维护着两个与代码持续同步的极简手册:a自述列出所有用户输入和一个文件的文件mfixequations列出当前方程集的文件[22.].方程式文件是一个版本控制的,可引用的网络文档。另外,代码内部有注释行,注释行大约占代码的62%。

(5)沟通.使用基于操作系统软件syma (http://www.sympa.org/).主要邮件列表mfix-help@lists.mfix.org.是用户发布帮助请求的地方。所有讨论都被存档,用户可以搜索,以查找有关某个主题的过去的讨论。除了MFIX-帮助邮件列表外,超过20种不同的邮件列表促进了对多相流的特定方面的讨论:数值,颗粒物理,离散元素方法,化学反应,可视化,验证,气化等应用等。

(6)测试工具.测试线束,由OS测试环境提供支持QMTEST(http://www.codesourcery.com/qmtest.),用于进行软件回归测试。这样的测试旨在发现回归错误或先前工作的坏软件功能。通常,回归错误是代码更改的意外结果。测试工具每晚检查MFIX的当前版本,构建可执行文件,并运行由开发人员确定的测试用例。测试结果公布在MFIX网站上。如果任何测试失败,开发团队就会收到电子邮件警告。这种错误的早期检测减少了调试工作,因为错误可以很容易地与前一天的更改相关联。这确保了每天不断发展的软件的质量。

(7)开放引文http://www.mfix.org/opencitations/index.php).网站的这一部分列出了与计算气固流动相关的论文。讨论板允许研究人员提交关于计算气固流动的论文的信息和评论。该数据库可以按作者名和主题等类别进行搜索。网站的这一部分发展得不是很好,也许是因为它没有得到充分的宣传。

4.一个案例研究开源方法的有效性

MFIX之所以是开源的,主要是为了让大量研究人员可以使用它,从而通过公开所有实现细节来补充基于MFIX的研究文章。一些外部用户已经在使用MFIX,他们通过与NETL联系来访问代码。此外,MFIX团队计划建立一个内部协作的网页,让外部用户可以轻松使用该网页和代码。第二个原因是,团队希望从操作系统开发中获得验证、验证和代码增强方面的好处。在本节中,我们将检查这些期望是如何实现的。首先,我们将描述MFIX如何对计算气固流动的研究和教育做出贡献。然后,我们将研究MFIX本身是如何因操作系统开发过程而丰富起来的。

要收集关于MFIX使用情况的信息,请进行两次调查。第一次调查是在2005年进行的,并通过向MFIX新闻列表发送电子邮件来源从所有MFIX用户征集输入[26.].该调查是为制定了对MFIX未来发展的指导。稍后对选定的小组研究人员进行了第二次调查,以收集关于使用本软件的显着结果的信息。

4.1。对研究和教育的影响

第一次调查得到了70个用户的回应,约占注册用户的10%,他们有着广泛的背景和应用需求。数字1显示了基于他们使用MFIX的年数的MFIX用户的分发。大多数用户有大约一年的经验,而30%有两到三年的经验;没有人有四年的经验。最经验丰富的用户(五年或多年的经验)构成了约9%的用户社区,这是合理的,因为在调查时,MFIX一直是开源代码只有四年。即使在未来,我们希望许多用户将留在1-3岁的经验中,因为其中许多人将是研究生。

数字2显示了MFIX用户的从属关系:41%是研究生,21%是教师,16%是博士后。因此,近80%的用户来自高校。只有4名受访者自称为工业研究人员(不包括MFIX团队成员),另有1名受访者自称为律师。我们认为,这是一个具有代表性的样本,基于我们的经验,要求帮助,尽管调查结果可能有偏见,因为所有工业用户可能没有回应。

数字3.显示考虑在其项目中使用MFIX的MFIX用户的百分比正在成功。近50%的人表示,他们与他们的MFIX项目取得了成功,其中11%表示他们非常成功。另外一半在不确定(33%)或不成功(17%)之间分裂。成功用户的百分比令人鼓舞,因为MFIX是一个专家用户的软件,具有最小的用户支持,没有提供培训。大约33%的用户报告了“不确定”可能是因为他们最近开始使用MFIX。在某些情况下,响应“没有成功”可能意味着由于数学模型的缺陷,模型结果与实验数据不同意,这在本讨论的上下文中将是该软件的成功应用。表明没有成功的大多数用户使用MFIX不到一年,并将其专业知识水平描述为“基本”。在频谱的另一端,指示高成功的用户已经使用了3多年的MFIX,并将自己描述为在源代码中进行更改的高级用户。

数字4显示了受访者如何在他们的研究中使用MFIX。空白或不具体的回复(如“一般”)被丢弃;可以在多个类别中计算的响应将在所有适用类别中计算。总共有65个回答。近一半的应用与MFIX最初开发的应用类似:28%的应用在能源类(煤炭气化和燃烧、生物质燃烧),20%的应用在流态化类(鼓泡流化床、立管、颗粒流、气固流)。约12%的应用在化学反应器(流体催化裂化、流化床反应器和聚合)的相关类别中,14%的应用在多相流(多相微流、浆流、气液)中。有趣的是,MFIX的使用已经迁移到其他应用领域;地球物理(火山颗粒流)已成为一个明显的类别,占8%的响应,其他应用(微通道热交换器、粉末流)占18%的响应。我们无法评估注册表格中所述代码的某些其他用途(例如,检查某个算法是如何实现的),因为这些偶然用户没有回应调查。

第二次调查是为了收集11名已知是当时是MFIX的重要用户的11名主要调查人员的详细信息。基于经常联系MFIX团队以获取信息的研究人员选择此示例。They were asked to provide a brief description of the problem being solved, significant outcome (e.g., graduate thesis, papers, improved algorithms or theory, migration of code/algorithm into other software, applications, improvements to design), and to comment on their experiences with the OS development process.

关于研究主题和重大结果的响应总结在表中1.此外,调查中未包含的几个组使用MFIX公开了研究结果,例如[27.- - - - - -30.].在过去的五年中,已有超过50多个出版物和演示文稿和15个基于MFIX的研究生。这些证明MFIX的OS可用性显着促进了气体固体流动的研究和教育。除了MFIX团队之外,用户社区的模型验证的优势在实现。


研究课题 重大结果

理论发展 (1)模拟气固流化床中的分离。利用有效恢复系数引入了粒子旋转的影响。与实验数据对比,证明了颗粒旋转对气泡动力学的影响[31.32.].
(2)研究了在流化悬浮液中发生的时间依赖性的空间不均匀性相关的统计性质。收集波动统计,并使用此信息来构建闭合关系的过滤的双流体模型[33- - - - - -36].
(3)模拟大颗粒体积分数下的流动,其中摩擦应力为domina [14.].
(4)利用方井势将内聚力引入离散粒子框架[37].
(5)研究了流化床中致密二元混合物的分离/混合。从粒状能量非行程中产生的偏析,特别是驱动力的各种驱动力[38].
数值技术开发 (1)发展了直接积分矩法(direct quadrature method of moments, DQMOM)模拟流化床中颗粒的聚集和破碎[3940].
(2)实施算法原位自适应表格(ISAT)以快速有效的方式解决复杂的化学计算。ISAT技术将硅烷热解反应器模拟加速为48倍[4142].
模型验证 (1)从鼓泡流化床中建模的焦炭洗脱;模拟炭颗粒在煤气中的同时浇灌和气体固体反应。与仿真结果进行比较次替补数据[43].
(2)模拟鼓泡流化床(Geldart组A / B和B颗粒),并与电容断层扫描数据进行比较预测。确定了模型预测中的限制并确定了它们的原因(没有内聚力;没有超过0.5的空隙率超过摩擦力应力。提出和测试的解决模型限制所识别的修改[4445].
(3)含有细催化剂粉末(例如FCC剥离器)的模型密集相流化床[46- - - - - -48].
模型应用 (1)在Univation开发并验证了聚乙烯中试规模流化床模型。验证后的模型用于定位反应堆中的热点[49].
(2)模拟(a)高雷诺数火山爆发和相关的多相重力电流,(b)岩浆腔室中的低雷诺数混沌对流[50].
(3)模拟空气重力输送机(气滑梯),在这种输送机中,迫使空气通过输送槽底部以增强颗粒物料的流动[51].
(4) mfix家族代码作为有质量保证的数字工具,用于内华达州Yucca山项目漂移/仓库的多相动力学(如粉尘爆炸)探索,该项目是美国第一个高放射性废物永久地质仓库的拟议地点[52- - - - - -55].
(5)研制太阳能接收器模型。描述了自由下落的陶瓷颗粒帘的流动动力学,在一个开放的腔太阳能接收器内被集中的太阳能加热到温度超过 C [56].
(6)使用多孔体方法模拟微通道热交换器中的异质催化[57].
训练研究生 例如,几个毕业论文[4258- - - - - -61]。

4.2。用户反馈

关于什么对用户来说是好的,什么需要改进的问题,在表中给出了回答2


工作好 需要改进

(i)开源访问 (i)能够表示复杂的几何形状
(2)编写良好的代码 (ii)代码的不断变化,使修订后的代码难以重复/复制早期的工作
组织良好,定期更新的网站 (iii)文件需要更新并彻底更新
(iv)讨论论坛和留言存档 (iv)用户只有在通过源代码浏览后才意识的无证能力
(v)问题很快回答,问题很快就解决了 (v)用来学习如何配置代码的教程
(vi)暑期在NETL培训学生

一个用户说:“开源模型已经非常成功了,因为代码有很好的文档,所以用户可以看到各种任务分配在哪里,它们是如何相互关联的,MFIX团队已经设法保持代码更新的过程健壮和良好的维护,社区的用户和贡献者大多已经在CFD和多相流理论方面受过良好的训练”[50].他强调,为了成功,“开源方法需要一些”关注“和MFIX团队的监督活动,以管理代码改进最佳实施。如果没有这种监督能力,开源模型将摇摇欲坠,并且各种版本的代码将出现可疑的验证等。“这个评论与Gambardella和Hall的发现产生了共鸣[9“如果没有某种协调,公共知识产品(科学或研究软件或数据库)的生产是次优的”,“如果‘领导’研究人员能够建立一种对公共产品贡献的规范,就可以实现更好的结果。”

4.3。用户贡献

讨论了MFIX对计算天然气固体流量的研究和教育的影响,我们现在将显示MFIX本身是因为OS开发过程而丰富。桌子3.总结了外部贡献者对MFIX代码的主要贡献,这些贡献者碰巧在做出贡献时都是研究生。在大多数情况下,这些开发人员寻求MFIX团队的建议,但开发本身并不是在CVS控制下完成的。后来,MFIX团队成员之一将代码修改与MFIX CVS合并。


能力 贡献者 大学

颗粒能量方程 k . Agrawal 普林斯顿U。
摩擦流模型 A. Srivastava. 普林斯顿U。
LeeS-Edwards边界条件 p . Loezos 普林斯顿U。
DQMOM. r .风扇 爱荷华州立U。
成绩测试标准 N.谢 爱荷华州立U。
离散元素模型(DEM) D. Boyalakuntla. Carnegie Mellon U.
在DEM中的凝聚力模型 m·韦伯 美国科罗拉多州。
SI单位能力 S. Dartevelle. 密歇根科技U。
Koch和Hill拖动相关性 C. Sutton. Lehigh U.

在2001-2006期间,MFIX-帮助电子邮件列表收到了1575条消息,其中大约20%报告的错误或错误修复。桌子4列出由不同外部用户检测和报告的一些重要错误。一些bug(项目1、2、3)被发现了代码验证(即,用户只需阅读源代码。)因此,通过许多眼睛阅读源代码的代码验证的好处[12.]是实现的。在此期间确定了一些错误解算器验证(即,将仿真结果与已知解决方案的仿真结果进行比较),但用户然后读取源代码并报告了错误的位置(项目4,5),再次对Raymond的索赔进行了缩编[12.].在某些情况下,通过求解器验证(项目6,7,8)检测到问题,但用户无法识别问题的原因。MFIX团队稍后解决了计算模型中的这些编程错误(第6项)或缺陷(项目7,8)。当用户使用与MFIX-TEAM使用的编译器不同(可以被视为另一种形式的代码验证形式)时,会出现一些错误。一些错误仅仅是编译器QUIRKS(第9项),有些只适用于MFIX团队(第10项)不经常使用的SMP执行模式,但其他一些是可能的宽传播影响(第11项)。


不。 错误报告 确认 贡献者(关系)

(1) 部分滑动边界条件 代码 K. Agrawal(普林斯顿U.)
(2) 粒度能量方程源术语 代码 S. Dartevelle(Los Alamos),J.Galvin(U. Colorado)
(3) 柱坐标应力项 代码 加尔文(科罗拉多大学)
(4) 能量方程中的Cp问题 求解器 德国卡尔斯鲁厄公司
(5) 圆柱形坐标内半径 求解器 帕西尼(康奈尔大学)
(6) 架实心旋转问题 求解器 A. Srivastava(普林斯顿)
(7) 物种质量平衡问题 求解器 T.麦基恩(萨斯喀彻温省)
(8) 循环模拟中的动量亏损 求解器 a·安德鲁斯(普林斯顿大学)
(9) 汇编问题 代码 L. Oger(雷恩U.)
(10) open-mp错误 代码 ——达尔特维尔(洛斯阿拉莫斯)
(11) 未初始化的变量 代码 ——达尔特维尔(洛斯阿拉莫斯)

5。结论

本文介绍了一个计算研究代码MFIX的开源开发案例。MFIX的开源开发开始5年后,近80%的MFIX用户来自大学,其中一半的用户报告说他们成功使用了该软件。其中一半的应用程序与MFIX开发的应用程序(煤炭气化炉和流化床)类似,有趣的是,另一半应用程序是在新的领域,如地球物理流动。在五年中,使用该软件发表了50多篇论文和报告,并发表了15篇研究生论文。MFIX本身因为操作系统的开发而变得丰富。MFIX中的几个主要功能是由外部用户开发的,许多人验证代码的优点是由外部用户报告或修复了几个错误。在一个例子中,访问源代码有助于检测期刊文章中给出的方程式中的排版错误。从这些经验来看,操作系统开发的优势似乎是在MFIX的情况下实现的。

致谢

已提交的稿件已由美国政府承包商合作,但在合同中没有。DE-AC05-00OR22725。因此,美国政府保留了一个非豁免豁免许可,以发布或复制本贡献的公布形式,或允许其他人对美国政府的目的进行。

参考文献

  1. “开源软件,”2006年8月,http://en.wikipedia.org/wiki/Open-source_software视图:谷歌学术搜索
  2. “开源计划的历史”,2006年8月,http://www.opensource.org/docs/history.php视图:谷歌学术搜索
  3. B. J. Erickson, S. Langer和P. Nagy,“开源软件在放射学创新和标准化中的作用,”美国放射学会杂志,卷。2,不。11,pp。927-931,2005。视图:出版商的网站|谷歌学术搜索
  4. D. P. Harrington,“开源软件机会和挑战”美国放射学会杂志,卷。3,不。1,pp。14-15,2006。视图:出版商的网站|谷歌学术搜索
  5. m·t·斯塔尔,《开源软件:尚未终结》,药物发现今天,卷。10,不。3,pp。219-222,2005。视图:出版商的网站|谷歌学术搜索
  6. w·l·德拉诺,《药物发现中的开源软件案例》,药物发现今天,卷。10,不。3,pp。213-217,2005。视图:出版商的网站|谷歌学术搜索
  7. P. B. de Laat, " Copyright or copyleft? "软件开发的产权制度分析,”研究政策,卷。34,不。10,pp。1511-1532,2005。视图:出版商的网站|谷歌学术搜索
  8. A. Fuggetta,《开源软件——评估》,系统和软件杂志第66期1,页77-90,2003。视图:出版商的网站|谷歌学术搜索
  9. A.Gambardella和B. H. Hall,“专有与软件和研究产品的公共领域许可”,研究政策,卷。35,不。6,PP。875-892,2006。视图:出版商的网站|谷歌学术搜索
  10. S. Krishnamurthy,“开源软件的管理概述”,业务范围第46卷,第46期5,pp。47-56,2003。视图:出版商的网站|谷歌学术搜索
  11. K. R. Lakhani和E.Von Hippel,“开源软件如何运作:”免费“用户到用户帮助,”研究政策,第32卷,第2期6,第923-943页,2003。视图:出版商的网站|谷歌学术搜索
  12. E. S.雷蒙德,《大教堂和集市》,1997,http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/视图:谷歌学术搜索
  13. W. L. Oberkampf和T. G. Trucano,“计算流体动力学的验证和验证”,桑迪亚举报Sand2002-0529,桑迪亚国家实验室,阿尔伯克基,纳米,美国,2002年3月。视图:谷歌学术搜索
  14. a . Srivastava和S. Sundaresan,“气体颗粒流动的摩擦动力学模型分析”,粉末技术号,第129卷。1-3,第72-85,2003。视图:出版商的网站|谷歌学术搜索
  15. D. Boyalakuntla,2006年,个人沟通。
  16. S. Zaleski,“科学和流体动力学应该有更多的开源资源”,2001年10月,http://www.lmm.jussieu.fr/~zaleski/opencencfd.html.视图:谷歌学术搜索
  17. M. Syamlal, W. Rogers,和T. J. O'Brien,《MFIX文档:理论指南》,技术说明DOE/METC-94/1004, NTIS/DE94000087,国家技术信息服务,斯普林菲尔德,VA,USA,1993。视图:谷歌学术搜索
  18. M. Syamlal,《MFIX文档,用户手册》技术说明DOE / METC-95/1013,NTIS / DE95000031,国家技术信息服务处,弗吉尼亚州斯普林菲尔德,美国,1994。视图:谷歌学术搜索
  19. M. Syamlal,S. Venkatesan和S. M. Cho,“碳化机中的煤炭转化型建模”第13届匹兹堡国际煤炭年会论文集,S.-h.蒋,埃德。,卷。2,PP。匹兹堡大学1309-1314,匹兹堡,帕茨堡,1996年9月。视图:谷歌学术搜索
  20. C. Guenther, M. Shahnam, M. Syamlal, J. Longanbach, D. Cicero,和P. Smith,“运输气化炉的CFD建模”,在第19届匹兹堡煤炭年会论文集,匹兹堡,帕,美国,2002年9月。视图:谷歌学术搜索
  21. d . Gidaspow多相流和流态化:连续体和动力学理论描述,学术出版社,纽约,美国,1994。
  22. S. Benyahia, M. Syamlal,和T. J. O'Brien,“MFIX方程2005-4摘要”,2006年3月,http://www.mfix.org/documentation/mfixequations2005-4-1.pdf.视图:谷歌学术搜索
  23. M. Syamlal,“MFIX文件:数值技术,1998年12月,DOE / MC-31346-5824。NTIS / DE98002029视图:谷歌学术搜索
  24. E. D'Azevedo,S. Pannala,M. Syamlal,A.Gel,M.Prinkey和T. o'Brien,“MFIX的并行化:用于建模流化床的多相CFD代码,”第10届SIAM关于科学计算并行处理的诉讼程序, 2001年3月,美国弗吉尼亚州朴茨茅斯。视图:谷歌学术搜索
  25. S. Pannala, E. D’azevedo, T. J. O'Brien, M. Syamlal,“MFIX的混合(混合SMP/DMP)并行化:用于流化床建模的多相CFD代码”美国计算机学会应用计算研讨会论文集,墨尔本,弗拉,美国,2003年3月。视图:谷歌学术搜索
  26. A.Gel,S.Pannala,M. Syamlal,T.J. O'Brien和E. S. Gel,“下一代多相流动求解器的框架比较”框架:群体决策练习,“并发和计算:实践和经验第19卷第2期5, 2006年。视图:出版商的网站|谷歌学术搜索
  27. S. J.Gelderbloom,D. Gidaspow和R. W.Lyczkowski,“三个Geldart组的冒泡/坍塌流化床的CFD模拟”,Aiche Journal.,第49卷,第49期。4,页844-858,2003。视图:出版商的网站|谷歌学术搜索
  28. J. De Wilde,“过滤气固流动模型中广义附加质量的重新公式化和量化”,流体物理学,卷。17,不。11,第14页,14页,2005。视图:出版商的网站|谷歌学术搜索
  29. 王旭东,朱长文,“气固两相流中蒸发喷雾射流的数值模拟”,粉末技术号,第140卷。1-2,页56-67,2004。视图:出版商的网站|谷歌学术搜索
  30. C. R. Sutton和J. C. Chen,“流化床中局部固体浓度的动态行为:欧拉 - 欧拉模型的实验验证,”AIChE年会论文集,奥斯汀,Tex,美国,2004年11月。视图:谷歌学术搜索
  31. J. Sun和F. Battaglia,“鼓泡气体流化床中颗粒旋转分离的流体力学模型”,化学工程科学第61卷第1期5,pp。1470-1479,2006。视图:出版商的网站|谷歌学术搜索
  32. J. Sun和F. Battaglia,“颗粒旋转对气体流化床分离流体动力学模型的影响”,刊于ASME流体工程部的诉讼程序(IMECE'04),第260卷,745-753页,美国加利福尼亚州阿纳海姆,2004年3月。视图:谷歌学术搜索
  33. S. Sundaresan,“透视:建模多相流量反应堆的流体动力学:当前状态和挑战,”Aiche Journal.第46卷,第46期6,页1102-1105,2000。视图:出版商的网站|谷歌学术搜索
  34. K. Agrawal,P. N. Loezos,M. Syamlal和S. Sundaresan,“中间规模结构在快速气体固体流动中的作用”流体力学学报,卷。445,pp。151-185,2001。视图:谷歌学术搜索
  35. P. N. Loezos和S. Sundaresan,“中观尺度结构对气体-粒子流动分散的作用”,刊于循环流化床VIIJ. R. Grace, J. Zhu, H. I. de Lasa, Eds。,pp. 427–434, Canadian Society for Chemical Engineering, Ottawa, Ontario, Canada, 2002.视图:谷歌学术搜索
  36. A.T. Andrews,P. N. Loezos和S. Sundaresan,“天然气粒子的粗网仿真在垂直提升管中流动”工业与工程化学研究,卷。44,不。16,pp。6022-6037,2005。视图:出版商的网站|谷歌学术搜索
  37. M.W.Weber和C.M.Hrenya,“流化床中的凝聚力的平方井模型”化学工程科学第61卷第1期14,第4511-4527页,2006。视图:出版商的网站|谷歌学术搜索
  38. C. M. Hrenya, 2005,科罗拉多大学,《个人沟通》。
  39. 陈建平,“气固流化床的DQMOM模型”,国立中山大学流体力学与工程研究所硕士论文化学工程中的计算流体动力学III,达沃斯,瑞士,2003年5月。视图:谷歌学术搜索
  40. 范,马基西奥,福斯,“矩的直接求积法在多分散气固流化床中的应用”,粉末技术,卷。139,没有。1,pp。7-20,2004。视图:出版商的网站|谷歌学术搜索
  41. N.Xie,F. Battaglia和R. O. Fox,“使用的流化床中的多相反应性流动的模拟原位自适应制表,“燃烧,理论和建模,卷。8,不。2,pp。195-209,2004。视图:出版商的网站|谷歌学术搜索
  42. N.Xie,流化床中多相反应流的模拟原位自适应制表方法, 多发性硬化症。论文,爱荷华州立大学,阿梅,爱荷华州,2002年8月。
  43. 谢国忠,“流化床淘析现象的模拟研究”,国立中山大学化学与物理研究所硕士论文第58届流体动力学划分年会的诉讼程序, 2005年11月,美国伊利诺斯州芝加哥,美国物理学会。视图:谷歌学术搜索
  44. Y. T. Makkawi和R. Ocone,“在大范围操作条件下的流化床CFD模型的验证”,刊于第五届世界粒子技术大会论文集, 2006年4月,美国佛罗里达州奥兰多。视图:谷歌学术搜索
  45. Y.T.Makawi,P. C. Wright和R. Ocone,“摩擦和歧颗粒的粘性力量对气固流动流体动力学的影响:理论预测和实验的比较分析”粉末技术第163期1-2,第69-79页,2006。视图:出版商的网站|谷歌学术搜索
  46. T. McKeen和T. Pugsley,“使用计算流体动力学在小尺度上模拟冷流催化裂化汽提塔流体动力学”,国际化学反应堆工程杂志,卷。1,第A18号,2003年。视图:谷歌学术搜索
  47. T. McKeen和T.Pugsley,“FCC催化剂自由冒泡床的仿真和实验验证”粉末技术号,第129卷。1-3,页139 - 152,2003。视图:出版商的网站|谷歌学术搜索
  48. S. D. Sharma,T.Pugsley和R. Delatour,“FCC颗粒的脱气率的三维CFD模型”Aiche Journal.,卷。52,不。7,pp。2391-2400,2006。视图:出版商的网站|谷歌学术搜索
  49. R. FAN,R. O. Fox和M. E. MUHLE,“CFD验证聚乙烯试验尺度流化床”第三届欧洲聚烯烃反应工程会议的诉讼程序,Lyon,法国,2005年6月。视图:谷歌学术搜索
  50. G. Bergantz, 2005,华盛顿大学,个人沟通。
  51. L. Oger,2005年,雷恩大学和麦吉尔大学,个人沟通。
  52. S. Dartevelle和G.Anverine,“玄武岩岩浆和地下存储库开口的早期多相相互作用”拟议的Yucca山放射性废物库,“《地球物理研究快报, vol. 32, L22311, 2005。视图:出版商的网站|谷歌学术搜索
  53. S. Dartevelle,“地球物理学中多相流的综合方法”。应用于非等温、非均匀、非定常、大尺度、湍流的尘沙云。I.基本RANS和LES Navier Stokes方程,”2005,LA 14228,第51页,新墨西哥州洛斯阿拉莫斯国家实验室。视图:谷歌学术搜索
  54. S. Dartevelle,“地球物理颗粒流量的数值建模:1。颗粒流变和地球物理多相流动的综合方法,”地球化学,地球物理学,地铁系统,第5卷,第5期。8 Q08003 2004。视图:出版商的网站|谷歌学术搜索
  55. S. Dartevelle, W. I. Rose, J. Stix, K. Kelfoun,和J. W. Vallance,“地球物理颗粒流的数值模拟:2。计算机模拟的普林尼云和火山碎屑流和涌动地球化学,地球物理学,地铁系统,第5卷,第5期。8,Q08004,2004。视图:出版商的网站|谷歌学术搜索
  56. N. Siegel, 2005,桑迪亚国家实验室,个人通讯。
  57. U. imke,2005,Forschungszentrum Karlsruhe GmbH,个人沟通。
  58. s . Dartevelle地球物理颗粒流的数值和粒度方法,博士论文,地质与采矿工程系,密歇根理工大学,霍顿,美国,2003。
  59. k。Agrawal,介观结构在快速颗粒和气固流动中的作用,博士。论文,普林斯顿大学,普林斯顿,NJ,美国,2000。
  60. 斯利瓦斯塔瓦,密集的相气体在循环流化床中流动,博士。论文,普林斯顿大学,普林斯顿,NJ,美国,2002年。
  61. p . n . Loezos密集稀释气体颗粒流动的研究,博士。论文,普林斯顿大学,普林斯顿,NJ,美国,2003。

版权所有©2008 Madhava Syamlal等。这是分布下的开放式访问文章知识共享署名许可协议,允许在任何媒介上不受限制地使用、传播和复制,但必须正确引用原作。


更多相关文章

PDF. 下载引用 引用
下载其他格式更多的
订单打印副本命令
的观点2725.
下载1490
引用

相关文章

年度文章奖:由主编评选的2020年杰出研究贡献。阅读获奖物品