示例#1
0
    // >0 if it is more mass in source volume
    // TIME IS APPLIED
    public float GetMassBalance(ChemVolume receiverVol)
    {
        ChemVolume sourceVol = GetSourceForReceiver(receiverVol);

        if (sourceVol.name == "SteamStorage")
        {
            int x = 0;
        }
        float res = (sourceVol.Pressure - receiverVol.Pressure) * Kmass * gateGap * plant.PlantDeltaTime;

        if (res > 0)
        {
            float probableMass = GasUtils.CalculateMass(sourceVol.Pressure, receiverVol.Volume, sourceVol.Mix.Temp);
            float dm           = probableMass - receiverVol.Mix.Mass;
            if (dm > 0 && res > dm)
            {
                res = dm;
            }
        }
        if (float.IsNaN(res) || float.IsInfinity(res))
        {
            throw new UnityException("GetMassBalance result is Nan or Infinity");
        }
        return(res);
    }
示例#2
0
    // Use this for initialization
    void Start()
    {
        float m = GasUtils.CalculateMass(Constants.WorldPressure, volume.Volume, Constants.WorldTemp);

        volume.Mix.AddFraction(new ChemFraction(O2, m * frO2));
        volume.Mix.AddFraction(new ChemFraction(N2, m * frN2));
        volume.Mix.AddFraction(new ChemFraction(CO2, m * frCO2));
        volume.Mix.AddFraction(new ChemFraction(InertGas, m * (1 - frO2 - frN2 - frCO2)));
        volume.Mix.Heat     = m * volume.Mix.HeatCapacity * Constants.WorldTemp;
        volume.Mix.Infinite = true;
    }