查看: 2917|回复: 17
收起左侧

[其他] 以CFD-OHMUGA为例子,想做些船舶水动力软件开发和应用的综述介绍,以和大家交换心得。但由于是新手,发帖子权力受到限制,只好边试边做

[复制链接]
发表于 2021-3-24 10:56 | 显示全部楼层 |阅读模式 来自: 加拿大
大家不妨先看个网站:ohmuga.com,首页的movie对CFD-OHMUGA 作了综述介绍。

回复

使用道具 举报

龙船学院
 楼主| 发表于 2021-3-24 23:41 | 显示全部楼层 来自: 加拿大
水动力软件的的发展日新月异,更新很快。本人在这里做些综述介绍,不求全面概括,但求介绍基本的知识,希望抛砖引玉。

1.        应用领域.
先举例说明一下水动力(也有考虑包括空气的作用)计算软件的一些应用领域,比如:1)船舶:阻力和动力(包括螺旋桨),操纵性,耐波性,自航,动力定位等。
2)海洋结构体(固定或漂浮体): 结构体和波浪的相互作用。
3)水下航行体。
4)其他海洋流体力学问题:比如海洋环境和海洋学(波浪,波的破碎,波浪和风的相互作用),波浪能转换器,波浪对结构的撞击, green water,slashing,sloshing,空化,撇油器,VIV等等。

2.        解决问题的方法.
1)        理论分析(解析解)。优点:精确直观。困难:复杂几何形状和复杂控制方程的问题不好求解,往往需要对几何形状及控制方程进行简化处理。
2)        实验测量。主要优点:为研究和设计提供数据,为软件提供验证数据。主要困难:如何更好的降低成本,对某些周期长的实验则需要设法缩短时间。
3)        数值模拟(往往是CFD(计算流体力学)软件计算水动力)。主要优点:成本低,速度快,数据完备。

3.        船舶水动力计算软件(数值模拟)大概分类(不考虑结构变形的流固作用问题的计算)
1)        势流方法。缺点:忽略了流体的粘性,有时候比如求船的阻力往往误差较大,另外处理有拓扑形状复杂变化的问题比如波的破碎也有困难。优点:比如panel方法,可以把体积问题转化为曲面的问题,大大加快了计算速度。对势流方法,本人没有做过太多的研究课题,以后忽略不表。
2)        粘性流方法(以后下文的CFD在这里就专指这种方法)。
(1)        自由面问题(free surface flow:忽略空气效应的单相流),或流体运动界面问题(moving interface flow: 水和空气的耦合的两项流问题)。船舶水动力软件一般就是这类问题。
(a)Surface track (界面追踪法,Lagrangian method):Front Tracking , Particle Based等等。
(b)Surface capture (界面捕获法,Eulerian method)。
(c) Hybrid Lagrangian and Eulerian method. (在这不展开讲)。
(2)        非自由面或流体运动界面的问题。比如一般的螺旋桨问题的计算。
(3)        其他的涉及复杂物理现象的问题比如空化的求解方法在此省略不表。
4.        自由面或流体运动界面问题的Surface capture方法(只是方法举例,不做全面介绍)
1)        结构网格 (精度高)。
(1)直角坐标的方法。比如:Sussman (VOF- Level set), USA, Hu (CIP,semi-Lagrangian scheme),  Japan, CFDSHIP-Iowa V6 (VOF-Level set) USA,等等。
(2)曲线坐标的方法(适体网格)。比如:Cura Hochbaum, Vogt (Level set), German. CFDSHIP-Iowa V4, V4.5 (非正交曲线网格,Level Set方法) USA. INSEAN (Level Set, single-phase), Italy. TRANSOM (DRDC), Canada. CFDSHIP-Iowa V6 (VOF-Level Set,也包含曲线坐标), USA.
2)        非结构网格的方法 (复杂形状)
(1)        Level set 方法(非守恒界面方法,光滑): SURF (artificial compressible) , Japan. U2NCLE (artificial compressible), USA. CFD-OHMUGA(主要采用非结构网格的数值方法,也可兼容结构网格的一些数值方法以取得好的离散精度,narrow band Level Set, 并行化的fast marching 作为其中一选项,开发了一种动态Overset 网格技术), Canada. 等等。
(2)        VOF 方法(守恒界面方法,商业软件一般为Algebra VOF方法, compressive method)。比如:FLUENT, CFX,STAR-CCM+ (HRIC 方法处理界面),OPENFOAM (Multi-methods, hybrid, 各种衍生的版本) , European. U2NCLE (two-phase flow, density diffusion), USA. ISIS-CFD (BICS, BRICS).  EMN, France. 等等,还有很多。
(3)        CLSVOF (Coupled Level Set and VOF).
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-25 19:36 | 显示全部楼层 来自: 加拿大
接下来,我们举个例子来设定一个水动力软件需要做到的目标和功能。
从海洋和船舶研究和设计领域的应用角度,希望能够以软件为工具帮助计算船舶的阻力和动力,操纵性,耐波性,自航,船型设计优化,以及海洋结构体和波浪的相互作用。以上目标功能也可按照计算流体力学的方式进行描述:流体(或包括波浪)和具有复杂形状及相互独立运动的多个物体(浮体或潜体)及其独立运动的多个附件(螺旋桨,舵等控制器),在流固相互作用下的流体流动,流体自由面运动,各物体所受力,力矩,以及6个自由度(包括部分约束)的运动(姿态和轨迹)及其控制(控制器相对母体的3个旋转运动(包括部分约束)自由度)的全过程的耦合计算。另外计算方法本身希望实现快速,稳定,和精确的目标.

为了实现以上目标,需要对软件的基本框架进行设计。下面以OHMUGA 软件系列为例来进行介绍。(1)以CFD-OHMUGA(流体力学求解器)为核心进行水动力的计算。CFD-OHMUGA主要采用了流体力学的控制方程和刚体动力学方程(这里不考虑结构变形)建立模型,通过采用和开发世界前沿的数值方法,计算刚体和流体的相互作用问题。(2)Overset-OHMUGA(动态overset 网格求解器)主要是解决因为多个物体的相对运动(比如船体,螺旋桨,舵有不同的相对运动)造成的计算困难,也可用于局部加密网格,以及处理复杂的物体形状(比如带附件)的问题。Overset-OHMUGA往往和CFD-OHMUGA耦合在一起处理复杂的问题。(3)Optimization-OHMUGA solver(船型优化求解器)则采用CFD-OHMUGA的计算结果,对船型进行优化。下面的总体策略图(见这里的附件图片)可以帮助理解以上的问题(不知新手是否有资格贴图?)。

总体策略图

总体策略图
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-25 22:39 | 显示全部楼层 来自: 加拿大
补充一点,计算船舶水动力在计算方法上(包括计算精度,稳定性,和速度)往往要面对一些特殊的挑战,比如:

1)高Reynolds数湍流问题(Reynolds : 1.0E+6~1.0E+8 (模型船), 1.0E+8~1.0E+10 (实船))。我们知道在保证计算精度的前提下,尽量要减少网格数,以便加快计算的速度。但在中等网格数的前提下,靠近边界层的最大网格比(网格单元中最大边长和最短变长的比率)往往要达到1:10000, 甚至更大。这对计算的稳定性和精度带来很大的困难,需要选择或开发特殊的数值方法来克服困难。
2)复杂的船型形状。有的需要考虑船体的复杂的附件,比如舭龙骨,尾翼等。这对造出高质量的网格的带来大的困难。
3)水和空气运动界面的复杂的拓扑形状变化的多尺度的问题。比如包括各种尺度的波,波的破碎等。
4)水和空气大的密度比和表面张力给计算带来奇性,保持水和空气的物性阶跃特性(sharp interface)对计算方法提出高的要求。
5)船体和海洋漂浮体复杂的6个自由度的运动,多船体的计算,以及浮体位置和运动姿态的控制。
6)复杂物理现象等。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 21:07 | 显示全部楼层 来自: 加拿大
计算流体力学的一些基本知识和需要注意的几点。

计算流体力学(Computational Fluid Dynamics: CFD)是流体力学的分支学科,是一个介于数学、流体力学和计算机之间的交叉学科,主要研究内容是通过计算机和数值方法来求解流体力学的控制方程,对流体力学问题进行数值模拟和分析。
通常的CFD包括3部分:(1)前处理(生成网格,输入计算条件),(2)求解器,(3)后处理(计算结果数据处理)。其中求解器部分是核心,主要包括不同物质界面或并行要求的DD(Domain Decomposition)方法的选用和开发,网格的分割和并行化处理,并行方法的选用,数据压缩存储和高效交换的结构设计,精确数学模型的选用,稳定精确的数值方法的选择和开发,以及并行化的快速稳定和精确的线性求解器的选用和开发,等等。
       
下面对一些基础的问题稍微展开来进行解释。
1)        数学模型主要是N-S方程,湍流模型,以及其他物理现象涉及到的数学方程。这里需要指出的是,精确模拟湍流总是一个挑战。湍流长度和时间尺度广阔的分布范围和湍流现象的复杂性,使得要解析出所有湍流尺度问题(DNS方法)在计算上显得非常昂贵。往往是越多的尺度被解析(越少尺度被模拟),计算越耗时(也需要更好的计算机),但精度会越高。RANS(对所有尺寸进行了模型化), LES(大尺度涡直接可以解析出来,只对网格尺寸以下的尺度进行模型化), DNS(没有模型化,直接全部解析)方法是计算越来越耗时,但精度越来越高的趋势。在这种情况下,人们可以准对不同模拟问题的具体要求在计算耗时和模型的精度方面权衡考虑并作出选择。很多工程问题采用RANS模型基本可以取得好的计算结果。如果想对涡结构有更好的解析,一般采用LES模型,但LES在近固体壁面处还是很耗时,RANS和LES优点互补的混合模型DES模型则是一个好的选择,在近壁面处采用RANS,远处的流体分离区则采用LES模型。DNS方法在工程现实模拟中则一般不会考虑和应用。
另外还可以采用壁面函数的方法,在近壁区采用半经验公式,并使得第一个网格点安排在边界层的粘性底层外,离壁面更远的对数层。好处: 1)对高Reynolds数的一些湍流模型,在边界层近壁处的低Reynolds数区域精度上得到一定的改善,2)一定程度上可以减少边界层中的网格数,节省计算资源,另外邻近壁面的第一个网格点到壁面的距离数值不至于太小(比如无量纲值1.0E-7,可能会小于网格软件中判别两几何点是否重合的公差),并可以减小近壁处的网格比,这对比如特别高Reynolds数的原船问题的模拟计算很有帮助。

2)        数值方法的一些基本问题
(1)相容性。
    相容性是指当步长趋近于零时,离散格式的截断误差趋向于零,或者说离散格式(离散方程)趋近于微分方程。
(2)稳定性。
稳定性是指在数值求解过程中,引入的误差不会产生实质性的增长,不会导致离散方程解的失真。比如迭代求解不会发散,对于非稳态问题,解是有界的。主要用Fourier方法(或称Von Neumann方法)进行离散方程的稳定性分析。
(3)收敛性。
收敛性是指当网格步长趋近于零的时候,离散方程的数值解趋近于微分方程的真实解。
(4)守恒性。
流体力学的基本方程都是描述流体运动中物理量守恒律的数学方程组,采用守恒型离散格式有利于数值求解过程中保持保持物理量的守恒特性。在微分方程中如果所有导数系数仅为自变量的函数则称方程为弱守恒型,如果所有导数系数仅为常数则称方程为强守恒型。比如散度型方程就是守恒型方程。如果离散格式是相容的,且在求解区域内在任意网格点数和网格尺度都精确的满足离散型散度形式,则称离散方程是守恒的。守恒型的离散格式,必须是在局部和全局都满足守恒定律,比如从守恒型积分型方程为出发点的有限体积法是守恒型的离散方法。值得指出的是在大多数情况下,由于不守恒而导致的误差仅在相对粗糙的网格上才可观,但很难定量估计。
(5)有界性。
有界性是指数值解应该在适当的范围内(例如湍流的TKE为非负;浓度在0和1之间),但实际中有时很难保证,尤其是对于高阶精度的离散格式。
(6)现实性。
由于太复杂而无法直接处理的现象比如湍流,在模型的设计应该保证物理上有现实的解。
(7)精度。
数值解的精度受到各种误差的影响,主要有数学模型的误差,差分方程的离散误差,计算的舍入误差。 要注意根据实际问题选择不同的湍流模型。对于差分方程的离散误差,目前在工程应用上大部分问题,一般在时间和空间上保持二阶精度,就可以得到可接受的结算结果。另外在计算语言上要尽量采用高精度的数据储存方式(比如双精度数据类型)以减少舍入误差。


回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 21:30 | 显示全部楼层 来自: 加拿大
口误更正以下,数值解的精度受到各种误差的影响,主要有数学模型的误差,离散方程的离散误差,计算的舍入误差。注意差分方程是离散方程的其中一种。把“差分方程”改成“离散方程”。后面提到的“差分方程的离散误差”也改为“离散方程的离散误差”。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 06:51 | 显示全部楼层 来自: 加拿大
上面这些都是原创,有借鉴别的资料,但不是COPY来的,但是这里被关注的比较少。我在考虑后面的部分发表在别的网站,再在这里公布网站链接,或在这里发表简短概括版的内容。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 07:57 | 显示全部楼层 来自: 加拿大
上面写的都是原创,有借鉴资料的,但没有直接COPY的。但在这里看来被关注很少, 接下来的介绍或许要挂到别的网站写更合适。 或许会在这里介绍转接,或许会继续写些简短概要的介绍,看情况而定。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 18:22 | 显示全部楼层 来自: 加拿大
这里所有的人都和你的想法一样? cain 119
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 19:41 | 显示全部楼层 来自: 加拿大
已经看到被人关注,谢谢,这是鼓励,所以接着讲。这两天讲的是比较普通的一般的知识(大家了解一些就可以了,不必花太多的时间),只是铺垫,以后逐渐的会转到船舶水动力计算的专题上来的,

2) 偏微分方程的一些数值解法
(1)        有限差分法(FDM: Finite Difference Method)
有限差分法(FDM)是一类用有限差分逼近微分方程的数值方法。它的基本思想是将定义域进行网格剖分,然后在网格点上,将微商换成差商,从而把原问题离散化为差分格式,进而求出数值解。这种方法经常会和结构网格的方法相结合(比如CFDSHIP-Iowa V4.5),可以方便的对流项的离散采用高精度的形式。
(2)        有限体积法(FVM: Finite Volume Method)
有限体积法以积分形式的守恒方程为出发点而不是微分方程,着重从物理观点来构造离散方程 ,每一个离散方程都是有限大小体积上某种物理量守恒的表示式 ,保证离散方程具有守恒特性。有限体积法很容易在非结构化网格中应用(比如CFD-OHMUGA)。 目前这种方法被很多计算流体力学的商业软件大量的采用。
(3)        有限元法(FEM: Finite Element Method)
有限元法将求解区域细分为更小的数量有限的单元,通过变分法或加权余量法将微分方程离散。采用分段逼近的方法,先利用单元内节点构造的插值函数对每一单元进行离散处理,再组装全局的方程,然后对所有节点变量的线性方程组求解。由于传统的有限元法往往对各变量采用相同的插值方法,而流体的对流稳定格式则需要上风格式,需要特殊处理,这可能是很多商业软件没有采用有限元法来计算流体力学的原因之一。目前有很多改进的有限元方法能够处理这种对流的上风格式。比如Streamline-upwind/Petrov-Galerkin 方法。
(4)边界元法(BEM: Boundary Element Method)
    边界元法将微分方程的边值问题化为边界的积分问题,并吸收了有限元的一些离散技术。与有限元需要处理整个体积区域不同,边界元只要处理边界处的曲面即可,问题降低了一维,使得单元数减少,计算速度加快,比如对求解势流问题有一定的优势。但边界元法往往适用于简单的方程,边界元法中涉及的奇异积分需要特别处理,而且产生的方程系数是满矩阵(有限差分,有限体积,和有限元都是稀疏矩阵),计算速度也受到一定的拖累。
(5)谱方法 (SM: Spectral Methods)
谱方法是把解近似地展开成光滑函数(一般是正交多项式)的有限级数展开式,再根据此展开式和原方程,求出展开式系数的方程组。与有限元的分片局部近似不同,谱方法的这种解的近似是对整个计算区域的近似。此方法精度高,收敛速度快。谱方法不宜求解复杂计算区域和边界条件的问题,对于强梯度或间断问题(比如激波),误差则较大。
(6)格子玻尔兹曼方法(LBM: Lattice Boltzmann Method)
格子玻尔兹曼方法是一种基于介观(mesoscopic)模拟尺度的方法。该方法相比于其他传统CFD计算方法,具有介于微观分子动力学模型和宏观连续模型的介观模型特点,因此具备流体相互作用描述简单、易于复杂边界条件,易于处理多相流和多孔介质等问题,易于并行计算、程序易于实施等优势。但需要分配很多内存来储存分布函数,对计算稳态问题效率不高,处理高马赫数可压缩流有困难。
(7)无网格方法(MFM: Meshfree Methods)
无网格方法是在数值计算中不需要生成网格,而是按照一些任意分布的坐标点构造插值函数离散控制方程,可以方便地模拟各种复杂形状的流场和大变形的问题。但无网格方法需要继续为减少计算量,提高计算速度而努力。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 20:12 | 显示全部楼层 来自: 加拿大
注意上面显示乱码的地方,应该为: 有限差分法(FDM: Finite Difference Method)。另外,对于偏微分方程的一些数值解法的某些定义,有的直接借鉴参考资料的说法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-6 09:57 | 显示全部楼层 来自: 加拿大
有关CFD的基础知识部分,已经在科学网的博客中发表,链接地址为:
blog.sciencenet.cn/blog-3472103-1280473.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-11 10:46 | 显示全部楼层 来自: 加拿大
第二篇博文也发表在科学网的博客中,链接地址为:
blog.sciencenet.cn/blog-3472103-1281347.html

题目为: 船舶水动力数值模拟方法的一些综述介绍,第二篇:方法综述并以CFD-OHMUGA为例子对方法和软件功能进行更为具体的介绍
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-18 06:21 | 显示全部楼层 来自: 加拿大
动画: ohmuga.com/movies/models_methods.mp4,介绍了数学模型和数值方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-18 06:24 | 显示全部楼层 来自: 加拿大
ohmuga.com/Support.htm 最后面, 有数学模型和数值方法的介绍
回复 支持 反对

使用道具 举报

发表于 2021-4-25 15:12 | 显示全部楼层 来自: 中国广东广州
自己开发的cfd软件吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-26 00:47 | 显示全部楼层 来自: 加拿大
依托公司,以本人为主开发。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-8 04:28 | 显示全部楼层 来自: 加拿大
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-11-14 12:55

Powered by Imarine

Copyright © 2006, 龙船社区

快速回复 返回顶部 返回列表