Building a 3D rigid pipe flow flow test with periodic boundary conditions

208 views
Skip to first unread message

Mengjian Hua

unread,
Feb 1, 2021, 10:13:50 AM2/1/21
to ibamr...@googlegroups.com, Charles Puelz
Hi all,

I am new to IBAMR and I would like to build a 3D rigid pipe flow test with periodic boundary conditions along the axial dimension of the pipe. Do you know which example I should start with? I was also wondering if it is allowed to put immersed boundary points near or at the edges of the periodic domain. In other words, can the immersed boundary points at the edges of one side of the periodic domain interact with the fluid at the other side of the domain?

Best,
Mengjian

Boyce Griffith

unread,
Feb 3, 2021, 3:33:01 PM2/3/21
to IBAMR Users, Charles Puelz
Mengjian —

What you want to do should be possible. IBAMR has built-in support for target points, and they should work at least as long as the point does not cross the periodic boundary. (You can control how much the points move by cranking up the penalty spring constant.) Things may also work when target points cross periodic boundaries — I feel like I made this work at some point, but it probably would be good to put in a test.

You could start with many of the IB examples — maybe ex2 — and modify. In this case, you will want to set up a vertex file with the initial positions of all of the points along the channel wall. If you call this file “channel.vertex”, then you would include in the input file settings for a structure named channel:

IBStandardInitializer {
   max_levels      = MAX_LEVELS
   structure_names = "channel"
   channel {
      level_number = MAX_LEVELS - 1
      uniform_target_stiffness = <<penalty spring stiffness value>>
      uniform_target_damping   = <<penalty damping parameter value>>
   }
}

The vertex file format is very simple — the first line is the total number of points in the file, and then each successive line is the initial position for that point. If you ever need to index particular points, the indexing is all 0-based. (I.e. if you have N points, their indexes are 0…N-1.)

To drive forcing, you also will need a “forcing function”. You can add an input entry like this for a uniform force F = (1,0,0):

ForcingFunction {
   function_0 = "1.0"   // x-component of the force
   function_1 = "0.0"   // y-component of the force
   function_2 = "0.0"   // z-component of the force
}

You also can use analytic functions of time and position, including “if” statements.

Finally, you will want to set up periodic boundary conditions at least in the x direction:

CartesianGeometry {
   domain_boxes = [ (0,0,0),(N_x - 1,N_y - 1,N_z - 1) ]
   x_lo = 0,0
   x_up = L_x,L_y,L_z
   periodic_dimension = 1,0,0    // periodic in x but not in y or z
}

— Boyce

--
You received this message because you are subscribed to the Google Groups "IBAMR Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibamr-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ibamr-users/CAOPt3TPVB7inojB70kZ1tjefM9DM8_3z2CF0%2BdFj5YfQviEsCg%40mail.gmail.com.

Yiming Gan

unread,
Aug 24, 2023, 1:54:56 PM8/24/23
to IBAMR Users
Hi all,

The setup in IB/ex2 is useful for my pipe flow case. However, I want to only fixed both ends of the pipe (0 displacement), and allow the pipe to deformed (with a pressure boundary condition applied to both ends). I wonder if this example is the right one to look at. I also need to define a young's modules for the pipe. Should I look at IBFE in that case?

Thanks for reading! 

Best,
Yiming

Boyce Griffith

unread,
Aug 25, 2023, 3:57:53 PM8/25/23
to noreply-spamdigest via IBAMR Users

On Aug 24, 2023, at 1:54 PM, Yiming Gan <germa...@gmail.com> wrote:

Hi all,

The setup in IB/ex2 is useful for my pipe flow case. However, I want to only fixed both ends of the pipe (0 displacement), and allow the pipe to deformed (with a pressure boundary condition applied to both ends). I wonder if this example is the right one to look at. I also need to define a young's modules for the pipe. Should I look at IBFE in that case?

If you use an elasticity model (specified by providing a suitable PK1 stress tensor), then you should be able to switch to a flexible tube pretty easily. The other thing you will probably want to do is to ensure that the exterior fluid region is able to change volume. To do this, you would want to have normal traction boundary conditions along at least some of the parts of the boundary of the computational domain that are outside of the tube structure.

Yiming Gan

unread,
Aug 29, 2023, 1:19:40 PM8/29/23
to IBAMR Users
If you use an elasticity model (specified by providing a suitable PK1 stress tensor)
Thanks! I guess the stress tensor module is in IBFE, not the IB examples?

have normal traction boundary conditions along at least some of the parts of the boundary of the computational domain that are outside of the tube structure.
That make sense.

Yiming

Boyce Griffith

unread,
Aug 30, 2023, 4:38:30 PM8/30/23
to ibamr...@googlegroups.com

On Aug 29, 2023, at 1:19 PM, Yiming Gan <germa...@gmail.com> wrote:

If you use an elasticity model (specified by providing a suitable PK1 stress tensor)
Thanks! I guess the stress tensor module is in IBFE, not the IB examples?

Ah, yes — this would be if using IBFEMethod. If you are using an IBMethod-based model of a tube with a stationary wall, then you could make the tethering springs softer and add spring/beam connections between marker points. It depends on how you want to model the elastic part of the tube.

Reply all
Reply to author
Forward
0 new messages