首页/文章/ 详情

粒子法SPH和网格法FVM各自擅长的仿真领域

1月前浏览1420


粒子法(SPH)和网格法(FVM)是两种常见的数值模拟方法,它们在不同的仿真领域有着各自的优势和劣势。以下将对这两种方法进行详细比较,并分析它们分别擅长的仿真领域。

粒子法(SPH)是一种基于微观粒子的数值方法,它将流体或固体系统表示为一组离散的粒子,并通过模拟粒子间相互作用来计算系统的演化。粒子法的优点在于它可以适应复杂的几何形状和边界条件,不需要网格剖分,能够自然地处理自由表面和多相流等复杂现象。同时,粒子法还可以很容易地考虑大变形和破碎等非线性效应。
          
          
然而,粒子法也存在一些缺点。首先,由于粒子数目随着系统尺寸和复杂度的增加而增加,计算成本很高。其次,粒子法在处理激波等高梯度现象时存在数值耗散和粒子分布不均匀等问题。此外,粒子法很难处理粘性流体和热传导等传统网格方法相对容易处理的现象。
              
          
网格法(FVM)是一种基于网格的数值方法,它将流体或固体系统表示为一个或多个规则的网格。网格法的优势在于它可以通过有限体积法等技术,准确地处理守恒方程和连续性方程,并且可以很容易地处理多相流、化学反应等复杂现象。同时,网格法可以利用并行计算等技术,加速大规模计算,适用于工程领域中的实际问题。
          
          
然而,网格法也存在一些缺点。首先,网格法的网格剖分需要考虑系统的几何形状和流动特性,难以适应复杂的自由表面和多相流等现象。其次,网格法对网格的质量和分辨率要求较高,会因此影响计算结果的准确性。另外,网格法在处理大变形和破碎等非线性效应时存在一定困难。    
          
总的来说,粒子法和网格法各有其优劣和适用范围。粒子法擅长处理自由表面、多相流和非线性效应等复杂现象,适用于海洋工程、航空航天、地质勘探等领域。而网格法擅长处理守恒方程和连续性方程等宏观现象,适用于流体力学、热传导、化学反应等领域。
          
除此之外,近年来还出现了许多将粒子法与网格法相结合的混合方法,如SPH-FVM混合方法、MLP(Meshfree Local Petrov-Galerkin)方法等。这些混合方法在一定程度上克服了粒子法和网格法各自的局限性,拥有更广泛的适用性和更高的计算效率。因此,在实际工程仿真中,选择合适的数值方法要根据具体问题的特点和要求来综合考虑,不能一概而论。
              

来源:CFD饭圈
非线性多相流化学航空航天海洋MeshFree
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-08
最近编辑:1月前
CFD饭圈
硕士 分享CFD文章,感谢关注
获赞 27粉丝 27文章 378课程 0
点赞
收藏
作者推荐

Particleworks案例19-使用压力边界来模拟管道中的流动

使用压力边界来模拟管道中的流动. 一、创建新项目 1.在工具栏中,单击CreateProject.2.在Create Project 窗口,在Project name输入文件名pressure_boundary 并指定项目将保存的位置Project location.3.单击OK按钮,以关闭窗口.4.在Projects 窗口,展开project 然后双击scene 要打开该场景的节点. 二、添加对象 几何文件 1.在Outline窗口,单击Importpolygonfiles 2.在文件对话框中,选择要导入的几何图形文件(ypipe.stl, plug.stl).3.单击FitView按钮.4.在Outline窗口,选择Input>ypipe.stl.5.在Properties窗口,设置Appearance>Alpha为0.2使内部流动可见.6.在Outline窗口,选择Input>plug.stl.7.在Properties窗口,找到Transform中的部分,并输入以下值:•Rotation:(0,90,0)Pressure boundary 1.在Outline窗口,单击Createmisc.按钮,然后单击Pressure boundary按钮.以同样的方式,创建另一个压力边界.2.在Outline窗口,选择Input>pressure_boundary.3.在Properties窗口,找到Transform中的部分,并输入以下值:•Location:(-120,0,0)•Rotation:(0,90,0)•Type:Circle•Width[mm]:38•Height[mm]:384.在Outline窗口,选择Input>pressure_boundary_1.5.在Properties窗口,找到Transform中的部分,并输入以下值:•Location:(-108.33,51, 0)•Rotation:(30,90, 0)•Type:Circle•Width[mm]:18•Height[mm]:18模拟域 1.在Outline窗口,选择Input>domain.2.在Properties窗口,找到Domain中的部分,并输入以下值:•UpperLimit:(150,100, 50)•LowerLimit:(-150,-50,-50) 三、创建动画 1.在Outline窗口,选择Input>plug.stl.2.在KeyFrames窗口,设置Key:Location.1.3.设置Type为Position.4.在Player窗口,移动到60帧(6[s]).5.单击+以添加一个位置6[s].6.在Player窗口,移动到70帧(7[s]).7.单击+以添加一个位置7[s].8.输入50毫米作为值.9.预览motion,单击Playforward按钮在Player窗口. 四、创建物理属性 1.在Outline窗口,单击Managephysicalproperties.2.在Physicalpropertymanager窗口中,单击加号按钮+以添加一个新的物理属性.3.选择类型Fluid从弹出菜单.4.再次单击加号按钮+以进行添加Fluid_1,并编辑以下参数:•Density [kg/m3]:2000•Kinematicviscosity[m2/s]:1e-45.添加另一种类型Polygon.使用默认参数.6.单击OK按钮关闭Physicalpropertymanager.7.在Outline窗口,选择每个节点。在Properties窗口,定位PhysicalProperty并在类型中分配类型,如下所述.•ypipe.stl:Polygon•plug.stl:Polygon•pressure_boundary:Fluid•pressure_boundary_1:Fluid_1 五、设置压力边界参数 1.在Outline窗口中,选择这两个节点:Input>pressure_boundary和Input>pres- sure_boundary_1.2.在Properties窗口,找到Details中的部分,并输入以下参数:•BoundaryPressure[Pa]:10 六、设置模拟参数 1.在工具栏中,单击Settings.2.在Basics部分的中输入以下参数,然后单击Next:•Unit>Length:mm•Preprocess>ParticleSize[mm]:4•Gravity[m/s2]:(0,0,0)3.在MPS部分的中输入以下参数,然后单击Next:•Pressure>Mode:Div.Free •Viscosity>Type: Explicit4.在Simulation部分的中输入以下参数并单击Close.•Time>FinishTime[s]:10•Time>Initialdt[s]:0.001•Output>FileOutputIntervalTime[s]:0.1 七、运行模拟 1.单击 Execution 部分在 Run 会话框.2.在Run 对话框,找到Execution 部分和选择Preprocess & Simulation 在Runmode3.单击Execute按下以下按钮,以开始计算.八、可视化结果 在颜色贴图中显示压力,并播放结果动画。1.在ColorMap窗口,定位Field,并选择Pressure.2.输入0作为Min以及10作为Max在Range.3.在Outline 窗口中,选择这两个节点:Result >pressure_boundary (particle) 和Result>pressure_boundary_1(particle).4.在Properties窗口,勾选Appearance>UseColorMap.5.在Player窗口,单击Playforward按下这个按钮来播放动画。6.下图分别是6/7/8秒时刻的压力分布云图 来源:CFD饭圈

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈