Пример #1
0
        public void DerivativeOperator1D3P_Multiplu_Decimal()
        {
            // Подготовка
            var d = new DerivativeOperator1D3P
            {
                Kim1 = 2.4m,
                Ki   = 0.1m,
                Kip1 = 1.8m
            };

            decimal decimalNumber = 2.0m;

            // Действие
            var result = d * decimalNumber;
            var d3     = new DerivativeOperator1D3P {
                Kim1 = 4.8m, Ki = 0.2m, Kip1 = 3.6m
            };

            // Проверка
            Assert.NotEqual(d, d3);
            Assert.NotEqual(result, d3);
            Assert.Equal(result.Kim1, d3.Kim1);
            Assert.Equal(result.Ki, d3.Ki);
            Assert.Equal(result.Kip1, d3.Kip1);
        }
Пример #2
0
        /// <summary>
        /// Исследование характеристик работы решателя одномерных задач
        /// </summary>
        private static void SolverTask1DTests()
        {
            // Задаём дифференциальный оператор
            var op = new DerivativeOperator1D3P();

            op.Kim1 = -1m / (2m * 0.5m);
            op.Ki   = 2m;
            op.Kip1 = 1m / (2m * 0.5m);

            // Создаём одномерную расчетную область
            var raschOblast1D = new Grid1D(1.5m, 11, AxisEnum.X);
            // Создаём исследуемый объект
            var lineSegment = new GeometryPrimitive1DLineSegment(new Coordinate1D(0m), 0.5m);

            var raschObjectGeometry1D = new Geometry1D();
            var geometryElement       = new GeometryElement1D(new Coordinate1D(0.5m));

            geometryElement.AddGeometryPrimitive(lineSegment);
            raschObjectGeometry1D.AddGeometryElement(geometryElement);

            var gridWithGeometryPrecalculated1D = new GridWithGeometryPreCalculated1D(raschOblast1D, raschObjectGeometry1D);

            var nodeSet1D = gridWithGeometryPrecalculated1D.NodeSet1D;

            // Создаём задачу
            var task = new SolverTask1D();

            task.NodeSet1D = nodeSet1D;

            SolverResult result = Solver.Calculate(task);
        }
Пример #3
0
        public void DerivativeOperator1D3P_Plus_DerivativeOperator1D3P()
        {
            // Подготовка
            var d1 = new DerivativeOperator1D3P
            {
                Kim1 = 2.4m,
                Ki   = 0.1m,
                Kip1 = 1.8m
            };

            var d2 = new DerivativeOperator1D3P
            {
                Kim1 = 0.1m,
                Ki   = 0.2m,
                Kip1 = 0.3m
            };

            // Действие
            var result = d1 + d2;
            var d3     = new DerivativeOperator1D3P {
                Kim1 = 2.5m, Ki = 0.3m, Kip1 = 2.1m
            };

            // Проверка
            Assert.NotEqual(d1, d2);
            Assert.NotEqual(result, d1);
            Assert.NotEqual(result, d2);
            Assert.Equal(result.Kim1, d3.Kim1);
            Assert.Equal(result.Ki, d3.Ki);
            Assert.Equal(result.Kip1, d3.Kip1);
        }