Pressure Boundary in IBAMR.

196 views
Skip to first unread message

Yicheng Chen

unread,
Oct 29, 2021, 11:13:28 PM10/29/21
to IBAMR Users
Dear all,

Can IBAMR set pressure boundaries for computing domains? I hope to control the pressure at both ends of the computational domain (number 0 and 1). 

Previous sessions do not seem to have specified the operation of setting pressure boundaries, hopefully this discussion will help others as well.

Best greeting from China,
Yicheng Chen

Bindi Nagda

unread,
Oct 31, 2021, 12:32:16 AM10/31/21
to IBAMR Users
following....

Boyce Griffith

unread,
Nov 3, 2021, 2:51:32 PM11/3/21
to ibamr...@googlegroups.com

On Oct 29, 2021, at 11:13 PM, Yicheng Chen <cychi...@gmail.com> wrote:

Dear all,

Can IBAMR set pressure boundaries for computing domains? I hope to control the pressure at both ends of the computational domain (number 0 and 1).

You can specify either velocity or traction boundary conditions for the Cartesian grid fluid solver by setting the appropriate BC coefficients. We should get this on the wiki, but I've attached a short document from Aaron Barrett that discusses BCs.

For pressure boundary conditions, I like to use a mixture of normal traction and tangential no-slip velocity boundary conditions. Thanks to the incompressibility constraint, this reduces to a pointwise boundary condition for the pressure. See, e.g., https://dx.doi.org/10.1016/j.jcp.2009.07.001

If you want to provide a pressure load on a structure, you can do this by setting a force along the boundary of the structure. This is easiest to do using IBFEMethod-based models via registerLagSurfacePressureFunction(); see, e.g., https://ibamr.github.io/IBAMR-docs/ibamr/html/class_i_b_a_m_r_1_1_f_e_mechanics_base.html#a95b2c3f88b6d1bc1459578ef18f1e69b

Previous sessions do not seem to have specified the operation of setting pressure boundaries, hopefully this discussion will help others as well.

Best greeting from China,
Yicheng Chen

--
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/26453df7-c7a6-4a66-a7af-e972045deae1n%40googlegroups.com.
boundary_conditions.pdf

Yicheng Chen

unread,
Nov 4, 2021, 6:14:19 AM11/4/21
to IBAMR Users
Thank you, professor!

The traction and no slip wall is a good solution to apply pressure boundary for my case, I should try it. Here are still some questions when I reading the .dvi file.

We are using  RobinBcCoefStrategy to describe boundary conditions. In our file, we mention a form au + b ∂u/∂n = g in the first paragraph, and  au + bτ · n = g in the second paragraph for fluid solver. Which one is the formula we are using in our boundary? Or here are some switch that we can change formula? 

Best regards,
Yicheng Chen

Boyce Griffith

unread,
Nov 4, 2021, 9:25:38 AM11/4/21
to ibamr...@googlegroups.com

On Nov 4, 2021, at 6:14 AM, Yicheng Chen <cychi...@gmail.com> wrote:

Thank you, professor!

The traction and no slip wall is a good solution to apply pressure boundary for my case, I should try it. Here are still some questions when I reading the .dvi file.

We are using  RobinBcCoefStrategy to describe boundary conditions. In our file, we mention a form au + b ∂u/∂n = g in the first paragraph, and  au + bτ · n = g in the second paragraph for fluid solver. Which one is the formula we are using in our boundary? Or here are some switch that we can change formula? 

For the fluid solver the boundary condition settings provide either velocity or traction BCs --- so, the second form. Note that in d-dimensions (d=2,3), there are d components to set at each boundary. Check out examples/navier_stokes/ex0. input2d and input3d are periodic cases with analytic solutions, but you can use the analytic formulas to provide physical BCs as well. The input files that are in the GitHub repository are set up for velocity BCs, but the 2D version also has the formulas worked out to provide normal or tangential tractions. See, e.g., this paper: https://dx.doi.org/10.1016/j.jcp.2009.07.001.

-- Boyce

Best regards,
Yicheng Chen

在2021年11月4日星期四 UTC+8 上午2:51:32<boy...@gmail.com> 写道:

On Oct 29, 2021, at 11:13 PM, Yicheng Chen <cychi...@gmail.com> wrote:

Dear all,

Can IBAMR set pressure boundaries for computing domains? I hope to control the pressure at both ends of the computational domain (number 0 and 1).

You can specify either velocity or traction boundary conditions for the Cartesian grid fluid solver by setting the appropriate BC coefficients. We should get this on the wiki, but I've attached a short document from Aaron Barrett that discusses BCs.

For pressure boundary conditions, I like to use a mixture of normal traction and tangential no-slip velocity boundary conditions. Thanks to the incompressibility constraint, this reduces to a pointwise boundary condition for the pressure. See, e.g., https://dx.doi.org/10.1016/j.jcp.2009.07.001

If you want to provide a pressure load on a structure, you can do this by setting a force along the boundary of the structure. This is easiest to do using IBFEMethod-based models via registerLagSurfacePressureFunction(); see, e.g., https://ibamr.github.io/IBAMR-docs/ibamr/html/class_i_b_a_m_r_1_1_f_e_mechanics_base.html#a95b2c3f88b6d1bc1459578ef18f1e69b

Previous sessions do not seem to have specified the operation of setting pressure boundaries, hopefully this discussion will help others as well.

Best greeting from China,
Yicheng Chen

--
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/26453df7-c7a6-4a66-a7af-e972045deae1n%40googlegroups.com.

--
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.

Yicheng Chen

unread,
Nov 22, 2021, 12:25:03 PM11/22/21
to IBAMR Users
Hi professor,

After reading these publications and tests, i encountered some problems as follow. I expected a pressure-drived tube flow start from left boundary to right, but my setting only induced a reverse flow on the right boundary

In this model, two fixed wall were set to be tube wall inside of our box, the velocity could be  decomposited to u in x axis and v in y axis. 
For BC_0 on the left boundary, a=0 b=1 g=0, thus set a 0 traction boudary; "a=0 b=1 g=5" if   bottom wall < y < top wall, but g=0 in another y. on the right boundary. 
For BC_1, a=1 b=0 g=0 for both boundary. 

The pressure in this picture is a clerical error, but there should not have reverse flow in right boundary. Maybe there are some wrong in my setting. Thank you for your kind help! 

-Yicheng

VelocityBcCoefs_0 {
   D = D
   w = 0.08*D
   X1_lower = D + 1.0*w + DX
   X1_upper = 2.0*D - 1.0*w - DX
   X1_beam_up = 1.5 * D + 2 * DX
   X1_beam_low = 1.5 * D - 0.1 * D - 2 * DX 

   acoef_function_0 = "X1 < X1_lower ? 1.0 : (X1 > X1_upper ? 1.0 : (X1 < X1_beam_low ? 0.0  : (X1 > X1_beam_up ? 0.0 : 1.0)))"
   acoef_function_1 = "0.0"
   acoef_function_2 = "0.0"
   acoef_function_3 = "0.0"

   bcoef_function_0 = "X1 < X1_lower ? 0.0 : (X1 > X1_upper ? 0.0 : (X1 < X1_beam_low ? 1.0  : (X1 > X1_beam_up ? 1.0 : 0.0)))"
   bcoef_function_1 = "1.0"
   bcoef_function_2 = "1.0"
   bcoef_function_3 = "1.0"

   gcoef_function_0 = "0.0"
   gcoef_function_1 = "X1 < X1_lower ? 0.0 : (X1 > X1_upper ? 0.0 : 5)"
   gcoef_function_2 = "0.0"
   gcoef_function_3 = "0.0"
}

VelocityBcCoefs_1 {

   acoef_function_0 = "1.0"
   acoef_function_1 = "1.0"
   acoef_function_2 = "0.0"
   acoef_function_3 = "0.0"

   bcoef_function_0 = "0.0"
   bcoef_function_1 = "0.0"
   bcoef_function_2 = "1.0"
   bcoef_function_3 = "1.0"

   gcoef_function_0 = "0.0"
   gcoef_function_1 = "0.0"
   gcoef_function_2 = "0.0"
   gcoef_function_3 = "0.0"
}

微信图片_20211123005614.png
input2d

Boyce Griffith

unread,
Nov 22, 2021, 2:28:15 PM11/22/21
to ibamr...@googlegroups.com


On Nov 22, 2021, at 12:25 PM, Yicheng Chen <cychi...@gmail.com> wrote:


Hi professor,

After reading these publications and tests, i encountered some problems as follow. I expected a pressure-drived tube flow start from left boundary to right, but my setting only induced a reverse flow on the right boundary.

Can you post a visualization of the pressure and velocity fields? It might be a sign error. Note that the traction is tau = sigma n, and so you probably should be setting a BC for “-p” instead of “p”.

<微信图片_20211123005614.png>

To view this discussion on the web visit https://groups.google.com/d/msgid/ibamr-users/0140596f-d908-4d8d-85dc-25c7d4050385n%40googlegroups.com.
<input2d>
<微信图片_20211123005614.png>

Yicheng Chen

unread,
Nov 22, 2021, 6:56:56 PM11/22/21
to IBAMR Users
Here are the pressure plot (0-100Pa) and velocity plot (0-0.1 m/s). Solid meshes are shown by white blocks in these plots. It looks so wired.

-Yicheng
1637624881(1).jpg
1637625290(1).jpg

Boyce Griffith

unread,
Nov 22, 2021, 11:15:38 PM11/22/21
to IBAMR Users
Definitely looks strange. I would suggest starting with just pressure-driven flow through a rigid channel — you should be able to get that to work without any of these kinds of artifacts — and then add the flexible wall to the channel, and finally add the flexible bar in the middle of the channel.

On Nov 22, 2021, at 6:56 PM, Yicheng Chen <cychi...@gmail.com> wrote:

Here are the pressure plot (0-100Pa) and velocity plot (0-0.1 m/s). Solid meshes are shown by white blocks in these plots. It looks so wired.

-Yicheng
<1637624881(1).jpg>
To view this discussion on the web visit https://groups.google.com/d/msgid/ibamr-users/f7af14f7-3ff1-4406-ab0c-e303865614b2n%40googlegroups.com.
<1637624881(1).jpg><1637625290(1).jpg>

Yicheng Chen

unread,
Nov 23, 2021, 4:04:37 AM11/23/21
to IBAMR Users
Yes, sir. According your guidance, I  found the reason for the errors above! Great!

1. The pressure in right boundary is too small to drive the tube flow in a short time, it should be amplified. (I set it to 1000 and works better than before)
2. I should not set the wall parameters, such as X1_lower, bigger than wall position when using pressure boundary. The y of lower wall is 0.0 ~ 1.0, but I set the trction in y>1.06 (y<=1.06 was a 0 traction boundary), this wrong induced the reverse flow.

Thank you so much!

-Yicheng

Reply all
Reply to author
Forward
0 new messages