Version 25 (modified by 14 years ago) ( diff ) | ,
---|
Integration Scheme
Integration parameters are chosen using the method flags in bear.data. Further Details and references on each method can be found in Cunningham et al 2007.
For iScheme = 0
Spatial Interpolation
method(2) | ||
---|---|---|
Value | Method | Details |
0 | Gudonov 1st order | |
1 | MUSCL Primitive Field Linear Interpolation | |
2 | MUSCL Wave-by-Wave Interpolation | MUSCL wave-by-wave interpolation of conservative fields. May result in better resolution of contact discontinuities, but adds and additional eigen-decomposition in the interpolation step. Generally the decrease in diffusion is too small to be worth the extra computational cost. |
3 | Piecewise Parabolic Method (PPM) | Least diffusive, but "shock-flatteners" which prevent numerical oscillation near shocks (typically required) is not yet implemented. Future updates will include this feature, improving PPM for most problems. |
4 | Piecewise Hyperbolic Method (PHM) | Average diffusion; achieves a good balance between the desire for low diffusion and a numerically robust method. |
The MUSCL with minmod limiting (see below) is the most diffusive, and typically the most robust against numerical difficulty. MUSL interpolation with the vanLeer limiter also strikes a good balance between robustness of the scheme for strong shocks and low diffusion.
Slope Limiters
The MUSCL and PPM interpolations make use of so-called slope limiters as of revision 221, the code implements several choices set by the mthlim parameter in bear.data. The mthlim parameter is an array with each element indicating the limiter to be used on the corresponding conservative field.
mthlim | ||
---|---|---|
Value | Limiter | Details |
0 | Constant | |
1 | Minmod | Most diffusive (and generally most robust) TVD limiter. |
2 | Superbee | Least diffusive TVD limiter. Typically suffers oscillations behind strong shocks, but may be the best choice for problems with only weak shocks where high resolution is desired. |
3 | VanLeer | Llimiter used in the original vanLeer (1974) MUSCL scheme. Uniquely, it does not have sharp discontinuities in the limiter function. May be a good "default choice". Seemingly almost as robust as minmod, but not as diffusive. |
4 | Monotonized Centered (MC) | Suggested as another good default in Randy Leveque's book. |
Direction Splitting
method(3) | ||
---|---|---|
Value | Method | Details |
0 | Directionally Unsplit with No Transverse Corrections. | Stable for CFL < 1/nDim. |
1 | Directionally Split with Direction Interleaving. | Stable for CFL < 1. |
Future versions will use method(3) to enable corner transport and other more fully multi-dimensional schemes.
Temporal Interpolation
method(4) | ||
---|---|---|
Value | Method | Details |
0 | Gudonov 1st Order | |
1 | MUSCL-Hancock Predictor-Corrector | Fastest, and least accurate method. |
2 | TVD-Preserving Runge-Kutta | Shu & Osher 88. Generally the most numerically robust and slowest method. |
3 | Piecewise Parabolic Method (PPM) | Characteristic tracing predictor-corrector. Good "default" option. In cases where PPM spatial interpolation is used, it makes sense to use PPM temporal interpolation which produces the original PPM method of Colella & Woodward. |
4 | Linear | Characteristic tracing predictor-corrector. Good "default" option. If the spatial interpolation is not PPM then linear characteristic tracing is a good choice. |
Source Terms
method(5) | ||
---|---|---|
Value | Term | Details |
0 | No Source Terms | |
1 | Source Step w/o Strang Splitting | |
2 | Strang Split Source Term | Applied from subroutine src in physics i_src.f90 |
Flux Upwinding
method(6) | ||
---|---|---|
Value | Solver | Details |
0 | Roe Flux | Uses Roe-Type Riemann solver. Least diffusive method, however this method can cause entropy errors and carbuncles at transonic points in highly compressible flows. |
1 | Adapted Marquina Flux | Uses Roe-Type Riemann solver. Overcomes Roe Flux limitations by applying a more diffusive local Lax Fredrich's flux at transonic points. Can fail in certain cases for MHD due to the non-convex nature of the MHD flux function. |
2 | Marquina Flux (pure hydro only) | Uses Roe-Type Riemann solver. Combines elements of the Roe and Marquina methods to construct a method that is suitable for MHD which retains the local Lax Fredrich's flux at transonic points. |
3 | HLLD Riemann (MHD only) |
Spatial/Temporal Method Combinations (iScheme=0)
Ultimately, the user is responsible for the choice of integration methods which best balances accuracy with robustness for their specific problem. In general, however, there are combinations of method()'s which make more sense than others. For example, there would be little sense in using the costly Runge-Kutta temporal integration method (method(4)=2) with the most-basic spatial integration method of Godunov (method(2)=0).
Below are offered common spatial/temporal method() combinations, roughly in order of increasing accuracy. method(5)
(Source Terms) is omitted—it should be 0 when no source terms present and 2 otherwise. method(6)
is omitted—it should be 0 in nearly all cases. Also, the minmod slope limiter (mthlim(=1) is recommended.
method(2) | method(4) | Details |
---|---|---|
0 | 0 | 1st order everywhere; most basic & diffusive. Not recommended for "production" simulations. |
1 | 1 | Fastest MUSCL scheme. A good starting place. |
2 | 1 | Better MUSCL spatial method, but may not justify increased computational cost. |
4 | 1 | Better spatial interpolation (PHM) w/ OK temporal integration. |
1, 2, 4 | 4 | Better temporal integration than method(4)=1. |
3 | 3 | PPM spatial/temporal methods. Typically "the best" in terms of accuracy & robustness. |
1, 2, 3, 4 | 2 | TVD Runge-Kutta integration should be most robust, but VERY slow. |
For iScheme = 1
Spatial Interpolation
method(2) | ||
---|---|---|
Value | Method | Details |
0 | Gudonov 1st order | |
1 | Piecewise Parabolic Interpolation |
Temporal Interpolation
method(4) | ||
---|---|---|
Value | Method | Details |
0 | Gudonov 1st Order | |
1 | Piecewise Parabolic Characteristic Tracing | 3rd order accurate method. |
Source Terms
method(5) | ||
---|---|---|
Value | Term | Details |
0 | No Source Terms | |
2 | Strang Split Source Term | Applied from subroutine src in physics i_src.f90 |
Flux Upwinding
method(6) | ||
---|---|---|
Value | Solver | Details |
0 | Chooses Default HLLC solver depending on lMHD and iEOS | |
1 | Exact Riemann Solver | Exact solver for hydro with an ideal EOS. |
2 | HLLC Solver | Fast, positive preserving somewhat diffusive solver for ideal hydro. |
3 | HLL Solver | Very fast, positive preserving very diffusive solver for ideal hydro. |
4 | HLLC_ISO Solver | Fast, positive preserving somewhat diffusive solver for isothermal hydro. |
6 | HLLD Solver | Fast, positive preserving somewhat diffusive solver for ideal MHD. |
8 | HLLD_ISO Solver | Fast, positive preserving somewhat diffusive solver for isothermal MHD. |
Spatial/Temporal Method Combinations (iScheme=1)
In general the Gudonov option should be used as a last resort. The PPM is a somewhat expensive high order reconstruction method. Method(4) should always equal method(2). If there are source terms present, method(5) must be 2. And method(6) should be between 1 and 3 for ideal hydro, 4 for isothermal hydro, 6 for ideal MHD and 8 for isothermal MHD. If method(6)=0, then the appropriate HLL solver (2,4,6, or 8) is chosen depending on lMHD and iEOS. (If lMHD is true then iDivB must also be set to 6.)
Click here for plot showing order of default PPM method compared to Gudonov 1st order scheme used when (lGudonov == .true.)
Attachments (1)
-
PPMGudonovPrecision.png
(76.5 KB
) - added by 14 years ago.
Plot showing order of methods
Download all attachments as: .zip