Esempio n. 1
0
        public void Can_append()
        {
            const string fileName = "c:\\temp\\resin_tests\\FieldFileTests\\Can_append\\0.fld";

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            using (var writer = new FieldFile(fileName))
            {
                writer.Write(0, "Hello", 0);
            }

            var terms = FieldReader.Load(fileName).GetAllTokens();

            Assert.AreEqual(1, terms.Count);
            Assert.IsTrue(terms.Contains("Hello"));
            Assert.IsFalse(terms.Contains("World!"));

            using (var writer = new FieldFile(fileName))
            {
                writer.Write(0, "World!", 1);
            }

            terms = FieldReader.Load(fileName).GetAllTokens();

            Assert.AreEqual(2, terms.Count);
            Assert.IsTrue(terms.Contains("Hello"));
            Assert.IsTrue(terms.Contains("World!"));
        }
Esempio n. 2
0
        public IEnumerable <string> GetFieldItemsOfSelectedField()
        {
            var fn    = FieldListBox.SelectedItemText;
            var fdata = FieldFile.GetFieldFile(fn, currDatabase.folder);
            var ds    = fdata.ReadFieldHeaders();

            return(from d in ds select d.name);
        }
Esempio n. 3
0
        private SteelFlowProjectFile() : base()
        {
            inletNames  = new List <string>();
            upfaceNames = new List <string>();
            symNames    = new List <string>();
            outletNames = new List <string>();
            wallNames   = new List <string>();

            U       = new FieldFile("U", Dimension.U, new InternalField(new VectorVar(0.0, 0.0, 0.0, true)));
            p       = new FieldFile("p", Dimension.P, new InternalField(new ScalerVar(0, true)));
            k       = new FieldFile("k", Dimension.K, new InternalField(new ScalerVar(0.001, true)));
            nut     = new FieldFile("nut", Dimension.NU, new InternalField(new ScalerVar(0.0, true)));
            epsilon = new FieldFile("epsilon", Dimension.EPSILON, new InternalField(new ScalerVar(0.1, true)));
            this.Fields.AddRange(new FieldFile[] { U, p, k, nut, epsilon });

            TransportProperties.AddPropertie("nu", new ScalerVar(Material.DynamicViscosity / Material.Density, Dimension.NU));
            TurbulenceProperties.Model = new KEpsilon();

            Ddt           ddtSteady          = new Ddt(Ddt.DdtTypes.steadyState);
            Interpolation ipLinear           = new Interpolation(Interpolation.InterpolationTypes.linear);
            Interpolation ipUpwind           = new Interpolation(Interpolation.InterpolationTypes.upwind);
            Grad          gdGaussLinear      = new Grad(Grad.GradTypes.Gauss, ipLinear);
            Grad          gdGaussUpwind      = new Grad(Grad.GradTypes.Gauss, ipUpwind);
            Div           dvGaussUpwind      = new Div(Div.DivTypes.Gauss, ipUpwind);
            Div           dvGaussLinear      = new Div(Div.DivTypes.Gauss, ipLinear);
            SnGrad        sgLimitedCorrected = new SnGrad(SnGrad.SnGradTypes.limited, "corrected 0.33");
            Laplacian     lpGaussLinear      = new Laplacian(Laplacian.LaplacianTypes.Gauss, ipLinear, sgLimitedCorrected);

            FvSchemes.AddDdtSchemes(ddtSteady);
            FvSchemes.AddGradSchemes(gdGaussLinear);
            FvSchemes.AddDivSchemes(dvGaussLinear);
            FvSchemes.AddDivSchemes("div(phi,U)", dvGaussUpwind);
            FvSchemes.AddDivSchemes("div(phi,k)", dvGaussUpwind);
            FvSchemes.AddDivSchemes("div(phi,epsilon)", dvGaussUpwind);
            FvSchemes.AddLaplacianSchemes(lpGaussLinear);
            FvSchemes.AddInterpolationSchemes(ipLinear);
            FvSchemes.AddSnGradSchemes(sgLimitedCorrected);

            Simple simple = new Simple();

            simple.residual.SetResidual("p", 1e-4);
            simple.residual.SetResidual("U", 1e-4);
            simple.residual.SetResidual("\"(k|omega|epsilon)\"", 1e-4);
            FvSolution.Solution = simple;
            FvSolution.Relaxation.AddFieldFactor("p", 0.3);
            FvSolution.Relaxation.AddEquationFactor("U", 0.7);
            FvSolution.Relaxation.AddEquationFactor("\"(k|omega|epsilon).*\"", 0.7);
            GAMG           gamgP     = new GAMG("p", 1e-6, 0.1, Solver.SmootherTypes.GaussSeidel);
            SmootherSolver ssOther   = new SmootherSolver("\"(U|k|omega|epsilon)\"", 1e-5, 0.1, Solver.SmootherTypes.GaussSeidel);
            GAMG           gamgOther = new GAMG("\"(U|k|omega|epsilon)\"", 1e-6, 0.1, Solver.SmootherTypes.GaussSeidel);

            FvSolution.AddSolver(gamgP);
            FvSolution.AddSolver(ssOther);
        }
Esempio n. 4
0
 public void Test()
 {
     //return;
     var        fieldData = FieldFile.GetFieldFile("REP30040", DatabaseDir);
     SwitchSpec spec      = new SwitchSpec
     {
         demographicField = new FieldDetail()
         {
             fieldName  = "WPOCITY",
             fieldItems =
             {
                 "全国总体", " 上海", " 北京",
             }
         },
         period1Field = new FieldDetail()
         {
             fieldName  = "W_PERIOD",
             fieldItems = new SortedSet <string>((from header in FieldFile.GetFieldFile("W_PERIOD", DatabaseDir).ReadFieldHeaders()
                                                  select header.name).Skip(1).ToList())
         },
         dataFilter = new FieldDetail()
         {
             fieldName  = "REP30031",
             fieldItems =
             {
                 "  新鲜酸奶", "   果粒酸奶"
             }
         },
         brands = new FieldDetail()
         {
             fieldName       = "REP30040",
             fieldItemsIndex = new SortedSet <int> {
                 1, 2, 3
             }
         },
         primaryVolume = new FieldDetail()
         {
             fieldName = "R_SPEND",
         },
         secondaryVolume = new FieldDetail()
         {
             fieldName = "R_SPEND",
         },
         isRolling    = true,
         periodLength = 13,
         waveInterval = 13,
     };
 }
Esempio n. 5
0
        public void Can_read_field_file()
        {
            const string fileName = "c:\\temp\\resin_tests\\Can_read_field_file\\0.fld";

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
            using (var fw = new FieldFile(fileName))
            {
                fw.Write(0, "hello", 0);
                fw.Write(5, "world", 1);
            }
            var reader = FieldReader.Load(fileName);
            var helloPositionsForDocId0 = reader.GetPostings("hello")[0];
            var worldPositionsForDocId5 = reader.GetPostings("world")[5];

            Assert.AreEqual(0, helloPositionsForDocId0.First());
            Assert.AreEqual(1, worldPositionsForDocId5.First());
        }
Esempio n. 6
0
        static void test1()
        {
            FieldFile ff = new FieldFile("U");

            ff.Dimensions    = Dimension.U;
            ff.InternalField = new InternalField(new VectorVar(1, 0, 0, true));
            ff.BoundaryField = new BoundaryField();
            ff.BoundaryField.AddBoundary(new FixedValue("in", new VectorVar(1, 0, 0, true)));
            ff.BoundaryField.AddBoundary(new Symmetry("sym"));
            //ff.Write("e:\\hope\\test");

            ControlDict cd = new ControlDict();
            //cd.Write("e:\\hope\\test");

            FvSchemes     fs = new FvSchemes();
            Interpolation i  = new Interpolation(Interpolation.InterpolationTypes.linear);
            Grad          g  = new Grad(Grad.GradTypes.Gauss, i);
            SnGrad        s  = new SnGrad(SnGrad.SnGradTypes.corrected);
            Laplacian     l  = new Laplacian(Laplacian.LaplacianTypes.Gauss, i, s);
            Div           d  = new Div(Div.DivTypes.Gauss, i);

            fs.AddDdtSchemes(new Ddt(Ddt.DdtTypes.steadyState));
            fs.AddGradSchemes(g);
            fs.AddDivSchemes(d);
            fs.AddDivSchemes("div(phi,U)", d);
            fs.AddLaplacianSchemes(l);
            fs.AddInterpolationSchemes(i);
            fs.AddSnGradSchemes(s);
            //fs.Write("e:\\hope\\test");

            FvSolution fsn = new FvSolution(new Simple());
            PBiCG      psu = new PBiCG("U", 0.001, 0.001, PBiCG.Preconditioners.DIC);
            PBiCG      psp = new PBiCG("p", 0.001, 0.001, PBiCG.Preconditioners.DIC);

            fsn.AddSolver(psu);
            fsn.AddSolver(psp);
            fsn.SetFieldRelaxtionFactors("U", 1);
            fsn.SetFieldRelaxtionFactors("U", 0.8);
            //fsn.Write("e:\\hope\\test");
        }
Esempio n. 7
0
        public void Can_read_write()
        {
            const string fileName = "c:\\temp\\resin_tests\\FieldFileTests\\Can_read_write\\0.fld";

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
            using (var writer = new FieldFile(fileName))
            {
                writer.Write(0, "Hello", 0);
                writer.Write(0, "World!", 1);
            }

            Assert.IsTrue(File.Exists(fileName));

            var reader = FieldReader.Load(fileName);
            var terms  = reader.GetAllTokens();

            Assert.IsTrue(terms.Contains("Hello"));
            Assert.IsTrue(terms.Contains("World!"));
        }
Esempio n. 8
0
        public void SetField(FieldDetail field)
        {
            Console.WriteLine("Searching field {0}", field.fieldName);
            FieldDescListBox.Items[FieldListBox.Items.FindIndex(x => x.Name == field.fieldName)].Select();
            if (field.fieldItems.Count == 0 && field.fieldItemsIndex.Count == 0)
            {
                return;
            }
            var headers = FieldFile.GetFieldFile(field.fieldName, dbFolder).ReadFieldHeaders();
            var indices = headers
                          .Select((item, index) => new { item.name, index })
                          .Where(pair => { return(field.fieldItems.Contains(pair.name)); })
                          .Select(x => x.index)
                          .Concat(field.fieldItemsIndex)
                          .OrderBy(x => x);

            foreach (var idx in indices)
            {
                Console.WriteLine("{0} -> {1}", idx, headers[idx].name);
            }
            SelectFieldItems(indices);
        }