UvaCsl / HemoCell

HemoCell is a high-performance suspension code for simulating blood flows developed by the Computational Science Lab at the University of Amsterdam.
https://computationalscience.nl
Other
45 stars 17 forks source link

Adhesion model #13

Closed nahidrahmati closed 2 years ago

nahidrahmati commented 2 years ago

Hello, I have two different question: first of all, our group had developed an adhesion model between the cells and wall-Cell in previous version of hemocell (V 2.0), and it works (https://doi.org/10.1038/s41598-021-94735-y), the method was that we added some adhesion force between the cells and cell-wall in applyRepulsionForce and applyboundaryRepulsionForce in hemoCellParticleField.cpp. When I add this model in the new version, it did not works, and the force will not increase. Although I enabled the repulsion force in main case. is there any change in the repulsion Force with previous version, that I should consider for applying my model? second, I notices that you defined in the website there is a model for adhesion between Cells that results in binding them together and solidify them. Is its model released in new version? which mathematical model has been used? Regards, Nahid

MaxvdKolk commented 2 years ago

Dear @nahidrahmati,

Although I enabled the repulsion force in main case. is there any change in the repulsion Force with previous version, that I should consider for applying my model?

I am not sure if there are any breaking changes in the code with respect to version v2.0 (I started working on/with HemoCell after v2.2). As far as I can see, if you enable the boolean flags repulsionEnabled and boundaryRepulsionEnabled both the cellfields->applyRepulsionForce() and cellfields->applyBoundaryRepulsionForce() are evaluated during the main HemoCell::iterate() loop. Note though, that these are only evaluated at the intervals iter % cellfields->repulsionTimescale == 0 and iter % cellfields->boundaryRepulsionTimescale == 0 respectively. The intervals should equal 1 by default, so it should not be necessary to set them if you which to evaluate these functions every iteration.

I notices that you defined in the website there is a model for adhesion between Cells that results in binding them together and solidify them. Is its model released in new version? which mathematical model has been used?

The code does indeed support a basic implementation of solidification. However, this feature is still undergoing development and its implementation is still an experimental feature, which is why we do not provide a complete example case yet. If you wish to play around with this, that is possible, but note that there will not be extensive documentation on these features (such as the used mathematical models etc) and parallel versions remain to be tested and validated.

nahidrahmati commented 2 years ago

I activated the solidification by adding target in Cmake file. It seems that it does not work well. Should I define the Threshhold distance and shear in material model of each Cell? In addition, based on the Code when the distance is smaller than the threshold, the solidification will be True (in HemocellparticleField.cpp), but I do not know how it work, does it add any adhesion force to the Cells? where can I find the mathematical model of adhesion in the Code?