
Palabos入门教程&初学
Palabos tutorial,User Guide的解读
方雨岚(Yulan Fang)
这个作者很懒,什么都没留下…
展开
-
Palabos转为GPU并行运行
AcceleratedLatticeAcceleratedLattice3D 类似于MultiBlockLattice3D。同理,AtomicAcceleratedLattice3D也是类比于BlockLattice3D。在原有grid上定义的Cell<T,Descriptor> *rawData;Cell<T,Descriptor> ***grid;成为了T *populations, *tmpPopulati原创 2022-04-05 09:20:51 · 1074 阅读 · 2 评论 -
Palabos保存模拟进度,关机后下次继续
出自手册:11.7 Checkpointing: saving and loading the state of a simulationcodesByTopic/io/checkPointing.cppusing namespace std;……plint iniT, endT;if (argc != 3) { pcout << "Error; the syntax is \"" << argv[0] << " start-iter end-ite原创 2022-03-19 06:24:24 · 722 阅读 · 1 评论 -
Palabos笔记:两种定义形式
1OnLatticeBoundaryCondition3D<T,DESCRIPTOR>* boundaryCondition = createLocalBoundaryCondition3D<T,DESCRIPTOR>();function1(lattice, parameters, *boundaryCondition);void function1( MultiBlockLattice3D<T,DESCRIPTOR>& lattice,原创 2022-01-31 14:05:36 · 738 阅读 · 0 评论 -
在安卓手机上并行运行Palabos程序
前言换手机后,安卓手机就不怎么用了。经过一番调查,发现安卓手机是可以作为小服务器,搭建个人博客,当作终端使用的,甚至还可以用来跑Openfoam。跑Openfoam这个project的网址是:https://cfd.fossee.in/case-study-project/case-study-run/208甚是有趣,由此我便实验用手机跑Palabos。实现步骤测试机型:小米8软件安装实现的原理也是比较直接,打开手机浏览器搜索Termux,去他们官网找到app安装。命令行设置打开之后,进入命原创 2022-01-26 13:28:56 · 4611 阅读 · 0 评论 -
Palabos源码:InstantiateImmersedWallData3D
/* ******** InstantiateImmersedWallData3D ************************************ */template<typename T>InstantiateImmersedWallData3D<T>::InstantiateImmersedWallData3D ( std::vector< Array<T,3> > const& vertices_,原创 2021-09-27 12:44:55 · 443 阅读 · 0 评论 -
Palabos输出stress的note
因为张量是对称的,所以输出参数需要设置为6个分量的Array,palabos中的stress等参数输出可以像速度一样调用同样类型代码。原创 2021-08-30 14:39:54 · 238 阅读 · 0 评论 -
Palabos笔记:输出Omega
来源:https://www.researchgate.net/post/Is_it_possible_to_extract_the_value_of_a_variable_from_a_template原题注想要输出Omega来验证自己的算例。实际需要:imageWriter.writeScaledGif(createFileName(“omega”, iter, 6),*computeOmega(lattice , Box2D(0,nx-1, 0,ny-1)),imSize, imSize );原创 2021-08-30 14:41:02 · 351 阅读 · 0 评论 -
Palabos的LES-MRT D3Q19
/// MRT D3Q19 lattice. The numbering follows the one in "Multiple-relaxation-/// time lattice Boltzmann models in three dimensions", D. D'Humières, /// I. Ginzburg, M. Krafzcyk, P. Lallemand, L.-S. Luo,/// Phil. Trans. R. Soc. Lond. A (2002) 660, p. 437原创 2021-05-30 16:58:47 · 1322 阅读 · 2 评论 -
MATLAB读取paraview所存流场数据的CSV,并重新生成对应尺寸矩阵
Palabos一般输出为vti格式文件,我这段时间为了处理数据的格式转化,研究了一下这些数据的构成。基本上通过paraview可以很方便的保存整个时间段的模拟输出,格式为csv,然后通过matlab遍历读取csv,存入矩阵,再reshape即可得到流场的矩形数据。如果是二维的,直接contourf则可以查看。如果是3D的数据,需要通过velocity(:,:,25)这样的手段来访问z轴第25行的截面。值得注意的是,代码是按照文件命名读取csv,所以csv文件有几百个的时候,确保前100个的命名末尾是0原创 2021-05-18 20:32:08 · 1438 阅读 · 0 评论 -
error: invalid initialization of reference of type ‘plb::MultiContainerBlock3D&’ from expression of
最近在某学校的服务器上装老版本的Palabos,结果编译的时候还有这回事:error: invalid initialization of reference of type ‘plb::MultiContainerBlock3D&’ from expression of type ‘plb::MultiContainerBlock3D*’|查了一下:把src\gridRefinement\couplingInterfaceGenerator3D.h的第145行改成:return *data原创 2021-04-13 23:59:39 · 670 阅读 · 2 评论 -
稍稍看了眼Palabos算例cylinder3d | 动量交换计算drag/lift
这个算例是最近更新的palabos版本才有的算例,它多出了升阻力(英文是drag和lift,如果我没翻译错的话)的计算。后续是定义了foreceIds这个三维数组的,后续是要求和的,这里subscribe意味登记一下id,简言之就是预定好了这些lattice以后要求和。lattice.toggleInternalStatistics(true); forceIds[0] = lattice.internalStatSubscription().subscribeSum(); forceI原创 2021-04-03 02:30:08 · 748 阅读 · 0 评论 -
Palabos 版本更新
2.2.0增加了一个耦合模拟器,使得Palabos与更复杂的耦合如npFEM包的耦合变得可能。增加了Cuda附件,红细胞模拟算例,cylinder3d算例,2D的MultiBlock生成,HDF5的支持。Filippova-Haenel边界条件修改,使其与文献相符。之前的FilippovaHaenelModel3D修改为MeiLuoShyyModel3D,新增的Filippova-Haenel边界条件为FilippovaHaenelLocalModel3D。(之前是错误命名了)移除了scons编译原创 2021-04-03 02:02:44 · 795 阅读 · 0 评论 -
Palabos程序示例 | 更新了stl-inspection
我在github的SampleCodesofPalabos中添加了一个用于检查stl导入情况的算例,它基于cavity3D添加了stl文件读取的部分。stl文件不影响这个算例里流体的模拟,仅供一个直观的大小参考。流域的尺寸是100100100,stl文件的中心会被移动到坐标轴原点,后续需要移动到指定位置可以使用translate语句,如果需要旋转调整方向可以参考我的往期博文。...原创 2021-03-26 21:32:03 · 487 阅读 · 0 评论 -
Palabos utility:rotateAtOriginSTL
作用是将stl文件沿着某个轴旋转,语法如下,作用为沿着y轴旋转12度。./rotateAtOriginSTL inputSTL.stl 0.0 1.0 0.0 12.0 outputSTL.stl原创 2021-03-26 20:23:51 · 220 阅读 · 0 评论 -
Palabos utility:mergeSTL
使用代码为:./mergeSTL [FLT | DBL | LDBL | INF] outputSTL.stl inputSTL1.stl inputSTL2.stl原创 2021-03-26 18:14:32 · 238 阅读 · 0 评论 -
Palabos utility:cutSTL
语法是输入一个stl文件,然后输入一个切开面的坐标x,y,z,再输入一个法向量x,y,z。会保存两个stl文件,一个是法向量正向方向的部分,另一个是法向量负向方向的部分。原创 2021-03-26 18:09:11 · 224 阅读 · 0 评论 -
Palabos论坛笔记:MomentumExchangeBounceBack计算drag
根据动量交换计算drag和lift,这里的drag是格子单位的力。原创 2021-03-26 17:34:18 · 268 阅读 · 0 评论 -
Palabos utility:stlCheck
在palabos的utility文件夹里,主要存在stl和vtk两个文件夹,在stl内有stlCheck这样的文件夹。在这里,我们可以对自己的stl文件进行检查,如果有问题,可以去如meshlab这样的软件进行修复。我在算例generalExternalFlow中复制了他的cube.stl进行了一次测试。先编译一下,再输入./stlCheck DBL cube.stl...原创 2021-03-23 17:15:35 · 318 阅读 · 0 评论 -
Palabos中的单位转换
当我们每次运行palabos算例的时候,tmp文件夹都会附上一个log文件,在这里我们可以检查算例的尺寸,雷诺数等信息。其源码对应位置在src/core/units.h中,如下:template<typename T>void writeLogFile(IncomprFlowParam<T> const& parameters, std::string const& title){ std::string fullN原创 2021-03-08 02:34:19 · 1043 阅读 · 1 评论 -
Palabos论坛笔记:关于c的单位转换
原贴:https://palabos-forum.unige.ch/t/the-physical-units-and-lb-units/126作者疑问:为何dx等于1/100,dt为210-4,c=dt/dx,原创 2021-03-07 23:05:21 · 515 阅读 · 0 评论 -
Palabos论坛笔记:如何在模拟中施加重力
其实这个操作相当容易,使用GuoExternalForceBGKdynamics,这样碰撞时会考虑到外部力场的作用,所以再定义一个外立场即可。这篇论坛很有意思,这是七年前提出的帖子,在2020年有人在底下回复,原作者还出现并解答了。地址:https://palabos-forum.unige.ch/t/including-gravity-in-the-aneurysm-model/1396Including Gravity in the Aneurysm Model// The aneurysm原创 2021-02-05 03:18:32 · 790 阅读 · 6 评论 -
测试了一下Palabos访问cell的population
之前在论坛和其他地方,得知了一些访问f’s的方法,但是不够确信,现在跑多次测试看看效果。结论:cell[iPop],lattice.get(ix,iy,iz)[iPop],cell.getRawPopulations()三者得到的结果相同。原创 2020-12-14 12:36:52 · 319 阅读 · 0 评论 -
windows 10运行palabos2.0最方便的办法是安装ubuntu
平时我是用双系统的,但是有时候就想调试一下程序去linux,来回重启切系统相当麻烦。所以我还是选择装了微软的Ubuntu。命令行输入:sudo apt-get install updatesudo apt-get install gccsudo apt-get install build-essential可以装一下openmpi,否则每次运行2.0的palabos都需要手动修改一下makefile里面的mpi设置。直观感受就是编译速度明显降低了很多,从5s编译完成变成了大概编译1-2分钟,原创 2020-11-20 20:20:51 · 1571 阅读 · 0 评论 -
从OpenLB手册上我们可以学到Palabos方面的什么?
提示:本次对OpenLB的阅读,仅仅对本人感兴趣的篇章进行介绍。目录关于BlockLattice关于边界条件关于安装openmpi与paraview关于数据结构Cell,BlockLattice,SuperLatticeDescriptor外力附录License关于BlockLatticeBlockLattice2D<T, LATTICE>实际上是一个nxxyq的T类型数组。int nx, ny, someX, someY, someF;// <...> some c.原创 2020-10-17 03:06:16 · 2522 阅读 · 1 评论 -
Palabos Summer School Note 2: Data Processors
三种扩展Palabos的方法Lattice Descriptor: 如AdvectionDiffusionD3Q19DescriptorDynamics Objects:如碰撞步骤Data Processors:所有其他的Palabos扩展,如耦合其他模型数据处理器Data Processors我记得以前在Palabos论坛上看过写入envelope的数据不会改变该格点的值,未确认是否为事实。耦合例子上图为一个典型的数据处理器模板,基本上所有的数据处理器都含有这些内容。几原创 2020-10-12 22:08:26 · 601 阅读 · 0 评论 -
Palabos Summer School Note 1: Software Architecture
网址:https://www.youtube.com/watch?v=g_rGh3fS2Dg&list=PLmhFkUZSrlCc5k-kNvGSHBfbsodriv7qb记录一下2020Palabos夏校复播的内容Palabos历史~2005: Palabos的前身:Vladvmir, OpenLB2010: Palabos的第一个版本2011:由日内瓦大学和FlowKit共同开发2018:Numeca公司/Flowkit开发商业软件Omnis/LB2018:日内瓦大学/hepia(原创 2020-10-11 23:09:39 · 589 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | 浸入边界法 | Moving Wall
今日看了一天Movingwall算例,又去看了很多关于lbm,ibm的论文,基本上是没有什么畏难情绪,只是该死的无从下手。Movingwall算例80%内容都比较好懂,剩下20%的确是不知所云,但也不影响应用。movingwall里应用的ibm算法似乎并不健全,与我们预想的ibm方法不太一样,当然也因此更容易理解。待有时间来此写一下代码解析。...原创 2020-03-23 05:48:50 · 4601 阅读 · 8 评论 -
Palabos程序示例 | boolMask应用 | 如何导入通过二值化图片制作的3D数据至流场
最终效果图片预处理PS类软件这里生成的画布为90×270,在中间输入文字后,保存为3D.png。Matlab关键代码节选因为在Palabos里,它的数据读取方式如同下面的形式:% for X→Xlength{% for Y→Ylength{% for Z→Zlength{% write to(nx,ny,nz);% }}}所以我们...原创 2020-03-26 22:10:40 · 984 阅读 · 1 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_2 | tutoria_2_4自动设置multiBlock
与Tutorial_2_2实现的区别在Palabos tutorial里,2_2仅仅移除了11%的域,而2_4移除了45%。在2_4里,所有的流域都由15×15的小格子拼接,覆盖完半圆的管道。图片来自Palabos Tutorial与Tutorial_2_2代码的区别在Tutorial_2_4中,多出了定义流体节点的模板类。> template<typename T&...原创 2020-03-21 18:04:51 · 708 阅读 · 3 评论 -
Palabos程序示例:boolMask应用:如何导入二值化图片至流场
最终效果图片预处理PS类软件这里生成的画布为300×900,在中间输入文字后,保存为1.png。当然你可以不像我这样保存翻转过来的。Matlab二值化处理clearclc// Here the size of 1.png is 300*900 A=imread('1.png'); thresh=graythresh(A)B=im2bw(A,thresh);B=flipu...原创 2020-03-21 05:19:20 · 1067 阅读 · 8 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_2 | tutoria_2_2手动设置multiBlock
//部分代码 from tutorial_2_2template<typename T>class BounceBackNodes : public DomainFunctional2D {public: BounceBackNodes(plint N, plint radius) : cx(N/2), cy(N/2), ...原创 2020-03-19 04:37:03 · 887 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_1 | tutorial_1_7 文件输出部分vtk output
void writeVTK(MultiBlockLattice3D<T,DESCRIPTOR>& lattice,IncomprFlowParam<T> const& parameters, plint iter) {T dx = parameters.getDeltaX();T dt = parameters.getDeltaT();VtkIma...原创 2020-03-14 20:10:56 · 596 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_1 | tutorial_1_5
/* This file is part of the Palabos library. * * The Palabos softareis developed since 2011 by FlowKit-Numeca Group Sarl * (Switzerland)and the University of Geneva (Switzerland), which jointly ...原创 2020-03-13 05:53:36 · 1051 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_1 | tutorial_1_4 数据处理部分Data Analysis
Array<T,2> velocity; lattice.get(nx/2, ny/2).computeVelocity(velocity); pcout << "Velocity in the middle of the lattice: (" << velocity[0] << "," << ve...原创 2020-03-13 01:21:24 · 754 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_1 | tutorial_1_2
/* This file is part of the Palabos library. * * The Palabos softare is developed since 2011 by FlowKit-Numeca Group Sarl * (Switzerland) and the University of Geneva (Switzerland), which jointly ...原创 2020-03-13 00:37:43 · 1332 阅读 · 0 评论 -
Palabos程序代码解读(Code Explanation) | tutorial_1 | tutorial_1_1
/* This file is part of the Palabos library. * * The Palabos softare is developed since 2011 by FlowKit-Numeca Group Sarl * (Switzerland) and the University of Geneva (Switzerland), which jointly ...原创 2020-03-10 06:11:43 · 1721 阅读 · 0 评论 -
Palabos User Guide中文解读 | 第十六章 | 非局部操作的数据处理器和Block之间耦合
作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。Palabos User GuideRelease 1.0 r1Copyright © 2019 University of GenevaJul...原创 2020-03-09 01:40:48 · 745 阅读 · 0 评论 -
Palabos User Guide中文解读 | 第十五章 | 并行计算
作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。Palabos User GuideRelease 1.0 r1Copyright © 2019 University of GenevaJul...原创 2020-03-06 02:53:51 · 962 阅读 · 0 评论 -
Palabos User Guide中文解读 | 第十四章 | 网格加密Refinement
作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。Palabos User GuideRelease 1.0 r1Copyright © 2019 University of GenevaJul...原创 2020-03-05 02:37:19 · 873 阅读 · 0 评论 -
Palabos User Guide中文解读 | 第十三章 | 粒子
作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。Palabos User GuideRelease 1.0 r1Copyright © 2019 University of GenevaJul...原创 2020-03-04 14:17:49 · 647 阅读 · 3 评论