Adding initial Project to git
This commit is contained in:
57
BWR.ConsoleApp/Program.cs
Normal file
57
BWR.ConsoleApp/Program.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
// MyBWRSimulator.ConsoleApp/Program.cs
|
||||
namespace MyBWRSimulator.ConsoleApp
|
||||
{
|
||||
using MyBWRSimulator.Core.Simulation;
|
||||
using MyBWRSimulator.Core.Components.Concrete; // Needed for specific component instantiation if not using config
|
||||
using MyBWRSimulator.Core.Ports; // Needed for specific port instantiation if not using config
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Starting BWR Simulator Console Application...");
|
||||
|
||||
var simulator = new Simulator();
|
||||
|
||||
// Define the path to your configuration file
|
||||
// Adjust this path as needed for your project structure
|
||||
string configFilePath = Path.Combine(Directory.GetCurrentDirectory(), "config", "PlantConfig.json");
|
||||
|
||||
// Option 1: Load configuration from JSON file
|
||||
//simulator.LoadPlantConfiguration(configFilePath);
|
||||
|
||||
// Option 2 (Alternative for testing without config file): Manually create components and connect them
|
||||
|
||||
var reactor = new ReactorCore("RC001", "Main Reactor Core", 4);
|
||||
var pump = new Pump("PMP001", "Recirculation Pump", 100.0, 50000.0); // maxFlow, maxHeadPressure
|
||||
var pipe = new Pipe("PIP001", "Hot Leg Pipe", 20.0, 0.5); // length, diameter
|
||||
var tank = new FluidTank("TK001", "Condensate Tank", 500.0, 1, 1, 250.0); // maxVol, numInlets, numOutlets, initialVol
|
||||
|
||||
simulator.AddComponent(reactor);
|
||||
simulator.AddComponent(pump);
|
||||
simulator.AddComponent(pipe);
|
||||
simulator.AddComponent(tank);
|
||||
|
||||
// Establish connections manually (example)
|
||||
// Note: You'd need to access the specific ports of each component.
|
||||
// This is simplified and assumes direct port access for brevity.
|
||||
// In a real scenario, you'd use GetFluidPorts() etc.
|
||||
// For example: pump.GetThermalPorts().First(p => p.ID.Contains("PowerIn")).Connect(powerSource.GetThermalPorts().First(p => p.ID.Contains("PowerOut")));
|
||||
|
||||
// Example of manual connection (requires casting and knowing port IDs)
|
||||
// This is simplified and might break if port IDs change.
|
||||
// The ConfigurationLoader handles this more robustly.
|
||||
reactor.GetFluidPortById("FeedwaterInlet").Connect(pipe.GetFluidPortById("Inlet"));
|
||||
pipe.GetFluidPortById("Outlet").Connect(pump.GetFluidPortById("Inlet"));
|
||||
pump.GetFluidPortById("Outlet").Connect(tank.GetFluidPortById("Outlet")); // Tank has Inlet1, Inlet2 etc.
|
||||
|
||||
// Run the simulation for 60 seconds with 1-second time steps
|
||||
simulator.RunSimulation(60.0, 1.0);
|
||||
|
||||
Console.WriteLine("\nSimulation application finished. Press any key to exit.");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user