# Solve NS on a referece domain (convection terms)

**URL:** https://community.freefem.org/t/solve-ns-on-a-referece-domain-convection-terms/1828
**Category:** General Discussion
**Created:** [June 20, 2022, 1:02pm UTC](https://community.freefem.org/t/solve-ns-on-a-referece-domain-convection-terms/1828 "2022-06-20T13:02:15Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![DongweiYe](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.freefem.org/dongweiye/32/1073_2.png) [@DongweiYe](https://community.freefem.org/u/DongweiYe)
#### Post date: [June 20, 2022, 1:02pm UTC](https://community.freefem.org/t/solve-ns-on-a-referece-domain-convection-terms/1828/1 "2022-06-20T13:02:15Z")

</div>

Hi everyone,

I am trying to solve 2D Navier stokes equations on a reference domain through a mapping function T. It works well with all the terms in the weak formulations (by multiplying deformation gradient F and jacobian of F, etc) except the convection terms.

I intend to use the ‘convect’ operator which will be easy to implement instead of changing it to a newton approximation. However, it seems that the ‘convect’ approximation u^n dot X^n doesn’t work if I just by multiplying it with a Jacobian of F. For example,  
`int2d(Th)(convect([uold,vold], -dt, uold)*uh/dt*J(FX,FY))`

I am wondering if you have any suggestions for this kind of situation?

Thank you!

Best wishes  
Dongwei

---

<div class="post-metadata">

### Author: ![DongweiYe](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.freefem.org/dongweiye/32/1073_2.png) [@DongweiYe](https://community.freefem.org/u/DongweiYe)
#### Post date: [June 20, 2022, 4:35pm UTC](https://community.freefem.org/t/solve-ns-on-a-referece-domain-convection-terms/1828/2 "2022-06-20T16:35:15Z")

</div>

Sorry I here rephrase my question here. I find out the problem why the convective term doesn’t work: the characteristic approximation u(x-u(x)\*delta\_t) has an independent x, which also needs a transformation as well. However the ‘convect’ term can only modify delta\_t, u(x), how could I modify the ‘x’ in the code?
