Questions about using convect() in an axisymmetric (z,r) formulation

Hello everyone,

I am solving an axisymmetric Navier–Stokes problem in FreeFEM on the meridional plane (z,r), with the mapping

x=z,y=r

So i use :

‘‘‘VhF urA = convect([uz,ur], -dt, ur);
VhF uzA = convect([uz,ur], -dt, uz);
VhF utA = convect([uz,ur], -dt, ut);’’’

My intention is that this represents the in-plane convection terms

u_z \frac{\partial \phi}{\partial z} + u_r \frac{\partial \phi}{\partial r}.

All cylindrical/axisymmetric extra terms are added manually in the weak form, such as u_\theta^2/r, -u_r/r^2, -u_\theta/r^2, and -u_r u_\theta/r.

My question is:

Is this the correct way to use convect() for an axisymmetric cylindrical-coordinate formulation in FreeFEM, or is convect() only intended for standard Cartesian 2D problems?

Thank you.

Hello,
convect is shaped for a cartesian problem, but there is no reason not to use it in axisymmetric geometry. Your formulas look correct.
Indeed in general when you write vA=convect([uz,ur],-dt,v) you have that (vA-v)/dt is an approximation (for small dt) of -(u_z\partial_x v+u_r\partial_y v). Then you just have to check that all the terms in your axisymmetric equations are well represented in your formulation of the scheme.