自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 248

原创 关于PISO求解的一些理解

发现网上没有很好的总结,所以我自己总结了一下现在的理解如下图:去推导一遍压力泊松方程就基本明白了。另外由于本NS方程还考虑了曳力,所以HbyA多了一项和曳力有关。同时还得考虑是两相,所以还有一些和voidfraction的操作。我也突然明白了PISO的动量预测并没有考虑压力的变化,直接求解了一个U,因此它求的U用来算下面的2.10的一部分。但除了U,还得考虑曳力,所以式2.10=phiGes=phi+曳力部分。根据式子也是可推导出它确实需要这么算。这是对于最简单的压力泊松公式。来源于另一

2022-01-14 18:48:20 1139

转载 【转】一个具体能量方程的解析

本篇来看一个具体的能量方程,以twoPhaseEulerFoam的EEqn.H为例。 123456789101112131415161718192021222324252627282930313233343536373839 { volScalarField& he1 = thermo1.he(); volScalarField& he2 = ther...

2021-12-29 16:25:40 1426

原创 子系统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 690

原创 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 278

原创 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 3009

原创 关于insert和periodic的问题

前言​​​​​​​各种宏的定义及作用_imastrid的博客-CSDN博客在我前面写的这一篇里面,我提到了mppic代码中configure.h文件的设置宏的定义和作用。最近才好像有点搞懂了代码中是怎么插入parcel或者循环parcel的,所以这里想整理一下突然明白的部分。定义及意义不厌其烦地再提起一次定义及意义。__INSERT_PARCEL_它是用来定义采用插入的方法来加入颗粒。代码中具体实现方法是:每一个步长在固定的位置或者在通过一些判断和随机数确定的位置(比如.

2021-12-14 14:46:30 540

原创 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 260

原创 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 539

原创 各种宏的定义及作用

#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 603

原创 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 1481

原创 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 12529 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 382

原创 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 5203

原创 并行运算遇到的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 7233 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 1007

原创 Gambit学习2-曲面挖洞

今天画分布板的时候,想在曲面挖一个洞。想了一会儿才想出一个解决方案,不知道是不是最简单的,但是好使嘻嘻。其实这也就相当于:画一个与洞的半径一致的圆筒 将圆筒平移到挖洞的位置,connected 用曲面切割圆筒,记得选择connected 这时候会出现切割线,复制这个切割线 删除掉被切割的圆筒,剩下的切割线就是和曲面贴合的线了 复制移动它,分布好孔之后 用这些线切割曲面,connected,这时就把洞和曲面分离了 在边界条件里洞定为interior,切割剩下的曲面定为wall..

2021-11-17 14:40:25 402

原创 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 639 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 4390

原创 感觉这个图把指针可视化了

来源:C++数据结构与算法(第4版) Adam Drozdek著 徐丹 吴伟敏 译

2021-11-12 11:05:13 673

原创 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 2523

转载 #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 3198

原创 排序算法学习

冒泡排序(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 91

原创 linux自学ing

1.文件描述符文件描述符概述_有点小奇怪的博客-CSDN博客_用户文件描述符文件描述符是非负整数,是文件的标识。用户使用文件描述符(file descriptor)来访问文件。利用open打开一个文件时,内核会返回一个文件描述符。每个进程都有一张文件描述符的表,进程刚被创建时,标准输入、标准输出、标准错误输出设备文件被打开,对应的文件描述符0、1、2 记录在表中。在进程中打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,并将此文件描述符记录在表中。注意:Linux中一个进程最.

2021-11-05 11:54:23 66

原创 spaceclaim简单建模5

​​​​​​spaceclaim简单建模_imastrid的博客-CSDN博客spaceclaim简单建模2_imastrid的博客-CSDN博客spaceclaim简单建模3_imastrid的博客-CSDN博客spaceclaim简单建模4_imastrid的博客-CSDN博客画完粗旋风分离器之后,我要画细旋风分离器了,同样的操作获得数据。...

2021-11-03 21:00:24 2427

原创 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 1453

原创 spaceclaim简单建模3

继续前面两个建模,又多了一点领悟:​​​​​​spaceclaim简单建模_imastrid的博客-CSDN博客spaceclaim简单建模2_imastrid的博客-CSDN博客在画弯管的时候,尺寸最重要的应该是,竖管中心轴的位置,从图纸读出它离反应器中心轴距离是3450mm,和管的内径700mm。其它弯度不是很重要。当然如果知道横管的中心轴的位置也最好啦,我从图纸没读出来,所以就自己定一个。老师跟我说,先画竖管,再画横管,然后再把它们接起来。1. 从中心轴建一个平面,然后移动它到34

2021-11-03 11:32:25 4074

原创 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 748

原创 C++代码的一些函数

sprintfsprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。fopenopen的函

2021-10-29 11:02:59 249

原创 spaceclaim简单建模2

继上一个简单建模,继续给反应器加弯管,并且使弯管相切,以下是我自己的方法,其他方法不知道咋做,但应该有更简单的。1. 取两个垂直的平面2.在其中一个平面画圆圈直径700mm,然后拉伸,获得一个圆柱3.然后在这画弧线,用三点确定一个圆弧,计算一下需要的弧半径,这里起点是圆柱面中心,终点是45°方向与圆柱侧边同高度的地方,这样的画弧半径应该是350mm,即700的一半。4. 选圆柱顶面,沿着这个弧线扫掠。获得:5. 再拉伸这个面,得向上的管...

2021-10-27 20:09:26 4443

原创 spaceclaim简单建模

1.打开spaceclaim2.根据尺寸用线画外壳半截面3.然后取消草图,绕轴中心旋转360°4.选择截面继续在对应位置画分布板的线条5.取消草图,绕轴中心旋转360°6.选择相交里面的组合,选择主体,然后选择画好的分布板面。会自动分割实体,获得两个实体7.在分布板上画圈,或者任何分布板的孔形状8.在画网格时,设定好哪里是wall,哪里是outlet......

2021-10-26 16:35:53 11427

原创 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 1186

原创 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 1002

原创 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 7779 4

原创 openFoam网格绘制总结笔记

1. 如何运行一个算例openFOAM网格绘制教程1:如何运行一个算例 - 知乎1)openFOAM结构在这个文件系统中system存储的是算例求解的一些基本信息,主要包含三个文件:controlDict:这个文件中有一系列参数可以控制计算的起始时间,时间步长,输出精度等。fvSchemes和fvSolution:主要规定了CFD的离散格式以及求解方法等,要了解这两个文件的设置需要有一定的流体力学基础。此外还有一个blockMeshDict文件,这个文件的作用就是为block

2021-10-12 15:09:52 15517 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 396

原创 openFOAM C++代码的一些特性

数值耗散和数值频散由于cfd旨在用差分方程代替微分方程,所以差分方程是微分方程的逼近,但二者之间总有误差。误差由阶次不同,可造成解的耗散和频散,其中耗散就如给流场添加了人为的粘性一样,使得本来尖锐的突越变得平滑,分辨率降低。简单的说截断项中偶数阶微分的存在使得解具有耗散性,奇数阶微分的存在使得解具有频散性。比如一道正弦曲线,耗散使之幅值变低,而频散使之相位和周期发生变化。https://zhidao.baidu.com/question/399291950.html对非线性化项的处理

2021-08-26 15:45:26 2662 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 526

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除