Minimum sized time step rejected 2d pipe flow

Hi all,
I am trying to simulate a really simple case of 2D flow in-between two parallel plates. But keep getting ‘minimum sized time step rejected’. Tried different meshes, tried reducing time step, tried with and without anti-aliasing. Still the same error.

Can you please help
Attached here msh and ini files

Thank you in advance,

I think the issue is that the boundary conditions you are applying aren’t quite doing what you want.

Looing at your mesh, I presume that you want the flow to be coming in the bottom at y=-21.8987 and exiting at y=42.1013? If so you need to swap the x and y velocities in your initial condition and inlet boundary condition.

Ohhh you are right.
It works now!

Thank you,

Hi all,
I have changed the geometry, and now it is aligned with x axes and the the gap between the plates is only 2 mm. Again I am getting ‘minimum sized time step rejected’.

Can you please take a look,
Attached files

Have you tried looking at solution at time t=0 to see if the boundary conditions and initial condition are doing what you expect? The next thing I’d try is setting the writer plugin dt to be small and see what the flow looks like in the build up to it failing.

Boundary and initial conditions looks right.
I have set a writer plugin to be really small but still only [file name]-000.pyfrs is produced.

Can you set a small and constant time step and look at what it happening?

It failed with NaNs detected at t = 1.9399999999999996e-06

Looking at your mesh and ini file, your channel 0.002 wide and you are using a pressure of 1e5. With this config it doesn’t surprise me that its blowing up with such a time step. You can either further reduce the time step, or change the pressure to effectively non-dimensionalise it.

Hi will, I am also working with Alina on the case. we tried to non-dimensionalise and reduce the time step but neither worked for us. I believe the issue is related to the boundary conditions. attaching a screenshot from t=1e-7, before divergence began. you can see that the no-slip boundary condition is not imposed, and instead of being 0 the velocity at the wall is increased.

Would be thankful for your assistance


The major issue appears to be that you are running p = 0.

Regards, Freddie.

Thank you for your answer Freddie, could you clarify for us a bit? do you mean the polynomial order or the pressure?
we tried running with order=1,2,3, and got even faster divergence.

regarding the pressure, it is defined as P0~=1e5.

Thanks again, we really appreciate both your help and Will’s

The polynomial order = 0 part. Here, each element only has a single degree of freedom in its cell centre. This makes it virtually impossible to meaningfully enforce any kind of boundary condition.

Regards, Freddie.

Ok I see. like I said we tried to change it and it did not help

So the polynomial order is not an arbitrary constant. Rather, it should be set in conjunction with your mesh resolution based on the size of scales you expect to see in the problem.

Thus, I would suggest first starting with the Reynolds number of your problem and from there obtaining an estimate for the y+. Next, compare this against how much resolution you have in your domain (accounting for the polynomial order and the number of elements in the vertical direction).

Regards, Freddie.

The Reynolds number here is very low, so to the best of my understanding and there is no Boundary layer here, just a simple Pouiselle flow. We just wanted to run a simple test case and then work our way up from there. We started with P=3 (about 20 DOF in the y direction) because this is about what we need to resolve a simple parabolic flow profile. we then reduced the order with the hope that it will help stabilize the simulation.


Question: what should the x velocity be at the top- and bottom-left corners of the domain?

Regards, Freddie.

That is a good point, there is a discontinuity between the two boundary conditions imposed there, do you think this is the reason for divergence?

Yes. Looking at the solution just before it diverges we see:

Observe the spike in the velocity magnitude at the two corners. Indeed, this is why it is so essential to actually look at the solution just before it diverges as this typically provides a huge amount of insight into what is going on with the flow.

Regards, Freddie.

Thank you again Freddie. We tried to change the inlet boundary condition to:
u=Uww*(1 -1000000*(y*y-0.002*y+0.000001))
where Uww is a constant. This imposes a velocity profile that is compatible with the no-slip boundary conditions (u=0 at y=0 and y=0.002). However the solution still diverges and divergence still seems to come from the corner. See attached screenshots from t=1e-7 (at the very beginning) and 4e-7 (a bit before divergence). any thoughts?