Diffusion

Wall-normal derivative

\[\dmomdif{1}{3} = \mu \frac{1}{J} \dif{}{\gcs{1}} \left( \frac{J}{\sfact{1}} \vgt{1}{3} \right) + \mu \frac{1}{J} \dif{}{\gcs{1}} \left( \frac{J}{\sfact{1}} \vgt{3}{1} \right)\]

Diagonal part

\[\mu \frac{1}{J} \dif{}{\gcs{1}} \left( \frac{J}{\sfact{1}} \vgt{1}{3} \right) = \mu \frac{1}{J} \dif{}{\gcs{1}} \left( \frac{J}{\sfact{1}} \dlxz \right)\]
src/fluid/predict/uz.c
41for(size_t i = 1; i <= isize; i++){
42  const double l = 1. / JDXC(i  ) * JDXF(i  ) / HXXF(i  ) / HXXF(i  );
43  const double u = 1. / JDXC(i  ) * JDXF(i+1) / HXXF(i+1) / HXXF(i+1);
44  const double c = - l - u;
45  laplacians.LAPX(i).l = l;
46  laplacians.LAPX(i).c = c;
47  laplacians.LAPX(i).u = u;
48}
src/fluid/predict/uz.c
195BEGIN
196  src[cnt] += diffusivity * (
197      + LAPX(i).l * UZ(i-1, j  , k  )
198      + LAPX(i).c * UZ(i  , j  , k  )
199      + LAPX(i).u * UZ(i+1, j  , k  )
200  );
201END

Non-diagonal part

\[\mu \frac{1}{J} \dif{}{\gcs{1}} \left( \frac{J}{\sfact{1}} \vgt{3}{1} \right)\]
src/fluid/predict/uz.c
218BEGIN
219  const double hx_xm = HXXF(i  );
220  const double hx_xp = HXXF(i+1);
221  const double jd_xm = JDXF(i  );
222  const double jd_x0 = JDXC(i  );
223  const double jd_xp = JDXF(i+1);
224  const double lzx_xm = LZX(i  , j  , k  );
225  const double lzx_xp = LZX(i+1, j  , k  );
226  src[cnt] += diffusivity / jd_x0 * (
227      - jd_xm / hx_xm * lzx_xm
228      + jd_xp / hx_xp * lzx_xp
229  );
230END

Stream-wise derivative

\[\dmomdif{2}{3} = \mu \frac{1}{J} \dif{}{\gcs{2}} \left( \frac{J}{\sfact{2}} \vgt{2}{3} \right) + \mu \frac{1}{J} \dif{}{\gcs{2}} \left( \frac{J}{\sfact{2}} \vgt{3}{2} \right)\]

Diagonal part

\[\mu \frac{1}{J} \dif{}{\gcs{2}} \left( \frac{J}{\sfact{2}} \vgt{2}{3} \right) = \mu \frac{1}{J} \dif{}{\gcs{2}} \left( \frac{J}{\sfact{2}} \dlyz \right)\]
src/fluid/predict/uz.c
56for(size_t i = 1; i <= isize; i++){
57  const double l = 1. / HYXC(i  ) / HYXC(i  );
58  const double u = 1. / HYXC(i  ) / HYXC(i  );
59  const double c = - l - u;
60  laplacians.LAPY(i).l = l;
61  laplacians.LAPY(i).c = c;
62  laplacians.LAPY(i).u = u;
63}
src/fluid/predict/uz.c
245BEGIN
246  src[cnt] += diffusivity * (
247      + LAPY(i).l * UZ(i  , j-1, k  )
248      + LAPY(i).c * UZ(i  , j  , k  )
249      + LAPY(i).u * UZ(i  , j+1, k  )
250  );
251END

Non-diagonal part

\[\mu \frac{1}{J} \dif{}{\gcs{2}} \left( \frac{J}{\sfact{2}} \vgt{3}{2} \right)\]
src/fluid/predict/uz.c
267BEGIN
268  const double hy = HYXC(i  );
269  const double jd = JDXC(i  );
270  const double lzy_ym = LZY(i  , j  , k  );
271  const double lzy_yp = LZY(i  , j+1, k  );
272  src[cnt] += diffusivity / jd * (
273      - jd / hy * lzy_ym
274      + jd / hy * lzy_yp
275  );
276END

Span-wise derivative

\[\dmomdif{3}{3} = 2 \mu \frac{1}{J} \dif{}{\gcs{3}} \left( \frac{J}{\sfact{3}} \vgt{3}{3} \right) = 2 \mu \frac{1}{J} \dif{}{\gcs{3}} \left( \frac{J}{\sfact{3}} \dlzz \right)\]
src/fluid/predict/uz.c
69const double l = 1. / hz / hz;
70const double u = 1. / hz / hz;
71const double c = - l - u;
72laplacians.lapz.l = l;
73laplacians.lapz.c = c;
74laplacians.lapz.u = u;
src/fluid/predict/uz.c
291BEGIN
292  // NOTE: tzz = "2" lzz
293  src[cnt] += 2. * diffusivity * (
294      + (*lapz).l * UZ(i  , j  , k-1)
295      + (*lapz).c * UZ(i  , j  , k  )
296      + (*lapz).u * UZ(i  , j  , k+1)
297  );
298END