I need to implement a 3D version of the Corner Transport Upwind (CTU) finite volume method (in python); and so I've been reading Leveque, "Finite Volume Methods for Hyperbolic Problems" which I think is quite good. Shown below is the critical section regarding how to generalize CTU for linear advection to arbitrary velocity fields (non-constant in space).

I don't understand something about the flux updates $G_{i, j-1/2}$ and $G_{i, j+1/2}$. Suppose $v_{i, j-1/2}$ is negative and $v_{i, j+1/2}$ is positive but they have the same magnitude. Then there is transverse flux across both $G_{i, j-1/2}$ and $G_{i, j+1/2}$, and hence those flux updates will be non-zero. Further, $G_{i, j-1/2}$ will be positive (the sign flips due to the sign of the velocity right?) and $G_{i, j+1/2}$ will be negative.

These cells are then used in the flux differencing formula for cell $Q_{ij}$ as: $G_{i, j+1/2} - G_{i, j-1/2}$. Because the two terms had opposite sign before, the minus sign causes them to add together, rather than cancel.

That doesn't seem right to me. With respect to cell $Q_{ij}$, I thought these transverse terms were meant to account for parts of the wave that don't flux into the cell, but in this case the donor-cell wave traveling from $Q_{i-1, j}$ into $Q_{ij}$ is stretching on the top and bottom equally, so shouldn't the flux into $Q_{ij}$ be the same as if the transverse fluxes weren't there at all, as if $v_{i, j-1/2}$ and $v_{i, j+1/2}$ were both zero? That is, the donor cell flux into $Q_{ij}$ sweeps out the same area as if $v_{i, j-1/2}$ and $v_{i, j+1/2}$ were both zero.

Page 454-455 from Leveque FVM for Hyperbolic Problems.

  • $\begingroup$ @Kirill, thanks! I didn't know you could use math mode in StackEx posts. I'm a StackEx newb. $\endgroup$ – NLi10Me Jun 10 '16 at 16:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.