All Posts

OpenFOAM在macOS的正确打开方式: CMake & Xcode神器加成

在开始介绍之前,先问个问题:是否被OpenFOAM的调试过程所折磨?还在用Info不断的打印输出来达到调试的目的?更高级一点的,用gdb调试器? 这些跟xcode的强大调试功能相比都显得效率很低,且使用体验大打折扣。 OpenFOAM作为优秀开源软件的佼佼者,但同样存在不同平台部署和调试困难的问题。 然而,第一个好消息是本文作者在 MacOS原生OpenFOAM App: 用户指南 中提供了Mac系统下的一键部署解决方案; 第二个好消息就是本文介绍的在Mac系统下用cmake和xcode进行OpenFOAM求解器等程序开发,提升科研效率。 估计这应该是全网首例!

https://raw.githubusercontent.com/zguoch/PubPic/master/blog/MacOS_OpenFOAM_Xcode_Cmake.png

Read more ...


MacOS原生OpenFOAM App: 用户指南

OpenFOAM是一款开源的CFD软件,功能很强大,而且可扩展性非常强。这里的可扩展性指的是在OpenFOAM的基础上可以自己开发各种求解器解决一些特定的问题。然而,OpenFOAM也存在开源软件的普遍问题:学习曲线较陡。尤其是软件安装,这第一步就会劝退一大批人。不论是OpenFOAM官网还是一些网上的教程,针对MacOS系统下的安装全都是基于Docker或者其他的虚拟机。其逻辑都是通过虚拟机虚拟出Linux系统,然后再虚拟的Linux系统里面使用OF。这种方式存在很多问题,最大的问题就是运行效率低,自己开发求解器的时候不容易调试。所以,最好的解决方案就是在MacOS系统下从OF源码编译出原生的程序,但是几乎所有平台都没有给出这种解决方案!即使找到了某种方式进行编译,也是非常麻烦,需要解决很多第三方依赖库和编译器的问题,非常浪费时间还不一定能搞定!基于此,本人花了一些时间将OpenFOAM的主流的版本编译为原生的app,解决了以上所有的这些繁琐的问题,非常容易使用。尤其对于一些初学者或者编程不太熟悉的用户,以前可能从来无法实现或者需要很长时间才能实现的问题,现在可以在一分钟之内解决问题。本文主要介绍如何下载和使用OpenFOAM app。下面是详细介绍文本,同时也配有亲手操作的演示视频。

https://raw.githubusercontent.com/zguoch/PubPic/master/blog/OpenFOAM_MacOS_Download.png

Read more ...


海底黑烟囱喷出的热液会沸腾吗?

人类历史上首个海底黑烟囱是在1979年的Rivera Submersible Experiment航次发现的, 位于东太平洋海隆的加拉帕戈斯扩张中心。这个发现是地球科学史上乃至人类科学史上的一件大事儿, 该研究报道登上了当时的Science封面,封面的照片是用美国的阿尔文(Alvin)载人深潜器拍摄的。 科学家乘坐阿尔文深潜器对第一个黑烟囱进行了原位观测,喷口温度高达380° ± 30°C,烟囱高度达50 m。 海底黑烟囱不论是对地球科学、环境、资源、乃至生命科学都具有非常重要的意义。 因此对海底黑烟囱的形成过程以及热液流体的物理、化学性质的研究和认识对揭示这一自然现象的本质具有重要的科学意义。

https://raw.githubusercontent.com/zguoch/PubPic/master/LongqiVenting_Jiaolong.gif

Read more ...


Nature论文级别三维数据可视化之多种解决方案

经常投稿论文的科研工作者,尤其是有志发表高水平论文的科研工作者,大家心里基本上都有一个共识:高水平科研结果必须要用高水平数据可视化方式展现给编辑、审稿人和读者!通俗的就是用科研数据如何绘制出漂亮的论文插图。论文的插图大体分为两类:一类是科学数据可视化(Scientific Data Visualization),即所有的数据都有准确的坐标(包括时间和空间)和属性(如物理场)值;另一类是偏艺术解译类的,比如在nature和science的封面上经常见到的那种图,大多数都是用ps或者3dmax绘制的。本人喜欢严谨的东西,所以只讲第一类。而第一类的科学数据可视化,又可以分为二维和三维两大类。二维的图表(Charts)太简单,可以毫不夸张的讲,用python(matplotlib)可以很容易的实现所有的二维图的绘制,而且还是很漂亮的那种。而三维图就不那么容易了,虽然有不少的软件都或多或少的支持三维图的绘制,但都存在不少的缺点。经过了一波nature子刊论文的蹂躏(长达两年多,作图的版本多大几十个),最终还是以比较满意的结果被发表。下面我就详细讲解(重现)一下我的nature子刊论文的三维图的绘制方法,包括GMT, Paraview和Tecplot三种风格和方案。如果要做一个令人满意的三维图及复杂的组合图,单靠一种软件是很难实现的,至少不是那么轻松愉快。我将多年来摸索出来的独家秘方全部奉上,希望大家看完之后能对自己的论文发表能起到锦上添花的效果!

Read more ...


硬石膏沉淀对海底热液系统中金属运移的作用

时至今日,已经在所有不同扩张速率的洋中脊发现了高温热液喷口。尽管已经有研究对对热液系统内部的运行机制和规律取得了重要认识,但是模型预测与实际观测之间依然有一些重要的分歧(或矛盾)。 其中之一就是:数值模拟实验结果一致表明,浅部高渗透率的洋壳中冷的海水混入会导致热液温度降低,这与实际的观测现象不符。 因此,在高渗透率洋壳中形成高温喷口的过程,一定是有其他机制或因素在起作用。 我们利用热液对流-矿物反应的耦合模型探索了这个问题。模型结果显示:在海水与热液混合过程中导致海水被加热而热液被冷却,这两个过程都会形成硬石膏,在洋壳内的高温的热液上升流周围形成一个类似烟囱的结构。由于这个烟囱状结构对洋壳孔隙的阻塞,阻碍了海水与热液的混合,从而使热液集中喷流得以维持高温状态。 热液的高温状态的维持对于金属矿物的运移和沉淀有重要作用。

https://scibyte.oss-cn-beijing.aliyuncs.com/Publications/JGR2020/Figure5.svg

Read more ...


CFD网格雕刻从入门到精通(1):HelloWorld

目前所有的数值模拟研究和应用中都离不开网格(mesh), 而且网格的质量直接影响这模拟结果的质量。从今天开始我将带来基于OpenFOAM(后面简称为OF)的动力学模拟网格剖分教程,OpenFOAM支持各种各样的网格格式及转换。我最开始喜欢用 Gmsh ,但是gmsh还是有一定的局限性,在网格质量控制方面不太好实现,而OF对网格的正交性要求还是挺好的。所以逐渐转向用OF自带的网格剖分工具 snappyHexMesh,其实它更应该理解为网格雕刻工具。详情参见 ESI官方文档 .

Read more ...


OpenFOAM技术内幕:热物理模型中的能量场——thermo.he()

OpenFOAM的原始开发团队应该可以说已经把C++的高级特性(泛型编程)玩的炉火纯青了! 我基于OpenFOAM平台开发自己研究项目所需要的求解器的时候,常常会这样感叹。 整个框架搭建起来之后,只需要很少的代码就可以非常优雅的实现非常复杂的功能。 比如它的热物理模型(thermoPhysical model)框架,同一个求解器在不改变代码的情况下适用于其他的同类问题,只是流体不同了而已。 比如同一个求解器既可以用于石油在孔隙介质中的流动问题,也可以用于温泉或海底热液系统中的热液流动问题,只需要给出相应流体的热物理模型即可。 当然了,对于具体的问题,OpenFOAM并没有提供方案,将这种高级的框架应用于实际问题正是我们需要研究的问题。 本文就介绍热物理模型中的能量问题。

Read more ...


OpenFOAM中的CFD:CFD分析的几个阶段

基于CFD方法的分析过程通常可以分为五个主要部分。有些步骤可能还需要进行多次以便于最终获得想要的结果。

Read more ...


DUNE学习系列之(1): 何为DUNE?

这是DUNE学习系列的第一节,将介绍DUNE是什么?能干什么?总体结构及其特点。

https://raw.githubusercontent.com/zguoch/PubPic/master/dune-logo.jpg

Read more ...


Matplotlib保存图片切除边界空白的几种方法

Matplotlib绝对算得上科研作图神器,这里所说的科研作图指的达到科技论文出版质量的科学数据可视化图片。 Matplotlib可以非常方便的将数据处理和作图融为一体,最重要的其对数据可视化过程中图片的各种属性都可以灵活的控制。 其实可以这么说:只要你能想到的,用mpl都可以做出来!(肯定有人不服,服不服随便你,谁用谁知道)。 但是用mpl做过图的同学肯定遇到过这样一个头疼的问题,在保存图片的时候,边界上总有一些空白,这是我们不想要的。 在这篇文章里面我将介绍mpl几种不为常人所注意的几个技巧。绝对难得的干货

https://scibyte.oss-cn-beijing.aliyuncs.com/blog/nestedPie.png

Read more ...


挤压液态铁有助于揭示地球的构成

科学家对铁进行了地球中部发现的极端条件的研究,从而为行星外核的组成提供了新线索。 对通过地球内部传播的地震能量的分析以及其他观察结果表明,其核心是致密的,金属的并且可能由铁制成。但是地质学家并未确定岩心的确切组成。 铁在地球中心的高温和高压下呈液态。在先前的实验中,研究人员迅速将铁震惊以模拟这些极端条件。但是东京大学的Yasuhiro和他的同事们慢慢地在两颗钻石之间挤压了铁。与以前的实验相比,这项技术帮助团队更精确地测量了铁的密度。 研究小组发现,纯液态铁的密度比地球的外核高7.5%。这意味着地球外核中的铁必须与一些较轻的元素混合。

https://raw.githubusercontent.com/zguoch/PubPic/master/d41586-020-01260-5_17930820.jpg

Read more ...


地球科学中的热力学之热传导系数

行星地壳和岩石圈的热演化很大程度上受控于热传导速率。其主控物理参数就是 热传导率热扩散率 。 很多地球岩石圈的热模型都假设了热扩散率和热传导率为一个常数,但事实上这两个热力学参数是温度的函数 [1] 。 Whittington等(2009) [1] 给出了大陆地壳热传导率和热扩散率随温度变化的实验数据和模型, 结果表明岩石的热扩散率从背景温度条件下的1.5-2.5迅速降低为中地壳温度条件下的0.5,这个值是以往模型假设中的一半。 因此推断在中地壳到下地壳的这个温度条件下形成了更有效的热隔离(绝热层)。通过计算发现热传导率随温度的负增长比热扩散率小一些, 这是因为比热容也是随着温度增大而增大的。尽管如此,从地表到石英 \(\alpha - \beta\) 相变带(transition),热传导率也是降低了50%之多。

_images/blog_1_figure6f.svg

Read more ...