OpenFOAM 中的 div 与 snGrad 操作符

OpenFOAM 的方便之处之一是利用C++的类模板和函数重载等技术定义了很多各种离散操作符,如div,laplacian,grad 等等。利用这些操作符,很容易就能对偏微分方程进行离散,并构建起线性方程组。但是,这些操作符真正执行的运算,却需要结合有限体积方法的本质来理解一番才能真正掌握。下面尝试着对 OpenFOAM 中的 divsnGrad 操作符进行一点解读。

Read More

利用functionObjects对指定区域内进行后处理

CFD中很重要的一个环节是模拟结果的后处理。而后处理过程中,常常涉及到对某个指定区域的某个物理量进行操作,比如,求指定截面上的流率,或者求某个区域内的平均空隙率,等等。这里介绍一种利用 OpenFOAM 中的 functionObjects 来对指定区域进行后处理的方法。本方法一共分三步:1). 将指定区域内的网格(或者面)提取到 cellZone(或faceZone); 2). 在 controlDict 里写后处理 functions;3). 运行后处理。

Read More

ParaView 的远程模式

OpenFOAM 用户肯定都用过ParaView可视化软件,这款软件可以方便地读取 OpenFOAM 的数据进行种类丰富的可视化操作。用 ParaView 可视化 OpenFOAM数据很简单,只需要在算例目录下运行paraFoam即可(注一)。但是,如果你不是在本地机器上运行 OpenFOAM,而是在远程机器上运行,这时候想在本地直接用 ParaView 来可视化远程机器上的数据,该怎么办呢?这个问题要分情况讨论:

  1. 远程机器没有禁止远程开启GUI
    • 本地机器安装的是Linux系统,那么可以这样做:ssh -X your_remote_machine 登录到远程机器,注意这里加了-X选项,正常的话,应该直接在终端里运行paraFoam就可以远程启动 ParaView。
    • 本地机器安装的是 Windows,这种情况下可以通过安装一个 Xserver,比如Xming,然后用一个支持 X11 Forwarding 的 SSH 客户端(比如 putty)用ssh -X登录到远程机器,正常的话,直接运行paraFoam可以远程启动 ParaView。但根据我的使用经验,这种方法稳定性很差,容易崩溃。
  2. 远程机器设置了禁止远程开启GUI程序
    这种情况下上面提到的两种方法就都不奏效了。这时,下面要介绍的 ParaView 远程模式就能派上用场了。

ParaView 远程模式基本的使用方法是,在远程机器上启动一个pvserver,然后用本地机器安装的 ParaView 连接到这个 server上(Client/Server 模式),或者反过来,本地机器开启一个 server,然后让远程机器连接到本地的 server(Client/Server(reverse connection) 模式),以下将一一介绍。

Read More

fieldAverage 使用说明

fieldAverage是 OpenFOAM 中的一种 functionObject,用来计算时均值。其基本用法是作为一个 function object 放在 controlDict 文件中,运行 solver 的同时计算指定场的时均值,以下是一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
functions
{
fieldAverage1
{
type fieldAverage;
functionObjectLibs ( "libfieldFunctionObjects.so" );
outputControl outputTime;
fields
(
Ua
{
mean on;
prime2Mean off;
base time;
}
Ub
{
mean on;
prime2Mean off;
base time;
}
);
}
}

Read More

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Test code

1
2
3
4
5
6
#include<iostream>
int main(int argc, char* argv[])
{

std::cout<<"hello world!" << std::endl;
return 0;
}

中文支持测试

看看是否支持中文。

数学公式

$$ x=\frac{-b\pm \sqrt{b^2-4ac}}{2a} $$

本地图片测试

Jupiter

gif图片测试

cfb