示例#1
0
        public void DrawdownTest()
        {
            TheisAnalysis target           = new TheisAnalysis();    // TODO: Initialize to an appropriate value
            IXYPoint      PumpingWell      = new XYPoint(0, 0);
            double        PumpingRate      = 5000.0 / 24.0 / 3600.0; //5000 m3/day
            double        Storativity      = 1.83e-3;
            double        Transmissivity   = 164.49 / 24.0 / 3600.0; //90 m2/day
            TimeSpan      Time             = TimeSpan.FromMinutes(100);
            IXYPoint      ObservationPoint = new XYPoint(50, 50);
            double        actual;

            actual = target.Drawdown(PumpingWell, PumpingRate, Storativity, Transmissivity, Time, ObservationPoint);

            Assert.AreEqual(2.959, actual, 0.01);
        }
示例#2
0
        public void NovoTest()
        {
            TheisAnalysis target         = new TheisAnalysis(); // TODO: Initialize to an appropriate value
            IXYPoint      PumpingWell    = new XYPoint(0, 0);
            double        PumpingRate    = 15 / 3600.0;         //
            double        Storativity    = 5e-3;
            double        Transmissivity = 1e-3;                //


            List <IXYPoint> InjectionWells = new List <IXYPoint>();

//      InjectionWells.Add(new XYPoint(704288.01, 6201186.04));
//      InjectionWells.Add(new XYPoint(704455.3,6201201.6 ));
//      InjectionWells.Add(new XYPoint(704621.99, 6201219));
////      InjectionWells.Add(new XYPoint(704951.98, 6201249.18));

            List <IXYPoint> ExtractionWells = new List <IXYPoint>();

            //ExtractionWells.Add(new XYPoint(704934.54, 6200994.85));
            //ExtractionWells.Add(new XYPoint(704896.26, 6200720.37));
            //ExtractionWells.Add(new XYPoint(704940, 6200550));


            //InjectionWells.Add(new XYPoint(704698, 6202442));
            //ExtractionWells.Add(new XYPoint(704850, 6202365));


            using (ShapeReader sr = new ShapeReader(@"C:\Users\Jacob\Dropbox\Enopsol\BiogenLocation.shp"))
            {
                foreach (var g in sr.GeoData)
                {
                    if ((int)g.Data[0] == 1)
                    {
                        InjectionWells.Add((IXYPoint)g.Geometry);
                    }
                    else if ((int)g.Data[0] == 2)
                    {
                        ExtractionWells.Add((IXYPoint)g.Geometry);
                    }
                }
            }



            var d = target.Drawdown(InjectionWells.First(), 56.0 / 3600.0, Storativity, Transmissivity, TimeSpan.FromHours(4), new XYPoint(InjectionWells.First().X + 2, InjectionWells.First().Y + 2));

            List <List <double> > drawdowns = new List <List <double> >();

            drawdowns.Add(new List <double>());
            drawdowns.Add(new List <double>());
            drawdowns.Add(new List <double>());

            //Frederiksgade
            IXYPoint ObservationPoint = new XYPoint(705669, 6202256);

            int j = 0;

            for (int i = 0; i < 100; i++)
            {
                double   s    = 0;
                TimeSpan Time = TimeSpan.FromDays(i);

                foreach (var w in ExtractionWells)
                {
                    s += target.Drawdown(w, +PumpingRate, Storativity, Transmissivity, Time, ObservationPoint);
                }

                drawdowns[j].Add(s);


                foreach (var w in InjectionWells)
                {
                    s += target.Drawdown(w, -PumpingRate, Storativity, Transmissivity, Time, ObservationPoint);
                }

                drawdowns[j + 1].Add(s);

                double dw = target.Drawdown(ExtractionWells[0], PumpingRate, Storativity, Transmissivity, Time, new XYPoint(ExtractionWells[0].X + 0.5, ExtractionWells[0].Y + 0.5));
                drawdowns[j + 2].Add(dw);
            }

            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"c:\temp\enopsol.txt"))
            {
                for (int i = 0; i < 100; i++)
                {
                    sw.WriteLine(drawdowns[0][i].ToString() + "\t" + drawdowns[1][i].ToString() + "\t" + drawdowns[2][i].ToString());
                }
            }
        }