Palabos Summer School Note 1: Software Architecture

网址:https://www.youtube.com/watch?v=g_rGh3fS2Dg&list=PLmhFkUZSrlCc5k-kNvGSHBfbsodriv7qb

记录一下2020Palabos夏校复播的内容
Palabos历史

~2005: Palabos的前身:Vladvmir, OpenLB
2010: Palabos的第一个版本
2011:由日内瓦大学和FlowKit共同开发
2018:Numeca公司/Flowkit开发商业软件Omnis/LB
2018:日内瓦大学/hepia(Geneva School of Engineering, Architecture and Landscape——接管Palabos
当下Palabos已经在github开源,大家可以fork到自己的repository然后开发属于自己的代码。

1

Palabos内物理空间由规则相同的网格表示,网格由2D或3D矩阵表示,在Palabos里我们用Block而不是Matrix来表示。

2

Palabos内有3种Block

  • Block Lattice 储存分布函数和dynamics
  • Scalar Field 相当于一个标量值矩阵
  • Tensor Field 相当于一个向量或者张量值矩阵
3
MultiBlockLattice2D<T, DESCRIPTOR>lattice,(
nx, ny, new BGKdynamics<T,DESCRIPTOR>(omega));//用于生成一个nx,ny的区域,BGK碰撞格式。

通过Sparse Domain我们可以节省计算。
在这里插入图片描述
在这里插入图片描述

4
  • 每个循环被分为碰撞和迁移两部分,在实际的palabos应用中,二者合一(节省运算)。
  • 迁移过程不可自定义。
  • 碰撞过程较为一般化,可自定义。

不同碰撞模型的例子
BGK与线性平衡态:对流扩散方程
BGK与二阶平衡态:不可压缩流
BGK与三和四阶平衡态:可压缩流
Advanced collision models(recursive-regularized,central-momen,…)

5

碰撞步骤是局部运算在格点上,所以它才可被自定义化运行。
在Palabos里,每一个格点都存储了一个Dynamics类型的对象,它定义了这个格点的碰撞步骤算法,以及适用于其他算法,如计算密度,速度等。
在这里插入图片描述

6

通过defineDynamics可以修改指定区域格点的dynamics。
通过bool operator()可以获得更自定义化的指定区域。

7 碰撞迁移机制之外的事情

局部碰撞不具备的:非局部的边界条件,物理作用,与其他模型的耦合
Palabos的应对方法为Data Processors:用户自定义算法,可以为非局部,可手动设置运行或在每一个碰撞迁移循环后自动运行。

8 单位转换(不可压缩流体)

Lx:length
U:velocity
ρ0:density
μ:viscosity
ν:μ/ρ (mu:kinematic viscosity)
Simulation numerical parameters
Nx: resolution of reference length
Ulb: top lid reference velocity
δt: physical value, (s), size of the time interval of one iteration
νlb: kinematica viscosity in lattice units
δx: physical quantity, (m), distance between two neighboring cells. = Lx/(Nx-1)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值