珍藏多年的空化实验视频,免费分享!

我很少分享自己领域内的研究成果,现在转行了,把以前博士期间珍藏多年的小视频免费分享给各位观众,这些视频几乎都来自于 YouTube,具体出处见水印。

先来一个基础的实验现象暖暖场,就是静水中单个空化泡溃灭,看点是冲击波。

继续阅读“珍藏多年的空化实验视频,免费分享!”

MPPICFoam 算例解析

MPPICFoam 是一个欧拉-拉格朗日耦合的求解器,MPPIC是 Multi-Phase, Particle-In-Cell 的缩写,属于拉格朗日法,用来描述颗粒的运动,可视为简化版的离散单元法(DEM)。采用该方法的求解器还有 MPPICInterFoam, 可解析两个欧拉相的界面,也就是在 interFoam 的基础上,用 MPPIC 法模拟颗粒运动。

MPPICFoam 包含四个算例 column、cyclone、Goldschmidt 和 injectionChannel,本文逐一展示。

继续阅读“MPPICFoam 算例解析”

你的求解器被OpenFOAM基金会删了!来看解决方案

小编长期使用 OpenFOAM 2.4 版本,维护一些祖传求解器,最近心血来潮体验了最新的 OpenFOAM 8.0 版本,发现 OpenFOAM 的求解器越来越少,大量求解器被整合,当然同时也推出一些全新的求解器。已多相流求解器为例,2.4版本一共有18个,8.0版本只有11个,对比如下:

继续阅读“你的求解器被OpenFOAM基金会删了!来看解决方案”

比女朋友更难找的是 libso

编译过程中,一个常见的报错是“找不到 lib*.so”,lib*.so 究竟为何物?该去哪里找呢?

*.so 是共享目标(Shared Object)文件,是经过编译但未链接的二进制文件,lib*.so 是库(Library)的共享目标文件,以动态链接的方式被调用,因而也叫动态链接库文件。在 Linux 系统中,系统公用的动态链接库文件存储在 /lib 目录和 /usr/lib 目录,在其他位置编译好的库文件,一般也会在这两个目录创建软连接。一些专用的动态链接库文件,也可以存储在软件自己的目录,放在 /home 或 /opt 等位置。

继续阅读“比女朋友更难找的是 libso”

流体颗粒耦合(CFD-DEM)求解器 sediFoam 简介和安装步骤

sediFoam 是弗吉尼亚理工学院肖恒团队的杰作,在 OpenFOAM 的框架内实现了 CFD 和 DEM 耦合,在圈子里小有名气。OpenFOAM 自带的欧拉-拉格朗日耦合求解器,比如 MPPICFoam 和 DPMFoam 都无法解析颗粒间的相互作用,不适用于稠密颗粒流体两相流。稠密颗粒一般使用离散单元法求解,该方法可以考虑单个颗粒的形状、尺寸,解析颗粒之间的作用力,甚至是颗粒之间的化学反应。因而,在 OpenFOAM 中植入离散元求解器是个十分现实的需求。

继续阅读“流体颗粒耦合(CFD-DEM)求解器 sediFoam 简介和安装步骤”

2021年 waves2Foam 最新编译方法

waves2Foam 是 OpenFOAM 的第三方波浪工具箱,其中的 waveFoam 求解器广为人知。本专栏曾介绍在 Ubuntu 14.04 上编译 waves2Foam 的方法(常恭:安装 OpenFOAM + waves2foam),现在 Ubuntu 14.04 已经停止服务,waves2Foam 和 OpenFOAM 都也都发布了许多新版本,添加了很多新特性。有些朋友尝试在新版的 Ubuntu 和 OpenFOAM 上编译 waves2Foam 但遇到了些麻烦,向小编兴师问罪。小编利用下班时间,编译了目前最新版本的 wave2Foam r2141,操作系统也选了目前支持良好且较为稳定的 Ubuntu 18.04,OpenFOAM 选了 v1812,这一版本经历多次小修,小编使用的是 OpenFOAM-v1812.200417(Development Tags OpenFOAM-v1812.200417)。如果您不了解版本兼容性,请务必使用小编已经测试过的版本,不同版本的 Ubuntu、OpenFOAM 和 wave2Foam 很可能不兼容。

Windows 10 的 WSL 也更新到了 Ubuntu 18.04,本文介绍的方法理论上可以在 WSL 上编译,使用 Windows 的朋友可以试试。

继续阅读“2021年 waves2Foam 最新编译方法”

criu 工具让 Linux 进程休眠

休眠是操作系统常见的电源选项,可以保持应用程序的状态,并允许断掉电源再开机后恢复休眠前的状态。其原理是休眠时把计算机运行内存的数据全部转储到磁盘,唤醒时再读取磁盘中的内存镜像。

criu 工具可以让单个进程休眠,不依赖于操作系统的内核,完全在用户空间实现,它是 Checkpoint and Restore in Userspace 的缩写。它适用于以下场景:1)有些程序在运行过程中无法保存数据,必须一次性运行出最终结果,比如 lammps 和依赖它的 openfoam 求解器,为了防止计算过程意外终止,可以人为使用 criu 建立 checkpoint,已备不时之需;2)有些超算限制作业的最长运行时间,到达限制后必须终止,如有需要可以重新提交作业,这时可以使用 criu 建立 checkpoint,方便下次提交;3)云服务器的竞价实例,成本低廉,却有可能被随时终止,服务器收到终止指令后很快就会关机,留给用户处理的时间很短,这时也可以配置 criu 脚本,在计算资源被收回时保存计算状态,在计算资源恢复时,自动恢复计算。

criu 的简单用法如下。

继续阅读“criu 工具让 Linux 进程休眠”

PETSc 真的能让 OpenFOAM 如虎添翼吗?

PETSc 是美国阿贡国家实验室开发的轻便式可拓展科学计算工具箱(Portable Extensible Toolkit for Scientific computing),读作 pet-see。将 PETSc 植入 OpenFOAM 替换其原生线性求解器的研究早已有之,但实际效果比较有争议,有研究认为 PETSc 远胜于 OpenFOAM 的原生求解器,也有研究认为 PETSc 在很多情况下远逊于 OpenFOAM 的原生求解器,甚至会花费数倍时间。

这些争议引起了小编的关注,小编决定把玩一下这个大名鼎鼎的工具箱。OpenFOAM® v2006 将 PETSc 作为外部求解器整合进了 ThirdParty 包[1],写好了现成的编译脚本,还带有教程。

继续阅读“PETSc 真的能让 OpenFOAM 如虎添翼吗?”

在 IB 面前,万兆以太网就是渣渣

小编最近沉迷于 IDC 机房技术不能自拔,一边看着图吧垃圾佬搭建“家用”万兆以太网,一边畅想着某天能够有拥有自己的机房。正好在网上发现一份 HPC 咨询委员会的报告,这个报告测试了硬件和系统软件对 OpenFOAM 性能的影响,结果显示,10G 以太网根本不适合这种需要大量通信的应用,甚至 40G 都不够用,还是得上 IB。

Infini Band 是 OpenFOAM 的最佳伴侣
继续阅读“在 IB 面前,万兆以太网就是渣渣”