hello everyone the problem is slightly complicated to describe in details but i will provide as much details as i can, just ask if you need more information.
In the project i am involved in, i had to work on an algorithm that couples 2 phenomena: a mechanical problem (solved with the finite element method in 3D) and a 0D hemodynamical problem. The way each problem is solved is not that relevant because my issue lies somewhere else.
The following logigram may make it easier to understand
It makes use of the procedure described in details in the following report
At the beginning of each time step n, each first estimate of a pressure is based on a fourth order Adams-Bashfort explicit scheme; it uses previous pressures to extrapolate and estimate the new initial pressure (as explained in the report).
Then, based on the value returned by each problem (a volume here), a new pressure is computed with a conjugated like gradient method (see page 11 of the report, equation 2.3,2.4,2.5, i can write the equation here in TeX if someone explains me how to) It is then used as a new input for each problem and so on until the convergence is reached.
So far, so good, it worked just fine with some slight "empirical" modifications to improve the convergence speed.
Then, few days ago, i slightly changed my geometry and the algorithm failed to converge. More precisely, it was caused by a very "high" negative pressure than the finite element problem was not able to handle properly (so an error was returned when the volume was computed).
Do you have any suggestion/Ideas?
Thank you in advance.
Edit: to answer to the comments, yes i would like to provide a minimal example...But i can't! I am solving a multiphysical problem you would need at least the finite element library i am using and the full program to reproduce this phenomena. Still, i will try to think of a way to do so even if i don't see how right now.
Regarding my improvements, it is not clean but it works to some extent to prevent infinite loop. I have seen that, sometimes, the conjugated gradient is quite close to the solution but it can't reach it. Therefore, my idea was, each p (defined by user) steps, to divide by 2 the C in equation (2.4) in the report. Doing that way, empirically, it does works for my tests.
When i have time, i will try to analyze properly not why but how it fails, in order to provide more details. Thanks for your suggestion, i will give that site a try.