我来让你极度自信:
算法课紧跟我的思路,编程课精神紧绷不放松。5天之后,你一定会极度自信,过度膨胀,恨不得手撕JCP的PDE,晚上不睡觉也要写个求解器出来!
杭州第12届CFD课开始报名
针对OpenFOAM零基础,加速你的CFD学习进度,但是需要进行预习;
重算法、轻应用;
激发你一下学习CFD的兴趣,CFD不是鼠标点点点;
第12届OKS课程信息 |
|
---|---|
日期 |
24年3月25日至29日,周一至周五,不需早起、择情压堂 |
地点 |
杭州 |
内容 |
30%CFD算法、30%OpenFOAM应用、40%OpenFOAM编程 |
收费 |
8000元/人(含发票),可对公 |
折扣 |
参考报名表。最低至7000元/人 |
预习 |
请务必预习无痛苦NS方程笔记的1、2、3章 |
发票 |
可开培训费、会议费、国际交流会议费、测试费、租赁费、材料费等 |
报名截止日期为24年3月8日,可以先提交报名表,在截止日期之前缴费。 在报名之前,大家可以看一下课程买家秀1,课程买家秀2。
请点击下载报名表,发送至我助理邮箱 lilly@dyfluid.com 。然后我助理会协助你走流程。在课程报名后,我会跟大家直接邮件联系通知各种培训事宜。
谁适合参加
你们用CFD,嗷嗷嗷一顿操作,是跑起来了。到了写文章分析结果阶段,自己问自己,有没有感觉乏力?到深一点需要从理论做解释的时候,还是懵逼的状态?CFD高端局绝对需要开发算法或者编程,不会算法跟编程绝对混不了CFD高端场?那么我这个课比较适合:
已经觉悟了,已经对CFD算法感兴趣了的人;
自学了一年,还是很懵,下不去手,写代码不自信的人;
用了多年商软,感觉还是很懵逼,不知道后面咋回事,比较好奇的人;
初学OpenFOAM的人,有偏向方程/代码研究的人;
相关问题与内容
Tip
我的CFD课程中的算法课以及编程课每年都有不同点。我的CFD课程年年出新。24年3月份的课程主要玩哪些新奇的玩意,将会在本节持续更新。
Question:传输方程有守恒形式以及非守恒形式,下面的方程被认为是一种守恒形式的方程:
请将上述方程改写为非守恒形式。重要的是,什么是通量函数?为什么非守恒形式的方程不具备通量函数?上述守恒方程的通量函数是什么?
Question:我们说现在CFD求解的是NS方程。那么NS方程都说要遵守连续性假设。请结合网格上速度的定义,从数学的角度或者从物理现象的角度来解释为什么NS方程要满足连续性?同样从数学的角度解释在真空情况下,为什么我们不能使用NS方程?对于真空情况,需要使用什么样的方程?
Question:Smagorinsky模型在一些文献里面的公式为
在OpenFOAM里面植入的为:
第一种方法不需要定义\(k_{sgs}\),那么如何定义\(k_{sgs}\)且如何在OpenFOAM中植入?
Question:在多相流以及涉及到多域耦合求解问题的情况下, 不同的场存在耦合。针对下述方程
在系数\(K\)趋向于很大的情况下,方程趋向于
进而导致迭代停止。在给出上面两个方程,你需要首先能一眼就看出来这两个方程干嘛用,为什么是耦合的,进而理解为什么会迭代停止,以及如何处理?
Question:在一些PDE方程中,比如下述多相kEpsilon方程:
其存在若干问题。1)为什么最后一项要除掉一个\(k\)同时乘上一个\(k\)?2)\( \frac{2}{3} \alpha (\nabla\cdot\bfU) k\)的作用是什么?如果\(\alpha=0\),会出现方程奇异问题,怎么处理?
Question:都说LES需要滤波,但是怎么没有见LES植入滤波函数,滤波函数在哪里?在哪里?
持续更新中
编程课框架
在OpenFOAM中植入Wray-Agarwal湍流模型。相关模型请参考NASA的链接。需要采用2种方式进行植入,一种为采用库的形式植入,一种为在求解器层面植入。
在单相NS方程基础上,附加相传输方程:
(7)\[\begin{equation} \frac{\p \alpha}{\p t}+\nabla\cdot(\alpha\bfU)=0 \end{equation}\](8)\[\begin{equation} \frac{\partial \alpha\mathbf{U}}{\partial t}+\nabla \cdot (\alpha\mathbf{U}\mathbf{U}) -\nabla \cdot(\alpha\nu \nabla \mathbf{U}) =-\alpha\nabla \frac{p}{\rho} \end{equation}\]你应该推导附加相分数的速度压力耦合求解算法,并在OpenFOAM中植入进去。
植入这个文章中的非牛顿流体模型,这个模型可以很好的处理形变率趋向于0的时候表观粘度趋向于无穷大的数值问题;Ref:
Non-Newtonian fluids with a yield stress
SpalartAllmaras模型通过将方程中的壁面距离变更为滤波尺度\(\Delta\)相关函数可以实现DES模拟。那么针对另外一个RANS模型如kEpsilon湍流模型,请尝试从湍流尺度的角度将kEpsilon湍流模型与LES模型相结合,实现kEpsilon-DES模拟。请将该模型在OpenFOAM中进行植入并验证。
求解下述方程:
\[ \nabla\cdot\left(\frac{K}{\mu}(\nabla p -\rho\bfg) \right)=0 \]\[ \bfU=\frac{K}{\mu}(\nabla p -\rho\bfg) \]在无重力的情况下变为:
\[ \nabla\cdot\left(\frac{K}{\mu}\nabla p \right)=0 \]\[ \bfU=\frac{K}{\mu}\nabla p \]上述方程非常简单,先从无重力方程开始植入,然后把重力的影响植入进去。编程是一方面,算法也需要思考一下。这个重力\(\bfg\)在散度符号内,所以是植入\(\nabla\cdot\rho\bfg\)就可以了么?\(\nabla\cdot\rho\bfg\)是个什么项?好像没见过这么植入的。那要怎么植入?另外重力对不可压缩流体的影响,如何在结果上体现?
另外就是压力方程边界条件的问题,如果给定零法向梯度,会出现不相容问题,如何处理?
植入密度基速度压力耦合算法,计算超音速流动:
\[ \frac{\p\rho}{\p t}+\nabla\cdot\rho\bfU=0 \]\[ \frac{\p\rho\bfU}{\p t}+\nabla \cdot (\rho\mathbf{U} \mathbf{U})=-\nabla p \]\[ \frac{\p \rho e}{\p t}+\nabla\cdot(\rho \bfU e) -\nabla\cdot(\alpha_{eff}\nabla e)+\nabla\cdot(p\bfU) =0 \]问题是上述方程应该显性离散还是隐性离散?求解守恒变量还是原始变量?用什么离散格式?
通过投影法对下述方程进行离散,并计算基本的流动;
\[ \nabla\cdot\bfU=0 \]\[ \frac{\partial \mathbf{U}}{\partial t}+\nabla \cdot (\mathbf{U}\mathbf{U})=-\nabla \frac{p}{\rho}+\nabla \cdot(\nu \nabla \mathbf{U}) \]植入一个多计算域求解器,一部分求解海绵多孔区域,一部分求解正常的流体流动。流固耦合也是类似思想。多计算域求解器全部都是这个思路,植入的算法思路框架如下:
如果求解器不做多计算域划分。那么就属于一种Zonal模型,类似DES模型,在边界层处求解RANS模型,在核心区求解LES模型。
将OpenFOAM老版本的求解器,移植到OpenFOAM-10;这是一场常规操作,在编译的过程中会出现几十个error,都需要一步一步处理掉。这样大家在网上找到一些老的求解器,可以移植到新版的OpenFOAM上。
写一个可以模拟泥沙两相流的求解器,这是一个两相流求解器,参考的文章为Nasr-Azadani et al, “TURBINS: an immersed boundary, Navier–Stokes code for the simulation of gravity and turbidity currents interacting with complex topographies.” Computers & Fluids。采用该求解器可以计算下图的不稳定性。大家在课堂上要自己1)搞清楚方程,2)植入算法,3)写代码,4)做算例出结果
不过写出来的求解器算出来的结果大概率是这样的,看起来震荡了,咋办?这可不是简单更改离散格式就能处理掉的。
经过数值处理后的结果应该是这样的,这个要在课堂上一起debug:
持续更新中
算法课框架
这些年来,蜗没有提出太多算法,但是蜗植入了很多算法。一些算法很流弊,也发了顶刊。一些算法不流弊,但是适合练手。考虑到大家的水平,我会挑选一些易于接受的算法给大家讲讲。另一方面,我还会找一些算法类文章,介绍介绍这一类文章的研究思路。不管是以后去业界做算法开发,还是在学校做科研。能看懂算法并且会自己编程,是核心硬实力。
Tip
课程关键词有一些可能会觉得跟自己没什么关系,但是未必!在面上做广的拓展,才能融会贯通,做到大而统一!比如,如果我说NS方程就是矩方法,你们是不是很惊奇?
方程部分:
为什么\(\boldsymbol{\tau}\)在模化的时候要处理成偏应力的形式?看懂各种CFD方程,看懂dev(twoSymm(gradU)),dev2(tau),symm(tau),看懂形变率,剪切应力,Boussinesq近似,交叉扩散项,相变流反应流的数学体现等;
拆解NS方程,拆解Horgue2014算法中的控制方程,拆解Carrillo2019算法中的控制方程;
VOF方法、Front-tracking、多流体模型、介尺度欧拉拉格朗日、EMMS;
不可压缩部分:
从NS方程手推RANS方程,手推隐性滤波LES方程,手推动态Smagorinsky方程;
从\(k-\varepsilon\)模型推导至\(k-\omega\)模型,零方程、一方程、两方程模型,低雷诺数模型;
LES的滤波函数在哪里?LES中\(k_{sgs}\)与RANS中的\(k\)的区别?如何进行DNS计算?LES中的\(\boldsymbol{\tau}_{sgs}\)与RANS中的\(\boldsymbol{\tau}_{t}\)的区别是?
可压缩部分:
NS方程失效,稀薄气体、CE展开、非平衡流、颗粒轨迹交叉、n阶矩与欧拉方程、气体玻尔兹曼分布、5矩模型、10矩模型;
积分方程离散,为什么解是exact的?limiter,TVD,Minmod,对流项为什么要指定梯度离散格式?变量有界性;
Godunov方法,REA方法,高分辨率格式,可压缩黎曼扇,双曲系统;
离散部分:
一重、二重、三重积分,通量的积分形式,连续性方程|动量方程的积分形式以及物理意义,散度定律,源项的存在?为什么有压力项?为什么求解守恒变量?
一阶、二阶导数,有限差分、有限体积,DNS直接模拟,时间项、对流项、扩散性、源项离散,常微分ODE、刚性反应流,无条件不稳定?局部Lax以及全局Lax方法;
skewness与非正交网格,面法向梯度非正交修正;
稀疏线性系统,Partition方法与并行加速,renumberMesh,高斯赛德尔,正向Sweep以及对称Sweep,场松弛与方程松弛,PBiCG以及PBiCGStab,流动方向对收敛的影响?谱半径;
算法部分:
手推不可压缩投影法;压力泊松方程、压力修正方程;
手推不可压缩SIMPLE算法;手推可压缩密度基方法;
如何处理附加的体积力?如何离散VOF方程?各种模型的速度压力离散框架统一性?
OpenFOAM部分:
边界条件;初始条件;SIMPLE、PISO、PIMPLE;可压缩流算法,浮力驱动流,多相流算法,动网格算法;
fvScheme详解、fvSolution详解;
持续更新中