没有合适的资源?快使用搜索试试~ 我知道了~
FeNiCS力学模拟软件包
++SoftwareX 9(2019)107FeNiCS力学:连续介质力学模拟软件包米格尔A。放大图片作者:Christoph M.Augustina,b,Shawn C.遮蔽,遮蔽a加州大学伯克利分校,伯克利,CA 94720-1740,美国b奥地利格拉茨格拉茨医科大学生物物理学戈特弗里德·沙茨研究中心ar t i cl e i nf o文章历史记录:2018年6月7日收到收到修订版2018年10月29日接受2018年10月30日保留字:计算力学流体力学固体力学有限元法a b st ra ctFeNiCS Mechanics是一个Python软件包,用于促进计算力学模拟。Python库dolfin,从FEniCS项目,是用来制定和数值求解问题的变分形式。从连续介质力学的一般平衡定律,使不同的材料定律的快速原型除了通用性之外,FeNiCS Mechanics还检查用户提供的输入,以确保问题定义在物理上是一致的。反过来,该代码使那些编程或力学知识有限的人更容易访问自定义力学问题的模拟。©2019由Elsevier B.V.发布这是一篇CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本v1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_73法律代码许可证BSD-3条款使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,操作环境依赖性FEniCS项目,版本2016.1.0及以上如果可用,链接到开发人员文档/手册https://shaddenlab.gitlab.io/fenicsmechanics问题支持电子邮件miguelr@berkeley.edu1. 动机和意义连续介质力学的基础是对变形的运动学及其与作用在物体上和物体内部的力的关系的数学描述。一般来说,数学公式是一组具有相应初始和边界条件(定义为因此,计算力学是采用数值近似解决这些问题。随着计算能力的提高和材料模型的复杂化,计算力学已成为工程设计和研究的重要领域*通讯作者。电子邮件地址:miguelr@berkeley.edu(硕士)罗德里格斯),shadden@berkeley.edu(南卡罗来纳州)。Shadden)。https://doi.org/10.1016/j.softx.2018.10.005虽然使用各种方法来离散PDE以获得数值解,但本文所述的FEniCS力学软件通过FEniCS软件包[1]提供的工具使用有限元法(FEM)进行空间离散化FEM建模有各种软件包[2],包括商业软件,如Abaqus [3],ANSYS [4],ADINA [5]或Comsol [6];以及开源软件,包括Deal II [7],FreeFem [8]和FEniCS。每一个都有独特的优势[9],选择FeNiCS是因为它是开源的,广泛使用的,支持良好的,并且具有广泛的功能,可以被这里开发的FeNiCS力学软件所利用FeNiCS的多功能性和性能在FeNiCS书[10]中有介绍FeNiCS是为了解决可以用变分形式表示的问题而开发的从连续介质力学产生的IBVP很适合在这个框架内。为了解决FEniCS中的问题,偏微分方程的变分形式,函数空间,元素类型,求解器2352-7110/© 2019由Elsevier B. V.发布。这是一篇开放获取的文章,CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx108M.A. Rodriguez,C.M. Augustin和S.C. Shadden / SoftwareX 9(2019)107设置等,通过脚本的开发来指定。然而,也可以用类似的方法来表述一系列连续介质力学问题(参见文档)。特别是,不同类型的问题可以通过改变本构关系,并通过利用或解释广义变分形式的各种条款来描述。这一事实是FeNiCS力学的基础。虽然特定的连续介质力学问题可以通过开发适当的脚本在FEniCS中解决,但这些脚本通常特定于问题的类型(例如,固体、流体)和材料的性质(例如,本构方程,压缩性)。然而,FeNiCS力学提供了一个框架,以便可以通过对配置文件的微小更改或对定义广义力学问题的脚本进行潜在的“最小侵入性”更改来考虑各种连续介质力学问题。这提供了一个有效的框架来考虑各种力学问题,或测试建模选择(例如材料类型)。这种更精简的方法还提高了可访问性FeNiCS为编程知识最少的用户提供了计算力学模拟,同时仍然保持了一个强大的可扩展的开源框架,可以访问通过FeNiCS项目提供的全部FEM和求解器功能。在特定功能方面,FeNiCS力学支持稳态和时间相关的问题在一个单一的域,用户可以选择从一个列表中实现的材料模型,或提供自己的,只要材料是弹性的(应力取决于变形梯度)或粘性(应力取决于速度梯度)。此外,弹性材料可以指定为可压缩或不可压缩,而所有粘性模型都假定为不可压缩。时间上的离散化目前采用单步有限差分格式,包括一阶系统的θ-方法和二阶系统的Newmark格式(见文献)。建议用户尚未实施稳定方法因此,用于每个问题的网格应仔细选择,以避免计算过程中的最后,我们的设计便于添加用户定义的材料模型和更改现有的算法。第2节描述了如何使用FeNiCS力学包来解决计算力学问题。第3节中有一个示范性的例子。2. 软件描述要解决的问题的描述是通过Python字典定义的,称为config。FeNiCS Mechanics然后解析该字典以通过来自FeNiCS项目[1,10]的统一形式语言(UFL)定义变分形式,然后将其用于矩阵组装以获得指定问题的数值解。2.1. 软件构架FeNiCS力学中的信息流如图所示。1.一、首先,用户通过将值分配给配置字典中的各种键来定义问题,例如,材料模型、时间积分参数、域和网格文件。然后将此配置字典提供给问题类进行实例化。所有的问题类都是从FeNiCS力学中提供的Base-MechanicsProblem类中派生出来的,包括目前实现的三个问题类,如图所示。2(a). 基类提供了所有机制问题都通用的方法,包括配置字典的解析。一旦配置被解析,相应的问题类-当前的力学问题、固体力学问题或流体力学问题-使用UFL定义相应问题的变分方程。Mechanics Problem类定义了具有独立函数空间的变分问题,Fig. 1. FeNiCS Mechanics中的信息流示意图。矢 量 和 标 量 值 字 段 变 量 , 而 SolidMe-chanicsProblem 和FluidMechanicsProblem类使用dolfin的混合函数空间功能。与配置中的材料模型相关的信息被传递到定义本构方程的单独类。这可以在图中看到。1.一、通过UFL定义变分方程并将其存储为问题对象的成员数据,然后创建求解器对象。当前的三个求解器类是MechanicsBlock-Solver、SolidMechanicsSolver和FluidMechanicsSolver,分别用于MechanicsProblem、SolidMechanicsProblem和FluidMechanicsProblem。这些求解器对象具有使用来自问题对象的UFL形式的方法,以在非线性求解的每次迭代中组合结果线性代数系统。如果问题与时间有关,则对每个时间步重复此操作。请注意,SolidMechanicsSolver和FluidMechanicsSolver是从dolfin到BaseMechanicsSolver类的NonlinearVariational-Solver类的子类,而MechanicsBlockSolver 是基于 FEniCS 应用 程序 CBC-Block(https://bitbucket.org/fenics-apps/cbc.block)的独立块求解器类,如图所示。第2段(b)分段。期望用户与上面提到的问题和求解器类然而,除了这些,各种本构模型已经在FEniCS力学中的材料子模块中实现 这些本构模型和它们的遗传树如图所示。2(c).2.2. 软件功能为了便于问题定义和可访问性,FeNiCS Mechanics实现了以下功能:1. Key–value 这通过确保配置中不使用无效或不一致的值来增加可访问性2. FeNiCS Mechanics使用config中提供的问题规范来定义使用UFL的变分形式3. 通过UFL定义的变分形式被用来作为-的线性方程组,并获得数值解的问题。所有三个功能都在第3节的示例中演示。3. 说明性示例考虑一个截短的椭圆体(图3(a),左),如兰德等人所考虑的。[11],用于模拟理想的左心室该示例还通过与[11]中提供的基准解决方案进行直接比较来验证FEniCS机械通过在内壁处施加10kPa的压力对模型几何形状施加机械载荷,并且在所有方向上固定为了稳定,压力以100步从0升至10 kPa而不是手动编写一个循环来解决一个准静态问题的100个加载步骤中的每一个,我们利用的事实,FEniCS力学支持时间相关的问题。因此,施加的压力M.A. Rodriguez,C.M. Augustin和S.C. Shadden / SoftwareX 9(2019)107109=<$ = ∈ []−−定义为p(t)10 t kPa(t)0、1,时间步长为不超过0。01已使用为了确保在每个时间步解决的问题是准静态的,材料的密度被设置为零,以从动量平衡的弱形式中排除惯性项被动材料行为的特征在于不可压缩的表1椭球问题的收敛性研究结果P2-P1元件用于所有模拟。心内膜和心外膜心尖位置与Land等人的图6一致。[11 ]第10段。最终顶点位置(z,mm)网格尺寸(µm)DOF(u)DOF(p)心内膜由Humphrey详细描述[13]。这种形式的本构方程被开发用于模拟软生物组织,如动脉和心脏组织,因此被Land等人选择用于各种心脏力学软件的比较研究。[11]。感兴趣的读者可以参考[12此问题的配置字典如下所示:Python代码importfenicsmecanicsasfm#Materialmodelanddparametersmat_dict={“i n c om p r e ss i b le”:正确,“d e n s i t y”:0. 0,' b t ':1。0,' b f ':1. 0,' b f s':1. 0,“C”:10。0、’'f i b e r _ f il e s ':[ ' n 1 - p 0. xml. gzn2 - p 0. xml. gzTrue}}#Meshfilennamesmesh_dict={' m e s h _ f il e ':' m e s h. xml. gz'bo un d a r i e s ':' bo un d a r i es. xml. gz#Timeintegration parameters,BCs,anddpolynomialdegree.formulation_dict={'t i m e ':{ ' d t ':0. 01,“i n t e r v a l”:[ 0. ,1. ]},’’'d i s p l a ce m n t ':[[ 0. ,0. ,0. ]],普拉内}的情况下,’’’'v a l u e s ':[ '10. 0*t#Comeonbinneabove dictionaries 我不知道。config={#Create Problemanddsolver objects.problem=fm。 Solid MechanicsProblem(config)solver=fm. SolidMechanicsSolver(problem,fname_disp='re s ul t s / d i s p l a ce me n t _ o u t p ut.pvd#Numerically 所以, 我 们 要 做 的 是,使用1000µ m网格单元的理想化左心室的原始(未加载)和最终(加载)配置如图3所示。在未加载配置中,内支架(内壁)顶点位于(0, 0,17)mm处。可以看出,在加载配置中,在负方向上约9.7mm的位移反向z方向给出(0,0,26. (7)最后的位置。这与基准文件参与小组的结果基本一致,见图11。第六章土地等[11 ]第10段。的数量-26.67-28.33位移和压力的自由度(DOF),以及所得的心内膜和心外膜顶点位置在表1中给出了不同网格单元尺寸。提供这些结果是为了与图1直接比较6在土地等。[11 ]第10段。4. 影响和结论FeNiCS Mechanics的优势在于它是建立在FeNiCS项目之上的因此,除了第2.1节中提到的可选CBC-Block应用程序外,不需要额外的安装。FeNiCS提供了一个接口,可以与来自免费提供的第三方库的最先进的线性解算器和预处理器连接,例如:PETSc、HYPRE和Eigen。这是许多其他开源项目所没有的优势,这些项目依赖于自己的求解器包。使用FEniCS作为主干的另一个主要好处使用FEniCS Mechanics公式化的问题可以并行运行,因为FEniCS安装了MPI支持。由于其设计为Python字典,模拟在高性能计算集群上以类似的方式执行,就像在普通桌面计算机上FeNiCS Mechanics与独立FeNiCS不同的一个主要优点几种常见的材料模型已经实现,目前的问题类跨越了广泛的可能的应用。总而言之,这有助于从不同的问题定义中获得实验和解决字典键和值的名称已经被选择为直观的,以最小化用户和他们希望运行的模拟之间的差距。这也使得FeNiCS Mechanics能够在用户提供错误或不一致的值时引发异常,如第2.2节所述。虽然在FeNiCS Mechan-ics中维护了简化的界面以便于运行模拟,但高级用户可以充分利用FeNiCS项目提供的附加工具来更改问题定义,例如但不限于提供他们自己的本构方程用于快速原型制作。高级用户还可以更精细地调整所使用的求解器和预处理器参数,并在同一脚本中执行后处理任务。致谢这 项 工 作 得 到 了 NSF 奖 1663747 , NSF GRFP 和 MarieSklodowska-Curie奖学金(GA No 750835)的部分支持,由欧盟的地平线2020研究和创新计划提供给CA横向各向同性本构方程,如Guc中所述,乔内等人[12 ]第10段。该本构方程是200010006 26463 6303623 084−26.85− 28.09-26.68-28.34FungMaterial模型(图2(c))提供和讨论500300475 176215680521 50494622-26.67-28.33110M.A. Rodriguez,C.M. Augustin和S.C. Shadden / SoftwareX 9(2019)107图二、FeNiCSMechanics中定义的所有类及其缩写的继承图。NonlinearVariationalSolver在FEniCS项目的dolfin中定义(参见参考文献[12引用图三. 理想化左心室在最终加载步骤p=10 kPa时的位移。[7]deal.ii有限元库。网址https://dealii.org。[8]Freefem++。网址http://www.freefem.org。[1]FEniCS项目。https://fenicsproject.org/网站。[2016年11月访问]。[2]Wikipedia. 有限元软件包列表 网址https://en.wikipedia。org/wiki/List_of_finite_element_software_packages.[3]阿巴库斯版本2018。Providence(Rhode Island):Simulia; 2018.网址https://www.3ds.com/products-services/simulia/products/abaqus/网站。[4]ANSYS有限元版本19.2。Canonsburg(Pennsylvania):ANSYS,Inc.; 2018.网址https://www.ansys.com/。[5]艾迪娜版本9.4.3。沃特敦(马萨诸塞州):ADINA研发公司; 2018. 网址http://www.adina.com/。[6]COMSOL Multiphysics。版本5.3。斯德哥尔摩(瑞典):COMSOL AB; 2018年。网址https://www.comsol.com/。[9]拉德比科湾比较一下网址https://github.com/kostyfisik/FEA-compare。[10]作者:A,M.用有限元法自动解微分方程。Berlin:Springer;2016.[11]Land S,Gurev V,Arens S,Augustin CM,Baron L,Blake R,BradleyC , Cas tro S , Crozier A , Favino M , et al. Verification of cardiacmechanics software : benchmark problems and solutions for testing activeand passive material be-benchmark.Proc R Soc A 2015;471 ( 2184 ) :20150641。http://dx.doi.org/10.1098/rspa.2015.0641。[12]Guccione JM,Costa KD,Mcculloch AD.犬心脏不停跳左心室力学的有限元应 力 分 析 。 JBiomech1995;28 ( 10 ) : 1167-77.http ://dx.doi.org/10.1016/0021-9290(94)00174-3.M.A. Rodriguez,C.M. Augustin和S.C. Shadden / SoftwareX 9(2019)107111[13] 汉弗莱JD.动脉壁力学:回顾与方向。Crit Rev Biomed Eng 1995;23(1-2):1-162。http://dx.doi.org/10.1615/critrevbiomedeng.v23.i1-2.10天啊[14]Holzapfel GA,Ogden RW.被动心肌的本构建模:材料表征的结构基础框架。PhilTransRSocA2009;367(1902):3445-75.http://dx.doi.org/10.1098/rsta.2009.0091网站。[15]Costa KD,Holmes JW,Mcculloch AD.三维心脏力学特性建模Phil Trans RSocA2001;359(1783):1233-50.得双曲正切值.doi.org/10.1098/rsta.2001.0828网站。[16]德米雷关于生物软组织弹性的注记。J Biomech 1972;5(3):309-11. http://dx.doi.org/10.1016/0021-9290(72)90047-4.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功