Scale factor and Jacobian determinant¶
Discrete scale factors are given by
\[ \begin{align}\begin{aligned}\sfact{1}
&
\equiv
\Delta \vx,\\\sfact{2}
&
\equiv
\Delta \vy,\\\sfact{3}
&
\equiv
\Delta \vz,\end{aligned}\end{align} \]
for Cartesian coordinates (is_curved == false
), while
\[ \begin{align}\begin{aligned}\sfact{1}
&
\equiv
\Delta \vr,\\\sfact{2}
&
\equiv
\vr
\Delta \vt,\\\sfact{3}
&
\equiv
\Delta \vz,\end{aligned}\end{align} \]
for cylindrical coordinates (is_curved == true
), respectively.
They are stored at the wall-normal cell faces and centers (except \(\sfact{3}\), which is constant across the whole domain):
src/domain.c¶
273for(int i = 1; i <= isize + 1; i++){
274 HXXF(i ) = XC(i ) - XC(i-1);
275}
src/domain.c¶
289HXXC( 0) = 0.5 * XF( 2) - 0.5 * XF( 1);
290for(int i = 1; i <= isize; i++){
291 HXXC(i ) = XF(i+1) - XF(i );
292}
293HXXC(isize + 1) = 0.5 * XF(isize + 1) - 0.5 * XF(isize);
src/domain.c¶
308for(int i = 1; i <= isize + 1; i++){
309 HYXF(i ) = is_curved ? XF(i ) * ly / ny : ly / ny;
310}
src/domain.c¶
325for(int i = 0; i <= isize + 1; i++){
326 HYXC(i ) = is_curved ? XC(i ) * ly / ny : ly / ny;
327}
Discrete Jacobian determinants, which are also defined at cell faces and centers, are simply the product of the local scale factors:
\[J
\equiv
\Pi_i
\sfact{i}.\]
src/domain.c¶
341for(int i = 1; i <= isize + 1; i++){
342 JDXF(i ) = HXXF(i ) * HYXF(i );
343}
src/domain.c¶
357for(int i = 1; i <= isize + 1; i++){
358 JDXF(i ) = HXXF(i ) * HYXF(i ) * hz;
359}
src/domain.c¶
374for(int i = 0; i <= isize + 1; i++){
375 JDXC(i ) = HXXC(i ) * HYXC(i );
376}
src/domain.c¶
390for(int i = 0; i <= isize + 1; i++){
391 JDXC(i ) = HXXC(i ) * HYXC(i ) * hz;
392}