CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Simulating capillary bloodflow (https://www.cfd-online.com/Forums/openfoam-solving/248035-simulating-capillary-bloodflow.html)

yeharav February 21, 2023 12:52

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.

bigphil February 24, 2023 11:28

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.

yeharav February 27, 2023 12:35

Quote:

Originally Posted by bigphil (Post 845161)
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.

Hi,

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:

--> FOAM FATAL ERROR:
Cannot find a triangular face bordering face: 226188 :: 4(111620 99530 120357 122152)

From function inline label dynamicTopoFvMeshLocal::getTriBoundaryEdge(const label fIndex) const
in file dynamicTopoFvMeshLocalI.H at line 202.

FOAM aborting
I get it on a simple blockMesh grid in 2D or 3D meshes.


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?

bigphil April 27, 2023 12:16

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.