示例#1
0
 internal void GridSizeChanged(GridSizes size)
 {
     mostSparseToolStripMenuItem.Checked  = size == GridSizes.Large;
     gridSize2ToolStripMenuItem.Checked   = size == GridSizes.Medium;
     gridSize3ToolStripMenuItem.Checked   = size == GridSizes.Small;
     mostPreciseToolStripMenuItem.Checked = size == GridSizes.Tiny;
 }
示例#2
0
        internal void ChangeGridSize(GridSizes size, bool notifyUser = true)
        {
            if (Grid == null)
            {
                return;
            }

            Grid.ChangeSize(size, notifyUser);
        }
示例#3
0
        public void Test2DVolumeConvergenceUnstructured()
        {
            int[]       orders = Enumerable.Range(0, 6).ToArray();
            GridSizes[] sizes  = new GridSizes[] { GridSizes.Small, GridSizes.Normal, GridSizes.Large };
            double[,] results = new double[sizes.Length, orders.Length];
            var rootFindingAlgorithm = new LineSegment.SafeGuardedNewtonMethod(1e-14);

            for (int i = 0; i < sizes.Length; i++)
            {
                ITestCase testCase = new MinGibou1EllipseArea(sizes[i], GridTypes.PseudoStructured);
                testCase.ScaleShifts(0.5 * testCase.GridSpacing);

                Program app = new Program(testCase);
                app.Init(null);
                app.SetUpEnvironment();
                app.SetInitial();
                testCase.ProceedToNextShift();
                double referenceValue = app.SetUpConfiguration();

                for (int j = 0; j < orders.Length; j++)
                {
                    var result = app.PerformConfiguration(
                        Modes.HMFClassic,
                        orders[j],
                        rootFindingAlgorithm: rootFindingAlgorithm);
                    results[i, j] = Math.Abs(result.Item1 - referenceValue);
                }
            }

            double[] xValues = sizes.Select(s => - Math.Log(2.0) * (int)s).ToArray();
            for (int j = 0; j < orders.Length; j++)
            {
                double[] yValues = new double[sizes.Length];

                for (int i = 0; i < sizes.Length; i++)
                {
                    yValues[i] = Math.Log(results[i, j]);
                }

                double eoc = Regression(xValues, yValues);

                Console.WriteLine(eoc);
                Assert.That(
                    eoc > orders[j] + 1,
                    "Convergence order too low for order " + orders[j]);
            }
        }
示例#4
0
        /// <summary>
        /// Changes the spacing width of the display grid.
        /// </summary>
        /// <param name="size">Size specified</param>
        /// <param name="notifyUser">Inform user on change</param>
        internal void ChangeSize(GridSizes size, bool notifyUser = true)
        {
            size = ClampSize(size);

            if (Size == size)
            {
                return;
            }

            Size = size;

            if (configValue != null)
            {
                configValue.Value = (int)Size;
            }

            if (notifyUser)
            {
                NotificationManager.ShowMessageMassive("Grid Size: " + size, 1000);
            }

            GameBase.EditorControl.GridSizeChanged(size);
        }
示例#5
0
 public ConstantIntegrandSingleCellSphereCutout3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#6
0
 public Smereka2EllipseArcLength(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#7
0
 internal Grid(Editor editor, GridSizes size)
 {
     this.editor = editor;
     ChangeSize(size, false);
 }
示例#8
0
 public StarTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#9
0
 public MinGibou4StarArea(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#10
0
 public Smereka1SquareArcLength(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#11
0
 public MinGibou1EllipseArea(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#12
0
 public ConstantIntgreandSphereSurfaceIntegral3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#13
0
文件: TestCase.cs 项目: xyuan/BoSSS
 /// <summary>
 /// Constructs a new test case.
 /// </summary>
 /// <param name="gridSize">
 /// <see cref="ITestCase.GridSize"/>
 /// </param>
 /// <param name="gridType">
 /// <see cref="ITestCase.GridType"/>
 /// </param>
 public TestCase(GridSizes gridSize, GridTypes gridType)
 {
     this.GridSize = gridSize;
     this.GridType = gridType;
 }
示例#14
0
 public TorusVolume3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#15
0
 public GenericTorus3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#16
0
 public InverseConeVolume3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#17
0
 public SphereVolume3DNonSignedDistanceTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#18
0
 public SphereVolume3DTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#19
0
 public Smereka4EllipsoidSurface(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#20
0
 public MinGibou3TorusQuadraticIntegrand(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#21
0
 public Smereka5SphereQuadraticIntegrand(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#22
0
 public SingleCubeTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#23
0
 public MinGibou2EllipsoidVolume(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#24
0
 public SingleCubeParaboloidVolumeTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#25
0
 public MinGibou3StarArcLength(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#26
0
 public SingleCubeParaboloidSurfaceAreaTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#27
0
 public ChengFriesSinusoidalLength(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#28
0
 public SingleTetraSurfaceTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#29
0
 public SingleTetraVolumeTestCase(GridSizes gridSize, GridTypes gridType)
     : base(gridSize, gridType)
 {
 }
示例#30
0
        /// <summary>
        /// Gets the next grid size in the cycle wrapping around if next size is too big
        /// </summary>
        /// <returns>Next grid size</returns>
        internal static GridSizes NextGridSize(GridSizes size)
        {
            GridSizes nextSize = (GridSizes)((int)size * 2);

            return(nextSize <= GridSizes.Large ? nextSize : GridSizes.Tiny);
        }