interFoam-UEqn.H/pEqn.H

压力方程 “pEqn.H”

{volScalarField rAU("rAU", 1.0/UEqn.A());      // rAU:在速度方程的的最后一个解中,矩阵对角项系数的倒数surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));       //转换为表面标量场volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));      //定义HbyAsurfaceScalarField phiHbyA("phiHbyA",fvc::flux(HbyA)+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi));         //将上述体积矢量场转化为面心标量场(参考有限体积法),并保证速度通量的全局守恒,以确保压力方程有解MRF.makeRelative(phiHbyA);    //将绝对通量转化为相对于面的通量(参考动网格技术)adjustPhi(phiHbyA, U, p_rgh);        //对方程进行修正,保证速度边界条件守恒surfaceScalarField phig     ((mixture.surfaceTensionForce()- ghf*fvc::snGrad(rho))*rAUf*mesh.magSf());phiHbyA += phig;              //更新面通量场constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);       // Update the pressure BCs to ensure flux consistencywhile (pimple.correctNonOrthogonal())          // 非正交压力修正循环 ,根据fvSolution字典文件中设定值n,求解以下方程n-1次 {fvScalarMatrix p_rghEqn(fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA));//只有求解区域所有的压力边界都为第二类边界条件时,上面的值才会用到。//如果有第一类边界条件,压力参考值为该点处边界值。//对于不可压缩流动压力值为相对值,上面的参考值的大小对结果无影响,除非存在边界压力。p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));		//通过查询system/fvSolution下的PIMPLE更新压力参考网格并重新设定参考值if (pimple.finalNonOrthogonalIter())    //若外迭代次数为n,则压力场的松弛仅在n-1次外循环前进行;若外迭代次数为1,这里使用piso算法,压力不进行亚松驰{phi = phiHbyA - p_rghEqn.flux();           //在最后一次非正交内循环中,使用最新压力校正通量p_rgh.relax();U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);       //校正速度,满足边界条件(主要针对第二类边界条件)U.correctBoundaryConditions();fvOptions.correct(U);}}#include "continuityErrs.H"         //计算连续性方程误差p == p_rgh + rho*gh;       // 计算总压=动压+静压if (p_rgh.needReference()){p += dimensionedScalar("p",p.dimensions(),pRefValue - getRefCellValue(p, pRefCell));   p_rgh = p - rho*gh;       //更新动压}
}

p.relax(); || UEqn().relax();
场松弛会改变压力的值,方程松弛会改变压力的变化量。

在这里插入图片描述

在这里插入图片描述

UEqn.H

MRF.correctBoundaryVelocity(U);   //MRF:基于旋转坐标系下的N-S方程修正边界速度,不需要可忽略
fvVectorMatrix UEqn
(fvm::ddt(rho, U) + fvm::div(rhoPhi, U)+ MRF.DDt(rho, U)+ turbulence->divDevRhoReff(rho, U)       //该项包含两部分:1.分子扩散项 2.雷诺应力的偏分量(dev)的散度。雷诺应力主分量(hyd)的散度归结到了压力项中,这是大多数雷诺时均和大涡模型实现的一贯做法。因此压力比层流模型中多了一项,那就是雷诺应力的主分量,通常被称为湍动压力(动压:p_rgh)                   ==fvOptions(rho, U)     //源项或约束,不需要可忽略
);
UEqn.relax();       //松弛迭代,加速收敛
fvOptions.constrain(UEqn);  //更正边界条件,维持通量守恒
//momentumPredictor:动量预测求解开关,对多相流以及低雷诺数一般设置为off;如果进行速度预测(on),则求解完整的动量方程得到预测速度;如果不进行速度预测(off),则预测速度直接取当前已知时间步的速度
if (pimple.momentumPredictor())
{solve(UEqn==fvc::reconstruct   //显示重构网格中心面(光滑了整个分布情况),转换为体中心通量((mixture.surfaceTensionForce()     //表面张力项- ghf*fvc::snGrad(rho)              //体积力项(垂直梯度)- fvc::snGrad(p_rgh)                // `p_rgh:动压`;压力梯度项) * mesh.magSf()                      //网格面矢量绝对值      ));fvOptions.correct(U);   保证动量守恒
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

36+程序员3站考研:国家线轻松拿捏

基本情况是:年龄较大,比36还大,本科是自考,十几年来一直从事编程相关工作。 第一年考数学太慌了,选择题全蒙的,结果填空题一道没算对,大题全不会,所以尽管总分280多但是数学没过国家…

java Lambda表达式如何支持静态方法引用

java Lambda表达式如何支持静态方法引用 在Java中,Lambda表达式支持静态方法引用,允许你直接使用静态方法作为Lambda表达式的实现。静态方法引用使用类名和方法名来引用静态方法。 下面是一个简单的示例,展示了如何在Lambda表达式中使用静态…

Chrome下载B站视频字幕的插件

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Netty源码剖析——bind()绑定端口的分析-上(三十)

1.服务器就是在这个bind()里启动完成的 2.Bind()代码,追踪到创建了一个端口对象,并做了一些空判断,核心代码 doBind public ChannelFuture bind(SocketAddress localAddress){ validate(); if(localAddressnull){ throw new NullPointerExc…

软考高级:敏捷方法概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

LED基础知识分享(一)

大家好,我是砖一。 今天给大家分享一下,LED的基础知识,有照明行业,或者对LED感兴趣的朋友,可以学习一下,希望对你有用~ 一,什么是LED (Light Emitting Diode)? 1,LED是一种发出某…

AssetBundle打包与加载

官方文档 参照视频 1.AssetBundle打包 1.1设置资源的命名和后缀 命名只支持小写 1.2创建Editor文件夹,在里面创建编辑器打包AssetBundle的脚本 using UnityEditor; using System.IO;public class CreateAssetBundles {[MenuItem("Assets/Build AssetBun…

【机器学习】样本、特征、标签:构建智能模型的三大基石

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

【python】(9)迭代与生成器

1. 迭代的概念与原理 迭代是一种重要的编程模式,它允许我们按顺序访问容器中的每个元素,而不必事先知道容器的大小。在 Python 中,几乎所有的容器对象都可以进行迭代,包括列表、元组、字典、集合等。迭代的实现依赖于两个核心概念:可迭代对象(Iterable)和迭代器(Itera…

【dart】常用数据类型

Number num 可以声明是整数,也可以是浮点数int 只能声明整数double 只能声明浮点数 main() {int cont 6;// cont 6.3;double core 90;print(core); // 90.0num age 18;num sum 20.9; }常用api main() {int cont 6;// cont 6.3;double core 90;print(core); // 90.0n…

C++(3/12)

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和 #include <iostream>using name…

C++ std::list的merge()使用与分析

看到《C标准库第2版》对list::merge()的相关介绍&#xff0c;令我有点迷糊&#xff0c;特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起&#xff0c;函数有2个版本&#xff1a;…

蓝桥杯(3.12)

1064: 【模板】埃氏筛法 import java.util.Scanner;public class Main{static final int N 2000010;static boolean[] vis new boolean[N];public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();vis[0] true;vis[1] true;for…

深入浅出FISCO BCOS:区块链底层平台

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 我前面有补充相关的区块链的知识 如果没有了解的话 可能部分概念或名词会不懂哦 建议先了解一波再来看~http://t.c…

算法-二分与差分-503.借教室

题目 思路 代码不超时&#xff1a;限制在10的8次方以内&#xff1b;线段树能处理的数据上限是10^5二分&#xff1a;具有二段性&#xff0c;第一个订单不满足&#xff0c;后面的订单也不用去考虑差分&#xff08;前缀和的逆运算&#xff09;&#xff1a;题目的要求是将一个区间…

Shell学习 - 2.22 Shell数学计算(算术运算,加减乘除运算)

如果要执行算术运算&#xff08;数学计算&#xff09;&#xff0c;就离不开各种运算符号&#xff0c;和其他编程语言类似&#xff0c;Shell 也有很多算术运算符&#xff0c;下面就给大家介绍一下常见的 Shell 算术运算符&#xff0c;如下表所示。 Shell 算术运算符一览表 算术运…

【leetcode热题】反转字符串中的单词

给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能会存在前导空格、尾随…

VulnHub - DarkHole

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog DarkHole 靶机下载地址&#xff1a;DarkHole: 1 ~ VulnHub 0x01 信息收集 Nmap扫描目标主机&#xf…

深度学习——第10章 优化神经网络:如何防止过拟合(DNN)

第10章 优化神经网络:如何防止过拟合(DNN) 目录 10.1 什么是过拟合 10.2 L1、L2正则化 10.3 L2正则化的物理解释 10.4 Dropout正则化 10.5 其它正则化技巧 10.6 总结 上一课,我们一步步搭建了一个深层神经网络来实现图片的分类。结果显示,随着网络层数加深,隐藏层数…

C语言自学笔记3-----C语言运算符及优先级

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 下表显示了 C 语言支持的所有算术运算符。 假设变量 A 的…