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