Exemplo n.º 1
0
        public static WBSolver GetNewSolver2(WBProjectOptions options)
        {
            var layerOpts2 = StandartOpts;
            var geom       = new GunShape();

            geom.AddPoint(layerOpts2.X_left - 0.2, 0.132);
            geom.AddPoint(layerOpts2.X_right + 5, 0.132);
            var initLayer = new OvLayer();

            initLayer.Geom = geom;
            GunPowder powder = new GunPowder();

            powder = powder_AGARD();
            List <GunPowder> powder_list = new List <GunPowder>()
            {
                powder
            };
            List <double> conc_list = new List <double>()
            {
                1
            };
            MixtureGunPowder mixture = new MixtureGunPowder(powder_list, conc_list);

            initLayer.InitLayer(0d, layerOpts2, MySuoerFunc(mixture), InitOvBound);
            var grid   = new OvGridRK("OvGrid_tst1", initLayer);
            var solver = new WBSolver(grid, options);

            initLayer.SynchNodes_X_V();
            return(solver);
        }
Exemplo n.º 2
0
 public static Func <double, double, OvCell> MySuoerFunc(MixtureGunPowder mixture)
 {
     return((t, x) => {
         var answ = new OvCell(null, mixture);
         answ.ro = 840;
         answ.u = 0;
         answ.p = 1e5;
         answ.X = x;
         answ.V = 0;
         for (int i = 0; i < answ.mixture.powders.Count; i++)
         {
             answ.z[i] = 0;
         }
         return answ;
     });
 }
Exemplo n.º 3
0
        public void GetPressureTest()
        {
            var powder = new GunPowder();

            powder.f        = 1.009e6;
            powder.alpha_k  = 1.0838e-3;
            powder.dest     = 1575;
            powder.k        = 1.25;
            powder.nu       = 0.9;
            powder.T1       = 2585;
            powder.lambda_1 = 0.2049;
            powder.lambda_2 = -0.8977;
            powder.kappa_1  = 0.7185;
            powder.kappa_2  = 0.5386;
            powder.Ik       = 1.276e6;
            powder.zk       = 1.5;
            List <GunPowder> powder_list = new List <GunPowder>()
            {
                powder
            };
            List <double> conc_list = new List <double>()
            {
                1
            };
            MixtureGunPowder mixture = new MixtureGunPowder(powder_list, conc_list);
            var cell = new OvCell(null, mixture)
            {
                ro = 840,
                u  = 0,
                p  = 1e5,
                X  = 0,
                V  = 0
            };

            cell.e = cell.GetE();
            var p = cell.GetPressure();

            Assert.AreEqual(cell.p, p, 0.1);
        }
Exemplo n.º 4
0
 public OvCell(GasConstants g, MixtureGunPowder mixture) : base(g, 3 + mixture.powders.Count)
 {
     this.mixture = mixture;
     z            = new double[mixture.powders.Count];
 }