Esempio n. 1
0
        public void Solve(string name, TData data, Func <double, double, double> fFunc, params IContinue[] continues)
        {
            Bundle bundle = new Bundle(name, data);

            try
            {
                bundle.BeginEdit();
                bundle.Save();

                double t      = 0;
                int    number = 0;
                var    grid   = bundle.GetGrid();
                double dt     = bundle.dt();

                while (continues.All(c => c.Continue(bundle)))
                {
                    double[] arrayValues = new double[grid.N];

                    for (int i = 0; i < grid.N; i++)
                    {
                        double x = grid[i];
                        arrayValues[i] = fFunc(x, t);
                    }
                    string layerName = GetLayerName(bundle, number);
                    bundle.AddArray(layerName, number, arrayValues);
                    t += dt;
                    number++;
                }
                OnSolved(bundle, true);
            }
            catch (Exception exception)
            {
                OnSolved(bundle, false, exception);
            }
        }
Esempio n. 2
0
        public void Solve(string name, TData data, params Func <double, double>[] fFuncs)
        {
            Bundle bundle = new Bundle(name, data);

            try
            {
                bundle.BeginEdit();
                bundle.Save();

                int number = 0;
                var grid   = bundle.GetGrid();

                foreach (var func in fFuncs)
                {
                    double[] arrayValues = new double[grid.N];

                    for (int i = 0; i < grid.N; i++)
                    {
                        double x = grid[i];
                        arrayValues[i] = func(x);
                    }
                    string layerName = GetLayerName(bundle, number);
                    bundle.AddArray(layerName, number, arrayValues);
                    number++;
                }
                OnSolved(bundle, true);
            }
            catch (Exception exception)
            {
                OnSolved(bundle, false, exception);
            }
        }