package mods.eln.sim; import mods.eln.Eln; import mods.eln.sim.process.destruct.ThermalLoadWatchDog; public class ThermalLoadInitializer { public double warmLimit, coolLimit; double heatingTao; double conductionTao; double Rs, Rp, C; public ThermalLoadInitializer(double warmLimit, double coolLimit, double heatingTao, double conductionTao) { this.conductionTao = conductionTao; this.coolLimit = coolLimit; this.heatingTao = heatingTao; this.warmLimit = warmLimit; } /* public ThermalLoadInitializer ( double warmLimit,double coolLimit, double heatingTao,double conductionTao, double P) { this.conductionTao = conductionTao; this.coolLimit = coolLimit; this.heatingTao = heatingTao; this.warmLimit = warmLimit; setMaximalPower(P); }*/ public void setMaximalPower(double P) { C = P * heatingTao / (warmLimit); Rp = warmLimit / P; Rs = conductionTao / C / 2; Eln.simulator.checkThermalLoad(Rs, Rp, C); } public void applyTo(ThermalLoad load) { load.set(Rs, Rp, C); } public void applyTo(ThermalLoadWatchDog doggy) { doggy.set(this); } public ThermalLoadInitializer copy() { ThermalLoadInitializer thermalLoad = new ThermalLoadInitializer(warmLimit, coolLimit, heatingTao, conductionTao); thermalLoad.Rp = Rp; thermalLoad.Rs = Rs; thermalLoad.C = C; return thermalLoad; } }