public InternalCombustionEngineSimulator(SimulationParameters parameters, Base.Temperature ambientTemperature) { this.ambientTemperature = ambientTemperature; this.parameters = parameters; this.modelTimeStep = TimeSpan.FromMilliseconds(2000); this.points = this.parameters.CrankshaftSpeedToTorquePoints.OrderBy(point => point.X).ToArray(); this.stop = false; this.tolerance = 1e-1; }
void CoolEngine(object engineObj) { var engine = ( InternalCombustionEngine )engineObj; while (!stop) { Thread.Sleep(modelTimeStep); Base.Temperature temp = GetCoolingTemperature(engine); engine.Cool(temp); Console.WriteLine("Cool engine \t by {0} degrees celsius", temp.Celsius); } }
public void Cool(Base.Temperature temp) { temperature.Celsius -= temp.Celsius; }
public void Heat(Base.Temperature temp) { temperature.Celsius += temp.Celsius; }
public abstract void Start(Base.Temperature temperature);
public AbstractEngine() { this.temperature = new Base.Temperature(0); }
public override void Start(Base.Temperature temperature) { this.CrankshaftSpeed = 0; Temperature.Celsius = temperature.Celsius; }