CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   Aitken adaptive under-relaxation for FSI (

WiWo February 3, 2010 09:27

Aitken adaptive under-relaxation for FSI
Hello everyone,

I'm currently using icoFsiFoam extended with an outer iteration loop as a solver for strongly coupled FSI systems (blood - vessel interaction in my case). By setting some under-relaxation factors I could get the solver to handle problems even close to a density ratio (solid/fluid) of 1. Anyway, this was at enormous expense of computational time and I learned that one can do much better by implementing adaptive under-relaxation. Aitken's under-relaxation algorithm was mentioned several times in this context (Tukovic ; Degroote et al, Computers and Structures 86 (2008) 2224 - 2234 ; Kuettler et al, Comput Mech (2008) 43:61-72).

I implemented the algorithm, which appears to be quite simple using Usolid (the displacement of the solid mesh) as parameter.
Still, the algorithm is yielding obviously wrong results ranging from negative values to values > 1 for the relaxation factor. I checked my code many times and then re-implemented it two times from scratch using analytically equivalent formulations of Aitken's algorithm. All three versions yield the exact same (wrong) results.

Looking at the formulation of Aitken's algorithm more closely, I see no reason why result of the process should remain in the interval [0, 1] anyway. It seems to me that the previous value of the relaxation factor is essentially multiplied by a term that can have values ranging from -infinity to +infinity. Of course I'm not assuming that something is wrong in an algorithm as widely used as this one ... but it seems that I'm clearly missing a point here.

So, my question is if anybody has any experience using adaptive under-relaxation or even the Aitken algorithm and could provide me with some deeper insight. Moreover, i was wondering if maybe somebody has already implemented this algorithm for an FSI coupling scheme. Maybe I'm just working on the totally wrong parameter (Usolid)?

I would greatly appreciate your help on this issue!


thomas February 4, 2010 08:22

Dear Wolfgang,

Aitken relaxation is a form of fixed-point iteration working at the interface.

If I understand right, you are working with the whole displacement field of the solid region. But you have to use the interface displacement field as input for Aitken's formula.

Hope this helps!

Best regards

WiWo February 22, 2010 08:50

Hi Thomas,

Thank you for your kind support! ... and sorry for my delayed response. My time was recently consumed entirely by other urgent business thus I could just return to the Aitken problem today.
I just had a first run with the Aitken algoritm working only on the interface region. It seems to perform better than the previous version but after some iterations the relaxation factor still starts to play crazy (jumping outside the interval [0 1]).

What i did exactly is implementing the formula for the Aitken algorithm as given by Tukovic for the inner loop of a strongly coupled FSI solver in order to increase the efficiency. Anyway, looking at the formula i don't see a mathematical reason why it should yield results between 0 and 1 - could you explain that a little bit more closely?

Thanks for your time and efforts!

Best regards,

thomas February 22, 2010 10:47

Dear Wolfgang,

I do not know, if the relaxation parameter you get by using Aitken's formula is restricted to values between 0 and 1.

Maybe the parameter is calculated right, but something with your field solvers is wrong. I would suggest to first test your solver using constant underrelaxation and a relaxation parameter of maybe 0.1. If the problem converges, you can replace the relaxation parameter then with Aitken's method.

As a starting point for the implementation I suggest the PhD thesis of Mok. You can find it at - Publikationen. It gives a nice version of Aitkens formula.

Best regards

VincentChai August 5, 2013 23:04

Dear Wolfgang,

May I know is the icoFsiFoam extended you used is available in the openFOAM 1.6 ext? or can you advise me how to make the icoFsiFoam become a strongly coupled FSI solver?
Thanks :)


All times are GMT -4. The time now is 22:42.