Simulating capillary bloodflow
Hi everybody,
I am trying to build a simple model for blood flow in the capillary. Since the fraction of red blood cells (RBC) is not negligible, it is necessary to solve them explicitly. Generally, the RBC is larger than the capillary, and as a result, they are deformed while they are in the capillary. I have come across the solid4foam, which might be a good starting point. However, I have few questions: 1. The distance between the deformed RBC and the capillary is very small. As a reference, assume that the capillary radius is 4 microns, and the capillary radius is approximately 3.9 microns. The normal overset method failed because the mesh around the object was too small. I saw that zero-gap implementation exists for star-ccm+ (https://www.youtube.com/watch?v=RYKolUSipLQ), but could see if OF implements it. 2. I need to introduce dynamically new blood cells at the beginning of the capillary. I decided to test the mesh motion with pimpleDyMFoam, implemented in foam-extend-5.0. This is expected to solve the problem (1). I had some progress, but nothing conclusive yet. Would love to hear any comments. |
Are you able to get the test case at https://www.youtube.com/watch?v=RYKolUSipLQ to work with pimpleDyMFoam in foam-extend-5.0 or OpenFOAM-v2212 (or similar versions)?
That seems like a good first step to see if either overset implementation is sufficient for your needs. |
Quote:
The link with the zero-gap technology is starCCM. When I tried a similar case with OF, it removed the boundary when the objects collided. I tried both foam-extend-5.0 and OpenFOAM-v2212. However, I decided to proceed only with foam-extend-5.0, because pimpleDyMFoam was implemented only there. So far, I have attempted the following: 1. I tried to change the twoCylinders tutorial to support a motion along the flow (and not perpendicular, as it was in the tutorial). This failed as I got some strange spurious flow near the object (the from and back zoned of the moving domain were far...) Even if it worked, it would pose a problem in the future as it supports only prescribed motion and I want to solve the motion of the submerged red blood cells. 2. dynamicMotionSolverFvMesh with displacementLaplacian motion solver. Then, I used the sixDoFRigidBodyDisplacement boundary condition in the pointDisplacement. This method shows potential, as it solves the motion of the object, could support very close mesh and multiple bodies. However my problem now is that the mesh gets distorted and I need to remesh it. 3. I am currently trying to use the dynamicTopoFvMesh with displacementLaplacian motion solver. I hope that this will remesh the solution every couple of iterations. The problem is that I get the annoying message Quote:
3. If all else fails, I could always write an external python routine that performs the remesh, copies the solution using mapFields, and runs it further. However, it seems like a very dirty solution, and I would happily avoid it. Any thoughts? |
In addition, mapFields uses a first-order mapping/interpolation, which is very diffusive, so I expect your solution would be polluted very quickly; although you could use the second-order mapConservativeFields that is available somewhere online.
OpenFOAM.com has overPimpleDyMFoam, e.g. OpenFOAM-v2212/applications/solvers/incompressible/pimpleFoam/overPimpleDyMFoam. Have you tried that or an earlier version of it? |
All times are GMT -4. The time now is 15:25. |