Microflow 3D  v1.0
MFDatabase data structures

1. MF::Database::Node

The basic container that stores data is Node structure MF::Database::Node.
MF::Database::Node stores basic data for all computing nodes (fluid and boundary) i.e. values of particle distribution function and a pointer to its MFThread.
The key parameters for LBM calculations are the directional values of the probability density distribution function of the momentum for a fictitious particle (material point) in a nodeForAutoThreading, stored in microflow's arrays MF::Database::Node::FQ19.

2. MF::Database::Thread

MFThread is an object of class MF::Database::Thread that collects some number of Nodes of the same type which shares the same additional properties i.e. name, initial and boundary values and they are processed in the same way by functions during a pre-collision and collision steps. Pointers to those functions are kept by the MFThread object. Nodes are stored in a std::vector<Node> type dense array MF::Database::Thread::m_NodeArray_Ptr. Each computational Node has to belong to exactly one MFThread. Now, MFThread also contains propagation table of pointers to nodes divided into two parts and an array of original nodeForAutoThreading coordinates in sparse geometry.

3. MF::Database::ThreadArray

MFThreadArray is an object of class MF::Database::ThreadArray that stores all MFThreads shared pointers. Its MF::Database::ThreadArray::NewThread function allocates new MFThread in memory.