Advection

Wall-normal component

\[\dmomadv{2}{1}\]
src/fluid/predict/uy.c
123  BEGIN
124    const double hx_xm = HXXF(i  );
125    const double hx_xp = HXXF(i+1);
126    const double jd_xm = JDXF(i  );
127    const double jd_x0 = JDXC(i  );
128    const double jd_xp = JDXF(i+1);
129#if NDIMS == 2
130    const double ux_xm = + 0.5 * jd_xm / hx_xm * UX(i  , j-1)
131                         + 0.5 * jd_xm / hx_xm * UX(i  , j  );
132    const double ux_xp = + 0.5 * jd_xp / hx_xp * UX(i+1, j-1)
133                         + 0.5 * jd_xp / hx_xp * UX(i+1, j  );
134#else
135    const double ux_xm = + 0.5 * jd_xm / hx_xm * UX(i  , j-1, k  )
136                         + 0.5 * jd_xm / hx_xm * UX(i  , j  , k  );
137    const double ux_xp = + 0.5 * jd_xp / hx_xp * UX(i+1, j-1, k  )
138                         + 0.5 * jd_xp / hx_xp * UX(i+1, j  , k  );
139#endif
140    const double l = - 0.5 * ux_xm;
141    const double u = + 0.5 * ux_xp;
142    const double c = - l - u;
143    src[cnt] -= 1. / jd_x0 * (
144#if NDIMS == 2
145        + l * UY(i-1, j  )
146        + c * UY(i  , j  )
147        + u * UY(i+1, j  )
148#else
149        + l * UY(i-1, j  , k  )
150        + c * UY(i  , j  , k  )
151        + u * UY(i+1, j  , k  )
152#endif
153    );
154  END

Stream-wise component

\[\dmomadv{2}{2}\]
src/fluid/predict/uy.c
171  BEGIN
172    const double jd = JDXC(i  );
173    const double hy = HYXC(i  );
174#if NDIMS == 2
175    const double uy_ym = + 0.5 * jd / hy * UY(i  , j-1)
176                         + 0.5 * jd / hy * UY(i  , j  );
177    const double uy_yp = + 0.5 * jd / hy * UY(i  , j  )
178                         + 0.5 * jd / hy * UY(i  , j+1);
179#else
180    const double uy_ym = + 0.5 * jd / hy * UY(i  , j-1, k  )
181                         + 0.5 * jd / hy * UY(i  , j  , k  );
182    const double uy_yp = + 0.5 * jd / hy * UY(i  , j  , k  )
183                         + 0.5 * jd / hy * UY(i  , j+1, k  );
184#endif
185    const double l = - 0.5 * uy_ym;
186    const double u = + 0.5 * uy_yp;
187    const double c = - l - u;
188    src[cnt] -= 1. / jd * (
189#if NDIMS == 2
190        + l * UY(i  , j-1)
191        + c * UY(i  , j  )
192        + u * UY(i  , j+1)
193#else
194        + l * UY(i  , j-1, k  )
195        + c * UY(i  , j  , k  )
196        + u * UY(i  , j+1, k  )
197#endif
198    );
199  END

Span-wise component

\[\dmomadv{2}{3}\]
src/fluid/predict/uy.c
216BEGIN
217  const double jd = JDXC(i  );
218  const double uz_zm = + 0.5 * jd / hz * UZ(i  , j-1, k  )
219                       + 0.5 * jd / hz * UZ(i  , j  , k  );
220  const double uz_zp = + 0.5 * jd / hz * UZ(i  , j-1, k+1)
221                       + 0.5 * jd / hz * UZ(i  , j  , k+1);
222  const double l = - 0.5 * uz_zm;
223  const double u = + 0.5 * uz_zp;
224  const double c = - l - u;
225  src[cnt] -= 1. / jd * (
226      + l * UY(i  , j  , k-1)
227      + c * UY(i  , j  , k  )
228      + u * UY(i  , j  , k+1)
229  );
230END

Additional component

\[\dmomadvy\]
src/fluid/predict/uy.c
250  BEGIN
251    const double hx_xm = HXXF(i  );
252    const double hx_xp = HXXF(i+1);
253    const double jd_xm = JDXF(i  );
254    const double jd_x0 = JDXC(i  );
255    const double jd_xp = JDXF(i+1);
256    const double djdhx = - jd_xm / hx_xm
257                         + jd_xp / hx_xp;
258#if NDIMS == 2
259    const double uy_ym = + 0.5 * UY(i  , j-1)
260                         + 0.5 * UY(i  , j  );
261    const double uy_yp = + 0.5 * UY(i  , j  )
262                         + 0.5 * UY(i  , j+1);
263    const double ux_ym = + 0.5 * UX(i  , j-1)
264                         + 0.5 * UX(i+1, j-1);
265    const double ux_yp = + 0.5 * UX(i  , j  )
266                         + 0.5 * UX(i+1, j  );
267#else
268    const double uy_ym = + 0.5 * UY(i  , j-1, k  )
269                         + 0.5 * UY(i  , j  , k  );
270    const double uy_yp = + 0.5 * UY(i  , j  , k  )
271                         + 0.5 * UY(i  , j+1, k  );
272    const double ux_ym = + 0.5 * UX(i  , j-1, k  )
273                         + 0.5 * UX(i+1, j-1, k  );
274    const double ux_yp = + 0.5 * UX(i  , j  , k  )
275                         + 0.5 * UX(i+1, j  , k  );
276#endif
277    src[cnt] -= 1. / jd_x0 * (
278        + 0.5 * djdhx * uy_ym * ux_ym
279        + 0.5 * djdhx * uy_yp * ux_yp
280    );
281  END