位置: IT常识 - 正文

【OpenFOAM】-olaFlow-算例1- baseWaveFlume(openfoam中文教程)

编辑:rootadmin
【OpenFOAM】-olaFlow-算例1- baseWaveFlume

推荐整理分享【OpenFOAM】-olaFlow-算例1- baseWaveFlume(openfoam中文教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:openfoam中文教程,openfoam lbm,open foam,openfoam sample,openfoam sph,openfoam sample,openfoam-a little user-manual,openfoam reconstruct,内容如对您有帮助,希望把文章链接给更多的朋友!

算例路径: olaFlow\tutorials\baseWaveFlume 算例描述: 一个基础的二维波浪水槽 学习目标: olaFlow 求解器的造波、消波方法和算例设置 算例快照:

图1 波浪模拟结果

图2 算例网格

文件结构:

├── 0.org│ ├── U │ ├── alpha.water│ ├── alpha.water.org│ └── p_rgh├── cleanCase├── constant│ ├── dynamicMeshDict│ ├── g│ ├── transportProperties│ ├── turbulenceProperties│ └── waveDict --> 设置波浪要素├── runCase└── system ├── blockMeshDict ├── controlDict ├── decomposeParDict ├── fvSchemes ├── fvSolution └── setFieldsDict --> 设置水深

算例文件解析:

【0.org\U】

dimensions [0 1 -1 0 0 0 0]; // 量纲 m/sinternalField uniform (0 0 0); // 内部速度场 均一场 0 0 0boundaryField //边界场{ inlet // 造波边界 { type waveVelocity; // 波浪速度 waveDictName waveDict; // 读取constant\waveDict中的波浪要素 value uniform (0 0 0); //初值为 0 0 0 } outlet // 消波边界 { type waveAbsorption2DVelocity; // 使用了二维消波理论,olaFlow采用主动消波法 value uniform (0 0 0); } bottom // 底部边界为固壁边界,边界上速度为零 { type fixedValue; value uniform (0 0 0); } atmosphere // 大气边界,允许空气流出和流入 { type pressureInletOutletVelocity; value uniform (0 0 0); } frontAndBack // 前后面,empty指示模型为二维模型 { type empty; }}

【0.org\p_rgh】

// p_rgh = p - rgh,实际压力减去静水压力dimensions [1 -1 -2 0 0 0 0]; // M(1) L(-1) T(-2)internalField uniform 0;boundaryField{ frontAndBack { type empty; } outlet { type fixedFluxPressure; //将压力梯度设置为0,边界上的通量由速度边界条件指定 value uniform 0; } inlet { type fixedFluxPressure; value uniform 0; } bottom { type fixedFluxPressure; value uniform 0; } atmosphere { type totalPressure; //总压条件:流出 p = p0; 流入 p = p0 - 0.5|U|^2 U U; phi phi; rho rho; psi none; gamma 1; p0 uniform 0; value uniform 0; }}【OpenFOAM】-olaFlow-算例1- baseWaveFlume(openfoam中文教程)

【0.org\alpha.water.org】

// 设置流体体积分数dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField{ inlet { type waveAlpha; // 根据波浪条件设置 waveDictName waveDict; value uniform 0; } frontAndBack { type empty; } outlet { type zeroGradient; // 零梯度 } bottom { type zeroGradient; } atmosphere { type inletOutlet; // 当流体流出时,α的梯度为0;如果流入,α为0,100%的空气流入 inletValue uniform 0; value uniform 0; }}

【constant\dynamicMeshDict】

dynamicFvMesh staticFvMesh;

【constant\g】

dimensions [0 1 -2 0 0 0 0];value ( 0 0 -9.81 );

【constant\transportProperties】

phases (water air);water{ transportModel Newtonian; nu [0 2 -1 0 0 0 0] 1e-06; // 流体运动粘度 rho [1 -3 0 0 0 0 0] 1000; // 流体密度}air{ transportModel Newtonian; nu [0 2 -1 0 0 0 0] 1.48e-05; rho [1 -3 0 0 0 0 0] 1;}sigma [1 0 -2 0 0 0 0] 0.07; // 水和空气之间的表面张力参数

【constant\turbulenceProperties】

simulationType laminar; // 设置为层流模型

【constant\waveDict】

waveType regular; // 规则波waveTheory cnoidal; // 椭圆余弦波genAbs 1; // 考虑造波边界的消波性能 1/0absDir 0.0; // 造波边界的消波方向nPaddles 1; // 主动消波的Paddles数量设置waveHeight 0.10; // 波高wavePeriod 3; // 波周期waveDir 0.0; // 波向wavePhase 1.57079633; // 初始相位// Change both entries to true to re-read this dictionary upon restart.rereadAlpha false;rereadU false;

【system\blockMeshDict】

scale 1;vertices ( (0.0 -0.02 0.0) (10.0 -0.02 0.0) (10.0 -0.02 0.7) (0.0 -0.02 0.7) (0.0 0.0 0.0) (10.0 0.0 0.0) (10.0 0.0 0.7) (0.0 0.0 0.7));blocks ( hex (0 1 5 4 3 2 6 7) (500 1 70) simpleGrading (1 1 1));edges ();patches ( patch inlet // 造波边界 ( (0 4 7 3) ) patch outlet // 消波边界 ( (1 5 6 2) ) wall bottom // 水槽底部边界 ( (0 1 5 4) ) patch atmosphere // 大气边界 ( (3 2 6 7) ) empty frontAndBack // 水槽侧面边界 ( (0 1 2 3) (4 5 6 7) ));mergePatchPairs();

【system\controlDict】

application olaFlow; // olaFlow求解器startFrom latestTime;startTime 0;stopAt endTime;endTime 60;deltaT 0.001; // 计算时间步writeControl adjustableRunTime;writeInterval 0.05; // 写出时间步purgeWrite 0;writeFormat ascii;writePrecision 6;compression off; // 是否压缩格式写出,可节约硬盘空间, on/offtimeFormat general;timePrecision 6;runTimeModifiable yes;adjustTimeStep yes; // 采用自适应时间步,可能会加速计算,也可能造成时间步极小maxCo 0.5; // CFL条件的Courant数, 一般<1, 设置一个小值会使计算结果更精确,但也减小了时间步长,增加了计算成本maxAlphaCo 0.5; // 两相交界面上的最大Courant数maxDeltaT 0.025;

【system\decomposeParDict】

numberOfSubdomains 2; // 并行区域分解数目method scotch; // 区域分解方法...

【system\fvSchemes】

// 指定控制方程中各项的有限体积法的离散格式ddtSchemes // 指定时间离散格式{ default Euler; // Euler法,一阶精度,条件稳定} gradSchemes // 梯度项离散格式{ default Gauss linear; // 高斯定理,将网格中心的量插值到网格面上}// olaFlow 的算例中给出了几乎所有可能出现的项,具体算例可能不会包含全部项divSchemes // 对流项与散度项的离散格式, 将网格中心的量插值到网格面上,因此实际上选用的是interpolationSchemes{ div(rhoPhi,U) Gauss limitedLinearV 1; // Guass limitedLinear(一种TVD格式,使同时满足精度和有界) V类(采用限制器时考虑了流动方向) div(U) Gauss linear; // 二阶精度,无界 div((rhoPhi|interpolate(porosity)),U) Gauss limitedLinearV 1; div(rhoPhiPor,UPor) Gauss limitedLinearV 1; div(rhoPhi,UPor) Gauss limitedLinearV 1; div(rhoPhiPor,U) Gauss limitedLinearV 1; div(phi,alpha) Gauss vanLeer; // Gauss vanLeer(一种TVD格式,使同时满足精度和有界) div(phirb,alpha) Gauss interfaceCompression; // 界面压缩格式,基于一般限制格式 div((muEff*dev(T(grad(U))))) Gauss linear; div(phi,k) Gauss upwind; // 一阶迎风格式,有界 div(phi,epsilon) Gauss upwind; div((phi|interpolate(porosity)),k) Gauss upwind; div((phi|interpolate(porosity)),epsilon) Gauss upwind; div(phi,omega) Gauss upwind; div((phi|interpolate(porosity)),omega) Gauss upwind;}laplacianSchemes // 拉普拉斯项离散格式{ default Gauss linear corrected; // Guass线性插值,corrected(显式的非正交网格修正)}interpolationSchemes{ default linear; // 线性插值格式}snGradSchemes // 面法向梯度格式{ default corrected;}fluxRequired // { default no; p_rgh; pcorr; alpha.water;}

【system\fvSolution】

// 指定方程组矩阵求解器、残差以及其他算法控制solvers{ "alpha.water.*" { nAlphaCorr 1; // nAlphaSubCycles 2; alphaOuterCorrectors yes; cAlpha 1; MULESCorr no; nLimiterIter 3; solver smoothSolver; // 求解器:光顺求解器。对称和非对称矩阵均适用 smoother symGaussSeidel; // 光顺器:对称Gauss-Seidel方法 tolerance 1e-8; // 标准化残差 relTol 0; // 相对残差,表征残差的递减量 } "pcorr.*" // 压强校正量 { solver PCG; // 求解器:预处理共轭梯度法。仅适用于对称矩阵 preconditioner DIC; // 预处理器:基于对角的不完全Cholesky预处理器 tolerance 1e-5; relTol 0; } p_rgh { solver PCG; preconditioner DIC; tolerance 1e-07; relTol 0.05; } p_rghFinal // 在求解p_rgh时可设置较大的残差,在最后一步设置严格的误差 { $p_rgh; relTol 0; } U { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-06; relTol 0; }}// 离散方程组的分离式解法PIMPLE // SIMPLE 与 PISO 算法的耦合{ momentumPredictor no; nOuterCorrectors 1; // 值不大于1时,算法变为纯PISO算法;若大于1,为非定常SIMPLE算法 nCorrectors 3; nNonOrthogonalCorrectors 0;}relaxationFactors // 松弛方法,为降低数值波动{ fields // 表示需要使用松弛方法(显式)的变量 { } equations // 表示需要使用松弛方法(隐式)的方程 { ".*" 1; }}

【system\setFieldsDict】

defaultFieldValues( volScalarFieldValue alpha.water 0 // 初始化流体体积分数);regions( boxToCell { box (-10 -1 -1) (30 1 0.4); fieldValues ( volScalarFieldValue alpha.water 1 // 将box范围内的流体设置为a = 1的相,即水深 ); });
本文链接地址:https://www.jiuchutong.com/zhishi/300854.html 转载请保留说明!

上一篇:基于OC端的Bridge-API组件化应用(oc底层原理)

下一篇:vue导入处理Excel表格详解(导入vue.js)

  • 新手该如何推广店铺(新手怎么推广自己的店铺)

    新手该如何推广店铺(新手怎么推广自己的店铺)

  • 罗技鼠标怎么调灵敏度(罗技鼠标怎么调灵敏度g102)

    罗技鼠标怎么调灵敏度(罗技鼠标怎么调灵敏度g102)

  • 苹果11主屏幕上的小光圈怎么设置(苹果11主屏幕上面出现一个隔空播放的音乐怎么把它关闭)

    苹果11主屏幕上的小光圈怎么设置(苹果11主屏幕上面出现一个隔空播放的音乐怎么把它关闭)

  • 钢化膜撕下来还能用吗(钢化膜撕下来还能用多久)

    钢化膜撕下来还能用吗(钢化膜撕下来还能用多久)

  • 怎么删除幻灯片母版中的日期区(怎么删除幻灯片的备注文字信息)

    怎么删除幻灯片母版中的日期区(怎么删除幻灯片的备注文字信息)

  • 有了共享单车的确非常方便,在一些距离很近的地方就不用坐公车(有共享单车的小说)

    有了共享单车的确非常方便,在一些距离很近的地方就不用坐公车(有共享单车的小说)

  • 怎么充电更合适(怎么充电更合适呢)

    怎么充电更合适(怎么充电更合适呢)

  • 微信上下载的文件在手机哪里(微信上下载的文件在哪看)

    微信上下载的文件在手机哪里(微信上下载的文件在哪看)

  • jny-al10是什么型号手机(jny-al10是什么型号华为手机怎么查型号)

    jny-al10是什么型号手机(jny-al10是什么型号华为手机怎么查型号)

  • 抖音超级乐迷是啥(抖音超级乐迷是什么)

    抖音超级乐迷是啥(抖音超级乐迷是什么)

  • 苹果手机流量卡顿怎么解决(苹果手机流量卡lte怎么开热点)

    苹果手机流量卡顿怎么解决(苹果手机流量卡lte怎么开热点)

  • 苹果手表能测血压吗(苹果手表能测血糖吗)

    苹果手表能测血压吗(苹果手表能测血糖吗)

  • 毒上面的交易关闭什么意思(毒上的交易关闭是什么意思)

    毒上面的交易关闭什么意思(毒上的交易关闭是什么意思)

  • 封发邮件是什么意思(邮件封存是什么意思)

    封发邮件是什么意思(邮件封存是什么意思)

  • 苹果如何不接陌生人电话(iphone怎么拒接陌生人电话)

    苹果如何不接陌生人电话(iphone怎么拒接陌生人电话)

  • 电脑的系统日志怎么查看(电脑的系统日志被发到其他地方)

    电脑的系统日志怎么查看(电脑的系统日志被发到其他地方)

  • 手机话费充错了怎么办(手机话费充错了怎么快速退)

    手机话费充错了怎么办(手机话费充错了怎么快速退)

  • 苹果怎么设置转接(苹果怎么设置转移)

    苹果怎么设置转接(苹果怎么设置转移)

  • 笔记本显卡坏了怎么办(笔记本显卡坏了能修吗)

    笔记本显卡坏了怎么办(笔记本显卡坏了能修吗)

  • 美团砍价怎么生成二维码(美团砍价成功后在哪里看)

    美团砍价怎么生成二维码(美团砍价成功后在哪里看)

  • 华为高端机是哪个系列(华为高端机哪个性价比最高)

    华为高端机是哪个系列(华为高端机哪个性价比最高)

  • 格式工厂如何剪辑音频(格式工厂如何剪mp3)

    格式工厂如何剪辑音频(格式工厂如何剪mp3)

  • 360浏览器如何查看版本(360浏览器如何查看收藏的网址)

    360浏览器如何查看版本(360浏览器如何查看收藏的网址)

  • 亏损企业需要计提递延所得税资产吗
  • 逾期未申报是什么意思
  • 什么是土地使用权终结
  • 增值税发票进销项不一致
  • 餐补如何入账
  • 电子税务局没有发票开具
  • 委托开发的定义
  • 个体工商户发票额度
  • 个人向个人借款100万交税吗
  • 资本公积金转增股本是利好吗
  • 房屋买卖终止协议
  • 应收账款坏账计提比例变更
  • 财务费用手续费有哪些
  • 预提返利的会计处理
  • 收到厂家返利如何做账
  • 公司增资麻烦吗?
  • 产品成本的归集和分配是什么意思
  • 差旅补贴需要缴纳个税吗
  • 咨询服务费属于什么会计科目
  • 简易征收一般纳税人可以收专票吗
  • 投资者减除费用可以填0吗
  • 建筑业在外地预缴的所得税能退吗
  • 税收思想
  • 中意装饰工程有限公司怎么样
  • 物业公司要怎么开水电费证明
  • 赎回公司发行的债券怎么做账?
  • 税前可以扣除的业务招待费怎么算
  • 如何按增值税计税
  • 持有至到期投资科目被取消了吗
  • 其他应收款押金计提坏账吗
  • win11怎么看电脑配置
  • 员工旅游计入什么费用
  • gitlab lint
  • 怎么清除更新记录
  • 域名服务费属于什么会计科目
  • 公司用车车祸一般谁负责
  • 股东车辆保险费会计分录
  • w10如何删除微软拼音
  • 短期借款利息怎么做分录
  • b/s架构的正确解释方式
  • 圆顶亭效果图
  • python模拟微信
  • CNN+LSTM+Attention实现时间序列预测(PyTorch版)
  • php常用数组函数和用法
  • 购买财务软件的费用
  • Win11 Build 23435 预览版今日发布: 文件管理器引入图库功能
  • 功能强大的php发展趋势
  • 买货没发票如何入账?
  • c语言 *指针
  • 工会经费是什么凭证
  • 外贸出口企业的税务风险
  • 票据带息和不带息
  • 织梦内容页模板修改
  • 哪些发票可以抵扣?
  • 发出商品的增值税
  • 稳岗补贴缴纳社保个人部分还是公司部分
  • 进仓费开票是几个点
  • mysql中where的用法
  • 实收资本如何计算印花税及附加税
  • 城市维护建设税属于中央还是地方
  • 中小企业开发票税率是多少
  • 信用减值损失在利润表怎么填列
  • 怎么打印税务登记证明备案表
  • 材料按计划成本计价下,外购材料结算
  • 银行收到货款会计分录怎么做
  • 跨国公司国内外发展现状
  • 建设工程毛利率如何计算
  • mysql5.5.62安装配置教程
  • win7更改电脑设置在哪里
  • linux操作系统版本有哪些
  • win7系统添加打印机没有USB端口选项
  • Linux磁盘配额步骤
  • Windows Server 8 ADDS轻松几步搞定密码个性化设置
  • pdf文件下载后打不开
  • unity导出ios项目到iphone
  • 地铁酷跑瞬间移动
  • 云南省电子税务局怎么改号码
  • 12366纳税服务热线工作时间
  • 土地交易的印花税
  • 内蒙古国税网上办税厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设