用户登录

你在这里

开源有限元代码的现状如何?

fem广泛应用于教育、研究和工业领域。拥有一个充满活力的社区来发展开源有限元代码的前景如何?这样一个社区和代码的潜在好处是什么?有人试过吗?

据推测,任何积极参与这一努力的人都可能得到政府资助机构和行业的支持。

免费的标签:
奚晨的照片

看到http://www.ce.berkeley.edu/~rlt/feap/。该代码售价750美元。

索志刚的照片

我看了你给的网站,但信息似乎有限。你使用FEAP吗?它与商业代码ABAQUS相比如何?您在这个开源FEM社区工作吗?

在杜克大学的计算力学实验室里,我们经常使用FEAP,过去也用过ABAQUS。此外,我们以前的一些博士生现在在ABAQUS工作。所以我会说出我的想法。

在研究有限元和有限元方法的世界里,既有分析人员,也有开发人员。在这里,我将分析师定义为将FEM主要视为工具的人,类似于相当复杂的计算器。例如,分析人员可能对研究复合梁的挠度或薄膜的屈曲感兴趣。然而,分析人员很少对修改代码本身的细节感兴趣。

对于分析师来说,ABAQUS是一个很棒的代码。它提供了一个合理的用户界面,可以访问*一些*子例程,并且技术支持随时可用。

另一方面,开发人员关心的是数值方法本身的发展。有限元开发人员关注的是该方法的技术挑战。例如,在任意域上处理四阶问题的最佳方法是什么?由于种种原因,经典有限元法在这方面做得并不好。另一个发展问题涉及强耦合场现象(例如流体-结构相互作用或力平衡/传质)的解决战略。如果不能够直接修改代码的任何部分(而不仅仅是一个子例程),几乎不可能调查这些问题。

对于开发人员来说,FEAP是一种优秀的代码。代码的大部分核心部分是透明的,元素例程相对容易理解,而且在很大程度上是高效的。它是为研究人员设计的,他们可能在某个时候自己编写了一个小的有限元代码。

索志刚的照片

约翰:非常感谢您对FEAP和ABAQUS的比较。

现在,关于另一方面的问题。是否有一个致力于FEAP的社区,就像致力于其他知名开源项目(比如Firefox)的社区一样?对于像你我这样的普通用户来说,Firefox的市场份额可能只有10%左右。像FEAP这样的项目会产生一个可供分析师使用的产品吗?

或者是FEM只是在质量上不同于浏览器,所以做这样的比较没有意义?

假设您已经修改了FEAP,然后FEAP的下一个版本就出来了。你是怎么做的?FEAP是否足够模块化,以便您可以将修改从一个版本插入到另一个版本?作为用户,您可以为FEAP做出贡献吗?你是怎么做到的?

我只是好奇这项重要的技术是如何发展的。请慢慢看。我不着急。或者让你在ABAQUS的一些学生来阐明这些问题。

肯定有一群人在定期研究FEAP。我并不认为iMechanica代表的是一个社区。万博manbetx平台他们中的一些人互相交换信息和代码片段,另一些人只和鲍勃·泰勒这样做。

有许多人使用FEAP进行分析工作。然而,我不相信这是鲍勃·泰勒的目的。我认为与Firefox相比,整个项目非常不正式。

FEAP非常模块化。如果没有对代码的基本结构做任何剧烈的改动,通常可以将您在一个发行版中所做的更改移植到另一个发行版。我确信Bob也会合并开发人员建议或发送给他的更改或子例程。

在我看来,没有一个更活跃的开源有限元项目的一个原因是,即使是一小部分计算力学社区也很难就基本规则达成一致。即使是最基本的问题,比如应该用什么语言来写,也可能会引起争议。

志刚:非常感谢你给我推荐这个网站。今天早上我很快地看了一下,发现里面有各种有趣的信息,我以前不知道的。我完全同意上面的许多评论。在有限元界有两种不同的人。一类是有限元方法或有限元程序的用户(或分析人员)。他们需要高度健壮、文档完备、经过充分验证的代码以及良好的技术支持来解决他们的问题,但是他们对如何实际执行计算不感兴趣。只有商业有限元程序,如ABAQUS,才能满足他们的需求。与此同时,另一群人,即有限元方法的研究人员和开发人员,希望能够获得完善可靠的源代码,这些源代码可以作为他们开发新算法的基础和构建块,用于解决以前从未解决过的问题。所以我认为商业有限元代码和开源有限元代码可能会同时存在。一个不能被另一个取代,因为它们满足了不同人的需求。

很长一段时间以来,我一直在使用Firefox时遇到问题。但即使火狐有10%的人我还会用它。

奚晨的照片

志刚:我们是FEAP的初学者。ABAQUS是一个很棒的软件,但它只能用来解决“常规”问题。当我们想要有更多的自由时,例如在我们最近正在做的蛋白质力学中,我们总是受到ABAQUS所犯的未知问题/错误的限制。因此,通过使用FEAP或其他开源代码来更好地控制问题是有益的;我们仍在比较几个代码,看看哪一个更适合我们的目的。同时,对于诸如缩进之类的“传统”问题,我想说ABAQUS工作得更好,现在它几乎是学术界的“标准”。例如,我的一个博士后喜欢使用ANSYS,有时我们甚至会收到论文的评论,问我们为什么不使用ABAQUS……我同意John的观点,这两个工具对计算力学的人来说都非常有用。

滕丽的照片

这可能有点偏离主题,但可能很有趣。谢谢。

奚晨的照片

此外,ABAQUS还不能有效处理很多问题,如蛋白质-水的相互作用和溶剂化、热波动等。

假设您已经修改了FEAP,然后FEAP的下一个版本就来了
出去了。你是怎么做的?FEAP是否足够模块化,以便您可以插入
你的修改,从一个版本到另一个版本?作为用户,
你能为FEAP做贡献吗?你是怎么做到的?

谢谢

短剑

模块化是FEAP设计的一部分;如果你坚持通过许多用户界面对材料、元素、网格命令、解决方案命令、绘图命令等进行修改,那么你在更新方面是相当安全的。如果你在代码的内部瞎折腾,那么你需要更加小心。也就是说,如果你做了一些侵入性的东西,但它不仅对你有用,而且对其他人也有用,那么Taylor教授经常会在下一个版本的代码中包含你开发的功能(可能是重写它们)。

桑杰·戈文杰教授
加州大学伯克利分校

Christian Linder的照片

人们甚至可以从泰勒教授的网页上下载一个免费的个人版本FEAPpvhttp://www.ce.berkeley.edu/~rlt/feappv。这将是了解使用的结构和一般格式的良好开端。由于FEAP和FEAPpv共享相同的输入信息,因此迁移到FEAP非常简单。

西

谢谢你提供的信息。

在我来美国之前,我有一份代码的副本(教育版本),发现它非常有用。我听说更多的,特别是那些先进的解决方案,已经集成到它,但我想知道如何才能访问它。希望他们还在发布源代码——请直接联系他们。谢谢aagain。

Qingda

有一个FEM公海,是由我在加州大学伯克利分校的同事开发的。我会尽力为你找到更多的信息。

其他开放源代码的有限元代码是

  1. 交易http://www.dealii.org
  2. Libmeshhttp://libmesh.sourceforge.net
  3. OpenFemhttp://www-rocq.inria.fr/OpenFEM
N. Sukumar的照片

有限元建模已经成为一种无处不在且功能强大的仿真工具,以至于公共领域的软件包几乎不可能满足潜在用户在功能方面的最基本需求。对于从事固体力学的人来说,诸如静力学/动态分析(隐式和显式)、非弹性材料定律、有限应变运动学和非线性解方案等特征将是起点。除此之外,你还可以添加一些愿望清单:故障/损伤建模、网格复杂几何、接触、多物理,这些清单很快就会变得难以管理。考虑到一旦离开线性,有限元素公式往往也变得更加复杂(混合公式,减少积分),微妙之处不能再被忽视。最重要的是,准确性和稳健性至关重要。因此,为了实现这一目标,有限元的发展只能由ABAQUS、ANSYS等能够满足行业需求的公司来维持。软件的质量保证、验证和确认是至关重要的,我确信在新版本发布之前,这些公司在这些方面花费了大量的时间。

在我看来,至少在力学中,计算软件开发本身并没有被视为一项重要的研究活动,也没有得到多少支持。它更多地被视为达到目的的一种手段(模拟),因此通常正在开发内部研究代码,以满足不同群体的具体需求。少凡提到了OpenSees该项目是结构工程界为地震模拟创建单一平台的一项努力。这是我的理解(这里有一些人正在使用它),它有许多积极的属性和良好的设计(c++)。重点更多地放在结构(梁/桁架)单元上,而不是连续单元上。

开发好的代码(软件设计、功能、可用性、可扩展性、健壮性),如果你不希望别人使用它,那就不是直截了当的练习。对于fem和开源的问题没有简单的答案,但是在这个方向上有更多的思考和讨论的空间。

太浩是一个开发得相当好的开源项目,并且有一个社区。事实上,如果你去链接,你会发现讨论论坛等。当这个线程开始时,我完全忘记了这个项目。

它是由帕特里克·克莱因(Patrick Klein)在桑迪亚(Sandia)工作时开始的,他仍然在业余时间维护这个项目(我想他转投了金融领域)。看看Suku上面的愿望清单,TAHOE看起来很不错。

与FEAP一样,它也不适合外行人。最好是和有经验的用户一起学习。

杜振中的照片

志刚请我对此发表评论。像ABAQUS这样的商业有限元分析不同于学术方面。在学术界,你试图解决一两个具体问题,然后就解决方案写一篇论文。在这种情况下,您可以根据自己的特定需求对开源代码进行调整,从而发现它已经足够好了。

ABAQUS是一种通用代码,ABAQUS的开发人员必须编写一种可用于多种问题的方法。这个挑战至少和想出一个只适用于一两个问题的想法一样大。它必须是强大的,准确的和易于使用的。此外,代码必须经过严格的质量保证,每个版本的验证和确认。另一方面,像ABAQUS这样的商业有限元分析也提供用户子程序、第三方软件接口(如流体代码)和年度功能增强,以满足客户的需求。

在我看来,开源代码的困难之一是与维护相关的问题。如果原始开发人员离开或退休,谁来维护和进一步增强代码?我们经常看到许多最初由公司、大学和政府实验室开发的内部代码最终被商业化,以避免维护成本。

罗伯特·格雷西的照片

我的理解是ABAQUS实际上是基于FEAP的。FEAP中可用的用户子例程与ABAQUS中的几乎相同。因此,如果您了解ABAQUS,但是需要编写自己的代码,FEAP可能是一个很好的起点。

杜振中的照片

仅供参考,ABAQUS公司历史可以从http://www.abaqus.com/about/history.html

摩加迪莱·古拉詹的照片

现钞是一个开源的FEM,专门用于分析微结构。它主要由CTCMS和NIST开发(和维护)。

黄睿的照片

这一讨论提供了许多关于有限元规范现状的有用信息以及一点点历史。按照John的定义,我绝对是一名分析师而不是开发人员,尽管我之前确实写过一些小段的有限元代码。

作为一名分析师,除了代码本身,我还需要一个程序来可视化我的网格和结果。商业软件包如ABAQUS和ANSYS当然有这个功能。对于像FEAP这样的开源有限元代码,我可以使用哪个程序来方便地检查我的网格和结果?

如果这样的程序很容易获得,并且与商业软件包中的程序一样强大,那么我认为为了研究的目的(即使是分析师),用开源代码训练自己和学生是值得的。

RH

尊敬的黄锐教授:

有一个免费的、积极开发的、功能丰富、易于使用的可视化程序:OpenDx。它最初是由英特尔开发的,然后给了开放开发。www.opendx.org是链接。它可以为任何科学研究人员的可视化目的服务。

它有一个简单的界面来创建可视化宏,就像拖放和连接模块用鼠标。

Kodanda

黄睿的照片

Kodanda,

谢谢你提供的OpenDx链接。我稍后会去看看。

RH

瑞,

FEAP有自己的内置图形包。它非常好——非常基本,但它有你可能需要的一切。

为了生成网格并对结果进行后处理,我们也使用了这个包gmsh。它是免费的,非常简单,并且是一个直观的软件包。它是由Christophe Geuzaine(现在在Case Western数学系)和Jean-Francois Remacle(现在在比利时列日)开发和维护的。

欢呼,

约翰

滕丽的照片

约翰,

谢谢你的提醒。gmsh是否有方便的方法导入或导出到其他FEM代码,如ABAQUS?如果没有,您通常如何实现从gmsh生成的网格数据?谢谢。

> > > www.macroelectronics.org < < <

黄睿的照片

约翰:

谢谢你的回复。我要试穿一下。

RH

N. Sukumar的照片

对于网格生成,除了gmsh,我推荐三角形(作者:Jon Shewchuk,伯克利),如果你的主要兴趣是二维的。Triangle非常容易使用,并且被大多数人认为是最好的2D网格生成器(Delaunay和constrained Delaunay)。没有后处理结果的可视化,但它有一个非常好的图形程序(也是用C编写的),称为Showme来描绘网格(Delaunay, Voronoi等),可以将它们保存为EPS文件。最新版本可能会有更多的附加功能。此外,代码非常干净,有大量文档,因此非常可读。当然,如果您对3D感兴趣,并且我们也想要后期处理功能,gmsh将是首选。就其他公共领域的软件而言,我听说IBM的软件非常好OpenDX,但它可能需要一些时间来熟悉包。

黄睿的照片

Suku:

谢谢你提供的信息。

对我来说,网格和结果的后处理可视化比网格生成更重要。你可能还记得普林斯顿大学Jean Prevost的Dynaflow程序。您帮助在Dynaflow中实现了XFEM。为了继续使用它,我需要找到一个后处理程序。Jean用的是Femgv,它很贵。你觉得我能用gmsh把dynamlow的结果可视化吗?

RH

N. Sukumar的照片

瑞,

我使用gmsh(最低限度地)进行可视化,并没有研究它的所有特性;目前,只是用它来可视化向量场,也可以在三维空间中描绘一个表面网格(输出代码不是我写的)。然而,它确实有许多功能,并为网格生成和可视化提供了一个单一的平台。当然,不管你使用什么包,你都需要以ASCII/二进制格式输出数据到一个文件。由于Dynaflow输出是femgv可识别的格式,因此使用是无缝的。如果迁移到任何其他包,则需要创建适当的代码和来自Dynaflow的输出,以便其他vis包可以读取它。如果您只对所有现有绘图功能的一小部分感兴趣,那么我认为所需的编码将是可管理的。希望其他使用gmsh进行vis的人可以就他们的经验提供更有针对性的评论。

如果成本是主要的制约因素,你考虑过吗Tecplot吗?它被我们许多人广泛使用,而且它并不那么昂贵;大学里的单用户许可证可能还不到1000美元(只收取一次性费用),如果许多用户同时需要访问该软件包,则可以拥有多个用户许可证(成本会有所增加)。你可以创建非常好的网格图,也可以创建位移/应变/应力轮廓或其他奇特的图(带有阴影,透明度等)。而且,学习曲线是平缓的。我知道其他人使用Matlab的图形特性来绘图。对于二维XY图,我一直在用xmgr / Grace(公有领域),它提供了非常高质量的EPS图。

附注:在看到其他一些评论后的附录。你可以看看gmsh手册(PDF):第145页(文件格式)和第177页(常见问题解答)可能是很好的起点。

Jean H. Prevost的照片

鲁伊,Suku,…Zhigang把你的问题/评论带到我的注意....有许多“后处理器”可用,……有些人很好,有些人不太好....在所有情况下,无论该软件包是商业的还是免费的,....必须编写一个接口(也就是说,没有免费的午餐!!)将FEM的结果转换为图形处理器....可以理解的格式这通常并不困难,但非常耗时,需要不断维护以适应新的可视化请求等....例如,dynaflow的所有结果都被转储到ASCII文件(TAPE****)中,如用户手册附录E中所述…然后可以读取这些文件并为后处理器提供其他文件……我在Femgv、Pro-engineer、Spectrum、IRIS inventor、Tecplot和Paraview等公司都是这样做的…… but clearly, I can only support extensively only one (I chose Femgv)... but it is quite straightforward to bring all processing options to the others (if needed).... Hope this helps.

N. Sukumar的照片

琼/瑞,

是的,这最终取决于一个人的需求和期望的可视化能力。正如我在文章中提到的,需要编写代码(接口)以正确的格式输出数据(来自任何模拟包)。天下没有“免费的午餐”,因此大多数代码通常只能为几个vis包提供广泛的支持。像abaqus/ansys这样的公司将尝试提供所有用户可能不需要的和/或至少最流行的输出格式(过去使用过ansys,但没有使用过abaqus)。我被告知,在过去,即使在预处理和后处理领域,这些软件包也不是很好。因此,根据您最频繁出现的可视化需求,您可以为您可能不想使用的包(gmsh/tecplot/..)编写接口。我使用tecplot(世界上许多组织都使用它),但其他选项也可能合适。任何新事物都有一个学习/使用曲线。Tecplot带有手册/演示等,很容易上手。如果你告诉我你最常见的需求,我可以给你发送一些tecplot使用的格式,让你得到一个相同的想法,或者如果你选择购买它,我可以提供一些我的代码,如果这可能有助于你在dynaflow中编写自己的代码。 have written some in fortran (basic stuff--plotting elements, disp, stress, etc.), which can be easily ported to jean's dynaflow.

作为计算力学研究中常用的开源有限元分析代码,FEAP已经被多次提及。为什么会这样?是因为Taylor/Zienkiewicz在他们的书中有记录吗?

它是用fortran写的,这算是一种资产吗?对于像我这样从事商业有限元分析的人来说,这似乎很奇怪。在严肃的有限元分析代码中,超过50%的代码只是用于操作复杂的数据结构,而不是用于计算力学或数值。Fortran不适合这种情况。至少有六个成熟的、开源的、用c++编写的有限元分析代码。

fortran还在被用来教授工程和科学专业的学生编程吗?

比尔,

这是一个很好的问题。我认为FEAP的流行可以追溯到几个方面。首先,鲍勃·泰勒对有限元方法的发展有很大的贡献。他的许多学生和与他一起工作的人使用FEAP,并将其传递给他们的学生,等等。

Fortran恰好就是用它写的。对于刚开始学习如何编程和有限元方法的工程专业学生来说,这是非常好的。

我同意Fortran并不适合处理复杂的数据结构。但这正是问题的关键。当我们在教学生的时候,我们不想使用复杂的源代码。使用Fortran,人们可以专注于算法,因为数据结构非常简单。

作为一个经常教授有限元方法入门课程的人,我觉得这很有吸引力。事实上,我们在课堂上使用更简单的东西:一个非常低级的Matlab代码。我们这样做的部分原因是,虽然我们内部的许多研究代码都是用c++编写的,但并不是每个工程专业的研究生都见过c++。

我怀疑Fortran在许多机构被用来教授编程。然而,一旦学习了另一种编程语言,学习它就不是那么困难了。

最后,如果你还熟悉其他的开源c++代码,请告诉我们。

谢谢,

约翰

N. Sukumar的照片

比尔,

我赞同约翰的意见。在科学计算中,Fortran仍然占据着至高无上的地位,因为Fortran库提供了大量的数值算法。也就是说,我不相信Fortran现在被作为第一门/入门级编程语言教授给本科生。对于FEM的第一个研究生课程(工程/应用科学学生的任何横截面),Matlab作为一个合适的平台,因为它使学生能够专注于方法的实现,而不是被语言的细节所困扰。此外,在Matlab中,矩阵/向量运算和线性代数(线性方程的求解)可以用简单的命令完成,并且大大方便了结果的可视化。然而,Matlab的能力不能被削弱,因为在计算科学中有许多研究人员只使用Matlab进行研究。

在Matlab中编写一维有限元程序是微不足道的,一旦步骤和流程图明确,二维实现就很简单了。这使学生能够在程序中加入扩展和/或新功能。Matlab使用“C”语法,它的许多命令(矢量化)直接转换为Fortran90。在过去的十年中,Fortran90/95编程在科学计算中变得更加普遍,因为它包含了C/ c++的一些理想特性(例如,动态内存分配,数据封装,函数重载等),同时与Fortran77向后兼容(可以直接调用F77函数和子程序)。我对所有这些语言都有一些经验,并且觉得Matlab为任何计算密集型的本科或研究生课程提供了一个非常好的平台。借助Matlab编程方面的专业知识,可以轻松过渡到任何其他面向对象的语言。

约翰,Suku,

非常感谢您周到、详细的回复。

是的,我可以看到Matlab对FEM或类似课程的吸引力,因为它让学生专注于力学而不是编程特性。这对他们的职业生涯也很有帮助。这与像Java这样的语言形成了对比,Java非常适合教授编程概念,但在科学编程方面还有一些需要改进的地方。

不过,我实际上并不同意,一旦你学会了Matlab或Fortran,就很容易学会像c++或Java这样的面向对象语言。c++和Java允许你表达编程概念Matlab和Fortran没有——只是没有词汇表来表达它们。

作为开源有限元分析的受众,我主要考虑的是从事计算力学研究的研究生。我猜,约翰,你们的内部守则也属于这一类吧?我想听到更多关于它们是如何开发的,以及为什么在这些情况下选择c++。

正如你上面提到的,John,计算力学研究的一个很好的选择是ABAQUS。对于编写新的但相对传统的元素或材料模型的人来说,用户编写的子例程显然非常强大。但对于研究解算法或自适应方法的人来说,ABAQUS并没有多大帮助。您要么编写自己的代码,要么修改其中一个开源代码。就我个人而言,如果我在hp自适应方法中工作,我不会想用Fortran编写代码(但该领域的一位主要研究人员确实这样做了,http://www.ticam.utexas.edu/%7Eleszek/projects.html).

我将发布另一个关于一些开源的面向对象的FEM代码的注释,我至少已经随意地看了一下。

N. Sukumar的照片

比尔,

我希望我没有给人这样的印象:学习了Fortran/Matlab就可以开始用C/ c++编程了。这与事实相去甚远。并非所有的大学生都接触过面向对象(OO)编程;大多数人至少接触过Matlab编程。当然,如果研究生被要求用c++开发他们的研究代码,他们肯定需要参加面向对象编程的课程。

比尔,

我支持Suku上面的评论。我不相信我们中的任何一个暗示matlab - c++是一个容易的过渡。Matlab确实允许结构化数据类型,但不支持c++中可以轻松完成的很多功能。

现在,回答你关于我们内部守则的问题。扩展有限元法(X-FEM)中的许多原始工作都是建立在c++内核上的。这促进了许多标准代码不习惯的事情,例如具有可变自由度的元素、用于细分和集成的递归例程,以及基于函数空间概念构建的数据结构的使用。我们很幸运地继承了Jean-Francois Remacle设计的非常聪明的内核。几年之后,在尼古拉斯·莫斯、我和苏库的指导下,这个代码增长了很多,当时我们都在西北大学。

后来,Suku在普林斯顿将这些技术转化为Fortran代码。我想他会是第一个告诉你,尽管代码设计得很好,但要做到这一点并不容易。一旦有了现成的框架,c++就能更好地促进概念开发。然而,我认为从一个具有基本健全、灵活的框架和理念的代码开始是非常重要的。从我的经验来看,这种情况很少见。

Hisham的照片

喂!

我知道这是一个旧的线程,但是,我无法在您发送的hp-fem代码的链接中找到手册!请问你知道在哪里可以获得这种代码的全面手册吗?

谢谢,

Hisham

下面是一些免费的或开源的面向对象的注意事项
有限元分析程序,我至少看了一眼。我有
当我看到有限元分析代码时,有几个重要的标准
最大的问题是,他们必须方便地处理任意
自由度类型——例如,如果我想实现
一个耦合流体,结构,电,热模型,架构
必须适应这个。幸运的是,他们中的许多人都做到了。

OOFEM
http://www.oofem.org/
这是相当成熟的,已经习惯了
解决不同学科的问题。
我个人认为是面向对象(OO)设计
有点不寻常,文档也有点稀疏。

getfem + +
http://www-gmm.insa-toulouse.fr/getfem/
这个代码来自于
偏微分方程的数学
而不是力学的观点
(下图中的Rheolef也有这种味道)。例如,我不是
当然,添加梁或板元素需要什么。
不过,它有很好的软件工程。

rheolef
http://www-lmc.imag.fr/lmc-edp/Pierre.Saramito/rheolef/
在我看来,这款游戏最大的弱点是
它似乎只允许模型使用一种FE类型。
它的文档确实比一般的好
到高性能稀疏求解器的接口。

libmesh
http://libmesh.sourceforge.net/
这已经提到过了,但我要做几个
其他评论。这是建立的有限元分析开发项目之一
就像一个真正的开源项目——SourceForge网站,
论坛,等等。我想这就是志刚的想法
在他最初的帖子中。我的印象是
软件主要用于解决流体问题。对于一些
原因是,他们没有向量场的概念——你
必须用3个标量场来表示。

功能
http://www.tm.ctw.utwente.nl/onderzoek/DiekA/Feature/index.html
我只看了一点,但它看起来很优雅
给我。OO模型是合理的,并且看起来相当通用
在自由度的处理上。

作为一名故障建模者,我经常被数值不稳定性引起的分歧所困扰。特别是商业软件,它们没有给用户太多的操作空间。

但这个问题在损坏或故障分析中有物理基础,其中负特征值可能无法完全避免(有时甚至是必要的)。我不是计算算法方面的专家,我想知道是否有任何有效的方法来解决这些所谓的不定矩阵(一个矩阵既有正特征值也有负特征值)。欢迎提出任何意见或建议。

Qingda,

我非常喜欢你最近在《科学》杂志上发表的文章。当然,我也要感谢您提到X-FEM并引用我的工作!我认为X-FEM在研究复合材料的破坏方面具有很大的潜力。

现在,回答你的评论和问题。我同意数值不稳定性是令人沮丧的一大根源,而且商业软件并不总是提供一套很好的选项来处理它们。我确实相信ABAQUS在这方面非常出色,因为它为整体解决方案策略提供了许多选项。尽管如此,有时很难确定代码到底在做什么。

你能提供一个更具体的失效分析的例子吗?我想你可能指的是失去椭圆性,但我不确定。在任何情况下,我很确定求解器是可用的,它们可能不那么容易链接到您的分析,特别是如果您使用的是商业软件。

约翰,

非常感谢您的回复。那篇论文里的引文当然是你应得的。

在我看来,这种X-FEM是复合材料中可能包含这些二次开裂系统的主要候选。目前,它们主要由连续损伤力学(CDM)来解释。问题是,一旦一个主要的裂缝从这样的系统中演化出来,CDM就会因为高度局部的变形而成为问题。我会试着尽快和你谈谈这件事。

至于收敛性,我同意你的观点,Abaqus提供了一些选项来更好地控制收敛性——也就是说系统是可收敛的(抱歉缺少更好的措辞)。当你提到椭圆性的丧失时,你说到点子上了——我不是这方面的专家。比如说,在某些条件下,一个最初稳定的裂缝在被阻止之前会变成一个动态的裂缝。这是一个与椭圆性丧失有关的问题吗?如果是,应该如何应对?

再次感谢。

赵若刚的照片

我从谷歌找到了这个线程,我马上注册了,因为我一直在努力选择一个合适的FEM包为我的研究项目在过去的两周。

主要的挑战是材料的性能。我的项目是对单个细胞的力学响应进行数值模拟。已发表的文献表明,生物细胞可以被建模为一个经历大变形的粘弹性固体球体。杜克大学的Farshid Guilak使用FEAP进行了这样的研究。将线性粘弹性和非线性粘弹性材料模型与FEAP相结合,仿真结果与实验吻合较好。

我们实验室有Ansys软件,但采用的粘弹性材料模型最初是针对橡胶类聚合物推导的。我不知道这种材料模型是否适合生物细胞。Ansys确实有一些用户可编程材料,但粘弹性不包括在内。

Abaqus是另一种选择。我对Abaqus有了更好的感觉,因为我用它完成了硕士学位。UMAT子程序允许用户定义材质。但是在使用Abaqus时遇到的奇怪问题让我很沮丧,因为我意识到生物材料可能与传统工程材料根本不同。

那么,对于这个问题,有什么专家可以评论一下使用什么FEM软件包吗?我不太喜欢开源包,因为我将在编程而不是分析上花费太多时间。但是如果这是我们唯一能把我们想要的材料属性纳入有限元的方法,我想我必须选择它。

谢谢。

MichelleLOyen的照片

生物材料的特性在Abaqus中经常使用多孔介质流动的“孔隙弹性”材料模型。这比经验粘弹性模型提供了更基本的物理信息。另一个流行的选择是生物材料工作LS-Dyna,它在冲击生物力学界很受欢迎,因此有一系列对生物组织有用的线性和非线性粘弹性材料模型。

亲爱的

你好我是机械工程专业的学生,研究粘弹性材料追求我的学习,非常感谢您的帮助。我需要利用ANSYS软件对粘弹性材料进行了应力分析。

如果你能帮我。我将感激

我已经为橡胶和生物材料编写了许多非线性粘弹性材料模型,使用了一个叫做Tahoe的开放源代码,用于我对角膜力学行为的建模。后者是各向异性的,在开放源码版本中不可用,但在受保护的开发版本中可用。您可以从以下网址下载代码https://sourceforge.net/projects/tahoe并采用各向同性非线性粘弹性模型。文献资料虽然稀少,但可以在tahoe.ca.sandia.gov上找到。因为它是一个研究代码,使用起来不像ABAQUS那么方便,实现你自己的模型也有些困难,但是如果你想走这条路,你可以联系我tdnguye@sandia.gov

我对ABAQUS和LS-Dyna不太熟悉。我认为ABAQUS除了孔隙弹性模型之外,还有一个有限变形的准线性粘弹性材料,它使用proony序列来表示随时间变化的行为。我认为LS-Dyna纯粹是显式代码,而ABAQUS同时提供隐式和显式求解器。

赵若刚的照片

嗨,Michelle和Thao,

谢谢你的回复。在我们的项目中遇到的一个问题是,那些标准的机械测试,如单轴拉力和纯剪切,根本不能在单个细胞上进行。如果没有标准的测试结果,就无法得到商业包装所需的粘弹性参数。目前,我不认为流行的细胞探测技术,如微移液管抽吸、磁扭转细胞术和AFM可以提供商业包装所需的材料常数。

然而,简单的线性Maxwell模型可以很容易地与测试数据相关联,因为该模型只有三个参数需要确定。一些更复杂的模型,如标准线性模型和上对流麦克斯韦模型,也被用于与普通细胞探测技术相结合。所以我认为我们需要的是根据现有的测试来控制材料参数。我将从简单的模型开始,看看我们如何将其与商业软件包联系起来。

刘开锋的照片

Ruogang,

我已经用abaqus用粘弹塑性本构模型模拟生物材料两年了。我在UMAT的经历有些令人愉快。也许部分原因是我的结构相对于生物细胞来说比较简单。如果你想了解更多关于我的经验,请不要犹豫与我联系。

我对米歇尔关于“孔隙弹性”模型的帖子有一个评论。在我看来,术语“双相孔隙弹性”更清晰。实际上,这是通过abaqus中的* soil分析实现的,该分析是为土木工程师设计的,用于进行土壤固结/渗透分析。时间相关的行为可以在这个分析中完成。如果你觉得流体流动在你的分析中很重要,这可能是一个比单相维弹性模型更好的选择。

开封

说法语的人可以找到Code-Aster (http://www.code-aster.org)一个有趣的开源有限元软件。一些文档有英文版本。一个互补的开源项目是SALOME (http://www.salome-platform.org)进行前后处理。CAELinux (http://www.caelinux.com)有一个LiveDVD发行版,它直接从DVD启动和运行,并使用上述代码。该网站也有一些教程。

这是另一个例子:http://www.calculix.de/
它的输入文件具有与ABAQUS输入文件相似的语法!

明确的分析:http://impact.sourceforge.net/

基肖尔Pochiraju

关于免费有限元代码,尝试ELMER,可以从下载www.csc.fi埃尔默/连同它的使用手册。其他信息可以找到只要键入ELMER作为关键字在任何网页搜索。您可能会对许多描述实际应用的报告和在大会上的演讲感兴趣。

由Belytschko, Liu和Moran撰写的这本书是一本非常全面和完整的书,以一种非常实惠的方式涵盖了非线性有限元分析的大多数方面。它相对便宜,所以对这个领域感兴趣的人会发现买这本书是很好的。然而,本书的pdf版本可以在网上的单独章节中免费下载。不幸的是,我没有这个网站,但有耐心的话,你可以用关键字,比如主要作者的名字,书名等,找到它。

Roozbeh Sanaei的照片

ELMER算法的缺点之一是不使用PETSC,求解器并行化的能力有限。

这个线程对我最有用,感谢所有贡献者。

很高兴看到有许多复杂程度和重点不同的选择。

我认为如果我们用这些软件包分享我们的经验会更有用。我很想知道上述软件是否被推荐。如果推荐的话,有多强烈?我知道有时候这是个人喜好的问题,评估软件也不是一件小事,但是这样的信息可以为用户节省很多时间。

我对一个简单的包特别感兴趣,它可以从CAD文件中生成网格,并进行模态分析(相对简单几何形状的模态振型和固有频率)。

提前感谢

Cetin内

光声研究室

克拉克森大学

大多数开源FEA软件包关注于有限元方程的公式和解,而不是生成模型。我认为很难找到可以从CAD几何图形创建FEA模型的开源软件。

另一方面,商业代码如ABAQUS和ANSYS在这方面做得很好。如果您不需要根据您的特定需求对代码进行重大修改,那么这些代码可能是一种选择。两家公司都有低成本的学术许可。

在过去的几十年里,看到大量的计算机程序,无论是免费的还是商业的,都被开发出来,这是令人惊讶的。

然而,我发现要轻松评估单个程序的功能或相互比较有些困难。因此,我推出了力学、结构分析和设计软件的在线数据库,主要目的是对可用的程序进行分类,并使访问者能够输入评级。数据库中的每个条目也链接到维基,它允许贡献较少结构化的内容来补充数据库条目。

该数据库可在http://www.bridgeart.net/software_database/

Ondrej:

这-你的网站-是一个极好的想法!同时,感谢之前的评论/建议。

Gerd Sebastiani的照片

任何对CFD感兴趣的人都可以考虑Featflow,由多特蒙德大学Turek教授的团队

基于Fortran的代码可以免费下载,也可以通过CD获得。据我所知,这些代码主要应用于CFD的入门实验等教学中。还有一个基准集合叫做流体运动的虚拟相册,作为流体动力学类中的示例。

我个人在我的硕士课程中使用了这个软件。恕我直言,由于资金状况,教学和研究也是这些免费代码的主要应用。

连结及下载:

亲切的问候:
Gerd

Roozbeh Sanaei的照片

开源有限元程序分为两类:

1.具有物理观点的有限元程序。(有限元代码)

2.具有数学观点的有限元程序。解决(Pde)。

我在我的博客中提供了他们列表的有用链接

http://roozbehsanaei.blogspot.com/

我简要地阅读了他们的手册,我认为FEAP,ADVENTURE和TAHOE可能最适合我的目的。我需要你的帮助,以便选择其中一个进行开发。

研究了非线性各向异性和微极性材料的力学行为。

vh的照片

我尝试了一个免费的开源有限元代码Warp3D (http://cern49.cee.uiuc.edu/cfm/warp3d.html).我必须承认,我的试验仅限于范例问题。所以不能说太多关于它的可用性。我成功地将它安装在运行openSUSE 10.2的linux机器上

可与PATRAN接口进行预处理。它有90000个元素或200000个节点的限制。可以从各种实现的材料模型中进行选择。MPI版本的代码也实现了。对他的限制没有。可以通过更改适当的变量和重新编译代码来克服节点和元素的缺陷。更重要的是,它配备了一个非常好的和信息丰富的手册。

我对它的接触能力很感兴趣,但它显然只能处理变形-刚性接触,而我对变形-变形接触情况很感兴趣。只有有限种类的刚性表面可以用这个代码建模。

V. Hegadekatte,德国卡尔斯鲁厄大学

phunguyen的照片

你可以试试免费的计算数学建模代码

http://www.fenics.org/

范围内

Roozbeh Sanaei的照片

FENICS是一门发展中的计算力学学科,具有很高的目标。

交易。ii(免费)和Diffpack(商业-1000美元)是类似的项目。

Diffpack-Feap(商业-800美元)是有限元编程中两个非常著名的软件包,但它们有一些缺点,第一个是因为它的FORTRAN基础,最后一个是因为它的成本(OpenScience-OpenSource)。请注意,每个软件包都有其特性和优势,例如CALFEM不是那么有名,但它在振动和声学方面有很好的程序,TAHOE在非经典固体力学方面最好,OOF2用于微观结构和....。

一般的有限元软件包如ELMER,DEAL.II,DOLFIN(Fenics), Adventure Project和PETSC-CS正在成长,但他们不是SPECIAL Subjects的专家。

请原谅我的英语很差。

Roozbeh Sanaei的照片

ELLPACK非常高水平,便携式系统解决椭圆边值问题。人们可以通过简单地将问题写下来并命名要使用的方法来解决日常问题。通过使用灵活的ELLPACK框架中的问题解决模块,可以解决更难的问题。ELLPACK语言是Fortran的一种易于学习的扩展:它为大多数计算提供了大大减少的编码,但仍然允许进行特殊处理。ELLPACK集成了50多个解决问题的模块,包括一些世界上最好和最新的软件。知识渊博的用户甚至可以通过添加新的问题解决或分析模块来定制ELLPACK本身。KASKADE和PLTMG也是类似的软件包

你好,

我正在努力维护一个开源/自由软件,名为MechSys,这是一个用于实现机械系统相关程序的c++库。地质力学是我的主要学科,但我对其他学科也感兴趣。基本上,库中有4个模块(实际上还有更多):

  • 数值(数值算法:RK、正交、布伦特法等);
  • 张量(张量分析:不变量、投影、行列式、特征值等);
  • 线性代数(线性代数:密集,稀疏,非对称线性求解,特征值和特征投影等);
  • 基于Runge-Kutta全局和局部求解的三维土-水非饱和耦合有限元分析;
  • Utils, Constmods, Models, VTKwrap, GUI,…

所有这些模块都是相互独立的,我们可以在未来的实现中使用它们(DEM, MPM,接触/断裂力学,多尺度等)。这个库的主要目标是:1)易于添加新模型、元素或求解器(对于学生、新开发人员、共享、团队合作);2)高度组织性(具有管理系统-并发版本系统,以及几种代码风格约定)。

事实上,一些著名的开源库被包装成函数或类。这些例子是LAPACKUMFPACKSuperLU,SuperLUd对于密集和稀疏线性求解器(包括并行)。一些GNU Scientific例程也被包装起来,例如:用于正交或数值积分的QAGS。我使用搅拌机作为绘图工具,TetGen用于网格生成和ParaView可视化;它们都是免费的(而且是优秀的)软件。

我希望这对某人有用。

我用Blender在3D中建模微观结构,我想知道如何转换这个tegen ?

acaballeroj的照片

安东尼奥绅士;电子邮件:acaballeroj@civil.uwa.edu.au

大家好。从我的角度来看,总是开发自己的FE代码有两个基本原因:

  • 首先,这段经历会让你受益匪浅!!我认为处理公式和执行的棘手问题是理解什么是真正的有限元程序的关键。
  • 另一方面,你将更有能力扩展和纠正它。

然而,我同意开发自己的代码是一项困难且非常耗时的任务。对于那些只需要开放源代码的FE代码来使用或使用的人,这里有两个参考:

http://www.cimne.com/kratos/

http://sokocalo.engr.ucdavis.edu/~jeremic/PDD/

干杯

我想知道如何使用abaqus进行裂纹的萌生和扩展。

所以,绅士们,给我一些解决办法吧。

问候

prashant

它是一个与c++一起使用的快速而紧凑的库。

SciLab现在是一个开源的SML并支持工具箱

Maxima是另一个开源的SML

Octave是另一个类似于mathlab的开源SML

它们的生产状态稳定、成熟。

操作系统的便利之处主要在于,你可以扩展软件,定制它,添加功能,或者将它移植到其他平台,即使你从中得到错误,你也可以尝试修复它们,操作系统模型并不适用于所有人,技术支持主要依赖于社区和私人企业的团队。

如果你刚开始在商业社区开发软件,这是一个非常有吸引力的解决方案,如果你的规模越来越大,时间越来越短,你就会忍不住购买昂贵的软件,包括更快和专家的支持。

其中一个例子是OpenCASCADE:他们提供操作系统OpenCASCADE,但他们也提供支持,并教你如何使用它进行开发(这是一个庞大而复杂的可视化库),VTK是另一个例子。

我做我的项目在温暖的深绘图,我想知道如何做WDD的模拟使用abaqus软件

我怀疑开源交易平台的出现是否会很快蚕食Portware和FlexTrade的成功,但它可以以更低的价格为公司提供更多的自由来做自己的事情。

我叫aswin,在印度鲁尔基理工学院读硕士二年级

现在我正在做一个基于无网格技术的项目。

我正在开发弹塑性问题的代码

我有弹性pert的代码。但我不知道如何为塑料部件编写代码以及如何求解非线性方程

请帮我吃甜点。

ELMER算法的缺点之一是不使用PETSC,求解器并行化的能力有限。

奥云indir

我一直在寻找一种开源或低成本(< 1500美元)的结构FEM包,以支持热载荷下航空航天结构的优化。为了优化,我一直在分布式处理Linux环境中使用遗传算法。我们目前商用FEM软件包的许可费用越来越高。

查看了我在这里和其他来源找到的所有软件包。Code Aster是唯一一个似乎与我所寻找的非常接近的软件包。唉,我不懂法语……

有谁知道除了Code Aster网站上提供的英文文档之外的其他文档吗?

此外,我是否错过了航空航天分析师(根据John Dolbow的非常合适的术语)的好机会?

感谢你们的集体智慧;这是一个伟大的论坛!

地理

你知道另外两个法国fem代码Castem和Zebulon吗?

Castem不支持编程,你可以在CEA的网站上找到该软件的英文文档。

http://www-cast3m.cea.fr/cast3m/xmlpage.do; jsessionid = 2907427 f20b5233b2c……

Zebulon是一个非常好的fem代码,也有英文文档,但我从未使用过它。

http://www.mat.ensmp.fr/Competences/en_zebulon.php

问候

史蒂芬

SivaSrinivasKolukula的照片

嗨,所有

CASTEM是一种用于结构有限元分析的计算机代码
元素的方法。这个代码是由机械部和
法国警察局与原子能(ECA)的技术(DMT)。这是一个免费的有限元软件,可以从以下链接下载:http://www-cast3m.cea.fr/cast3m/index.jsp

实际上这是一个法语的软件,但是有英语的帮助。有英文文档,但有大量法语文档。它有许多模块和源文件(代码)可供参考,可以从网站下载。有关该软件的完整细节在上面提到的链接中。

灵感和天才,是一回事。
_______________________________________
http://sites.google.com/site/kolukulasivasrinivas/
----------------------------------------------------------------------
Siva Srinivas Kolukula
初级研究员

卡尔·范·阿斯韦根的照片

你好,

我认为EDF的Code_Aster可能是最“完整”的免费有限元代码。

看到http://www.code-aster.org/V2/UPLOAD/DOC/Presentation/plaq_V7_GB.pdf的能力。您可以在CAE Linux wiki上找到英文文档和示例:http://www.caelinux.org/wiki/index.php/Doc:CAE

我也用莎乐美http://www.salome-platform.org/用于前置和后置处理器。它也是开源的,易于使用并且非常强大。

显然,以上都没有比Ansys, ADINA, Ls-Dyna等商业软件包更容易使用,但它又不需要任何成本。任何对CFD感兴趣的人都可以经常查看这两个开源程序。

http://www.openfoam.com/

http://research.edf.com/research-and-the-scientific-community/softwares/code-saturne/introduction-80058.html

缺点(或者对某些人来说是优点)是,大多数这些开源软件包都是为Linux创建的。上述方案均得到了验证,并在工业上得到了积极应用。

问候,

卡尔

很好的东西!

尤其是编码员。我想知道我有FSI的开源软件。

卡尔·范·阿斯韦根的照片

要了解“all in one”FSI软件包,请查看Elmer:

http://www.csc.fi/english/pages/elmer

我认为用埃尔默可以在流体和结构之间做双向耦合但我不确定这是否仅限于稳态分析。我对Elmer了解不多,但是通过快速浏览一下文档,你会发现它的材料、元素等都很有限,但是它是开源的,当你用它做研究的时候,我想你可以用Fortran自己写。

您还可以在Code_Saturne和Code_Aster之间进行单向耦合,只需从cfd运行中读取压力边界并将其应用到您的结构中。对于具有小变形的静态分析,这应该足够好了。但是,如果你想充分利用Code_Aster和Code_Saturne +的全部功能,你有很多耐心,你可以使用Google翻译(因为大多数代码是用法语编写的),也可以进行双向耦合。我在Code_Aster论坛上看到,他们目前正在实验室中验证这个功能,所以到今年年底,它应该会变得更容易设置。我没有尝试过这个开源FEA/CFD是我在业余时间必须做的事情,因为我们在工作中使用商业FEA,但除非你能做瞬态/动态FSI来观察流动诱发振动,否则它对我来说是毫无意义的。


我想知道ANSYS11中是否有使用它的功能
能简单直接解决吗热传导比如三维几何中的问题?所有的边界条件都是已知的,我要解热方程并得到多孔介质中的节点温度。
如果你能指导我,我会很感激。
问候
FRZ

对于开发人员来说,FEAP是一种优秀的代码。代码的核心大部分是透明的肾结石

看看sfepy.org,它是一个用python编写的开源有限元软件。

mohammedlamine的照片

INRIA的MODULEF是一个开源有限元代码的应用。

mohammedlamine的照片

我过去在sherbrooke大学开发了一个程序,在unix操作系统下使用GL图形库在工作站上可视化四面体元素:3D网格使用重渲染和双重缓冲对隐藏平面进行着色,照明,收缩和旋转(运动),以检查FE网格。如果你愿意,我可以把节目单和你的书交换一下。

对于最近可用的硬件,您可以使用opengl(或其他)库对相应的函数执行等效的工作。位移,应力和/或应变的表示可以通过以下方式进行:计算元素内部的应力,并使用有效图形库的这些值的2D或3D表示。这将在2D中可视化面积值的范围或在3D中可视化体积值。

在2013年,我没有发现任何有效的恒应变四面体形状函数的计算。之后,我开发了一种有效的方法来计算它们。这是我对我的背景知识做的修改。问候

订阅“开放源代码有限元代码的状态是什么?”

最近的评论

更多的评论

辛迪加

认购辛迪加