OpenFoam+CFDEM+Liggghts安装耦合
这里安装的时间节点为:2018.10.29,安装的是目前的最新版本CFDEM,支持到与OpenFoam-5.x的耦合。
1. 先安装openfoam:
https://openfoam.org/download/source/
不算很难,安装这个官网程序走就行,主要需要注意的是源码一定要放在~目录下编译,如下

2. 再安装Liggghts:
https://www.cfdem.com/media/DEM/docu/Section_start.html
主要也是按照官网教程,下载完后直接make auto
这里需要注意两点,一是要在~目录下建立名为LIGGGHTS文件夹,然后把源码放在这个文件夹里编译(这一步最关键),
再一个是需要建立一个软链接:sudo ln -s $HOME/LIGGGHTS-PUBLIC/src/lmp_auto /usr/local/bin/liggghts(这一步不确定是否必要,但最好加上)
3. 安装CFDEM:
https://www.cfdem.com/media/CFDEM/docu/CFDEMcoupling_Manual.html#
一直到cfdemSysTest这一步都不难,测试这一步的时候看看几个critical的路径能不能找到,容易出问题的就是Liggghts没有放在上面说的LIGGGHTS文件夹里,如下:



还得下载lpp: sudo git clone https://github.com/CFDEMproject/LPP.git mylpp,注意下载到$HOME/LIGGGHTS文件夹下,因为bashrc中设置了这个路径,其实只要放置位置和bashrc中对应即可
然后开始编译CFDEM,可以直接cfdemCompCFDEMall,或者step by step编译:
cfdemCompLIG
cfdemCompCFDEMsrc
cfdemCompCFDEMsol
cfdemCompCFDEMuti
千万注意官网这里,后两个命令又typo,他们写成了:
cfdemCompCFDEmsol
cfdenCompCFDEMuti
按照官网写的会出现找不到命令的问题。见:https://www.cfdem.com/forums/cfdemcompcfdemsol-cfdencompcfdemuti
4. 运行测试
全部编译好以后可以测试一下,把~/CFDEM/CFDEMcoupling-PUBLIC-5.x/tutorials文件夹里拷贝一个案例文件夹到任意工作目录,例如cfdemSolverPiso这个案例
然后运行下面所示目录下的./Allrun.sh就能开始计算了。
ywj@DESKTOP-OD3RNEO:/mnt/e/CFD_wkdir/openfoam/CFDEM/cfdemSolverPiso/ErgunTestMPI$ ls
Allrun.sh DEM log_run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM parDEMrun.sh
CFD log_run_liggghts_init_DEM parCFDDEMrun.sh
5. 后处理
运行后生成CFD和DEM两个文件夹,一个放流场信息,一个放颗粒信息
由于这里是并行,所以CFD文件夹下有四个processor文件夹(processor0~processor3),每个文件夹下只存了四分之一网格信息,所以要把它们合并:
修改CFD\constant下couplingProperties文件关键字IOModel basicIO为IOModel off
然后命令行分别输入:
reconstructPar
foamToVTK
然后就能在CFD文件夹下生成对应时间的文件夹了,导入case.foam(手动创建的空文件)到paraview中,就能看到完整网格信息了
然后处理DEM下的文件,需要把dump文件转换为vtk格式,要用到lpp,这是一个python写的脚本,通过git clone到某个文件夹(这个步骤在3. 安装CFDEM中提到过),我这里直接放在~目录下
然后做一个alias:
alias lpp="python2 $HOME/mylpp/src/lpp.py"
这样,在DEM/post文件夹下运行lpp dump*.liggghts_run就把所有dump文件都转化为vtk了。如果出问题,接着下面步骤。
由于我的默认python版本为3.6,而此脚本文件为python2.7,所以我需要做一些修改:
安装pip
# . 更新系统包
sudo apt-get update
sudo apt-get upgrade
# . 安装Pip
sudo apt-get install python-pip
# . 检查 pip 是否安装成功
pip -V
安装python2版本的numpy
python2 -m pip list 查看
python2 -m pip install --upgrade pip 更新
python2 -m pip install numpy 安装
然后修改
$HOME/mylpp/src/lpp.py脚本文件第一行为:
#!/usr/bin/env python2
改完之后再在DEM/post文件夹下运行命令:
lpp dump*.liggghts_run
就能把dump文件都转换为VTK格式了,然后导入paraview中即可,效果图:

OpenFoam+CFDEM+Liggghts安装耦合的更多相关文章
- openfoam耦合liggghts安装
本次安装基于新安装的ubuntu18.04LTS桌面版系统,用户名为ubuntu,此前未安装其他软件(进行了系统提醒的更新),安装时间为2019年9月. 安装前需确认需要安装的OpenFOAM版本,C ...
- Ubuntu1604下安装Liggghts及CFDEM Coupling
部分内容参考http://www.linuxdiyf.com/linux/16315.html LIGGGHTS是一款开源的DEM软件,来自于著名的分子动力学软件LAMMPS,目前借助于CFDEM C ...
- OpenSUSE下编译安装OpenFoam
在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...
- 【OpenFOAM案例】03 Docker安装OpenFOAM
"工欲善其事必先利其器",软件装不上,讲再多的使用技巧也是白搭.近期不少留言说OpenFOAM不容易安装,今天来谈谈如何在Linux下利用Docker安装OpenFOAM. Lin ...
- Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】
转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...
- 深入理解 OpenFOAM 环境变量与编译
操作系统选择 由于 OpenFOAM 在 Linux 平台开发和测试,在非 Linux 平台无法直接对软件进行编译和安装,所以在非 Linux 平台上最简便方法是使用 docker 容器运行 Open ...
- openfoam 的安装【转载】
原文地址: http://blog.sina.com.cn/s/blog_14bf001d10102wifw.html OpenFOAM安装 OpenFOAM基于Linux系统下运行,由于对Linux ...
- Microsoft Prism安装使用教程 搭建WPF松耦合架构框架
Microsoft Prism安装使用教程 搭建WPF松耦合架构框架 Prism是由微软Patterns & Practices团队开发的项目,目的在于帮助开发人员构建松散耦合的.更灵活.更易 ...
- 面系那个对象开发原则.高内聚.低耦合+Python安装详细教程+print输出带颜色的方法
面系那个对象开发原则.高内聚.低耦合 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计, ...
随机推荐
- Imageloader、Glide、Fresco的性能及加载速度比较
一.使用方式: // 下面两个依赖包可选,根据需求二选一即可, compile 'com.ladingwu.library:fresco:0.0.9' compile 'com.la ...
- HDU 1060 Leftmost Digit (数学log)
题意:给定一个数n,让你求出n的n次方的第一位数. 析:一看这个n快到int极限了,很明显不能直接做,要转化一下.由于这是指数,我们可以把指数拿下来. 也就是取对数,设ans = n ^ n,两边取以 ...
- python使用git进行版本控制-分支管理
1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...
- fakeapp, faceswap, deepfacelab等deepfakes换脸程序的简单对比
https://deepfakes.com.cn/index.php/95.html https://www.cnblogs.com/zackstang/p/9011753.html
- Linux 基础教程 45-read命令
基本用法 read命令主要用于从标准输入读取内容或从文件中读取内容,并把信息保存到变量中.其常用用法如下所示: read [选项] [文件] 选项 解释 -a array 将内容读取到数值中, ...
- MFC中的乱起八糟----字符编码:LPTSTR,LPCTSTR, TCHAR等
注意,编写有 Unicode 意识的代码总是一件好事,比如: CString graycat = CString(_T("Gray")) + _T("Cat") ...
- Websocket出现的错误
前端使用sockjs,后台使用spring的websocket框架 结果在一个网络较慢的地方,发现tomcat报错信息: Oct 28, 2015 10:10:43 AM org.apache.cat ...
- Android-FileUtils-工具类
FileUtils-工具类 是对文件操作处理的方法进行了封装,提供了公共的方法: package common.library.utils; import android.annotation.Sup ...
- 如何在Mirth Connect中创建和调用自定义Java代码
0-前言 本文章将向您展示如何创建自定义Java类,将其编译/打包到JAR中,将其包含在Mirth Connect在,并在JavaScript中调用它,您可以从任何JavaScript上下文调用自定义 ...
- MSP430 G2553 LaunchPad设置GPIO
一. 背景知识:逻辑运算符的使用 当程序初始化时,对于复位状态有不确定性的寄存器(如PxOUT),建议采用直接赋值:其他情况下最好使用逻辑运算符修改寄存器. 直接赋值 REGISTER = 0b111 ...