Cases in HemoCell

Pipeflow

The pipeflow case is a very generic case that can readily be used as a basis for many other projects. The domain is a tube (loaded from tube.stl) with periodicity in the x-direction. The domain is (depending on the config files) initialized with Red Blood Cells and Platelets with a hematocrit of 40%

The most important adjustable variables are in the config.xml file.

  • <domain><refDirN> This controls how much fluid cells there are perpendicular to the flow direction, that is the same as the diameter of the pipe. One fluid cell usually translates to 0.5 µm in reality. Therefore, this parameter controls the size of your pipe!
  • <domain><Re> Used to calculate the driving force of the periodic pipeflow system. The Reynolds number corresponds to the one that would be found when the system is run without any cells! Therefore, velocities might be a bit lower than expected with cells present. If you set this too high the simulation will become unstable!
  • <domain><geometry> which stl file do you read in? The default is a simple periodic pipe.

The default *.pos file contain many positions for the red blood cells generated by the packcells tool. When you increase the size of the pipe more cells will fit but only according to these *.pos files. You might want to create your own distributions with the following tool: Generating initial positions for cells.

oneCellShear

The oneCellShear case is used for validation of the material models used in HemoCell. A single cell is initialized in a domain with periodicity turned on in all directions. Then the domain is sheared such that the top moves in the positive x-direction and the bottom in the negative x-direction. The largest diameter is reported and validated against experimental data.

The most important adjustable variables are in the config.xml file.

  • <domain><shearrate> the shear rate in reciprocal seconds, used to calculate the top and bottom velocity boundary conditions.

Furthermore, it is possible to do tanktreading by adjusting ''RBC_HO'' throughout the oneCellShear.cpp file to ''RBC_HO_tt''. This loads the different .pos file present within the directory (RBC_HO.xml and RBC_HO_tt.xml) are the same.

StretchCell

The stretchCell cases used for validation of the material models used in HemoCell. A single cell is initialized in a domain with periodicity in all directions. The only external force is on the outer points of the opposing sides of the cell. In this manner the cell is stretched. This is validated against experimental data.

To compile follow the steps in the user guide or run compile.sh

The most important adjustable variables are in the config.xml file.

  • <parameters><prctForced> controls the percentage of points forced in total (so half on each side). The number should be between 0-1.
  • <parameters><stretchForce> This controls the stretching force and is defined in piconewton.

stretchCell must be run with only one processor, so either ./stretchCell config.xml or mpirun -n 1 ./stretchCell config.xml. This is because the helper that stretches the cell is not made to be used on multiple processors.

The results can be inspected as shown in the user guide, also there are two .gpl files which can be used to create graphs of the stretch. Use the gnuplot program for this.

Parachuting

The parachuting case is a derivative of the pipeflow case with only one cell that is parachuting.

Cellcollision with interior viscosity

This is the cellcollision case with added interior viscosity. This case is used in the paper by de Haan et al. [1]. To generate the cases necessary for this paper please see the Generate folder and the README file therein.

The cellCollision case is a case with (usually) a RBC and a PLT that collide due to a shear flow within the domain. The initial positions can be edited in the corresponding CELL.pos files.

The most important adjustable variables are in the config.xml file.

  • <domain><shearrate> This controls the shear rate that is present across the domain between the two velocity boundaries.
  • <sim><interiorViscosity> This controls how often the interior and exterior fluid cells are determined at the boundary of the cells. If the cells move a lot this can lead to interior viscosity “leaking” to the outside, however we have not experienced this. This method has a low performance impact and can thus be called more often than the following function
  • <sim><interiorViscosityEntireGrid> Recalculate the interior and exterior fluid of every cell exactly with raytracing. This is a very expensive method and thus should not be could that often.
[1]Numerical Investigation of the Effects of Red Blood Cell Cytoplasmic Viscosity Contrasts on Single Cell and Bulk Transport Behaviour. Applied Sciences 8. M de Haan, G Zavodszky, V Azizi, A Hoekstra.