软件推介|爆炸模拟程序blastFoam

blastFoam是一个基于OpenFOAM开发的,可用于单相和多相可压缩流动的库,其适用于高爆爆震、爆炸安全和空气爆炸,以及一般的可压缩流动。blastFoam是由Synthetik公司开发的,目前最新版本V5.0,处于开源状态。

Synthetick公司网址:https://www.synthetik-technologies.com/

blastFoam的github仓库地址:https://github.com/synthetik-technologies/blastfoam

基于OpenFOAM针对特殊场景开发的专用求解器其实挺多的,这也是个不错的思路,开源是当前软件发展的一种大趋势。

用CFD来算爆炸难度非常大,这让我想起了十多年前利用商业CFD软件做天然气爆炸的那段不堪回首的日子,计算不稳定、发散、程序算到中途崩溃的事儿时不时的冒出来。爆炸压力波波速极快,导致计算求解所需的时间步长必须非常非常小,然后计算时间就遥遥无期。投机取巧想着把网格尺寸增大来增大时间步长,然而网格粗了事儿更多,严重的时候甚至连化学反应都无法维持。

下面的视频是官方发布的利用blastFoam模拟贝鲁特爆炸后的冲击波扩散情况。

1 blastFoam的安装

目前blastFoam是建立在org版的OpenFOAM v9版本上的,尚不明确com版是否支持。

下载文件

配置编译环境

编译blastFoam

编译需要大概10分钟左右,这个要看计算机的配置。

编译完成后运行若出现下图所示信息则表示安装成功。

软件推介|爆炸模拟程序blastFoam

2 求解器简介

blastFoam一共包含7个求解器,用于应对不同场景下的爆炸模拟。下面的内容来自blastFoam的UserGuide。

1. blastFoam

blastFoam求解器是标准求解器,其具有多种用途,包括单相、两相和多相流动的模拟。该模型中的流体相及热力学模型在phaseProperties字典中指定,当提供了一个相的列表(且该列表有一个以上的条目)时,就会自动选择两相或多相求解器。如果没有指定关键词phase,则自动选择单相求解器。所有的相都使用blastFoam特定的状态方程。此求解器是专门为模拟爆炸性材料而设计的。

2. blastEulerFoam

blastEulerFoam求解器是blastFoam的欧拉-欧拉(双流体/多流体)模型的变体。目前只能进行流体-固体模拟,增加流体-流体模拟的功能正在开发中。此求解器基于Houim和Oran(2016)和Lai等人(2018)的工作,与标准multiphaseEulerFoam求解器相比,其主要优势是可以使用任何数量的颗粒相。目前可以使用三种相模型:单流体、多流体相和颗粒相。单流体相模型用于描述单一成分的流体(如空气)。多相模型用于描述由多相组成的流体相,每个相由一个单独的状态方程描述,这允许模拟添加了颗粒的标准引爆问题。颗粒相模型用于描述一个固体相。单流体和多相模型都可以使用任何流体热力学模型,而颗粒模型可以使用任何固体热力学模型。

3. blastFSIFoam

blastFSIFoam求解器使用标准的blastFoam求解器来求解流体相,并使用OpenFOAM标准的solidDisplacementFoam求解器来求解固体变形(只能考虑线弹性)。流体相使用移动的网格,而固体相则在静止的网格上进行求解。为了正确传递patch之间的信息,需要使用映射的MovingWall的边界类型,可以通过修改每个区域的内的类型来实现此功能。如果为每个单独的区域创建网格,可以像往常一样指定patch类型;但如果使用splitMeshRegions工具将一个区域网格分离成多个区域网格,此时可以使用foamDictionary工具来改变条目名称。注意:这个求解器仍在开发中,还不稳定。请慎重使用。

4. blastXiFoam

除了标准的blastFoam求解器之外,还增加了一个额外的求解器来解决燃烧问题,作为标准OpenFOAM XiFoam求解器的扩展。唯一的区别是,此模型可以更准确地描述燃烧、高度可压缩的流动(即爆燃到爆轰的过渡)。建议使用adibaticFlameT工具来计算热物理属性字典中所使用的模型系数。

5. blastReactingFoam

blastReactingFoam使用标准的OpenFOAM热力学类,可用于求解包括化学反应的多组分系统,同时也可以使用燃烧模型。热物理属性(thermalophysicalProperties)字典必须与相关字典(combustionProperties或chemistyProperties)和初始初值文件(质量分数)一起包含在constant字典下。守恒量(质量、动量和能量)以及质量分数都是使用本文介绍的通量格式来计算的。

6. blastMultiRegionFoam

blastMultiRegionFoam求解器源自OpenFOAM中的chtMultiRegionFoam。主要区别在于使用了ODE时间积分和Riemann通量。固体中的传热仍然通过矩阵求解隐式处理。

7. blastParcelFoam

blastParcelFoam利用标准的OpenFOAM拉格朗日类来求解耦合的欧拉流体和拉格朗日包的集合,包括像阻力、传热及颗粒碰撞这样的交互。由于使用了不同的热力学模型,并非所有的OpenFOAM标准拉格朗日选项都可用。

3 软件应用

blastFoam的使用和普通的OpenFOAM应用程序并无不同。软件仓库中提供了UserGuide及tutorials,可以参阅里面的案例。

下面是官方发布的demo。

1、blastFoam模拟RECONASS 400kg TNT NEQ爆炸试验

2、blastFoam模拟城市爆炸

3、blastFoam模拟贝鲁特爆炸

(本文结束)

来源:仿真圈

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月1日
下一篇 2022年2月1日

相关推荐