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