Biomedical Engineering Workshop Session 3: Blood flow in a Carotid Artery Bifurcation



In this exercise, we will focus on simulating the flow of blood as a non-newtonian fluid through a Carotid Artery Bifurcation. The simulations are performed for 3 cases - the first, with a healthy blood vessel with no calcification or blockage; the second, through a moderately calcified blood vessel and the third, through a severely calcified or occluded blood vessel. The results will show the differences in pressure, velocity profile, and the outlet flow through the 2 branches.

The image below shows an overview of the 3 different cases:

This tutorial presents a step by step approach for simulating the third case with 85% occlusion of the Artery. The first 2 cases can then be done by duplicating the setups and following similar steps.

To start this exercise, please import the project into your workspace by clicking on the link below:

Mesh Generation

In the Mesh Creator tab, click on the geometry Case -3-85-pc-blocked

Then, click on the New Mesh button in the options panel.

Select the mesh Type Hex-dominant parametric. Then specify the following parameters:

  • Number of cells in X-direction: 45
  • Number of cells in Y-direction: 150
  • Number of cells in Z-direction: 20
  • Number of computing cores: 16

Click Save to preserve the mesh settings

After saving the Navigator is expanded with 2 new entries, called Background Mesh Box and Material Point which must be defined.

The Background Mesh Box defines the reference bounds of the base mesh. Enter the values as shown or use the default values:

  • Min X= -0.019
  • Min Y= -0.065
  • Min Z= -0.004
  • Max X= 0.013
  • Max Y= 0.0415
  • Max Z= 0.01

Click Save to preserve the mesh settings

The Material Point specifies the region that will be meshed. So in this case the point must be inside the body.
Enter the values:

  • Center X= 0.0025
  • Center Y= 0.001
  • Center Z= 0.0025

Click Save to preserve the mesh settings

We will create a new geometric entity that will be later used for refinement of the narrow blocked region.

To create a New entity, click on Geometry Primitives and then the +New button on top to select a Cylinder entity.

Enter the values as shown:

  • Reference Point (x): -0.01
  • Reference Point (y): -0.043
  • Reference Point (z): 0
  • Axis (x): 0.0055
  • Axis (y): 0.016
  • Axis (z): 0
  • Radius: 0.003

Click Save to preserve the mesh settings

We will now add the necessary mesh refinements for the previously created geometry sets and the geometry primitives.

Click on Mesh Refinements and click +New button to add a refinement.


This refinement will be used to refine the surfaces for the complete solid geometry. Select the settings as follows:

  • Name: Ref-surface
  • Type : Surface refinement
  • Level Min : 2
  • Level Max : 2
  • Assigned entity Type: Volume
  • Entity: solid_0

Click Save to preserve the mesh settings

To create another refinement, hover your mouse over Mesh refinements and right-click to select Add mesh refinement.


The layer refinement is important to capture the behavior near the wall. This will create layer cells following the surface curvature near the walls.

Add a new Mesh Refinement, and choose:

  • Type : Inflate boundary layer
  • Change Number of layers: 3
  • Keep the rest to default

Under the selection box, select the surfaces:

  • shell_0_face_0
  • shell_0_face_2
  • shell_0_face_3

Click Save


The feature refinement will refine near edges. This is important to capture sharp corners.

Add a New Mesh Refinement, and choose Type as Feature Refinement

Give a Distance of 0.0005 and a Level of 3.


These regional refinements will refine the volume mesh. The first is for the entire inner region

Create a new Mesh Refinement enter the settings as follows:

  • Name: Reg-volume
  • Type : Region refinement
  • Mode : Inside
  • Distance : 1
  • Level : 1
  • Under Refined regions box select: solid_0

Then click Save


The next region is for the narrow blocked area. So create another ‘Mesh Refinement’ and enter the settings as follows:

  • Name: Reg-blocked
  • Type : Region refinement
  • Mode : Inside
  • Distance : 1
  • Level : 3
  • Under Assigned Geometry Primitive box select: Cylinder

Then click Save

Now click back on the main mesh Operation 1, scroll down in the settings panel to Mesh Quality controls and change the 3 parameters as shown and Save:

  • Max non-orthogonality angle [°]: 65
  • Max concaveness [°]: 70
  • Min cell volume [m³]: 1e-18
  • Note: This is important to get a good quality mesh.

The mesh settings are all prepared, so click the Start button to begin the mesh generation process. This will take about 5 minutes.

Once the process is finished, the mesh is automatically loaded in the viewer.

Additional Meshes

Rather than creating meshes for Case 1 and Case 2 from scratch, it is faster to duplicate the mesh you’ve just created and then change the Base Geometry. To duplicate the mesh, just click on the Case-3-85pc-blocked mesh, then right-click and select Duplicate

Then click on the duplicated mesh, rename the mesh to Case-2-60pc-blocked mesh, change the Base Geometry to Case-2-60pc-blocked and click Save. (click yes on the confirmation/warning message)

Then you will have to Re-assign the corresponding Refinement entities as before.

Once done go to Operation 1. Click Save and Start to generate the 2nd mesh.

Use the same methodology to create the mesh for Case-1-Normal. Once you have created all 3 meshes, proceed to the next section for the simulation setup.


For setting up the simulation switch to the Simulation Designer tab and select +New

Give the simulation a meaningful name: Turb-Steady-BloodFlow-85pc

Select the analysis type: Fluid dynamics and Incompressible

Set the Turbulence model as k-omega-SST and Steady-state. Then click Save.

After saving, the Navigator now looks as shown below. Here the entries in Red must be completed.

Click Domain from the tree and select Case-3-85-pc-blocked mesh. Click the Save button. The mesh will then automatically load in the viewer.

Now we will create topological entity sets to group the faces together.

Click on the tree entry Topological Entity Sets.

Select the shown face from the viewer (left-click selection), then click the Create set button in the tool bar.

Name the set Inlet.

Next select the 2 shown outlet faces from the viewer, then again click Create set button in the tool bar.

Name the set Outlet (it has 2 faces)

Now first we will hide the two created sets, so click the set in the list, from the drop down options select Hide. Also hide the second one (outlets).

Then click on the Select button in the Toolbar [shown by 1], click Select all [2] and click Create Set [3].

Once done, you will have three sets with the shown number of faces:

We now add a Fluid material (Blood). Select the Material item in the Navigator and click New

Specify the given properties to define the non-newtonian model for blood (for details see Documentation):

  • Viscosity model: Bird-Carreau
  • Viscosity at zero shear nu0 [m²/s]: 0.00005283
  • Viscosity at very high shear nuInf [m²/s]: 0.0000032547
  • k [s]: 3.313
  • n [-]: 0.3568
  • a [-]: 2
  • Density [kg/m³] = 1060

Now to assign this fluid to the mesh domain, select the available domain called region0 and click save.

The boundary conditions define the flow variables at the boundary surfaces.

Click on Boundary condition and select +New.


Select the Type as Velocity Inlet, Velocity Inlet Flow Rate and Type of flow rate as Mass flow rate

Mass flow rate [kg/s]: 0.0044

From the selection box, select the previously created Inlet set and click Save


Add another boundary condition, select the Type as Pressure Outlet and keep the other parameters as default. (here the zero value is only a reference)

From the selection box, select the previously created ‘Outlet set’ and click Save

Artery walls

Lastly, add another boundary condition for the Artery walls.

Select the Type as Wall, velocity as No-slip and change the wall treatment to zeroGradient

From the selection box, select the previously created Artery walls topological entity set and click Save

Under the Numerics item in the Navigator, make the following changes to improve the solution accuracy.

Under Simulation Control set the parameters as follows:

  • Start time value [s]: 0
  • End time value [s]: 2000 (these are basically iterations for steady state analysis)
  • Time step length [s]: 1
  • Write control : Timestep with Write interval (simulation time steps)=2000 (to save only the final solution)
  • Number of computing cores: 8
  • Maximum runtime [s]: 9000
  • Initialize with potential flow: false

Click on Simulation runs and create a New run.

Click the Start button at the top of the settings panel to begin the computation.

The simulation will take around 26 minutes to Finish. Once finished, the results can then be viewed.

Additional Simulations

To set up the simulations for the other 2 configurations, you can duplicate the first simulation setup by right-clicking on the Turb-Steady-BloodFlow-85pc and selecting Duplicate. Then continue by selecting the appropriate mesh (Case-2-60pc-blocked mesh or Case-1-Normal mesh) under the Domain item in the Navigator and following the previous steps.


To view the results, switch to the Post processing tab.

Click on Solution fields under Run1 in the navigation tree to load the results. This will take a minute or more depending upon the internet speed. Once loaded it will be as shown in the figure below.

To visualize the internal region we will create 3 Slice filters.The parameters for each are given in the table below:

Slice Filter

To create a Slice filter, click on Run 1 and then the Add filter button. Select the Slice option.

Wait for the filter to apply. Then enter the parameters for Origin and Normal as given in the table.

Uncheck the option Show Plane and click Apply

From the fields drop down (top-left corner) select U [point-data] to view velocity magnitude.

Follow the same procedure to create the Slice 2 and Slice 3. After creating the 3 Slices, the results will look as shown below (Note: be sure to create each slice from Run 1):

To view the body walls, click again on Run 1 as shown and click the eye icon to turn it on.

From the fields drop down (top-left corner) select solid color

Then in the properties, under Representation, change Opacity to 0.3 and click Apply

Lastly, we will add a Streamlines filter to view the 3D flow.

Streamlines Filter

Click again on Run 1 (highlighted in blue) and Add filter to select Stream Tracer

Wait for the filter to apply. Then enter the parameters as below:

  • Center: 0.0025, 0.001 , 0.0025
  • Radius: 0.003

…and click Apply

Then from the fields drop down (top-left corner) select U [point-data] to view velocity magnitude.

Compare the results from each configuration, what observations can you make?


[1] The base CAD model for the Artery used in this homework session is provided by aaron from GrabCAD . It was modified and prepared for CFD analysis.


PDF Version of the Biomedical Engineering Workshop - Session 3

1 Like

Hi there,
this is my comparison for streamlines.
Great simulation :slight_smile:



Hi @l_trefiletti

Great results…! I’m Glad you liked it. :relaxed:


1 Like

Hi there!

Do we follow the exact same procedure for all three cases?


I have successfully run the simulations and can view them. However, I am not able to add simulations to the results viewer. Is there anything I can do to fix this?


@ninakondza yep, you follow the same procedure for the three cases. To make this easier, right click on Turb-Steady-BloodFlow-85pb and click duplicate and then you will have the exact setting already in the project tree (be sure to change the mesh under Domain)

@fojo, can you share a screenshot of where you are having issues? I just tested the post-processor and was able to view your results.


This is what I get when I try to add additional solution fields to the results viewer. I can view the results individually

this is the first succeeful post processing but when I make screenshot it fails WHY? if anyone can help me with it i appreciate the help :slight_smile:

I missed this webinar and I was really hoping to watch the recording before doing the homework. Will the recording be ready soon?


@fojo, sorry you are running into this issue, it seems to be a bug and I’ve reported it to our team.

@warsalkarkhy, I’ve had this happen before - can you try closing out of the project and reopening it? Let me know if it continues to not work.

@cjquijano, we had some technical difficulties with the recordings of this webinar (I believe @Milad_Mafi is working on redoing them as we speak - so hopefully this will be ready in the next day or two).

Hi, I am getting really weird results for all but the 85pc model. I have checked all my work, but I can’t seem to find the cause. Any suggestions as to what might have gone wrong?

Below is a screenshot from my simulation:

Any help is appreciated.

@e_magee, I had a quick look and didn’t see any problems with the setup. Maybe @l_trefiletti can help - here’s the link Luca:

submitted this a few hours ago

1 Like