# Macro in Navier-Stokes solver

**URL:** https://community.freefem.org/t/macro-in-navier-stokes-solver/3750
**Category:** General Discussion
**Created:** [February 14, 2025, 2:41pm UTC](https://community.freefem.org/t/macro-in-navier-stokes-solver/3750 "2025-02-14T14:41:08Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![dominiquebodin](https://avatars.discourse-cdn.com/v4/letter/d/8491ac/32.png) [@dominiquebodin](https://community.freefem.org/u/dominiquebodin)
#### Post date: [February 14, 2025, 2:41pm UTC](https://community.freefem.org/t/macro-in-navier-stokes-solver/3750/1 "2025-02-14T14:41:08Z")

</div>

Hi all,

Considering the example below, I have systematically a compilation error related to the macro ugradv. This macro is a copy/paste from a post published in this forum.  
Any idea is welcome.

```auto
//Macro
macro grad(u) [dx(u), dy(u), dz(u)] //
macro Grad(U) [grad(U#x), grad(U#y), grad(U#z)] //
macro div(ux, uy, uz) (dx(ux) + dy(uy) + dz(uz)) //
macro Div(U) div(U#x, U#y, U#z) //
macro ugradv(ux,uy,uz,vx,vy,vz) [[ux,uy,uz]'*grad(vx) , [ux,uy,uz]'*grad(vy) , [ux,uy,uz]'*grad(vz) ] //

func uIn=10.;

//Problem
solve NS ([ux, uy, uz, p],[vx, vy, vz, q])
	= int3d(Th)(
		+ Mu * (Grad(u) : Grad(v))
		- p * Div(v)
		- Div(u) * q
	)
	- int3d(Th)(
		 [fx, fy, fz]' * [vx, vy, vz]
	)
	+ int3d(Th)(ugradv(ux,uy,uz,ux,uy,uz)' * [vx,vy,vz])	
//	+ on(21, ux=0., uy=0., uz=0.) // liquid
	+ on(20, ux=0., uy=0., uz=0.) // gas
    + on(19, ux=0., uy=uIn, uz=0) // inlet
	+ on(22, ux=0., uy=0., uz=0.); // wall

```

---

<div class="post-metadata">

### Author: ![localhost](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@localhost](https://community.freefem.org/u/localhost)
#### Post date: [February 15, 2025, 7:58am UTC](https://community.freefem.org/t/macro-in-navier-stokes-solver/3750/2 "2025-02-15T07:58:23Z")

</div>

ugradv(ux,uy,uz,ux,uy,uz) is illegal  
It should be ugradv(ux,uy,uz,uxold,uyold,uzold) or something linear.

---

<div class="post-metadata">

### Author: ![dominiquebodin](https://avatars.discourse-cdn.com/v4/letter/d/8491ac/32.png) [@dominiquebodin](https://community.freefem.org/u/dominiquebodin)
#### Post date: [February 17, 2025, 7:46am UTC](https://community.freefem.org/t/macro-in-navier-stokes-solver/3750/3 "2025-02-17T07:46:42Z")

</div>

> [@localhost](#):
>
> ux,uy,uz,

Thank you, I’m going to investigate this point (I’m new comer in using freefem)
