# Discussion Forum

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

## Navier-Stokes Simulation using General Form PDE: The Continuity Equation

Greetings all.

I am working to solve a standard fluid flow problem (e.g. flow in a pipe as a start) using the General Form PDE interfaces instead of the Fluid Flow built in GUI. I am able to define a u-momentum and a v-momentum equation without too much difficulty, but it is the continuity equation that I am struggling with. Right now I have 3 instances of PDE General Form (2 momentum equations + 1 continuity equation). For the continuity equation, all of the coefficients are set to zero with the exception of the source, f. The source f is set equal to -(ux + vy), giving the spatial derivatives of the velocity components equal to zero (incompressible, Newtonian fluid). The problem now becomes the boundary conditions - the continuity equation must be satisfied everywhere (not just on the boundaries) in the domain! I can set all the boundaries to zero and it works fine, but I don't get a converged velocity field because there is no enforcement of continuity.

Does anyone have any insight on how the built in Fluid Flow module implements the continuity constraint? Perhaps I could use a probe to integrate "abs(ux+vy)" over the domain, but then I have no way of requiring that to be zero (or some small number).

Any advice would be greatly appreciated! Thanks!

13 Replies Last Post 5 sept. 2016 14:15 UTC−04:00
Posted: 6 years ago
Hi Mark,

Define two PDE, the first with u and v and the second with p, the continuity equation is defined in the second PDE, see the mph file.

--
JM Buchot

Posted: 6 years ago
Thank you JM for the advice.

I now have a follow-up question. I have the equations set up and I let the solver run. Eventually it reaches its maximum number of iterations and tells me that it could not find a converged solution. HOWEVER, the "solution" from the last iteration step seems completely converged. I know the solution for flow in a pipe (or between two plates), the pressure profile is perfect and continuity is satisfied. Why didn't the solver stop?? I have tried changing the solver settings (originally just used the default), tolerances, etc - but they all give the same result: returning what appears to be a converged solution without realizing it.

I am baffled and clearly missing something. Is there a way to tell *what* isn't converged and why the solver has not stopped? At one point, the MUMPS solver showed a convergence of 10^-11 but didn't stop. The next step showed convergence of 2.5!

Any advice anybody can provide would be greatly appreciated!

Solver settings:
Stationary, Direct Solver: MUMPS
Max Iterations: 25
Tolerance Factor: 1
Relative Tolerance: 0.001

Mark

Posted: 6 years ago

Hi Mark,

Define two PDE, the first with u and v and the second with p, the continuity equation is defined in the second PDE, see the mph file.

--
JM Buchot

Dear JM,
According to your suggestion, I defined a coupled model by 2 PDEs to reproduce the Navier-Stokes module(built-in model) in Comsol module library. Comparing the simulation result by this defined model and the built-in model, the pressure(p) is not smooth or converged by the defined model, although the u, v looks very similar. This puzzled me after I try to make both models with the same solver parameters and mesh. Could you please give me some suggestion. I can forward both model to you by email if you would like to.
The mph file I downloaded couldn't be opened in Comsol 3.5 or 4.1. Thanks a lot.

Posted: 6 years ago
Try changing the element type for pressure from Quadratic to linear. It solved my problem.

Posted: 6 years ago
Yes!, It works. I changed mesh element for p to linear and it works before I got your warmhearted reply. Anyway, thanks so much.

Posted: 5 years ago
Hi guys,

Can someone tell me how to change mesh element for p to linear ?

Thanks

Posted: 5 years ago
Hi
check your main physics node for the Discretization tab, if not there turn it on via the view icon "discretization" of the "options - preferences - show - discretization"

--
Good luck
Ivar

Posted: 5 years ago

Try changing the element type for pressure from Quadratic to linear. It solved my problem.

Why can changing the element order improve the convergence?

--
Pu, ZHANG ??
Departamento de Física Teórica de la Materia Condensada,
Universidad Autónoma de Madrid,
Madrid, Spain.

Posted: 5 years ago
Hi

there are probably several possible explanations, but the higher the order the higher you might get oscillations to your esults, and these might be "wrong" hence increasing the rrors used by COMSOL to control the convergence, and then give poor or no convergence. Try interpolating a few ponts in Excel with a linear, secondary, third order etc polynomial, you will quickly se the tendencies to get oscillations, if you move your reference point up and down. You can go further in your study if you use matalb or another numerical tool

--
Good luck
Ivar

Posted: 5 years ago
Hi dear all,

I'm simulating a flow in a porous media but I still have a problem with the convergence.
I'm using Comsol 4.2a and I have implemented my equations (Momentum equations and continuity equation) with 2 general PDE.

In the 1st PDE, I have the 2 momentum equations (2D case) where the dependent variables are u and v and using a quadratic discretisation order.

In the 2nd PDE, I have the continuity equation. The dependent variable is p (pressure) and I'm using a linear discretisation order (as you have suggested before).

Can you please take a look at my model (here attached).

PS : I'm using a dimensionless NS equations.

Posted: 5 years ago
Hi:
I have this problem: How do you solve a similar problem, but in 3d. For example in a square duct with adimensionalized equations:

Geometry: Lz=1/2, Ly=1/2, Lx+=1;

u*ux+v*uy+w*uz=-px+1/Re^2*uxx+uyy+uzz

u*vx+v*vy+w*vz=-py*Re^2+1/Re*vxx+vyy+vzz

u*wx+v*wy+w*wz=-pz*Re^2+1/Re*wxx+wyy+wzz

ux+vy+wz=0

BC=
u,v,w=0 on walls;
u=1 at x=0

Thanks in advance!!

Posted: 3 years ago
Hi, not sure if the forum protocol is to keep old chains alive or start a new one. Anyway, I have a question which follows on this discussion. The coding up of the PDE's is relatively straightforward and the choice of quadratic/linear/etc, not so bad.

But then you get into the details - crosswind diffusion, streamline diffusion, etc. How to add that?

And then for time-dependent equations how do you specify upwind differentiation, etc? I've stumbled over this in the past.

For example, I've had occasion often enough to try to solve turbulent Navier-Stokes with uniform cross-section (d/dz=0 except for dp/dz). Should be easy enough to type this in by hand, but the only way I've got it to work is to load up the full Navier Stokes from COMSOL and edit the equations to try to delete all of the items I expect to be zero.

Any thoughts? For that matter - "out-of-plane" models already exist for heat transfer, but could be popular to add to the list for Navier-Stokes too.

Regards, John

Posted: 1 year ago
Hi Yao

I am working on a pipe flow simulation almost exactly like your case by using general PDE interface to solve the Navier-Sotkes equation. However, after I created 2 momentum + 1 continuity equation ( pressure defined, linear Lagrange ), it still can not give me a converged solution with pressure inlet and pressure outlet boundary condition.

I noticed that you have solve your problem, Is that possible to give me some more advice or teach me how you did it?

Best
Di Shen

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.