/// <summary>壁熱貫流テスト</summary> private static void wallHeatTransferTest() { WallLayers layers = new WallLayers(); WallLayers.Layer layer; layer = new WallLayers.Layer(new WallMaterial("合板", 0.19, 716), 0.025); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("コンクリート", 1.4, 1934), 0.120); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("空気層", 1d / 0.086, 0), 0.020); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("ロックウール", 0.042, 84), 0.050); layers.AddLayer(layer); Wall wall = new Wall(layers); wall.TimeStep = 3600; wall.AirTemperature1 = 20; wall.AirTemperature2 = 10; wall.InitializeTemperature(10); //壁体内温度は10℃均一とする wall.SurfaceArea = 1; Console.WriteLine("温度分布の推移"); Console.WriteLine("合板, コンクリート, 空気層, ロックウール"); double[] temps; for (int i = 0; i < 24; i++) { wall.Update(); temps = wall.GetTemperatures(); Console.Write((i + 1).ToString("F0").PadLeft(2) + "時間後 | "); for (int j = 0; j < temps.Length - 1; j++) Console.Write(((temps[j] + temps[j + 1]) / 2d).ToString("F1") + " | "); Console.WriteLine(); } //定常状態まで進める for (int i = 0; i < 1000; i++) wall.Update(); Console.WriteLine(); Console.WriteLine("定常状態の温度分布"); temps = wall.GetTemperatures(); for (int j = 0; j < temps.Length - 1; j++) Console.Write(((temps[j] + temps[j + 1]) / 2d).ToString("F1") + " | "); Console.WriteLine(); Console.WriteLine("定常状態の熱流1: " + wall.GetHeatTransfer(true).ToString("F1")); Console.WriteLine("定常状態の熱流2: " + wall.GetHeatTransfer(false).ToString("F1")); Console.WriteLine("定常状態の熱流3: " + wall.GetStaticHeatTransfer().ToString("F1")); Console.Read(); }
/// <summary>Sample program calculating the unsteady heat conduction of wall</summary> private static void wallTest1() { WallLayers layers = new WallLayers(); WallLayers.Layer layer; layer = new WallLayers.Layer(new WallMaterial("Plywood", 0.19, 716), 0.025); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("Concrete", 1.4, 1934), 0.120); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("Air gap", 1d / 0.086, 0), 0.020); layers.AddLayer(layer); layer = new WallLayers.Layer(new WallMaterial("Rock wool", 0.042, 84), 0.050); layers.AddLayer(layer); Wall wall = new Wall(layers); wall.TimeStep = 3600; wall.AirTemperature1 = 20; wall.AirTemperature2 = 10; wall.InitializeTemperature(10); //Initial temperature is 10 C wall.SurfaceArea = 1; Console.WriteLine("Plywood, Concrete, Air gap, Rock wool"); double[] temps; for (int i = 0; i < 24; i++) { wall.Update(); temps = wall.GetTemperatures(); Console.Write((i + 1).ToString("F0").PadLeft(2) + "Hour | "); for (int j = 0; j < temps.Length - 1; j++) Console.Write(((temps[j] + temps[j + 1]) / 2d).ToString("F1") + " | "); Console.WriteLine(); } //Iterate until wall become steady state for (int i = 0; i < 1000; i++) wall.Update(); Console.WriteLine(); Console.WriteLine("Steady state"); temps = wall.GetTemperatures(); for (int j = 0; j < temps.Length - 1; j++) Console.Write(((temps[j] + temps[j + 1]) / 2d).ToString("F1") + " | "); Console.WriteLine(); Console.WriteLine("Heat transfer at steady state 1: " + wall.GetHeatTransfer(true).ToString("F1")); Console.WriteLine("Heat transfer at steady state 2: " + wall.GetHeatTransfer(false).ToString("F1")); Console.WriteLine("Heat transfer at steady state 3: " + wall.GetStaticHeatTransfer().ToString("F1")); Console.Read(); }