ref{sec-courant}) (and certain constants which depend
on the adopted interpolation rules), the
expression for the collision time, $\tau$, contains the only 2
parameters in the code.  According to gas kinetic theory, the mean
time between collisions in a gas with density $\rho$ and temperature
$T$ is proportional to $1/(\rho T^{1/2})$.  Since $\lambda \approx 1/T$,
$\tau = {\cal C}_{1} \sqrt{\lambda}/\rho$ where ${\cal C}_{1}$ is a
proportionality constant and the first of the two parameters in $\tau$.
We add a second term to the expression for the collision time. In 
one-dimensional Cartesian coordinates this second term is:
\begin{equation}
{\cal C}_{2}\frac{\arrowvert \sqrt{\lambda_{l}}/\rho_{l} - 
\sqrt{\lambda_{r}}/\rho_{r} \arrowvert}{\sqrt{\lambda_{l}}/\rho_{l} +
\sqrt{\lambda_{r}}/\rho_{r}} \frac{\arrowvert p_{l} - p_{r}  \arrowvert}
{(p_{l}  + p_{r})}.
\label{eq:secondcollterm}
\end{equation}
The subscript $l\hspace{.3em}(r)$ denotes quantities interpolated from the
left (right) side of the cell interface at which we compute
the collision time $\tau$ and $p$ is the gas pressure.  We choose the 
above form for the
second term in the expression for the collision time $\tau$ because
it helps with shocks across which there are gradients in $p$. 
As stated in the introduction (section~\ref{sec-intro}), we motivate 
this second term in the collision time as follows:
given that
the coefficients of heat conduction and viscosity are proportional
to the collision time $\tau$, the second term in the expression for
$\tau$ acts to increase both heat conduction and viscosity at
shock fronts but not at contact discontinuities across which pressure
is continuous.
When the second term in the collision time
dominates,  the order of the scheme is reduced and the true
distribution function $f$ is determined more by the initial
distribution function $f_{0}$ than by the integral over $g$.



\subsection{Computing the Total Fluxes}
Once $f({\bf x}_{f}, t)$ is fully known as a
function of the parameters of $g$, $f_{0}$, the collision
time $\tau$, and $t$, the time-dependent fluxes at ${\bf x}_{f}$
can be computed.  We illustrate flux computation for a one-dimensional 
Cartesian problem.   In that case we are interested
only in the $x$-component of the total flux, i.e. the component of the
flux which is perpendicular to a cell wall at $x_{f}$.  The total amount 
of mass, $x$-momentum and energy densities transferred through the wall
perpendicular to the $x$-direction in a CFL time step
$0 \leq t \leq T$ is found from:
\begin{eqnarray}
\hspace*{-10.cm}\left(\begin{array}{clcr}
{\cal F}^{\rho} \\ {\cal F}^{P_{x}} \\ 
{\cal F}^{{\cal E}_{\rm kin} + {\cal E}_{\rm int}}
\end{array}\right) = 
\nonumber \\
\int^{T}_{0} \int {u_{x}} \left(\begin{array}{clcr}
1 \\ {u_{x}} \\ 
\frac{1}{2}({u_{x}}^{2}+{\xi^2})
\end{array}\right) \, f(x_{f},{\bf u},t) \,
d \, \Xi \, d\, t
\label{eq:fluxes}
\end{eqnarray}
Note that in the end, the gas kinetic origin of
the expressions for the fluxes disappears and they are written as
highly non-linear functions of the mass, momenta and energy densities
which are presumed known at the beginning of the time step.

\subsection{Courant Time Step}
\label{sec-courant}
The time step ${T}$ used to evolve the dynamical equations is chosen so
that it satisfies
the CFL condition.  
Physically the CFL condition limits the distance that information can
travel in one time step to one cell.  
For the one-dimensional
Cartesian case we compute ${T}$ for each cell on the
grid from
\begin{eqnarray*}
{{a}}_{{i+1/2}}
{\hspace*{+.2em}}{T}^{2}   +  \nonumber \\
\left( |{ U}_{i+1/2}|+ c_{i+1/2} \right) {T} +
{{\cal L}}_{i+1/2}   =  0
\end{eqnarray*}
where 
${a}$ is the local gravitational acceleration due to gravity,
{\rm i.e.} $-\frac{\partial \Phi}{\partial {x}}$,
${ U}$ is the local macroscopic velocity, $c$ is the local
adiabatic sound speed and 
\begin{eqnarray*}
{{\cal L}}_{i+1/2} = {\rm min} ((x_{i+1}-x_{i}),
(x_{i}-x_{i-1}),(x_{i-1}-x_{i-2}) \nonumber ).
\end{eqnarray*}
This choice for ${{\cal L}}_{i+1/2}$ insures that flux transport
between adjacent cells is carried out for a length of time short
enough so as not to empty them.

Finally the time step $T$ is chosen from
\begin{equation}
T = (1 - \epsilon) {\rm min} ({T})
\end{equation}
where $(1-\epsilon)$ is a safety factor; it is called the CFL factor
(typically $\epsilon \approx.6$).

\subsection{Comments about Flux Computation with the BGK method}
\label{sec-implication}

Unlike Riemann solvers which propagate information along
the characteristics of the Euler equations, the BGK scheme 
propagates information along the characteristics of the
Boltzmann equation.  These are particle trajectories in
phase space.  In the BGK scheme
fluid properties along
the full continuum of trajectories passing through $(\bf{x},t)$
contribute to the instantaneous fluxes at $(\bf{x},t)$. 
The
implications of this are many.  
Firstly it bypasses the
limitation of lattice Boltzmann codes which discretize velocity
space thereby restricting the number of directions for the propagation
of information and thereby also limiting the magnitudes of the gas
velocities.

Secondly, using all the trajectories with appropriate weighting 
endows the BGK scheme
with intrinsic upwindedness.  An upwind scheme computes fluxes using
information coming from the same direction as the flow.  When
computing fluxes, the
BGK scheme does not select trajectories corresponding to the direction
of flow and discount the rest;
instead it uses information carried by all
trajectories arriving at the place where we construct $f$, but it
weights the information along each trajectory according to the
number of particles assigned to the trajectory 
by the BGK solution.  This is what we mean
by an intrinsically upwind scheme.  

Thirdly, the consideration of the
full continuum of trajectories for the flux computation creates the potential
for a truly multidimensional code.  Because the velocity
integration includes all propagation directions and because the
trajectories can be followed multidimensionally, the flux in one
direction can potentially be computed from information coming with
all speeds and all directions.  For a genuinely
multidimensional scheme, the interpolation of the initial conditions
for the reconstruction stage must also be multidimensional.  For
example,  
for a computation on a two dimensional Cartesian
grid,  the reconstruction of the initial conditions at a point 
$(x,y)$ should include information from cells surrounding
the point in both the $x$ and the $y$ directions.

At the
present time, the multidimensional BGK schemes which have been
implemented do not take advantage of the truly multidimensional
possibility that the BGK scheme offers.  They still simplify flux
updates by separating them into individual operations in 
independent directions.  This is an example of
``operator-splitting''. On the optimistic side, a truly
multidimensional BGK scheme is conceivable.  The same cannot be said
for schemes based on Riemann solvers.  Even in two dimensions it is
not feasible to construct a truly multidimensional Riemann solver. 
Upon representing the initial
conditions as piecewise constant in two-dimensional
cells, the Riemann solution is straightforward to apply at each of the 
interfaces of a two-dimensional cell but problematic at cell corners.
Furthermore, by propagating information  only along the directions
normal to cell interfaces, a two-dimensional Riemann solver has
the same limitation as an operator-split method: it does not accommodate
the possibility that waves in two-dimensional flows may propagate in
infinitely many directions (Roe 1986).

\subsection