#include <LimiterFactory.hpp>
Purpose: Limiters are widely used in discrete differential computation to provide more accurate results than central differential. We know that central differential scheme oscillate around solutions. Limiters are tools helping to avoid this problem. Example of applications are ENO and WENO schemes, ... Another reason of AbsLimiter usage in restoration, is the need of building fast intra-grid data, like have point differentials: k[i+1/2,j]= average(k[i+1,j]+k[i,j]) The central schemes are averaging neigbour grid values. k[i+1/2,j]= (k[i+1,j]+k[i,j])/2 AbsLimiters like the minmod,... can replace it. k[i+1/2,j]= minmod(k[i+1,j]+k[i,j]) Paper: "Experiments in minimizing numerical diffusion across a material boundary.", Christian Aalburg, Thesis, Aerospace engineering, University of Michigan 1996. "Euler's Elastica and curvature based inpaintings.", T. Chan, S.Kang, Report UCLA 2000. "Regularized Shock Filters and Complex Diffusion.", Guy Gilboa, N. Sochen & Y Zeevi, Report Technion, Haifa, Israel 2003. New central schemes with minmod: "New High-Resolution Semi-discrete Central Schemes for Hamilton-Jacobi Equations.", Alexander Kurganov & Eitan Tadmor, Journal of Computational Physics 160, p720-742, 2000. "Central Runge-Kutta Schemes for Conservation Laws.", L. Pareschi, G.Puppo, G.Russo, Università di Ferrara, Italy, 2002. "Afternotes on PHM: Weighted Harmonic ENO Methods.", Antonio Marquina, Spain, 2003.
@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2003, Eggs & Pictures. MIT/Open BSD copyright model.
Public Methods | |
LimiterFactory () | |
virtual | ~LimiterFactory () |
AbsLimiter * | createModel (int indexModel=0, double alpha=0.0) |
virtual void | report (FILE *file) |
Static Public Methods | |
int | numberOfContexts () |
int | numberOfModels () |
const char * | getContext (int i) |
const char * | getModel (int i) |
const int | getModelContext (int i) |
Static Public Attributes | |
const char | context [NUMBER_LIMITER_CONTEXT][64] |
const char | model [NUMBER_LIMITER_MODELS][64] |
const int | modelContext [NUMBER_LIMITER_MODELS] |
Protected Methods | |
AbsLimiter * | createCentralLimiter () |
AbsLimiter * | createMinmod () |
AbsLimiter * | createDoubleMinmod () |
AbsLimiter * | createSuperbee () |
AbsLimiter * | createMineno () |
AbsLimiter * | createHarmod () |
AbsLimiter * | createHareno () |
AbsLimiter * | createVarSuperbee (double alpha) |
|
Initial value: { "Central basic scheme", "Non linear limiter", "Harmonic limiter", } |
|
Initial value: { "Central Scheme Averaging, oscillates", "General purpose limiter,diffuses,converges in steady problems", "Improved minmod limiter diffuse less, still converges ", "Accurate limiter superbee converges in non-steady problems only", "Flexible limiter variable superbee, suitable for any problem", "limiter Mineno like minmod used in ENO schemes", "limiter Harmod used in PHM schemes, converges much better", "limiter Hareno used in PHM/HENO/WHENO ,better convergence" } |
|
Initial value: { 0, 1, 1, 1, 1, 1, 2, 2 } |