package mods.eln.transparentnode.thermaldissipatoractive; import mods.eln.sim.IProcess; public class ThermalDissipatorActiveSlowProcess implements IProcess { ThermalDissipatorActiveElement dissipator; public ThermalDissipatorActiveSlowProcess(ThermalDissipatorActiveElement dissipator) { this.dissipator = dissipator; } @Override public void process(double time) { ThermalDissipatorActiveDescriptor descriptor = dissipator.descriptor; double poweredFactor = dissipator.powerResistor.getP() / descriptor.electricalNominalP; double thermalRp = 1 / (1 / descriptor.thermalRp + poweredFactor / (descriptor.electricalToThermalRp)); dissipator.thermalLoad.setRp(thermalRp); if (Math.abs(dissipator.lastPowerFactor - (float) (poweredFactor)) > 0.2f) dissipator.needPublish(); } }