/// <summary> /// /// </summary> /// <param name="Control"></param> /// <param name="currentState"></param> public FourierLevSetTimestepper(FourierLevSetControl Control, RungeKuttaScheme _RKscheme, double[] currentState, DelComputeChangerate _DelCompChange, DelEvolveFourier _DelEvolveFourier) { this.Timestepper = Control.Timestepper; this.RKscheme = _RKscheme; this.underrelaxation = Control.UnderRelax; this.DelCompChange = _DelCompChange; this.DelEvolveFourier = _DelEvolveFourier; current_FLSproperty = currentState; }
/// <summary> /// /// </summary> /// <param name="Control"></param> /// <returns></returns> public static FourierLevSetTimestepper Build_Timestepper(FourierLevSetControl Control, double[] currentState, DelComputeChangerate _DelCompChange, DelEvolveFourier _DelEvolveFourier) { RungeKuttaScheme RKscheme; switch (Control.Timestepper) { case FourierLevelSet_Timestepper.ExplicitEuler: RKscheme = RungeKuttaScheme.ExplicitEuler; break; case FourierLevelSet_Timestepper.Middlepoint: RKscheme = RungeKuttaScheme.Middlepoint; break; case FourierLevelSet_Timestepper.RungeKutta1901: RKscheme = RungeKuttaScheme.RungeKutta1901; break; case FourierLevelSet_Timestepper.ThreeOverEight: RKscheme = RungeKuttaScheme.ThreeOverEight; break; case FourierLevelSet_Timestepper.Heun: RKscheme = RungeKuttaScheme.Heun2; break; case FourierLevelSet_Timestepper.Heun3: RKscheme = RungeKuttaScheme.Heun; break; case FourierLevelSet_Timestepper.TVD3: RKscheme = RungeKuttaScheme.TVD3; break; case FourierLevelSet_Timestepper.RungeKutta3: RKscheme = RungeKuttaScheme.RungeKutta3; break; default: throw new ArgumentException(); } return(new FourierLevSetTimestepper(Control, RKscheme, currentState, _DelCompChange, _DelEvolveFourier)); }
public FLS_Timestepper_AB(FourierLevSetControl Control, double[] currentState, DelComputeChangerate _DelCompChange, DelEvolveFourier _DelEvolveFourier, int ABorder) : base(Control, currentState, _DelCompChange, _DelEvolveFourier) { ABsc_chain = new ABSchemeCoeff[ABorder]; for (int i = 0; i < ABorder; i++) { ABsc_chain[i] = ABSchemeCoeff.AB(i + 1); } }