Flux Limiter
Given a hyperbolic system of m equations we want to solve
it with the flux limiter method. We can specify the parameter
m as well as the number of cell averages
n that we wish to use in the WorldModel block. The
first block we need is the integrator block that will give the
mxn+gcl+gcr average matrix Q as output
with which we can start the construction. Having matrix Q we
can compute the jumps

at each interface i = 1,...,n+gcl+gcr-1. The deltaQ block
achieves this task. The next step is to solve the Riemann problem

This can be accomplished by passing DeltaQ and mxm
eigenvalue matrix R to the Riemann block which will
give us the
mxn+gcl+gcr-1 matrix alpha as output. It is important
to note that the eigenvalue matrix R as well as the
eigenvalues lambdai must be provided
by the user. In the case of a constant coefficient linear
hyperbolic system these do not change with time. The next step is
to use the alpha matrix just obtained together
with the i-th eigenvalue lambdai to
calculate thetai. The thetai
matrix has the thetai values in the i-th
row and zeros elsewhere.
Once thetai matrix is computed we can use for
instance Beam-Warming block to compute phi(theta),
which is just theta in the Beam-Warming method.
Beam-Warming together with many other methods is implemented in
FluxSolver block. The user can choose which method to use in
the WorldModel block
by giving the corresponding value to the fls variable. Here
is a list of methods with their corresponding values:
- Upwind method: fls
= 1
- Lax-Wendroff
method: fls = 2
- Beam-Warming
method: fls = 3
- Fromm method: fls
= 4
- van Leer method:
fls = 5
The next step is to pass the alpha and R matrix to
the pWave block, that will calculate the p-th Wave
matrix

and give the mxn+1 matrix as output. Each column p in
this matrix contains the wave Wi-1/2p.
By using the same block but giving this time
widetilde{alpha} as input instead of \alpha we can
compute the limited wave widetilde{W}

The limited widetilde{alpha} can be computed by using the
block LimitedAlpha which need phi(theta) and
alpha matrices as input. With the eigenvalues
lambdap and the waves matrices W,
widetilde{W} we can compute the fluxes and fluctuations.
This is done by blocks FluxLimited and
Fluctuation.
The FluxLimited block computes

If we have m equations in the system then we must use m
FluxLimited block to compute each term of the sum

and then sum all the outputs of the blocks and pass the result to
the Flux input of the integrator block. The same applies to
the Fluctuation block, only that here we must sum the
+ outputs
of the blocks and - outputs of the blocks separately and at
the end pass them to the + and - inputs of the
integrator, respectively. Finally we specify the initial
and boundary conditions and connect them to the IC and
gcl, gcr inputs, respectively.
Release Notes: