- 博客(38)
- 收藏
- 关注
原创 cfdem安装的一些注意问题
2. 在LIGGGHTS/LIGGGHTS-PUBLIC/src/MAKE下的Makefile.user中可以关闭USE_VTK,则如果前面没安上VTK,也可以把LIGGGHTS编译过。1. 依赖包尽量都安装完,可以一个一个自己安装,以保证运行的完整性,特别是(vtk和python-numpy,而且这个python-numpy是要再python2下面,python3没法用)cfdem需要python2才能转换dump文件为vtk文件,如果电脑既安装了python2又有python3,则。
2024-04-18 13:46:07 291
原创 关于PISO求解的一些理解
发现网上没有很好的总结,所以我自己总结了一下现在的理解如下图:去推导一遍压力泊松方程就基本明白了。另外由于本NS方程还考虑了曳力,所以HbyA多了一项和曳力有关。同时还得考虑是两相,所以还有一些和voidfraction的操作。我也突然明白了PISO的动量预测并没有考虑压力的变化,直接求解了一个U,因此它求的U用来算下面的2.10的一部分。但除了U,还得考虑曳力,所以式2.10=phiGes=phi+曳力部分。根据式子也是可推导出它确实需要这么算。这是对于最简单的压力泊松公式。来源于另一
2022-01-14 18:48:20 1200
转载 【转】一个具体能量方程的解析
本篇来看一个具体的能量方程,以twoPhaseEulerFoam的EEqn.H为例。 123456789101112131415161718192021222324252627282930313233343536373839 { volScalarField& he1 = thermo1.he(); volScalarField& he2 = ther...
2021-12-29 16:25:40 1471
原创 子系统wsl ubuntu1604安装
想在自己电脑上调试openfoam代码,决定在window10上装个linux子系统wsl。首先判断需要的openfoam版本,对于2.3.x或者2.3.1版本,根据openfoam版本判断linux系统版本,对应2.3.x安装ubuntu1604,新系统装不上。1. 需要在电脑先启用wsl功能前往 “启用或关闭 Windows 功能” ,然后滚动至底部,如截图所示,勾选 “适用于 Linux 的 Windows 子系统”,点击确定。它将会下载安装需要的包。开启之后需要重启系统才生效。.
2021-12-27 10:43:17 711
原创 MPI+OpenMP学习
资料:PowerPoint Presentation (princetonuniversity.github.io)(很直观地用图展示了各种函数的意思)mpi_openmp.pdf (ryerson.ca)MPI定义Flow ModelMPI代码的基本结构基本函数MPI函数总结_imastrid的博客-CSDN博客OpenMP定义Flow Model代码基本结构编译要加的flag...
2021-12-17 15:33:11 292
原创 MPI函数总结
决定将代码中出现的MPI函数都总结一下:调用MPI函数,通常要包含头文件#include "mpi.h"or#include <mpi.h>MPI 环境在初始化时会自动创建两个通信器,一个称为 MPI_COMM_WORLD,它包含程序中的所有进程,另一个称为 MPI_COMM_SELF,它是每个进程独自构成的、仅包含自己的通信器。MPI 系统提供了一个特殊进程号 MPI_PROC_NULL,它代表空进程 (不存在的进程),与 MPI_PROC_NULL 进行通信相当于一个空
2021-12-16 18:16:19 3045
原创 关于insert和periodic的问题
前言各种宏的定义及作用_imastrid的博客-CSDN博客在我前面写的这一篇里面,我提到了mppic代码中configure.h文件的设置宏的定义和作用。最近才好像有点搞懂了代码中是怎么插入parcel或者循环parcel的,所以这里想整理一下突然明白的部分。定义及意义不厌其烦地再提起一次定义及意义。__INSERT_PARCEL_它是用来定义采用插入的方法来加入颗粒。代码中具体实现方法是:每一个步长在固定的位置或者在通过一些判断和随机数确定的位置(比如.
2021-12-14 14:46:30 554
原创 matlab计算按步长加入的颗粒量
为了方便,写了这个代码就能计算不同case的进口放入多少parcel了。这只针对MPPIC的粗粒化。%Calculate parcel number to insert%Remember manually change location and method(column or others)%inputcaseinput ='Input which case of MIP (120 or 350):';casename = input(caseinput);graininginpu
2021-12-12 16:04:36 279
原创 openfoam CourantNo.H
Co=Δt*τwhere, τ=0.5/V*∑faces|ϕi|OpenFOAM: User Guide: CourantNoOpenFOAM: API Guide: src/finiteVolume/cfdTools/incompressible/CourantNo.H Source File Global CourantNo Description Calculates and outputs the mean and maximum Cour...
2021-12-09 10:55:56 561
原创 各种宏的定义及作用
#define __INSERT_PARCEL__@note macro __INSERT_PARCEL__ means using inserting method for parcels在mppic_main.cpp里面的mppic_update_one_step函数中#ifdef __INSERT_PARCEL__ /* 0. Insert parcels. */ insert_parcel();#endifinsert.cpp文件中出现inser_
2021-12-07 15:47:07 616
原创 openfoam串行收敛,并行不收敛
一些类似的报错:Differences between serial and parallel runs -- CFD Online Discussion ForumsParallel run diverges, serial does not -- CFD Online Discussion ForumsUnexpected step-to-step divergence? -- CFD Online Discussion Forums影响CFD计算量的因素分析及在OpenFOA..
2021-12-05 21:52:57 1521
原创 openfoam一些报错的原因(持续更新)
size of the communicator(5) is smalller than the size of Cartesian topology(10)原因:parallel.ini忘记改成跟切分的时候一致了。Fatal error in MPI_Sendrecv: Message truncated, error stack:MPI_Sendrecv(230).................: MPI_Sendrecv(sbuf=0x39837f0, scount=5776, M.
2021-12-03 10:31:40 12831 4
原创 openfoam wmake编译时节点没有patch
首先确定节点上g++的版本,4.4.7用不了,4.8.2(k228)和4.8.5(k208, k211)的可以编译通过。好像是4.8.0才开始支持C++11标准,因此前面的版本编译不了这个。由于有些计算节点没有patch工具包,则./rebuild.sh里面的一句话patch -s Make/options options会报错说:./rebuild.sh line 11: patch: command not found因此,既然patch不了,则自己加一句话修改Make/
2021-12-03 10:00:39 398
原创 openfoam前处理:并行计算decomposeParDict和setFieldsDict
OpenFOAM 中用手动并行分块的方法 · 大专栏根据老师给我发的教程,好像不能生成0/cellDist,百度了一下才发现。应该先decomposePar再setFields的。修改system/decomposeParDict,如下,分成五个区。采用simple方法。manual的话则是修改manualCoeffs,我还暂时不用它。numberOfSubdomains 5;method simple;//method manual;simpleC
2021-11-18 15:36:14 5408
原创 并行运算遇到的fatal error(已解决)
Fatal error in MPI_Sendrecv: Message truncated, error stack:MPI_Sendrecv(230).................: MPI_Sendrecv(sbuf=0x39837f0, scount=5776, MPI_BYTE, dest=4, stag=4, rbuf=0x3984e90, rcount=5776, MPI_BYTE, src=2, rtag=4, MPI_COMM_WORLD, status=0x715430) fai.
2021-11-18 14:25:33 7560 1
原创 openfoam后处理:方便paraview读取对应时间段
我写的sh文件。生成链接文件,方便paraview读取对应的时间段数据,在paraview求时间均值,最大值,最小值等等。根据需求相应修改路径和生成文件夹的名字,就是把某段时间段内的东西链接到这个新文件夹里。str="../Ps=010_1.17/"for file in `ls $str`do cd /ncsfs02/yyxie/Ps=010_1.17_timefile mkdir $(basename $str"/"$file) cd $(basename $str"/"$file
2021-11-18 09:46:14 1036
原创 Gambit学习2-曲面挖洞
今天画分布板的时候,想在曲面挖一个洞。想了一会儿才想出一个解决方案,不知道是不是最简单的,但是好使嘻嘻。其实这也就相当于:画一个与洞的半径一致的圆筒 将圆筒平移到挖洞的位置,connected 用曲面切割圆筒,记得选择connected 这时候会出现切割线,复制这个切割线 删除掉被切割的圆筒,剩下的切割线就是和曲面贴合的线了 复制移动它,分布好孔之后 用这些线切割曲面,connected,这时就把洞和曲面分离了 在边界条件里洞定为interior,切割剩下的曲面定为wall..
2021-11-17 14:40:25 414
原创 openfoam后处理求全床平均孔隙率
自己写的代码,就是简单对voidfraction全床求和,然后求平均。可以在计算过程中及时监控有没有颗粒泄漏。这个是C++的后处理,编译好之后直接在linux系统openfoam案例下./run.sh就行,舒服多了:/** * @file foampost-vof-time.cpp * @brief * @authro Yanyan Xie [1131932516.qq.com] * @version * @date Wed 17 11 2021 13:19 ****
2021-11-17 14:30:10 643 1
原创 Gambit学习
Gambit使用教程及入门实例 - 百度文库鼠标常用操作Gambit中鼠标的常用操作 - 百度文库导入msh文件File→import→mesh, Type选Fluent5/6, Dimension选2D或者3D, 然后在File Name, Browse快速选择对象Gambit里面shift+鼠标左键是选择,shift+鼠标右键是应用。感觉选择对象还是很简单直观的...
2021-11-16 15:30:20 4596
原创 openFOAM当中的收敛问题
OpenFOAM中 <i class="icon-file-text-alt icon-large"></i>fvSolution 字典文件解析 - 作业部落 Cmd Markdown 编辑阅读器 (zybuluo.com)设置问题:计算时间步长 计算方案的松弛因子 离散格式 网格大小 各种计算方案PISO等等问题模型问题:曳力模型(EMMS) 固相应力模型(自己的mppic,或者openfoam自带的)计算太久的话,为节省时间:可以并行.
2021-11-11 20:22:16 2618
转载 #ifdef
#ifdef是一句电脑程序语句。可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。可翻译为:如果宏定义了语句1则执行程序2。#ifdef语句1//程序2#endif作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。代码举例:新建define.cpp文件#include <iostream>using namespace std;int main(int argc, char *argv[]){#ifdef DEBUGcout &
2021-11-09 09:53:08 3209
原创 排序算法学习
冒泡排序(Bubble Sort)【算法】排序算法之冒泡排序 - 知乎 (zhihu.com) 插入排序(Insertion Sort)【算法】排序算法之插入排序 - 知乎 (zhihu.com) 希尔排序(Shell Sort)【算法】排序算法之希尔排序 - 知乎 (zhihu.com) 选择排序(Selection Sort)【算法】排序算法之选择排序 - 知乎 (zhihu.com) 快速排序(Quick Sort)【算法】排序算法之快速排序 - 知乎 (zhihu.com) 归并排序(Me
2021-11-05 17:16:42 103
原创 linux自学ing
1.文件描述符文件描述符概述_有点小奇怪的博客-CSDN博客_用户文件描述符文件描述符是非负整数,是文件的标识。用户使用文件描述符(file descriptor)来访问文件。利用open打开一个文件时,内核会返回一个文件描述符。每个进程都有一张文件描述符的表,进程刚被创建时,标准输入、标准输出、标准错误输出设备文件被打开,对应的文件描述符0、1、2 记录在表中。在进程中打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,并将此文件描述符记录在表中。注意:Linux中一个进程最.
2021-11-05 11:54:23 75
原创 spaceclaim简单建模5
spaceclaim简单建模_imastrid的博客-CSDN博客spaceclaim简单建模2_imastrid的博客-CSDN博客spaceclaim简单建模3_imastrid的博客-CSDN博客spaceclaim简单建模4_imastrid的博客-CSDN博客画完粗旋风分离器之后,我要画细旋风分离器了,同样的操作获得数据。...
2021-11-03 21:00:24 2548
原创 spaceclaim简单建模4
spaceclaim简单建模_imastrid的博客-CSDN博客spaceclaim简单建模2_imastrid的博客-CSDN博客spaceclaim简单建模3_imastrid的博客-CSDN博客继前面的1 2 3,现在我要画粗旋风分离器了,从图纸上很多尺寸读不出来,老师说可以用尺子量了,粗略估计,我的尺寸大概是这样的:1. 画一半的截面,旋转它360度2. 在中间画个矩形,拉伸3. 在中心轴建立一个坐标系,旋转90°,使它对向反应器...
2021-11-03 18:38:51 1515
原创 spaceclaim简单建模3
继续前面两个建模,又多了一点领悟:spaceclaim简单建模_imastrid的博客-CSDN博客spaceclaim简单建模2_imastrid的博客-CSDN博客在画弯管的时候,尺寸最重要的应该是,竖管中心轴的位置,从图纸读出它离反应器中心轴距离是3450mm,和管的内径700mm。其它弯度不是很重要。当然如果知道横管的中心轴的位置也最好啦,我从图纸没读出来,所以就自己定一个。老师跟我说,先画竖管,再画横管,然后再把它们接起来。1. 从中心轴建一个平面,然后移动它到34
2021-11-03 11:32:25 4406
原创 Openfoam MPPIC make过程
1. 主框架./allclean.sh清理所有的不需要的,可以修改前面的判断条件,yes or no,判断清理的文件夹及文件有:boundbox init boundary mapping constant/polyMesh executable files OpenFOAM data MPPIC data other files: log./allmake.shmake各部分,前面也是可以修改判断条件,yes or no。还要判断是否使用-parallel。要make
2021-10-30 12:14:46 767
原创 C++代码的一些函数
sprintfsprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。fopenopen的函
2021-10-29 11:02:59 258
原创 spaceclaim简单建模2
继上一个简单建模,继续给反应器加弯管,并且使弯管相切,以下是我自己的方法,其他方法不知道咋做,但应该有更简单的。1. 取两个垂直的平面2.在其中一个平面画圆圈直径700mm,然后拉伸,获得一个圆柱3.然后在这画弧线,用三点确定一个圆弧,计算一下需要的弧半径,这里起点是圆柱面中心,终点是45°方向与圆柱侧边同高度的地方,这样的画弧半径应该是350mm,即700的一半。4. 选圆柱顶面,沿着这个弧线扫掠。获得:5. 再拉伸这个面,得向上的管...
2021-10-27 20:09:26 4666
原创 spaceclaim简单建模
1.打开spaceclaim2.根据尺寸用线画外壳半截面3.然后取消草图,绕轴中心旋转360°4.选择截面继续在对应位置画分布板的线条5.取消草图,绕轴中心旋转360°6.选择相交里面的组合,选择主体,然后选择画好的分布板面。会自动分割实体,获得两个实体7.在分布板上画圈,或者任何分布板的孔形状8.在画网格时,设定好哪里是wall,哪里是outlet......
2021-10-26 16:35:53 11706
原创 openfoam 3d 数据后处理
主要要画轴向分布和径向分布1. 轴向分布用foampost.cpp的程序来提取数据在前面已经提过:openFOAM post代码结构(另附mesh类)_imastrid的博客-CSDN博客后面作图可以用matlab,origin等等2. 径向分布用paraview在节点打开的方法:1)用vncviewer打开linux的paraview_imastrid的博客-CSDN博客2)直接在终端paraview在自己的windows电脑:直接双击打开就好了这是
2021-10-23 16:32:59 1203
原创 openFOAM post代码结构(另附mesh类)
PS: 这是一个对师兄写的后处理代码的阅读笔记。没有普遍性。运行步骤就C++一样:1. 要检查参数、公式和输出路径(主要读post.cpp,foampost.cpp文件)2. 编译(./make.sh)3. 运行(./run.sh)。Ps=010这个代码里面有三个后处理的文件夹:postfoampost-pg-derivedfoampost-vof接下来对每一个进行我自己的解读:post这个没有编译,因为variables.h里面明显是二维的参数,po
2021-10-22 20:20:29 1060
原创 openFoam代码读懂笔记
目录1. sed口令2. mpirun口令 ls -1口令 wc -l口令 grep口令 xargs口令mpirunlswcgrep processor 查看逻辑CPUgrep -v 命令排除输出xargs口令linux中,&和&&,|和||并行计算mpi总结https://blog.csdn.net/qq_40765537/article/details/1064253553. decomposePar工具4. reconstruct
2021-10-22 15:31:49 7914 4
原创 openFoam网格绘制总结笔记
1. 如何运行一个算例openFOAM网格绘制教程1:如何运行一个算例 - 知乎1)openFOAM结构在这个文件系统中system存储的是算例求解的一些基本信息,主要包含三个文件:controlDict:这个文件中有一系列参数可以控制计算的起始时间,时间步长,输出精度等。fvSchemes和fvSolution:主要规定了CFD的离散格式以及求解方法等,要了解这两个文件的设置需要有一定的流体力学基础。此外还有一个blockMeshDict文件,这个文件的作用就是为block
2021-10-12 15:09:52 16084 5
原创 用vncviewer打开linux的paraview
1. windows系统下载vncviewerhttps://www.realvnc.com/en/connect/download/viewer/2. Xshell终端登录IP,执行vncserver获得编号,这里是3PS: 第一次执行需要设置密码3. 在vncviewer的设置4. 然后就登录就行...
2021-08-27 09:28:05 405
原创 openFOAM C++代码的一些特性
数值耗散和数值频散由于cfd旨在用差分方程代替微分方程,所以差分方程是微分方程的逼近,但二者之间总有误差。误差由阶次不同,可造成解的耗散和频散,其中耗散就如给流场添加了人为的粘性一样,使得本来尖锐的突越变得平滑,分辨率降低。简单的说截断项中偶数阶微分的存在使得解具有耗散性,奇数阶微分的存在使得解具有频散性。比如一道正弦曲线,耗散使之幅值变低,而频散使之相位和周期发生变化。https://zhidao.baidu.com/question/399291950.html对非线性化项的处理
2021-08-26 15:45:26 2726 2
转载 【转载】C/C++完整编译过程详解 (拿来读懂makefile文件)
原文链接:https://www.cnblogs.com/CarpenterLee/p/5994681.html#top前言C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。编写hello world C程序:// hello.c#include <stdio.h>int main(){ printf("hello world!\n");}编译过程只需:$ gcc hello.c #
2021-08-25 18:08:12 538
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人