OpenFOAM操作命令 持续记录......

 记录软件使用过程命令。。。。。。

目录

Linux命令记录

安装paraview

创建RUN目录,终端输入“run”即可快捷进入run目录:

解压文件

 后处理使用函数:

OpenFOAM计算命令

并行计算命令Parallelisation :

并行计算后处理


Linux命令记录

  • 安装paraview

sudo apt install paraview # 安装
sudo apt-get remove paraview # 卸载
  • 创建RUN目录

终端输入“run”即可快捷进入run目录:

mkdir -p $FOAM_RUN
  • 解压文件

tar 命令:
-z : 使用 gzip 来压缩和解压文件

-v : --verbose 详细的列出处理的文件

-f : --file=ARCHIVE 使用档案文件或设备,这个选项通常是必选的

-c : --create 创建一个新的归档(压缩包)

-x : 从压缩包中解出文件
通常使用:
tar  -xvf filename

OpenFOAM计算命令:

  • 并行计算命令Parallelisation

        OpenFOAM使用了一种称为域分解的方法,其中mesh的子部分和变量运行在独立的cpu(处理器、核心、线程、……)上,通过MPI进行通信。为了能够并行运行,域需要首先将其分割成连接的块(每个处理器一个)。这是使用解压Par完成的,它在“system/decomposeParDict”的设置:

numberOfSubdomains 8;

//method          scotch;

method          hierarchical;

hierarchicalCoeffs
{
    n               ( 2 2 2 );
    delta           0.001;
    order           xyz;
}

manualCoeffs
{
    dataFile        "";
}

//distributed     no;

//roots           ( );

// ************************************************************************* //

        在这里,我们用一个被称为“hierarchical”的算法分解为8个子域。hierarchicalCoeffffs{. . . } 称为子字典。这里的配置是:

        将几何形状分成8个部分,x方向2,y方向2,z方向2,首先分割x,y,最后z方向,允许单元分布的最大相对公差为0.001。其他的方法和参数也被注释掉了。将子域的计数调整为可用cpu核的数量,相应地更改n并运行模拟,例如4x并行,如下: 

$ decomposePar
$ mpirun -np 4 simpleFoam > log.parallel &
$ foamLog log.parallel
$ wmUnset
$ gnuplot
gnuplot> plot ’UzFinalRes_0’ with lines

        在模拟结束时运行foamLog来更新x-y文件。使用wmUnset  gnuplot命令来绘制残差曲线。

通过并行运行可以获得多少速度在很大程度上取决于网格的大小。如果每个cpu核心低于20 000个单元,子域之间的通信开销通常会通过更高的核心计数而消耗性能提高。YMMV,所以试着通过做基准测试来找到你的系统的局限性。注意:由于舍入错误,OpenFOAM的并行运行将产生与串行运行略有不同的结果

  • 并行计算后处理

        对于并行运行,在Paraview中的后处理需要将案例类型设置为“Decomposed Case”。另一种方法,有时更合适,是重建已被分割成处理器目录的字段,并将它们转换为由Paraview有效读取的本地VTK格式。VTK目录中的VTK文件可以直接在副视图中打开。试一试:

$ reconstructPar
$ foamToVTK
  •  后处理使用函数:

可使用“postPreocess”命令,-help 查询详细介绍,例如计算涡量:
$ postProcess -func vorticity
  • OpenFOAM 残差结果可视化

        OpenFOAM不自带残差绘制命令,借助Gnuplot。以cavity算例输出的log.icoFOAM日志文件为例。新建文件,命名为Residuals(文件名任意),键入如下内容。

set title "Residuals"
set ylabel 'Residual'
set xlabel 'Iteration'
set logscale y          //y轴设置为对数坐标
plot "<cat log.icoFoam | grep 'Solving for Ux' |cut -d' ' -f9 |tr -d ','"title 'Ux' with lines,\
"<cat log.icoFoam | grep 'Solving for Uy' |cut -d' ' -f9 |tr -d ','"title 'Uy' with lines
pause 1 //暂停时间,s,防止连续读取而增加CPU负载
reread  //重复读取数据,否则不会更新

        新建terminal窗口,使用gnuplot画残差曲线。新建窗口可方便关掉不影响openfoam运行。在算例目录下执行:

gnuplot Residuals.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值