tutorial2.4
头文件
#include <iomanip>
#include <iostream>
#include <vector>
#include "palabos2D.h"
#include "palabos2D.hh"
using namespace plb;
using namespace std;
typedef double T;
#define DESCRIPTOR plb::descriptors::D2Q9Descriptor
分辨流体节点
BouncBackNodes
类 BounceBackNodes 定义了流道形状,即两个同心半圆所围区域,圆心位于(N/2, N/2),内圆半径 radius(radius 由用户输入),外圆半径 N/2 。并且能够判断点(iX, iY)是否存在于流道中。若处于流道中,返回 false ,若处于流道外,返回 True 。构造时输入(N, radius)。
template <typename T>
class BounceBackNodes : public DomainFunctional2D {
public:
BounceBackNodes(plint N, plint radius) :
cx(N / 2), cy(N / 2), innerR(radius), outerR(N / 2) {
}
/// Return true for all cells outside the channel, on which bounce-back
/// dynamics must be instantiated.
virtual bool operator()(plint iX, plint iY) const
{
T rSqr = util::sqr(iX - cx) + util::sqr(iY - cy);
return rSqr <= innerR * innerR || rSqr >=<