lixiaojun
2024-08-09 e05304b6f041abe25896a5c3f2df018a12e0204d
计算结果改造
已修改5个文件
已添加43个文件
1725 ■■■■■ 文件已修改
Hydro/Yw.EPAnet.Calcu.Core/00-core/CurvePoint.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/00-core/PipeStatus.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/00-core/Position2d.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/00-core/PumpStatus.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/00-core/ValveStatus.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Network.cs 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Network_Method.cs 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Parter.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/ILink.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/INode.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/IOperation.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/IParter.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IEmitter.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IJunction.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IReservoir.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/ISource.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/ITank.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IPipe.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IPump.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IValve.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/ICurve.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/IPattern.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/IRule.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/01-reservoir/Reservoir.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/02-tank/Tank.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Hydrant.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Junction.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Meter.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Nozzle.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/01-pipe/Pipe.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/02-pump/Pump.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/03-valve/Valve.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Curve.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Pattern.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Rule.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/02-check/CheckFailed.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/02-check/CheckResult.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuFailed.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuLink.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuNode.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuParter.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuResult.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/Enum/ObjectEnum.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/NetWork/NetWork.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/Node/JunctionModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/Node/TankModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/Yw.EPAnet.Calcu.Core.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/00-core/CurvePoint.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
namespace Yw.EPAnet
{
    /// <summary>
    ///
    /// </summary>
    public class CurvePoint
    {
        /// <summary>
        ///
        /// </summary>
        public CurvePoint() { }
        /// <summary>
        ///
        /// </summary>
        public CurvePoint(int x, int y) : this()
        {
            this.X = x;
            this.Y = y;
        }
        /// <summary>
        ///
        /// </summary>
        public CurvePoint(float x, float y) : this()
        {
            this.X = x;
            this.Y = y;
        }
        /// <summary>
        ///
        /// </summary>
        public CurvePoint(double x, double y) : this()
        {
            this.X = x;
            this.Y = y;
        }
        /// <summary>
        ///
        /// </summary>
        public CurvePoint(decimal x, decimal y) : this()
        {
            this.X = (double)x;
            this.Y = (double)y;
        }
        /// <summary>
        ///
        /// </summary>
        public CurvePoint(CurvePoint rhs) : this()
        {
            this.X = rhs.X;
            this.Y = rhs.Y;
        }
        /// <summary>
        /// X
        /// </summary>
        public double X { get; set; }
        /// <summary>
        /// Y
        /// </summary>
        public double Y { get; set; }
        /// <summary>
        ///
        /// </summary>
        public override string ToString()
        {
            return $"{this.X},{this.Y}";
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/00-core/PipeStatus.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç®¡é“状态
    /// </summary>
    public class PipeStatus
    {
        /// <summary>
        /// å¼€å¯
        /// </summary>
        public const string Open = "Open";
        /// <summary>
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
        /// <summary>
        /// CV æ„å‘³ç€ç®¡é“包含了限制流向的止回阀
        /// </summary>
        public const string CV = "CV";
    }
}
Hydro/Yw.EPAnet.Calcu.Core/00-core/Position2d.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ä½ç½®
    /// </summary>
    public class Position2d
    {
        /// <summary>
        ///
        /// </summary>
        public Position2d() { }
        /// <summary>
        ///
        /// </summary>
        public Position2d(double x, double y)
        {
            this.X = x;
            this.Y = y;
        }
        /// <summary>
        ///
        /// </summary>
        public Position2d(float x, float y)
        {
            this.X = x;
            this.Y = y;
        }
        /// <summary>
        ///
        /// </summary>
        public Position2d(Position2d rhs)
        {
            this.X = rhs.X;
            this.Y = rhs.Y;
        }
        /// <summary>
        /// X
        /// </summary>
        public double X { get; set; }
        /// <summary>
        /// Y
        /// </summary>
        public double Y { get; set; }
        /// <summary>
        ///
        /// </summary>
        public override string ToString()
        {
            return $"{this.X},{this.Y}";
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/00-core/PumpStatus.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æ³µçŠ¶æ€
    /// </summary>
    public class PumpStatus
    {
        /// <summary>
        /// å¼€å¯
        /// </summary>
        public const string Open = "Open";
        /// <summary>
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
    }
}
Hydro/Yw.EPAnet.Calcu.Core/00-core/ValveStatus.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// é˜€é—¨çŠ¶æ€
    /// </summary>
    public class ValveStatus
    {
        /// <summary>
        /// æ— 
        /// </summary>
        public const string None = "None";
        /// <summary>
        /// å¼€å¯
        /// </summary>
        public const string Open = "Open";
        /// <summary>
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Network.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´åŠ›ç®¡ç½‘
    /// </summary>
    public partial class Network
    {
        /// <summary>
        ///
        /// </summary>
        public Network()
        {
            this.Reservoirs = new List<Reservoir>();
            this.Tanks = new List<Tank>();
            this.Junctions = new List<Junction>();
            this.Nozzles = new List<Nozzle>();
            this.Hydrants = new List<Hydrant>();
            this.Meters = new List<Meter>();
            this.Pumps = new List<Pump>();
            this.Valves = new List<Valve>();
            this.Pipes = new List<Pipe>();
            this.Curves = new List<Curve>();
            this.Patterns = new List<Pattern>();
            this.Rules = new List<Rule>();
        }
        /// <summary>
        ///
        /// </summary>
        public Network(Network rhs)
        {
            this.Reservoirs = rhs.Reservoirs;
            this.Tanks = rhs.Tanks;
            this.Junctions = rhs.Junctions;
            this.Nozzles = rhs.Nozzles;
            this.Hydrants = rhs.Hydrants;
            this.Meters = rhs.Meters;
            this.Pumps = rhs.Pumps;
            this.Valves = rhs.Valves;
            this.Pipes = rhs.Pipes;
            this.Curves = rhs.Curves;
            this.Patterns = rhs.Patterns;
            this.Rules = rhs.Rules;
        }
        #region Node
        /// <summary>
        /// æ°´åº“列表
        /// </summary>
        public List<Reservoir> Reservoirs { get; set; }
        /// <summary>
        /// æ°´æ± åˆ—表
        /// </summary>
        public List<Tank> Tanks { get; set; }
        /// <summary>
        /// è¿žæŽ¥èŠ‚ç‚¹åˆ—è¡¨
        /// </summary>
        public List<Junction> Junctions { get; set; }
        /// <summary>
        /// å–·å˜´åˆ—表
        /// </summary>
        public List<Nozzle> Nozzles { get; set; }
        /// <summary>
        /// æ¶ˆç«æ “列表
        /// </summary>
        public List<Hydrant> Hydrants { get; set; }
        /// <summary>
        /// æ°´è¡¨åˆ—表
        /// </summary>
        public List<Meter> Meters { get; set; }
        #endregion
        #region Linker
        /// <summary>
        /// æ°´æ³µåˆ—表
        /// </summary>
        public List<Pump> Pumps { get; set; }
        /// <summary>
        /// é˜€é—¨åˆ—表
        /// </summary>
        public List<Valve> Valves { get; set; }
        /// <summary>
        /// ç®¡é“列表
        /// </summary>
        public List<Pipe> Pipes { get; set; }
        #endregion
        #region Operation
        /// <summary>
        /// æ›²çº¿åˆ—表
        /// </summary>
        public List<Curve> Curves { get; set; }
        /// <summary>
        /// æ¨¡å¼åˆ—表
        /// </summary>
        public List<Pattern> Patterns { get; set; }
        /// <summary>
        /// è§„则
        /// </summary>
        public List<Rule> Rules { get; set; }
        #endregion
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Network_Method.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,214 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´åŠ›ç®¡ç½‘ï¼ˆæ–¹æ³•ï¼‰
    /// </summary>
    public partial class Network
    {
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç»„ä»¶
        /// </summary>
        public List<IParter> GetAllParters()
        {
            var list = new List<IParter>();
            if (this.Reservoirs != null && this.Reservoirs.Count > 0)
            {
                list.AddRange(this.Reservoirs);
            }
            if (this.Tanks != null && this.Tanks.Count > 0)
            {
                list.AddRange(this.Tanks);
            }
            if (this.Junctions != null && this.Junctions.Count > 0)
            {
                list.AddRange(this.Junctions);
            }
            if (this.Nozzles != null && this.Nozzles.Count > 0)
            {
                list.AddRange(this.Nozzles);
            }
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            if (this.Pipes != null && this.Pipes.Count > 0)
            {
                list.AddRange(this.Pipes);
            }
            if (this.Pumps != null && this.Pumps.Count > 0)
            {
                list.AddRange(this.Pumps);
            }
            if (this.Valves != null && this.Valves.Count > 0)
            {
                list.AddRange(this.Valves);
            }
            if (this.Curves != null && this.Curves.Count > 0)
            {
                list.AddRange(this.Curves);
            }
            if (this.Patterns != null && this.Patterns.Count > 0)
            {
                list.AddRange(this.Patterns);
            }
            if (this.Rules != null && this.Rules.Count > 0)
            {
                list.AddRange(this.Rules);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰èŠ‚ç‚¹
        /// </summary>
        public List<INode> GetAllNodes()
        {
            var list = new List<INode>();
            if (this.Reservoirs != null && this.Reservoirs.Count > 0)
            {
                list.AddRange(this.Reservoirs);
            }
            if (this.Tanks != null && this.Tanks.Count > 0)
            {
                list.AddRange(this.Tanks);
            }
            if (this.Junctions != null && this.Junctions.Count > 0)
            {
                list.AddRange(this.Junctions);
            }
            if (this.Nozzles != null && this.Nozzles.Count > 0)
            {
                list.AddRange(this.Nozzles);
            }
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç®¡æ®µ
        /// </summary>
        public List<ILink> GetAllLinks()
        {
            var list = new List<ILink>();
            if (this.Pipes != null && this.Pipes.Count > 0)
            {
                list.AddRange(this.Pipes);
            }
            if (this.Pumps != null && this.Pumps.Count > 0)
            {
                list.AddRange(this.Pumps);
            }
            if (this.Valves != null && this.Valves.Count > 0)
            {
                list.AddRange(this.Valves);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ“ä½œ
        /// </summary>
        public List<IOperation> GetAllOperations()
        {
            var list = new List<IOperation>();
            if (this.Curves != null && this.Curves.Count > 0)
            {
                list.AddRange(this.Curves);
            }
            if (this.Patterns != null && this.Patterns.Count > 0)
            {
                list.AddRange(this.Patterns);
            }
            if (this.Rules != null && this.Rules.Count > 0)
            {
                list.AddRange(this.Rules);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ°´æº
        /// </summary>
        public List<INode> GetAllWaterSources()
        {
            var list = new List<INode>();
            if (this.Reservoirs != null && this.Reservoirs.Count > 0)
            {
                list.AddRange(this.Reservoirs);
            }
            if (this.Tanks != null && this.Tanks.Count > 0)
            {
                list.AddRange(this.Tanks);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ‰©æ•£å™¨
        /// </summary>
        public List<IEmitter> GetAllEmitters()
        {
            var list = new List<IEmitter>();
            if (this.Nozzles != null && this.Nozzles.Count > 0)
            {
                list.AddRange(this.Nozzles);
            }
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰è¿žæŽ¥èŠ‚ç‚¹
        /// </summary>
        public List<IJunction> GetAllJunctions()
        {
            var list = new List<IJunction>();
            if (this.Junctions != null && this.Junctions.Count > 0)
            {
                list.AddRange(this.Junctions);
            }
            if (this.Nozzles != null && this.Nozzles.Count > 0)
            {
                list.AddRange(this.Nozzles);
            }
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            return list;
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/00-core/Parter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç»„ä»¶
    /// </summary>
    public class Parter
    {
        /// <summary>
        ///
        /// </summary>
        public Parter() { }
        /// <summary>
        ///
        /// </summary>
        public Parter(Parter rhs)
        {
            this.Id = rhs.Id;
            this.Name = rhs.Name;
        }
        /// <summary>
        /// id
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        public string Name { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/ILink.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç®¡æ®µ
    /// </summary>
    public interface ILink : IParter
    {
        /// <summary>
        /// å¼€å§‹èŠ‚ç‚¹
        /// </summary>
        INode StartNode { get; set; }
        /// <summary>
        /// ç»“束节点
        /// </summary>
        INode EndNode { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/INode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// èŠ‚ç‚¹
    /// </summary>
    public interface INode : IParter
    {
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        Position2d Position { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/IOperation.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ“ä½œ
    /// </summary>
    public interface IOperation : IParter
    {
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/00-core/IParter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç»„件接口
    /// </summary>
    public interface IParter
    {
        /// <summary>
        /// Id
        /// </summary>
        string Id { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        string Name { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IEmitter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ‰©æ•£å™¨æŽ¥å£
    /// </summary>
    public interface IEmitter : IJunction
    {
        /// <summary>
        /// å–·å°„系数/流量系数
        /// </summary>
        double Coefficient { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IJunction.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è¿žæŽ¥èŠ‚ç‚¹
    /// </summary>
    public interface IJunction : INode
    {
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        string DemandPattern { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/IReservoir.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´åº“
    /// </summary>
    public interface IReservoir : ISource
    {
        /// <summary>
        /// æ€»æ°´å¤´
        /// </summary>
        double Head { get; set; }
        /// <summary>
        /// æ¨¡å¼
        /// </summary>
        string HeadPattern { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/ISource.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æºæŽ¥å£
    /// </summary>
    public interface ISource : INode
    {
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/01-node/ITank.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æ± 
    /// </summary>
    public interface ITank : ISource
    {
        /// <summary>
        /// æ± åº•标高
        /// </summary>
        double PoolElev { get; set; }
        /// <summary>
        /// åˆå§‹æ°´ä½
        /// </summary>
        double InitLevel { get; set; }
        /// <summary>
        /// æœ€ä½Žæ°´ä½
        /// </summary>
        double MinLevel { get; set; }
        /// <summary>
        /// æœ€é«˜æ°´ä½
        /// </summary>
        double MaxLevel { get; set; }
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        double Diameter { get; set; }
        /// <summary>
        /// æœ€å°å®¹ç§¯
        /// </summary>
        double MinVol { get; set; }
        /// <summary>
        /// å®¹ç§¯æ›²çº¿
        /// </summary>
        string VolCurve { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IPipe.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç®¡é“
    /// </summary>
    public interface IPipe : ILink
    {
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        double Diameter { get; set; }
        /// <summary>
        /// é•¿åº¦
        /// </summary>
        double Length { get; set; }
        /// <summary>
        /// ç²—糙系数
        /// </summary>
        double Roughness { get; set; }
        /// <summary>
        /// å±€é˜»ç³»æ•°
        /// </summary>
        double MinorLoss { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IPump.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æ³µ
    /// </summary>
    public interface IPump : ILink
    {
        /// <summary>
        ///  é¢å®šåŠŸçŽ‡
        ///  æ’定能量水泵的功率
        /// </summary>
        double RatedPower { get; set; }
        /// <summary>
        /// æµé‡æ‰¬ç¨‹æ›²çº¿
        /// </summary>
        string CurveQH { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”
        /// </summary>
        double? SpeedRatio { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”模式
        /// æè¿°è½¬é€Ÿæ¯”设置怎样随时间变化的时间模式
        /// æ¨¡å¼ç¼–码
        /// </summary>
        string SpeedRatioPattern { get; set; }
        /// <summary>
        /// èƒ½è€—ä»·æ ¼
        /// </summary>
        double? Price { get; set; }
        /// <summary>
        /// ä»·æ ¼æ¨¡å¼
        /// </summary>
        string PricePattern { get; set; }
        /// <summary>
        /// æ•ˆçŽ‡æ›²çº¿
        /// </summary>
        string CurveQE { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/02-link/IValve.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// é˜€é—¨
    /// </summary>
    public interface IValve : ILink
    {
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        double Diameter { get; set; }
        /// <summary>
        /// å±€é˜»ç³»æ•°
        /// </summary>
        double MinorLoss { get; set; }
        /// <summary>
        /// é˜€é—¨ç±»åž‹
        /// </summary>
        string ValveType { get; set; }
        /// <summary>
        /// é˜€é—¨è®¾ç½®
        /// </summary>
        string ValveSetting { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/ICurve.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ›²çº¿
    /// </summary>
    public interface ICurve : IOperation
    {
        /// <summary>
        /// æ›²çº¿ç±»åž‹
        /// </summary>
        string CurveType { get; set; }
        /// <summary>
        /// æ›²çº¿æ•°æ®
        /// </summary>
        List<CurvePoint> CurveData { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/IPattern.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ¨¡å¼ï¼ˆå®šä¹‰æ—¶é—´æ¨¡å¼ï¼‰
    /// </summary>
    public interface IPattern : IOperation
    {
        /// <summary>
        /// ç±»åˆ«
        /// </summary>
        string Category { get; set; }
        /// <summary>
        /// ä¹˜å­
        /// </summary>
        List<double> Multipliers { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/01-interface/03-operation/IRule.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è§„则
    /// </summary>
    public interface IRule : IOperation
    {
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/01-reservoir/Reservoir.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´åº“
    /// </summary>
    public class Reservoir : Parter, IReservoir
    {
        /// <summary>
        ///
        /// </summary>
        public Reservoir() { }
        /// <summary>
        ///
        /// </summary>
        public Reservoir(Reservoir rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Head = rhs.Head;
            this.HeadPattern = rhs.HeadPattern;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ€»æ°´å¤´
        /// </summary>
        public double Head { get; set; }
        /// <summary>
        /// æ°´å¤´æ¨¡å¼
        /// </summary>
        public string HeadPattern { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/02-tank/Tank.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æ± 
    /// </summary>
    public class Tank : Parter, ITank
    {
        /// <summary>
        ///
        /// </summary>
        public Tank() { }
        /// <summary>
        ///
        /// </summary>
        public Tank(Tank rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.PoolElev = rhs.PoolElev;
            this.InitLevel = rhs.InitLevel;
            this.MinLevel = rhs.MinLevel;
            this.MaxLevel = rhs.MaxLevel;
            this.Diameter = rhs.Diameter;
            this.MinVol = rhs.MinVol;
            this.VolCurve = rhs.VolCurve;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ± åº•标高
        /// </summary>
        public double PoolElev { get; set; }
        /// <summary>
        /// åˆå§‹æ°´ä½
        /// </summary>
        public double InitLevel { get; set; }
        /// <summary>
        /// æœ€ä½Žæ°´ä½
        /// </summary>
        public double MinLevel { get; set; }
        /// <summary>
        /// æœ€é«˜æ°´ä½
        /// </summary>
        public double MaxLevel { get; set; }
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// æœ€å°å®¹ç§¯
        /// </summary>
        public double MinVol { get; set; }
        /// <summary>
        /// å®¹ç§¯æ›²çº¿
        /// </summary>
        public string VolCurve { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Hydrant.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ¶ˆç«æ “
    /// </summary>
    public class Hydrant : Parter, IEmitter
    {
        /// <summary>
        ///
        /// </summary>
        public Hydrant() { }
        /// <summary>
        ///
        /// </summary>
        public Hydrant(Hydrant rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Elev = rhs.Elev;
            this.Demand = rhs.Demand;
            this.DemandPattern = rhs.DemandPattern;
            this.Coefficient = rhs.Coefficient;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        public string DemandPattern { get; set; }
        /// <summary>
        /// æµé‡ç³»æ•°
        /// </summary>
        public double Coefficient { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Junction.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è¿žæŽ¥èŠ‚ç‚¹
    /// </summary>
    public class Junction : Parter, IJunction
    {
        /// <summary>
        ///
        /// </summary>
        public Junction() { }
        /// <summary>
        ///
        /// </summary>
        public Junction(Junction rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Elev = rhs.Elev;
            this.Demand = rhs.Demand;
            this.DemandPattern = rhs.DemandPattern;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        public string DemandPattern { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Meter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´è¡¨
    /// </summary>
    public class Meter : Parter, IJunction
    {
        /// <summary>
        ///
        /// </summary>
        public Meter() { }
        /// <summary>
        ///
        /// </summary>
        public Meter(Meter rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Elev = rhs.Elev;
            this.Demand = rhs.Demand;
            this.DemandPattern = rhs.DemandPattern;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        public string DemandPattern { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/02-node/03-junction/Nozzle.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// å–·å˜´
    /// </summary>
    public class Nozzle : Parter, IEmitter
    {
        /// <summary>
        ///
        /// </summary>
        public Nozzle() { }
        /// <summary>
        ///
        /// </summary>
        public Nozzle(Nozzle rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Elev = rhs.Elev;
            this.Demand = rhs.Demand;
            this.DemandPattern = rhs.DemandPattern;
            this.Coefficient = rhs.Coefficient;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public Position2d Position { get; set; }
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        public string DemandPattern { get; set; }
        /// <summary>
        /// å–·å°„系数
        /// </summary>
        public double Coefficient { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/01-pipe/Pipe.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç®¡é“
    /// </summary>
    public class Pipe : Parter, IPipe
    {
        /// <summary>
        ///
        /// </summary>
        public Pipe() { }
        /// <summary>
        ///
        /// </summary>
        public Pipe(Pipe rhs) : base(rhs)
        {
            this.StartNode = rhs.StartNode;
            this.EndNode = rhs.EndNode;
            this.Diameter = rhs.Diameter;
            this.Length = rhs.Length;
            this.Roughness = rhs.Roughness;
            this.MinorLoss = rhs.MinorLoss;
            this.LinkStatus = rhs.LinkStatus;
        }
        /// <summary>
        /// å¼€å§‹èŠ‚ç‚¹
        /// </summary>
        public INode StartNode { get; set; }
        /// <summary>
        /// ç»“束节点
        /// </summary>
        public INode EndNode { get; set; }
        /// <summary>
        /// ç®¡é“状态
        /// </summary>
        public string LinkStatus { get; set; }
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// é•¿åº¦
        /// </summary>
        public double Length { get; set; }
        /// <summary>
        /// ç²—糙系数
        /// </summary>
        public double Roughness { get; set; }
        /// <summary>
        /// å±€é˜»ç³»æ•°
        /// </summary>
        public double MinorLoss { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/02-pump/Pump.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ°´æ³µ
    /// </summary>
    public class Pump : Parter, IPump
    {
        /// <summary>
        ///
        /// </summary>
        public Pump() { }
        /// <summary>
        ///
        /// </summary>
        public Pump(Pump rhs) : base(rhs)
        {
            this.StartNode = rhs.StartNode;
            this.EndNode = rhs.EndNode;
            this.LinkStatus = rhs.LinkStatus;
            this.RatedPower = rhs.RatedPower;
            this.CurveQH = rhs.CurveQH;
            this.SpeedRatio = rhs.SpeedRatio;
            this.SpeedRatioPattern = rhs.SpeedRatioPattern;
            this.Price = rhs.Price;
            this.PricePattern = rhs.PricePattern;
            this.CurveQE = rhs.CurveQE;
        }
        /// <summary>
        /// å¼€å§‹èŠ‚ç‚¹
        /// </summary>
        public INode StartNode { get; set; }
        /// <summary>
        /// ç»“束节点
        /// </summary>
        public INode EndNode { get; set; }
        /// <summary>
        /// æ°´æ³µçŠ¶æ€
        /// </summary>
        public string LinkStatus { get; set; }
        /// <summary>
        /// é¢å®šåŠŸçŽ‡
        /// </summary>
        public double RatedPower { get; set; }
        /// <summary>
        /// æµé‡æ‰¬ç¨‹æ›²çº¿
        /// </summary>
        public string CurveQH { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”
        /// </summary>
        public double? SpeedRatio { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”模式
        /// </summary>
        public string SpeedRatioPattern { get; set; }
        /// <summary>
        /// èƒ½è€—ä»·æ ¼
        /// </summary>
        public double? Price { get; set; }
        /// <summary>
        /// ä»·æ ¼æ¨¡å¼
        /// </summary>
        public string PricePattern { get; set; }
        /// <summary>
        /// æµé‡æ•ˆçŽ‡æ›²çº¿
        /// </summary>
        public string CurveQE { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/03-link/03-valve/Valve.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// é˜€é—¨
    /// </summary>
    public class Valve : Parter, IValve
    {
        /// <summary>
        ///
        /// </summary>
        public Valve() { }
        /// <summary>
        ///
        /// </summary>
        public Valve(Valve rhs) : base(rhs)
        {
            this.StartNode = rhs.StartNode;
            this.EndNode = rhs.EndNode;
            this.LinkStatus = rhs.LinkStatus;
            this.Diameter = rhs.Diameter;
            this.MinorLoss = rhs.MinorLoss;
            this.ValveType = rhs.ValveType;
            this.ValveSetting = rhs.ValveSetting;
        }
        /// <summary>
        /// å¼€å§‹èŠ‚ç‚¹
        /// </summary>
        public INode StartNode { get; set; }
        /// <summary>
        /// ç»“束节点
        /// </summary>
        public INode EndNode { get; set; }
        /// <summary>
        /// é˜€é—¨çŠ¶æ€
        /// </summary>
        public string LinkStatus { get; set; }
        /// <summary>
        /// ç›´å¾„
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// å±€é˜»ç³»æ•°
        /// </summary>
        public double MinorLoss { get; set; }
        /// <summary>
        /// é˜€é—¨ç±»åž‹
        /// </summary>
        public string ValveType { get; set; }
        /// <summary>
        /// é˜€é—¨è®¾ç½®
        /// </summary>
        public string ValveSetting { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Curve.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ›²çº¿
    /// </summary>
    public class Curve : Parter, ICurve
    {
        /// <summary>
        ///
        /// </summary>
        public Curve() { }
        /// <summary>
        ///
        /// </summary>
        public Curve(Curve rhs) : base(rhs)
        {
            this.CurveType = rhs.CurveType;
            this.CurveData = rhs.CurveData;
        }
        /// <summary>
        /// æ›²çº¿ç±»åž‹
        /// </summary>
        public string CurveType { get; set; }
        /// <summary>
        /// æ›²çº¿æ•°æ®
        /// </summary>
        public List<CurvePoint> CurveData { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Pattern.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ¨¡å¼
    /// </summary>
    public class Pattern : Parter, IPattern
    {
        /// <summary>
        ///
        /// </summary>
        public Pattern() { }
        /// <summary>
        ///
        /// </summary>
        public Pattern(Pattern rhs) : base(rhs)
        {
            this.Category = rhs.Category;
            this.Multipliers = rhs.Multipliers;
        }
        /// <summary>
        /// ç±»åˆ«
        /// </summary>
        public string Category { get; set; }
        /// <summary>
        /// ä¹˜å­
        /// </summary>
        public List<double> Multipliers { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/01-network/04-operation/Rule.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è§„则
    /// </summary>
    public class Rule : Parter, IRule
    {
        /// <summary>
        ///
        /// </summary>
        public Rule() { }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/02-check/CheckFailed.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yw.EPAnet
{
    /// <summary>
    /// æ£€æŸ¥å¤±è´¥
    /// </summary>
    public class CheckFailed
    {
    }
}
Hydro/Yw.EPAnet.Calcu.Core/02-check/CheckResult.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// æ£€æŸ¥ç»“æžœ
    /// </summary>
    public class CheckResult
    {
        /// <summary>
        /// æ˜¯å¦æˆåŠŸ
        /// </summary>
        public bool Succeed { get; set; }
        /// <summary>
        /// å¤±è´¥åˆ—表
        /// </summary>
        public List<CheckFailed> FailedList { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuFailed.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è®¡ç®—失败
    /// </summary>
    public class CalcuFailed
    {
    }
}
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuLink.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç®¡æ®µè®¡ç®—
    /// </summary>
    public class CalcuLink : CalcuParter
    {
        /// <summary>
        /// æµé‡
        /// </summary>
        public float Flow { get; set; }
        /// <summary>
        /// æµé€Ÿ
        /// </summary>
        public float Velocity { get; set; }
        /// <summary>
        /// æ°´å¤´æŸå¤±
        /// </summary>
        public float Headloss { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuNode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// èŠ‚ç‚¹è®¡ç®—
    /// </summary>
    public class CalcuNode : CalcuParter
    {
        /// <summary>
        /// è‡ªç”±åŽ‹åŠ›
        /// </summary>
        public double Press { get; set; }
        /// <summary>
        /// ç»å¯¹åŽ‹åŠ›
        /// </summary>
        public double Head { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double Demand { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuParter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// ç»„件计算
    /// </summary>
    public class CalcuParter
    {
        /// <summary>
        /// id
        /// </summary>
        public string Id { get; set; }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/03-calculation/CalcuResult.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// è®¡ç®—结果
    /// </summary>
    public class CalcuResult
    {
        /// <summary>
        /// æ˜¯å¦æˆåŠŸ
        /// </summary>
        public bool Succeed { get; set; }
        /// <summary>
        /// å¤±è´¥åˆ—表
        /// </summary>
        public List<CalcuFailed> FailedList { get; set; }
        /// <summary>
        /// èŠ‚ç‚¹åˆ—è¡¨
        /// </summary>
        public List<CalcuNode> NodeList { get; set; }
        /// <summary>
        /// ç®¡æ®µåˆ—表
        /// </summary>
        public List<CalcuLink> LinkList { get; set; }
        /// <summary>
        /// èŽ·å–ç»„ä»¶åˆ—è¡¨
        /// </summary>
        public List<CalcuParter> GetParterList()
        {
            var list = new List<CalcuParter>();
            if (this.NodeList != null && this.NodeList.Count > 0)
            {
                list.AddRange(this.NodeList);
            }
            if (this.LinkList != null && this.LinkList.Count > 0)
            {
                list.AddRange(this.LinkList);
            }
            return list;
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace Yw.EPAnet
{
    /// <summary>
    /// Inp交互辅助类
    /// </summary>
    public static class InpInteropHelper
    {
        /// <summary>
        /// è½¬æ¢è‡³Inp字符串
        /// </summary>
        /// <returns></returns>
        public static string ToInpString(this Network rhs)
        {
            return default;
        }
        /// <summary>
        /// ä»ŽInp字符串中解析
        /// </summary>
        /// <param name="inpString">inp字符串</param>
        /// <returns></returns>
        public static Network FromInpString(string inpString)
        {
            return default;
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/Enum/ObjectEnum.cs
@@ -36,5 +36,7 @@
            ç¼ºå°‘水箱或水池对象 = 3,
            ç®¡ä»¶å¯¹è±¡è¿žç®¡ä»¶å¯¹è±¡ = 4
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/NetWork/NetWork.cs
@@ -1,5 +1,4 @@
using Hydro.CommonBase;
using Yw.EPAnet.Calcu;
//using Yw.EPAcore.Core;
using System;
using System.Collections.Generic;
@@ -772,7 +771,7 @@
        /// <returns></returns>
        public virtual List<IResult> Calc(string InpPath)
        {
            Yw.EPAcore.Core.HydraulicCore epanet = new Yw.EPAcore.Core.HydraulicCore(true);
            EPAcore.Core.HydraulicCore epanet = new EPAcore.Core.HydraulicCore(true);
            var list = new List<IResult>();
            var err = epanet.open(InpPath, "", "");
@@ -804,7 +803,7 @@
                for (var j = 0; j < arr.Length; j++)
                {
                    float v = 0;
                    var t = (Yw.EPAcore.Core.NodeValueType)j;
                    var t = (EPAcore.Core.NodeValueType)j;
                    epanet.getnodevalue(i, arrnum[j], ref v);
                    switch (arr[j])
                    {
@@ -835,7 +834,7 @@
                for (var j = 0; j < arr.Length; j++)
                {
                    float v = 0;
                    var t = (Yw.EPAcore.Core.NodeValueType)j;
                    var t = (EPAcore.Core.NodeValueType)j;
                    epanet.getnodevalue(i, arrnum[j], ref v);
                    switch (arr[j])
                    {
Hydro/Yw.EPAnet.Calcu.Core/Node/JunctionModel.cs
@@ -49,5 +49,7 @@
                Elev = base.Elev,
            };
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/Node/TankModel.cs
@@ -50,5 +50,7 @@
            var Overflow = IsOverFlow ? "" : "";
            return $"{ID}\t{Elev}\t{InitLevel}\t{MinLevel}\t{MaxLevel}\t{Diameter}\t{MinVol}\t{VolCurve}\t{Overflow}\t;\t";
        }
    }
}
Hydro/Yw.EPAnet.Calcu.Core/Yw.EPAnet.Calcu.Core.csproj
@@ -10,8 +10,4 @@
    <ProjectReference Include="..\Yw.EPAnet.Core\Yw.EPAnet.Core.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="00-core\" />
  </ItemGroup>
</Project>