最近在尝试使用palabos的gridRefinemet功能进行网格加密的设定,顺便阅读了相关的.h文件,在palabos目录为\src\gridRefinement
以下均是本人不太成熟的理解,如果有误欢迎在评论区指出。
boxLogic3D.h
包含了各类几何类型的结构体的定义(与坐标轴平行的平面、带方向的平面、与坐标轴平行的边、带方向的边、角点)以及这些几何形状的合并与输出。
couplingActionsGenerator3D.h
class MultiLevelActions3D
包含一个完整的网格加密的lattice的全部必要信息。
private:
OctreeGridStructure ogs;
Dynamics<T,Descriptor> *dyn;
plint order;
plint overlapWidth;
private:
std::vector<Group3D*> groups; //multilevellattices存放在这里
std::vector<CouplingInterfaces3D*> interfaces;
bool filterAll;
这个类可以定义各个level的actions,即可以定义浸入式边界的信息,其中action的定义在 .\src\multiBlock\coupling3D.h 路径下。
还有几个其他函数,如下,还没有细看:
template<typename T, template <typename U> class Descriptor,
template<typename T2, template<typename U2> class Descriptor2> class Engine>
std::vector<Group3D*> generateLattices(Dynamics<T,Descriptor>* dyn, OctreeGridStructure const& ogs, plint envelopeWidth=1);
template<typename T, template <typename U> class Descriptor>
void g