2D AMRCLAW
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | limiter (maxm, meqn, mwaves, mbc, mx, wave, s, mthlim) |
Apply a limiter to the waves. More... | |
subroutine limiter | ( | maxm, | |
meqn, | |||
mwaves, | |||
mbc, | |||
mx, | |||
dimension(meqn, mwaves, 1-mbc:maxm+mbc) | wave, | ||
dimension(mwaves, 1-mbc:maxm+mbc) | s, | ||
dimension(mwaves) | mthlim | ||
) |
Apply a limiter to the waves.
The limiter is computed by comparing the 2-norm of each wave with the projection of the wave from the interface to the left or right onto the current wave. For a linear system this would correspond to comparing the norms of the two waves. For a nonlinear problem the eigenvectors are not colinear and so the projection is needed to provide more limiting in the case where the neighboring wave has large norm but points in a different direction in phase space.
The specific limiter used in each family is determined by the value of the corresponding element of the array mthlim, as used in the function philim. Note that a different limiter may be used in each wave family.
dotl and dotr denote the inner product of wave with the wave to the left or right. The norm of the projections onto the wave are then given by dotl/wnorm2 and dotr/wnorm2, where wnorm2 is the 2-norm of wave.
Definition at line 24 of file limiter.f.
References amr_module::mthlim, amr_module::mwaves, and philim().