Palabos论坛笔记:如果你想写自己的BounceBack Dynamics

Author: jlatt
Hi,

Bounce-Back is implemented through the class “BounceBack”, which is
declared in src/core/dynamics.h and implemented in
src/core/dynamics.hh . The easiest way to implement your own version
of bounce-back is to copy this code (both the declaration and the
implementation) into an end-user program, change the name from
“BounceBack” to something else, and to modify the function “collide”.

一般在流场中,我们会把固体区域的dynamics设置为BounceBack,这样的格点在LB里面产生无滑移的边界条件,比如算例cylinder2d.cpp中定义圆柱区域,后利用defineDynamics将其设置为BounceBack。

/// A functional, used to instantiate bounce-back nodes at the locations of the cylinder
template<typename T>
class CylinderShapeDomain2D : public plb::DomainFunctional2D {
public:
……
    { }
    virtual bool operator() (plb::plint iX, plb::plint iY) const {
        return plb::util::sqr(iX-cx) + plb::util::sqr(iY-cy) <= radiusSqr;
    }
……
    }
private:
……
};
defineDynamics(lattice, lattice.getBoundingBox(),
               new CylinderShapeDomain2D<T>(cx,cy,radius),
               new plb::BounceBack<T,DESCRIPTOR>);

如果我们想修改BounceBack,可以去复制走src/core/dynamics.h和hh,然后换掉BounceBack名字,再修改里面的collide部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值