Beispiel #1
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);
        }
Beispiel #2
0
        /// <summary>
        /// Добавляет слои из объекта геометрии
        /// </summary>
        /// <param name="geometry">Объект Geometry</param>
        private void InsertGridLayersFromGeometry(Geometry1D geometry)
        {
            if (geometry == null)
            {
                return;
            }

            GridLayers1D gridLayers1D = geometry.GetGridLayers1D;

            GridLayers1D.Merge(gridLayers1D);
        }
Beispiel #3
0
 /// <summary>
 /// Генерирует наборы слоёв из переданных объектов
 /// сетки и геометрии
 /// </summary>
 /// <param name="grid">Объект Grid</param>
 /// <param name="geometry">Объект Geometry</param>
 private void GenerateLayersFromGridAndGeometry(Grid1D grid, Geometry1D geometry)
 {
     InsertGridLayersFromGrid(grid);
     InsertGridLayersFromGeometry(geometry);
 }
Beispiel #4
0
 public GridWithGeometryPreCalculated1D(Grid1D grid, Geometry1D geometry)
 {
     GenerateLayersFromGridAndGeometry(grid, geometry);
     CalculateGridLayers1DParamaters();
     NodeSet1D = (NodeSet1D)GenerateNodeSetFromGridLayersAndGeometry(GridLayers1D, geometry);
 }