hemelb-codes / hemelb

A high performance parallel lattice-Boltzmann code for large scale fluid flow in complex geometries
GNU Lesser General Public License v3.0
35 stars 11 forks source link

Move cell from buffer to physical iolet #447

Open schmie opened 9 years ago

schmie commented 9 years ago

Reported by mdavezac on 22 Apr 2015 12:58 UTC Given:

schmie commented 9 years ago

Modified by mdavezac on 22 Apr 2015 12:58 UTC

schmie commented 9 years ago

Modified by mdavezac on 20 May 2015 10:41 UTC

schmie commented 9 years ago

Comment by mdavezac on 27 May 2015 06:38 UTC

Setup

There are three geometric zones:

  1. the vascular system
  2. a cylindrical drop zone where cells can appear. This is cylinder should be contained within the iolet cylinder zone itself. It should not expand all the way to the fluid iolet.

Usage

  1. make a request for n new cells via Buffer::requestNewCell(n)
  2. ask the buffer to drop those cells if there is enough space available in the drop zone, via Buffer::operator()(callback). The callback takes a new cell as input and does what it does with new cells, e.g. call CellArmy::AddCell.

In practice, a Buffer instance can be passed on to CellArmy::SetCellInsertion. The Buffer object gets its own virtual cells from yet a separate object. This means we can use the buffer with different cell distributions, e.g. the columns of ColumnCellDrop, or something more advanced. The buffer's job is to mediate between the vascular system and the distribution of virtual cells.

styling commits: 8e0c11c38101, e62a06395975, 71fc18e4ef09, 3cf7fd5c5f24, f67fd6895724, 999733903a73, 5a8d8b9cd3c0, d439c9755d0b, and ec5777d552ee commits: e6b0c899a7f3, fb7547866f6b

schmie commented 9 years ago

Modified by mdavezac on 27 May 2015 07:01 UTC