Version 2 (modified by 12 years ago) ( diff ) | ,
---|
Dissipation Methods
High order reconstruction methods (PPM) require limiters at various stages of the reconstruction. Some of the limiters are to prevent new extrema in the reconstructed polynomial, while others are used to flatten the reconstruction near shocks.
In AstroBEAR we use a method similar to the one described in http://arxiv.org/abs/astro-ph/0505200
For each cell and each direction we calculate a shock width
and shock strengthThe 1D flattening parameter is then calculated as
Note that if
or if then and no flattening is performed. Also note that when both and the slope is completely limited and the scheme reverts to 1st order. Note that for a linear pressure profile, the shock width is ½ and the shock strength is(In Miller & Colella 2002, the denominator in the shock strength calculations was instead )
The values used (hard coded) are:
Once the 1D limiters are used, they could be combined to give 3D limiters as is done in Miller & Colella 2002
however, instead we use the form in http://arxiv.org/abs/astro-ph/0505200 where we consider every limiter in every cell within a distance of 1 (so there are 81 possible 1D limiters to consider in 3D).
Finally there is the addition of dissipation at converging flows. First a measure of divergence is calculated at each cell corner.
These are then averaged to get the divergence at each cell face
.This is used to provide a dissipation speed
where is typically set to .1
To enable this dissipation set lApplyDiffusion = .true.
in solver.data.
This will use an by default. To modify add Diff_Alpha=.2
or whatever value you would like to use to solver.data
Carbuncles
There are a couple of additional dissipation methods that are geared toward combating carbuncles.
H Viscosity
There are two settings for ViscCD that can be set in solver.data. Setting ViscCD == 1 does not help with carbuncles, but might help with entropy errors associated with the Roe solver. (Currently the Roe solver is not implemented, so ViscCD should never be set to 1.) Setting ViscCD == 2 implements the H-viscosity (Sanders et al 1998).
Local Oscillation Filter
Alternatively one can use the local oscillation filter (Sutherland 2003). This adds additional diffusion in a manner similar to the method described above, but only applies it when the 1D slope limiters have an odd-even pattern in a transverse direction (as expected whenever carbuncles develop along grid-aligned shocks.) To enable set lApplyLOF = .true.
in solver.data. To adjust the strength of the diffusion add LOF_alpha=.1
or whatever. (The default value is .075)