/// <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;
        }
Exemple #2
0
        /// <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));
        }
Exemple #3
0
 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);
     }
 }