Outlet Boundary Conditions for Navier Stokes

Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along the axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

Not sure, but IMHO it has something to do with your region definitions. The inlet and outlet regions contain the wall nodes, so there is no no-slip condition in those nodes.
Check:
./simple.py pipe_flow_test_copy.py --save-regions-as-groups --solve-not ./postproc.py -b pipe_7f_long_regions.vtk --layout=row
You might want to change the wall region to:
'select' : 'vertices of surface -f (r.Outlet +v r.Inlet)',
and apply the walls condition as the last one by naming it ebc_4, so that is is lexicographically after the inlet and outlet ones.
r.
On 09/19/2016 02:33 PM, Nikhil Vaidya wrote:
Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along the axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

I will try giving the command line arguments to simple.py. I have not been able to get postproc.py running on my machine. I am using paraview. What should I do to view the data in paraview?
I will also try with your suggested region definitions.
In the problem definition file, does the order all definitions matter? If yes, what should be the correct order? This is something that is not clear to me...
On Tuesday, September 20, 2016 at 2:09:21 PM UTC+2, Robert Cimrman wrote:
Not sure, but IMHO it has something to do with your region definitions. The inlet and outlet regions contain the wall nodes, so there is no no-slip condition in those nodes.
Check:
./simple.py pipe_flow_test_copy.py --save-regions-as-groups --solve-not ./postproc.py -b pipe_7f_long_regions.vtk --layout=row
You might want to change the wall region to:
'select' : 'vertices of surface -f (r.Outlet +v r.Inlet)',
and apply the walls condition as the last one by naming it ebc_4, so that is is lexicographically after the inlet and outlet ones.
r.
Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along
On 09/19/2016 02:33 PM, Nikhil Vaidya wrote: the
axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

On 09/20/2016 02:48 PM, Nikhil Vaidya wrote:
I will try giving the command line arguments to simple.py. I have not been able to get postproc.py running on my machine. I am using paraview. What should I do to view the data in paraview?
Just open it and display the variables with regions names.
I will also try with your suggested region definitions.
In the problem definition file, does the order all definitions matter? If yes, what should be the correct order? This is something that is not clear to me...
No, it does not matter.
But in the boundary condition case, when regions overlap, you might want to influence the order (i.e. which condition is actually applied in the overlap nodes) - for this purpose, the ebcs are applied in the lexicographic order of their names.
r.
On Tuesday, September 20, 2016 at 2:09:21 PM UTC+2, Robert Cimrman wrote:
Not sure, but IMHO it has something to do with your region definitions. The inlet and outlet regions contain the wall nodes, so there is no no-slip condition in those nodes.
Check:
./simple.py pipe_flow_test_copy.py --save-regions-as-groups --solve-not ./postproc.py -b pipe_7f_long_regions.vtk --layout=row
You might want to change the wall region to:
'select' : 'vertices of surface -f (r.Outlet +v r.Inlet)',
and apply the walls condition as the last one by naming it ebc_4, so that is is lexicographically after the inlet and outlet ones.
r.
Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along
On 09/19/2016 02:33 PM, Nikhil Vaidya wrote: the
axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

OK. I understand the importance of the order when two or more regions contain the same nodes.
I have not understood the difference between using
'select' : 'vertices of surface -v (r.Inlet +v r.Outlet)', and 'select' : 'vertices of surface -f (r.Inlet +v r.Outlet)'. In the documentation on the sfepy website, I have seen the example:
'Gamma1' : ("""(cells of group 1 *v cells of group 2) +v r.Right""", 'facet', 'Omega'),
Here, why is there a +v between (cells of group 1 *v cells of group 2) and r.Right instead of +f?
On Wednesday, September 21, 2016 at 9:57:22 AM UTC+2, Robert Cimrman wrote:
On 09/20/2016 02:48 PM, Nikhil Vaidya wrote:
I will try giving the command line arguments to simple.py. I have not been able to get postproc.py running on my machine. I am using paraview. What should I do to view the data in paraview?
Just open it and display the variables with regions names.
I will also try with your suggested region definitions.
In the problem definition file, does the order all definitions matter? If yes, what should be the correct order? This is something that is not clear to me...
No, it does not matter.
But in the boundary condition case, when regions overlap, you might want to influence the order (i.e. which condition is actually applied in the overlap nodes) - for this purpose, the ebcs are applied in the lexicographic order of their names.
r.
On Tuesday, September 20, 2016 at 2:09:21 PM UTC+2, Robert Cimrman wrote:
Not sure, but IMHO it has something to do with your region definitions. The inlet and outlet regions contain the wall nodes, so there is no no-slip condition in those nodes.
Check:
./simple.py pipe_flow_test_copy.py --save-regions-as-groups --solve-not ./postproc.py -b pipe_7f_long_regions.vtk --layout=row
You might want to change the wall region to:
'select' : 'vertices of surface -f (r.Outlet +v r.Inlet)',
and apply the walls condition as the last one by naming it ebc_4, so
that
is is lexicographically after the inlet and outlet ones.
r.
Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along
On 09/19/2016 02:33 PM, Nikhil Vaidya wrote: the
axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

On 09/21/2016 02:03 PM, Nikhil Vaidya wrote:
OK. I understand the importance of the order when two or more regions contain the same nodes.
I have not understood the difference between using
'select' : 'vertices of surface -v (r.Inlet +v r.Outlet)', and 'select' : 'vertices of surface -f (r.Inlet +v r.Outlet)'. In the documentation on the sfepy website, I have seen the example:
'Gamma1' : ("""(cells of group 1 *v cells of group 2) +v r.Right""", 'facet', 'Omega'),
Here, why is there a +v between (cells of group 1 *v cells of group 2) and r.Right instead of +f?
Check [1] - see explanation of set-like operators. The operators differ in which topological entities of the regions are combined into a new region.
r.
[1] http://sfepy.org/doc-devel/users_guide.html#regions
On Wednesday, September 21, 2016 at 9:57:22 AM UTC+2, Robert Cimrman wrote:
On 09/20/2016 02:48 PM, Nikhil Vaidya wrote:
I will try giving the command line arguments to simple.py. I have not been able to get postproc.py running on my machine. I am using paraview. What should I do to view the data in paraview?
Just open it and display the variables with regions names.
I will also try with your suggested region definitions.
In the problem definition file, does the order all definitions matter? If yes, what should be the correct order? This is something that is not clear to me...
No, it does not matter.
But in the boundary condition case, when regions overlap, you might want to influence the order (i.e. which condition is actually applied in the overlap nodes) - for this purpose, the ebcs are applied in the lexicographic order of their names.
r.
On Tuesday, September 20, 2016 at 2:09:21 PM UTC+2, Robert Cimrman wrote:
Not sure, but IMHO it has something to do with your region definitions. The inlet and outlet regions contain the wall nodes, so there is no no-slip condition in those nodes.
Check:
./simple.py pipe_flow_test_copy.py --save-regions-as-groups --solve-not ./postproc.py -b pipe_7f_long_regions.vtk --layout=row
You might want to change the wall region to:
'select' : 'vertices of surface -f (r.Outlet +v r.Inlet)',
and apply the walls condition as the last one by naming it ebc_4, so
that
is is lexicographically after the inlet and outlet ones.
r.
Hello!
I am solving for steady laminar flow through a pipe. The issue I am facing is the following:
I have given a velocity boundary condition at the pipe inlet. For the outlet, I examined the following two cases:
Pressure boundary condition at outlet.
No boundary condition prescribed at outlet.
For both cases, I get a strange jump in the velocity at the pipe outlet. In the attached files you can see the velocity and pressure plotted along
On 09/19/2016 02:33 PM, Nikhil Vaidya wrote: the
axis(from inlet to outlet) of the pipe. Why do I see a jump in the velocity for both cases? How do I specify outlet conditions in sfepy?
Another observation that I have made is that for case 1, there is a jump in the pressure value at the outlet. In case 2, this pressure-jumps goes away.
Best regards, Nikhil

I modified the region definitions to make sure that the wall nodes are not included. That did not solve the problem. I then changed the weak form of the Navier Stokes equations from: dw_div_grad.i2.Omega( fluid.viscosity, v, u ) + dw_convect.i2.Omega( v, u ) - dw_stokes.i1.Omega( fluid.one_b_rho, v, p ) = 0 to: dw_div_grad.i2.Omega( fluid.viscosity, v, u ) + dw_convect.i2.Omega( v, u ) + dw_v_dot_grad_s.i1.Omega(fluid.one_b_rho, v, p) = 0
This change works. I can now specify a boundary pressure and the pressure profile remains linear but is shifted to account for specified boundary pressure. With the old weak for, this behavior was not seen.
What could be the reason for this? Is it necessary to remove the pressure gradient term in the weak form?
Best, Nikhil

On 10/17/2016 01:33 PM, Nikhil Vaidya wrote:
I modified the region definitions to make sure that the wall nodes are not included. That did not solve the problem. I then changed the weak form of the Navier Stokes equations from: dw_div_grad.i2.Omega( fluid.viscosity, v, u ) + dw_convect.i2.Omega( v, u ) - dw_stokes.i1.Omega( fluid.one_b_rho, v, p ) = 0 to: dw_div_grad.i2.Omega( fluid.viscosity, v, u ) + dw_convect.i2.Omega( v, u ) + dw_v_dot_grad_s.i1.Omega(fluid.one_b_rho, v, p) = 0
This is no longer a weak form of the Navier-Stokes equations.
This change works. I can now specify a boundary pressure and the pressure profile remains linear but is shifted to account for specified boundary pressure. With the old weak for, this behavior was not seen.
What could be the reason for this? Is it necessary to remove the pressure gradient term in the weak form?
Try asking literature on how to impose boundary conditions of weak form NS equations properly. This is not my field.
r.
participants (2)
-
Nikhil Vaidya
-
Robert Cimrman