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的设计, ...
随机推荐
- MyEclipse文件查找技巧
只为成功找方法,不为失败找借口! MyEclipse使用总结——MyEclipse文件查找技巧 一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字 ...
- 使用WCF实现消息推送
1.协议 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- .net二纬码标签打印
在企业开发中经常用到二纬码标签,本文详细介绍.net环境下整个二纬码解决方案. 开发环境 vs2008 DevExpress8.3 ThoughtWorks.QRCode (二纬码生成组件,高版 ...
- SpringMVC源码解读 - HandlerMapping
SpringMVC在请求到handler处理器的分发这步是通过HandlerMapping模块解决的.handlerMapping 还处理拦截器. 先看看HandlerMapping的继承树吧 可以大 ...
- linux每天一小步---xargs命令详解
1 命令功能 xargs用来从标准输入中执行命令行 xargs命令用来将一些不支持管道传递参数的命令而使之支持 2 命令语法 xargs [选项参数] commands 3 命令参数 -O 当标准输 ...
- 10-10Linux的文件操作函数以及所需头文件
Linux的基本文件操作函数 Linux通过相应的对文件的IO函数来实现对文件的操作,这些函数通常被称作"不带缓冲的IO",这是因为他们都是通过调用Linux的内核调用来实 ...
- C#——Socket
最近公司让我搞个socket小程序(服务端). 主要的功能:客户端发字符串到服务端,服务端接收后在界面上显示. 参照了网上许多代码,自己从中修改整理代码. public Form4() { Initi ...
- 关于Unity中MonoBehaviour的构造函数
关于Unity中MonoBehaviour的构造函数 在学习Unity MVVM UI框架的时候,一不小给一个继承自MonoBehaviour类的子类编写了自定义构造函数,结果调Bug调了两个钟,特此 ...
- C#使用LitJson对Json数据解析
JSON 介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...
- VS中C#连接SQLite数据库处理器架构“x86”不匹配的问题
原文链接 https://www.cnblogs.com/zhaoliankun/p/9088200.html 我的环境配置:windows 64,VS,SQLite(点击下载),System.Dat ...