constraint IB method

614 views
Skip to first unread message

Boyce Griffith

unread,
Sep 18, 2014, 9:20:51 PM9/18/14
to IBAMR Developers, ibamr...@googlegroups.com
Folks --

As you may know, we are actively working on developing methods for treating imposed motion, imposed kinematics, and rigidity constraints in IBAMR. We wanted to let you know that the constraint IB method originally developed in IBAMR by Amneet Bhalla and described in http://dx.doi.org/10.1016/j.jcp.2013.04.033 is now available through IBAMR master and next at GitHub.

Best,

-- Boyce

Amneet Bhalla

unread,
Sep 21, 2014, 12:15:55 AM9/21/14
to ibamr...@googlegroups.com, IBAMR Developers
Hi Guys,

We have put together two aquatic locomotion cases as test examples for constraint IB method.

1) examples/ConstraintIB/eel2d
This is same example of section 7.3.1 of http://dx.doi.org/10.1016/j.jcp.2013.04.033.

2) examples/ConstraintIB/eel3d
This is taken from validation case of section 3.3.2 of http://dx.doi.org/10.1371/journal.pcbi.1003097
This example requires GNU Scientific Library (tested with version 1.16). The configuration support
for GSL has been added to IBAMR build system. It can be activated by adding additional flags to 
IBAMR configuration  (--enable-gsl  --with-gsl=path/to/gsl-build-dir). 

Best,

--Amneet


--
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 post to this group, send email to ibamr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
--Amneet 



olivier....@gmail.com

unread,
Oct 28, 2015, 1:54:46 PM10/28/15
to IBAMR Developers, ibamr...@googlegroups.com
Hi Amneet,

Thank you for those examples using the Constraint IB method.

I have run the two-dimensional eel problem. Looking at the logging file 'IB2dEelStr.log', I see that all parameters related to the different solvers (VelocityHypreSolver, VelocityFACSolver, PressureHypreSolver, PressureFACSolver) are tagged as "input not used". If there are not used, how can we control the different solvers?

If I understand correctly, in this example, the motion of the eel is prescribed. At each time-step, the incompressible Stokes system is solved with a FGMRES algorithm preconditioned by a projection method. Building the preconditioner requires to solve a system for each velocity component as well as a Poisson system for the pressure. You great paper from 2013 reports a relative tolerance of 1.0E-02 for the inner subdomain solvers and 1.0E-10 for the outer Stokes solver. Are we using the same tolerances in this 2d eel example?

The outer solver is a fixed-point iteration method. With the Constraint IB method, why do we have to stop after 1 cycle?

In the eel example how can I specify the parameters of the inner and outer solvers?

Thank you for your help.

Olivier

Amneet Bhalla

unread,
Oct 28, 2015, 2:13:06 PM10/28/15
to ibamr...@googlegroups.com, IBAMR Developers
On Wed, Oct 28, 2015 at 10:54 AM, <olivier....@gmail.com> wrote:
Hi Amneet,

Thank you for those examples using the Constraint IB method.

I have run the two-dimensional eel problem. Looking at the logging file 'IB2dEelStr.log', I see that all parameters related to the different solvers (VelocityHypreSolver, VelocityFACSolver, PressureHypreSolver, PressureFACSolver) are tagged as "input not used". If there are not used, how can we control the different solvers?

   So, in the main.cpp there is a code that asks the input_db to output values to log file. So whatever input options have been used at that point, the input database will output it to the log file. You can shift that line just at the beginning of the timestepping while loop, and most likely the solvers would have been initialized at that stage and you will not see "input not used" (I think). 

If I understand correctly, in this example, the motion of the eel is prescribed. At each time-step, the incompressible Stokes system is solved with a FGMRES algorithm preconditioned by a projection method. Building the preconditioner requires to solve a system for each velocity component as well as a Poisson system for the pressure. You great paper from 2013 reports a relative tolerance of 1.0E-02 for the inner subdomain solvers and 1.0E-10 for the outer Stokes solver. Are we using the same tolerances in this 2d eel example?

I think the default IBAMR stokes solver tolerance is 1E-06. You can change it 
on the command line by using an option like -stokes_ksp_rtol 1e-10 and see the convergence history by using the option -stokes_ksp_monitor_true_residual (displaying it makes the code run slow, but it's good to see it for a preliminary run). 

The outer solver is a fixed-point iteration method. With the Constraint IB method, why do we have to stop after 1 cycle?

  You don't have to. It requires 1 IB cycle and can use multiple INS cycles. The present implementation is little bit simplied than what  I did for that paper.  This is how it goes now

1) Predict position of the structures: X^n+0.5 = X^n + 0.5*dt*U^n (in practice IBAMR use rigid body motion to move structures, this eqn is just a simplification)

2) for k = 0... (INS_cycles - 1)
      Solve INS cycle
     Do momentum correction in solid region

3) Update the position of the structure X^n+1 =   X^n + dt*U^n+1 (again do rigid body motion in practice)

In the eel example how can I specify the parameters of the inner and outer solvers?

  Outer Stokes solver prefix is -stokes
  inner velocity solver prefix is -velocity
  inner pressure solver prefix is -pressure

There is also another solver related to projecting velocity onto divergence free space after momentum correction (set true via input file). The prefix is -cIB .
All of these are PETSc Krylov solvers and standard PETSc command line works with them after appending the appropriate prefix.

Thank you for your help.

Olivier
--
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 post to this group, send email to ibamr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
--Amneet 



Olivier Mesnard

unread,
Oct 28, 2015, 4:51:00 PM10/28/15
to ibamr...@googlegroups.com
Thank you, Amneet, for your suggestions.

I was able to modify the parameters through the command-line with the prefixes you provided.

Shifting the output of the database just before the start of the time-step loop did not change the tag of the solvers parameters.

I have one more concern about the Constraint IB method. I am using this class to simulate the flow over a fixed rigid bluff body. In the 2d eel example, I see that the Lagrangian mesh covers the entire body. In your opinion, what is the advantage of meshing also inside the body instead of just providing the boundary of the body?

-----------------------------------------------------------
Olivier MESNARD
-----------------------------------------------------------

Amneet Bhalla

unread,
Oct 28, 2015, 5:01:48 PM10/28/15
to ibamr...@googlegroups.com
On Wed, Oct 28, 2015 at 1:50 PM, Olivier Mesnard <olivier....@gmail.com> wrote:
Thank you, Amneet, for your suggestions.

I was able to modify the parameters through the command-line with the prefixes you provided.

Shifting the output of the database just before the start of the time-step loop did not change the tag of the solvers parameters.

  Hmm.... I would then put it towards the end of the while loop and just run it for one timestep to see if it makes a difference.  

I have one more concern about the Constraint IB method. I am using this class to simulate the flow over a fixed rigid bluff body.
   
If you want to keep the body fixed in place, you would want to set calculate_translational_momentum = 0,0,0
calculate_rotational_momentum    = 0,0,0 
and then also write a trivial class like BluffBodyKinematics that provide definitions of various functions of setting bluff body velocity (=0.0), which I think you might be doing already.
 
In the 2d eel example, I see that the Lagrangian mesh covers the entire body. In your opinion, what is the advantage of meshing also inside the body instead of just providing the boundary of the body?

  I think you will have to use volumetric body to restrain the fluid inside the body to do anything else than a rigid body motion. I think this is particularly an issue at high Re flows. 



--
--Amneet 



Olivier Mesnard

unread,
May 4, 2016, 8:58:37 PM5/4/16
to IBAMR Users
Hello everyone,

I am simulating the two-dimensional flow around a fixed bluff-body at Reynolds number 2000.

I am using the `ConstraintIBMethod` implemented in IBAMR, following the 2d eel example.

I tried different types of Lagrangian mesh and got significant differences in the drag and lift forces.

During my first attempt, I evenly placed Lagrangian markers only the surface of the bluff-body; the lift forces generated were significantly lower than what was expected (we ran this simulation with other CFD software).

I was able to obtain similar instantaneous forces (comparing to another software) only when the Lagrangian covers the entire body (markers placed inside the boundary).

I was expecting with your method that the flow inside the boundary would not affect the external flow...

In both cases, I used the same resolution for the Lagrangian mesh and the finest level of the Eulerian background grid.


I can see that in your 2013 paper ("A unified mathematical framework and an adaptive numerical method for fluid-structure interaction with rigid, deforming, and elastic bodies"), the 2d examples of the flow over a cylinder and the eel locomotion also use body markers (not just on the boundary).

Is there any reason for doing this?
Is it common with the immersed-boundary method to enforce the rigidity constraint also inside the boundary?


I also read some papers using IBAMR that use a Lagrangian resolution twice higher than the Eulerian one.

What ratio would you recommend between the Lagragian segment and an Eulerian cell-width?


Thank you very much for your help.

Amneet Bhalla

unread,
May 4, 2016, 9:10:37 PM5/4/16
to ibamr...@googlegroups.com

On Wed, May 4, 2016 at 5:58 PM, Olivier Mesnard <olivier....@gmail.com> wrote:
I was able to obtain similar instantaneous forces (comparing to another software) only when the Lagrangian covers the entire body (markers placed inside the boundary).

I was expecting with your method that the flow inside the boundary would not affect the external flow...

For intermediate to high Re flows, you would need to put marker points inside the body to constrain the internal flow. ConstraintIB method is prone to leakage and when there is flow inside the body, the jump in traction (which would be equal to constraint forces on surface based Lagrangian mesh discretization) would not be equal to that of flow past a bluff body, but rather flow through a porous media.


Is it common with the immersed-boundary method to enforce the rigidity constraint also inside the boundary?
Yes, for intermediate to high Re flows you would need to constraint the internal flow. For Stokes flow, constraining flow at the surface is enough.

 I also read some papers using IBAMR that use a Lagrangian resolution twice higher than the Eulerian one.
That is for elasticity based IB method.

What ratio would you recommend between the Lagragian segment and an Eulerian cell-width?
I think our investigation suggests using one marker point per Eulerian grid cell, gives good results. There is no golden rule here. You might want to experiment here, e.g. ds = 1h , 1.25h, 1.5h etc...

--
--Amneet 



Olivier Mesnard

unread,
May 4, 2016, 9:24:31 PM5/4/16
to IBAMR Users
Thank you very much for your immediate response!

Did I miss this information about the constraining the inside of the body in your 2013 paper?
Do you have other references talking about this moderate Reynolds number leakage phenomenon?

I was also reading the new 2016 paper on IBM for rigid bodies; I see that you compared the two types of markers but did not notice significant differences; am I right?

Amneet Bhalla

unread,
May 4, 2016, 10:32:43 PM5/4/16
to ibamr...@googlegroups.com
We compared volumetric markers with exactly constraint (2016) and approximate constraint method (2013) for pressurized nozzle. Both contained volumetric constraint at finite Re. Only for Stokes flow we considered just the surface markers.

--
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 post to this group, send email to ibamr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
--Amneet 




Boyce Griffith

unread,
May 9, 2016, 4:32:22 PM5/9/16
to ibamr...@googlegroups.com
FWIW, we have been running tests of this stuff recently for higher Reynolds number internal flow cases, and filled bodies seem to give better accuracy than "hollow" bodies.

Best,

-- Boyce

Amneet Bhalla

unread,
May 19, 2016, 8:34:06 PM5/19/16
to ibamr...@googlegroups.com, Neelesh Patankar


On Wednesday, May 4, 2016, Olivier Mesnard <olivier....@gmail.com> wrote:
Thank you very much for your immediate response!

Did I miss this information about the constraining the inside of the body in your 2013 paper?

Yes, you have *completely* missed that information. All of the equations that described rigid body constraint , continuum and discrete, are clearly described as volumetric integrals. Taking just surface markers  means that you are imposing constraints only on the surface--- and this not what the paper/equation says. The equations clearly demand to place volumetric markers and not doing so is your own judgement/(mis)understanding of mathematical equations and should not be considered as hiding crucial information by the authors from readers of the paper. 

Do you have other references talking about this moderate Reynolds number leakage phenomenon?

Yes, there are plently.

I was also reading the new 2016 paper on IBM for rigid bodies; I see that you compared the two types of markers but did not notice significant differences; am I right?
No, that's not right. You have misunderstood both of the papers 2013 and 2016. Volumetric markers are needed for intertial flows and surface markers suffice for Stokes (zero Re) flow. Please read the equations carefully which clearly tells you when volumetric markers are needed and when they are not.


On Wednesday, May 4, 2016 at 9:10:37 PM UTC-4, Amneet Bhalla wrote:

On Wed, May 4, 2016 at 5:58 PM, Olivier Mesnard <olivier....@gmail.com> wrote:
I was able to obtain similar instantaneous forces (comparing to another software) only when the Lagrangian covers the entire body (markers placed inside the boundary).

I was expecting with your method that the flow inside the boundary would not affect the external flow...

For intermediate to high Re flows, you would need to put marker points inside the body to constrain the internal flow. ConstraintIB method is prone to leakage and when there is flow inside the body, the jump in traction (which would be equal to constraint forces on surface based Lagrangian mesh discretization) would not be equal to that of flow past a bluff body, but rather flow through a porous media.


Is it common with the immersed-boundary method to enforce the rigidity constraint also inside the boundary?
Yes, for intermediate to high Re flows you would need to constraint the internal flow. For Stokes flow, constraining flow at the surface is enough.

 I also read some papers using IBAMR that use a Lagrangian resolution twice higher than the Eulerian one.
That is for elasticity based IB method.

What ratio would you recommend between the Lagragian segment and an Eulerian cell-width?
I think our investigation suggests using one marker point per Eulerian grid cell, gives good results. There is no golden rule here. You might want to experiment here, e.g. ds = 1h , 1.25h, 1.5h etc...

--
--Amneet 




 

--
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 post to this group, send email to ibamr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
--Amneet 




walter...@gmail.com

unread,
Sep 27, 2016, 9:46:52 PM9/27/16
to IBAMR Users, neelesh...@gmail.com

Hi Amneet,

Based on your comments, it seems if I want to model flow in a deformed tube with known tube shape (at each time/position), I should model a "thick" tube (with multiple layers along radial direction), not a "thin" shell (i.e. a single layer). Right?

Thanks,

Walter

Amneet Bhalla

unread,
Sep 27, 2016, 9:54:15 PM9/27/16
to ibamr...@googlegroups.com, neelesh...@gmail.com
Yes.
Reply all
Reply to author
Forward
0 new messages