// See https://aka.ms/new-console-template for more information
|
|
using System.Diagnostics;
|
|
class Program
|
{
|
private static object _locer = new();
|
|
static void Main()
|
{
|
// 创建一个 Stopwatch 实例
|
Stopwatch stopwatch = new Stopwatch();
|
|
// 开始计时
|
stopwatch.Start();
|
|
// 定义要执行的inp文件路径
|
//string fileName = "easy.inp";
|
string fileName = "1843913603388936192.inp";
|
// Parallel.For(0, 5, i => RunEpanetSimulation(fileName, i));
|
//Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}");
|
using (var helper = new Yw.Epanet.InteropXHelper())
|
{
|
helper.Open(fileName, "", "");
|
helper.OpenH();
|
|
for (int i = 0; i < 20000; i++)
|
{
|
var code = helper.SetNodeValue(1, Yw.Epanet.eNodeProperty.BaseDemand, 1);
|
|
helper.InitH(false);
|
helper.RunH(out long t);
|
code = helper.GetNodeValue(1, Yw.Epanet.eNodeProperty.BaseDemand, out double vv);
|
helper.NextH(out long tstep);
|
//Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}+{i}");
|
Console.WriteLine(i);
|
}
|
|
helper.CloseH();
|
helper.Close();
|
}
|
|
Console.WriteLine("所有模拟已完成。");
|
|
// 停止计时
|
stopwatch.Stop();
|
|
Console.WriteLine($"总时间:{stopwatch.Elapsed.TotalSeconds}");
|
|
Console.ReadLine();
|
}
|
|
static void RunEpanetSimulation(string fileName, int number)
|
{
|
Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}");
|
using (var helper = new Yw.Epanet.InteropXHelper())
|
{
|
helper.Open(fileName, "", "");
|
helper.OpenH();
|
|
for (int i = 0; i < 4000; i++)
|
{
|
helper.SetNodeValue(1, Yw.Epanet.eNodeProperty.Demand, 0);
|
helper.InitH(false);
|
helper.RunH(out long t);
|
helper.NextH(out long tstep);
|
Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}+{i}");
|
}
|
|
helper.CloseH();
|
helper.Close();
|
}
|
}
|
}
|