Пример #1
0
        public ErrorMessage Specify(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retMsg = null;

            if (pv.HasValueOf(aValue))
            {
                return(retMsg);
            }
            else
            {
                retMsg = CheckSpecifiedValueRange(pv, aValue);
                if (retMsg != null)
                {
                    return(retMsg);
                }
            }

            //remember currently being specified variable value
            double oldValue = pv.Value;

            beingSpecifiedProcVar = pv;

            pv.Value = aValue;
            pv.State = VarState.Specified;

            try {
                unitOpSystem.OnCalculationStarted(); //must tell UI calculation has started already
                HasBeenModified(true);
                unitOpSystem.OnCalculationEnded();   //must tell UI calculation has ended already
            }
            catch (Exception e) {
                pv.Value = oldValue;
                retMsg   = HandleException(e);
                //HasBeenModified(true);
            }
            OnProcessVarValueCommitted(pv);

            return(retMsg);
        }
Пример #2
0
        public override void SetObjectData()
        {
            base.SetObjectData();
            int persistedClassVersion = (int)info.GetValue("ClassPersistenceVersionFan", typeof(int));

            if (persistedClassVersion == 1)
            {
                //this.fanType = (FanType) info.GetValue("FanType", typeof(FanType));
                this.staticPressure              = RecallStorableObject("StaticPressure", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.totalDischargePressure      = RecallStorableObject("TotalDischargePressure", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.efficiency                  = RecallStorableObject("Efficiency", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.powerInput                  = RecallStorableObject("PowerInput", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.includeOutletVelocityEffect = (bool)info.GetValue("IncludeOutletVelocityEffect", typeof(bool));
                this.outletCrossSectionType      = (CrossSectionType)info.GetValue("OutletCrossSectionType", typeof(CrossSectionType));
                this.outletDiameter              = RecallStorableObject("OutletDiameter", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.outletVelocity              = RecallStorableObject("OutletVelocity", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.outletWidth                 = RecallStorableObject("OutletWidth", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.outletHeight                = RecallStorableObject("OutletHeight", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.outletHeightWidthRatio      = RecallStorableObject("OutletHeightWidthRatio", typeof(ProcessVarDouble)) as ProcessVarDouble;
                this.circularGeometryVarList     = info.GetValue("CircularGeometryVarList", typeof(ArrayList)) as ArrayList;
                this.rectangularGeometryVarList  = info.GetValue("RectangularGeometryVarList", typeof(ArrayList)) as ArrayList;
            }
        }
Пример #3
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            if (retValue == null)
            {
                if (calculationType == UnitOpCalculationType.Balance)
                {
                    retValue = balanceModel.CheckSpecifiedValueRange(pv, aValue);
                }
                else if (calculationType == UnitOpCalculationType.Rating)
                {
                    retValue = currentRatingModel.CheckSpecifiedValueRange(pv, aValue);
                }
            }

            return(retValue);
        }
Пример #4
0
        public override void SetObjectData()
        {
            base.SetObjectData();
            int classVersion = (int)info.GetValue("ClassPersistenceVersion", typeof(int));

            if (classVersion >= 1)
            {
                /*this.pressureDrop = (ProcessVarDouble)RecallStorableObject("PressureDrop", typeof(ProcessVarDouble));
                 * this.collectionEfficiency = (ProcessVarDouble)RecallStorableObject("CollectionEfficiency", typeof(ProcessVarDouble));
                 * this.inletDustLoading = (ProcessVarDouble)RecallStorableObject("InletDustLoading", typeof(ProcessVarDouble));
                 * this.outletDustLoading = (ProcessVarDouble)RecallStorableObject("OutletDustLoading", typeof(ProcessVarDouble));
                 * this.dustAccumulationRate = (ProcessVarDouble)RecallStorableObject("DustAccumulationRate", typeof(ProcessVarDouble));*/
                this.balanceModel = RecallStorableObject("BalanceModel", typeof(GasSolidSeparatorBalanceModel)) as GasSolidSeparatorBalanceModel;

                this.gasToClothRatio    = (ProcessVarDouble)RecallStorableObject("GasToClothRatio", typeof(ProcessVarDouble));
                this.totalFilteringArea = (ProcessVarDouble)RecallStorableObject("TotalFilteringArea", typeof(ProcessVarDouble));
            }

            if (classVersion >= 2)
            {
                this.particleOutlet = info.GetValue("ParticleOutlet", typeof(ProcessStreamBase)) as ProcessStreamBase;
            }
        }
Пример #5
0
        internal ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = null;

            if (pv == gasPressureDrop && aValue <= 0.0)
            {
                retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);
            }
            else if (pv == collectionEfficiency && (aValue < 0.2 || aValue > 1.0))
            {
                retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " must be in the range of 0.2 to 1.");
            }
            else if (pv == inletParticleLoading && outletParticleLoading.HasValue && aValue < outletParticleLoading.Value)
            {
                retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " must be greater than " + outletParticleLoading.VarTypeName + ".");
            }
            else if (pv == outletParticleLoading && inletParticleLoading.HasValue && aValue > inletParticleLoading.Value)
            {
                retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " must be smaller than " + inletParticleLoading.VarTypeName + ".");
            }

            return(retValue);
        }
Пример #6
0
        internal override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = null;

            if (pv == wallThickness)
            {
                //heat exchanger design handbook page 351
                if (aValue > 0.0012 || aValue < 0.0005)
                {
                    retValue = owner.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Plate wall thickness must be in the range of 0.5 to 1.2 mm");
                }
            }
            else if (pv == channelWidth || pv == projectedChannelLength)
            {
                //heat exchanger design handbook page 351
                if (aValue > 2.2 || aValue < 0.03)
                {
                    retValue = owner.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Plate width or length must be in the range of 0.03 to 2.2 m");
                }
            }
            else if (pv == platePitch)
            {
                //heat exchanger design handbook page 351
                if (aValue < 0.0015 || aValue > 0.005)
                {
                    retValue = owner.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Plate pitch must be in the range of 1.5 to 5.0 mm");
                }
            }
            else if (pv == portDiameter)
            {
                if (aValue < 0.02 || aValue > 0.39)
                {
                    retValue = owner.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Port diameter must be in the range of 2 to 39 cm");
                }
            }
            return(retValue);
        }
Пример #7
0
        internal override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = null;

            if (pv == wallThickness)
            {
                //heat exchanger design handbook page 351
                if (aValue > 0.0012 || aValue < 0.0005)
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, "Plate wall thickness must be in the range of 0.5 to 1.2 mm");
                }
            }
            else if (pv == channelWidth || pv == projectedChannelLength)
            {
                //heat exchanger design handbook page 351
                if (aValue > 2.2 || aValue < 0.03)
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, "Plate width or length must be in the range of 0.03 to 2.2 m");
                }
            }
            else if (pv == platePitch)
            {
                //heat exchanger design handbook page 351
                if (aValue < 0.0015 || aValue > 0.005)
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, "Plate pitch must be in the range of 1.5 to 5.0 mm");
                }
            }
            else if (pv == portDiameter)
            {
                if (aValue < 0.02 || aValue > 0.39)
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, "Port diameter must be in the range of 2 to 39 cm");
                }
            }
            return(retValue);
        }
Пример #8
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            if (retValue == null)
            {
                if (calculationType == UnitOpCalculationType.Balance)
                {
                    retValue = balanceModel.CheckSpecifiedValueRange(pv, aValue);
                }
            }

            if (pv == driftVelocity && aValue <= 0.0)
            {
                retValue = CreateLessThanOrEqualToZeroErrorMessage(pv);
            }

            return(retValue);
        }
Пример #9
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            //if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.PRESSURE_RATIO))
            if (pv == pressureRatio)
            {
                if (aValue != Constants.NO_VALUE && (aValue < 1.0 || aValue < 1000))
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, pv.VarTypeName + " ratio must be in the range of 1.0 to 1000");
                }
            }
            //else if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.ADIABATIC_EXPONENT))
            else if (pv == adiabaticExponent)
            {
                if (aValue != Constants.NO_VALUE && (aValue < 1.0 || aValue > 10.0))
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, pv.VarTypeName + " must be in the range of 1.0 to 10.0");
                }
            }
            //else if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.POLYTROPIC_EXPONENT))
            else if (pv == polytropicExponent)
            {
                if (aValue != Constants.NO_VALUE && (aValue < 1.0 || aValue > 10.0))
                {
                    retValue = new ErrorMessage(ErrorType.SimpleGeneric, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, pv.VarTypeName + " must be in the range of 1.0 to 10.0");
                }
            }

            return(retValue);
        }
Пример #10
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            //if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.HEAT_LOSS))
            if (pv == heatLoss)
            {
                if (aValue != Constants.NO_VALUE && aValue < 0.0)
                {
                    retValue = CreateLessThanZeroErrorMessage(pv);;
                }
            }
            //else if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.HEAT_INPUT))
            else if (pv == heatInput)
            {
                if (aValue != Constants.NO_VALUE && aValue < 0.0)
                {
                    retValue = CreateLessThanZeroErrorMessage(pv);;
                }
            }
            //else if (pv.VarTypeName == StringConstants.GetTypeName(StringConstants.WORK_INPUT))
            else if (pv == workInput)
            {
                if (aValue != Constants.NO_VALUE && aValue < 0.0)
                {
                    retValue = CreateLessThanZeroErrorMessage(pv);;
                }
            }

            return(retValue);
        }
Пример #11
0
        internal ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = null;

            return(retValue);
        }
Пример #12
0
 public ErrorMessage SpecifyIndependentVar(ProcessVarDouble var)
 {
     independentVar = var;
     return(null);
 }
Пример #13
0
 private void Calculate(ProcessVarDouble pv, double aValue)
 {
     ownerUnitOp.Calculate(pv, aValue);
 }
Пример #14
0
        internal ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            if (aValue == Constants.NO_VALUE)
            {
                return(null);
            }

            ErrorMessage retValue = null;

            if (pv == inletWidth)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == inletHeight)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == inletHeightToWidthRatio)
            {
                if (aValue < 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanZeroErrorMessage(pv);;
                }
            }
            else if (pv == outletInnerDiameter)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == outletWallThickness)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == cycloneDiameter)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == diplegDiameter)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
                else if (cycloneDiameter.HasValue && aValue > cycloneDiameter.Value)
                {
                    retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " cannot be greater than " + cycloneDiameter.VarTypeName);
                }
            }
            else if (pv == coneLength)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == outletTubeLengthBelowRoof)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == outletBelowRoofToInletHeightRatio)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == externalVesselDiameter)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == coneAngle)
            {
                if (aValue <= 0.0 || aValue >= Math.PI / 2)
                {
                    retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " of the cyclone must be in the range of 0 to 90 degrees");
                }
            }
            else if (pv == barrelLength)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == cutParticleDiameter)
            {
                if (aValue <= 0.0 && aValue > 0.001)
                {
                    retValue = ownerUnitOp.CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " must be in the range of 0 to 1000 µm");
                }
            }
            else if (pv == ParticleDensity)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            else if (pv == ParticleBulkDensity)
            {
                if (aValue <= 0.0)
                {
                    retValue = ownerUnitOp.CreateLessThanOrEqualToZeroErrorMessage(pv);;
                }
            }
            return(retValue);
        }
Пример #15
0
 protected virtual ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
 {
     return(null);
 }
Пример #16
0
 public ParticleSizeAndFraction(IProcessVarOwner owner)
 {
     diameter       = new ProcessVarDouble(StringConstants.DIAMETER, PhysicalQuantity.MicroLength, 2.0e-5, VarState.Specified, owner);
     weightFraction = new ProcessVarDouble(StringConstants.WEIGHT_FRACTION, PhysicalQuantity.Fraction, 1.0, VarState.Specified, owner);
 }
Пример #17
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            string valueString = aValue.ToString();

            if (pv == temperature)
            {
                if (wetBulbTemperature.IsSpecifiedAndHasValue && aValue < wetBulbTemperature.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is less than " + wetBulbTemperature.VarTypeName + " and therefore cannot be committed.");
                }
                else if (dewPoint.IsSpecifiedAndHasValue && aValue < dewPoint.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is less than " + dewPoint.VarTypeName + " and therefore cannot be committed.");
                }
            }
            else if (pv == wetBulbTemperature)
            {
                if (temperature.IsSpecifiedAndHasValue && aValue > temperature.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is greater than " + temperature.VarTypeName + " and therefore cannot be committed.");
                }
                else if (dewPoint.IsSpecifiedAndHasValue && aValue < dewPoint.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is less than than " + dewPoint.VarTypeName + " and therefore cannot be committed.");
                }
            }
            else if (pv == dewPoint)
            {
                if (temperature.IsSpecifiedAndHasValue && aValue > temperature.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is greater than " + temperature.VarTypeName + " and therefore cannot be committed.");
                }
                else if (wetBulbTemperature.IsSpecifiedAndHasValue && aValue > wetBulbTemperature.Value)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("Specified " + pv.VarTypeName + " value is greater than " + wetBulbTemperature.VarTypeName + " and therefore cannot be committed.");
                }
            }
            else if (pv == Humidity)
            {
                if (aValue < 0)
                {
                    retValue = CreateLessThanZeroErrorMessage(pv);
                }
                else if (pressure.HasValue)
                {
                    double maxHumidity = 1000.0;

                    //HumidGasCalculator humidGasCalculator = GetHumidGasCalculator();
                    if (temperature.HasValue)
                    {
                        maxHumidity = HumidGasCalculator.GetHumidityFromDewPointAndPressure(temperature.Value, pressure.Value);
                    }
                    else if (wetBulbTemperature.HasValue)
                    {
                        maxHumidity = HumidGasCalculator.GetHumidityFromDewPointAndPressure(wetBulbTemperature.Value, pressure.Value);
                    }
                    else if (dewPoint.HasValue)
                    {
                        maxHumidity = HumidGasCalculator.GetHumidityFromDewPointAndPressure(dewPoint.Value, pressure.Value);
                    }

                    if (aValue > maxHumidity)
                    {
                        aValue   = maxHumidity;
                        retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage("The maximum " + pv.VarTypeName + " value under current conditions is " + aValue.ToString() + ".\n Specified value " + valueString + " is greater than the maximum and therefore cannot be committed.");
                    }
                }
            }
            else if (pv == relativeHumidity)
            {
                if (aValue < 0 || aValue > 1.0)
                {
                    retValue = CreateOutOfRangeZeroToOneErrorMessage(pv);
                }
            }

            if (retValue == null)
            {
                retValue = CheckSpecifiedValueInContextOfOwner(pv, aValue);
            }

            return(retValue);
        }
Пример #18
0
 public Adjust(string name, UnitOperationSystem uoSys) : base(name, uoSys)
 {
     targetVar = new ProcessVarDouble(StringConstants.TARGET_VALUE, VarState.Specified, this);
 }
Пример #19
0
 public StreamAndFraction(ProcessStreamBase stream, Solvable owner)
 {
     this.stream   = stream;
     this.fraction = new ProcessVarDouble(stream.Name + "Fraction", PhysicalQuantity.Fraction, VarState.Specified, owner);
 }
Пример #20
0
 internal virtual ErrorMessage CheckSpecifiedValueInContext(ProcessVarDouble pv, double aValue)
 {
     return(null);
 }
Пример #21
0
 public ErrorMessage SpecifyIndependentVar(ProcessVarDouble var)
 {
     independentVar = var;
     HasBeenModified(true);
     return(null);
 }
Пример #22
0
        protected override ErrorMessage CheckSpecifiedValueRange(ProcessVarDouble pv, double aValue)
        {
            ErrorMessage retValue = base.CheckSpecifiedValueRange(pv, aValue);

            if (retValue != null)
            {
                return(retValue);
            }

            if (pv == outletDiameter)
            {
                if (aValue <= 0.0)
                {
                    retValue = CreateLessThanOrEqualToZeroErrorMessage(pv);
                }
            }
            else if (pv == outletWidth)
            {
                if (aValue <= 0.0)
                {
                    retValue = CreateLessThanOrEqualToZeroErrorMessage(pv);
                }
            }
            else if (pv == outletHeight)
            {
                if (aValue <= 0.0)
                {
                    retValue = CreateLessThanOrEqualToZeroErrorMessage(pv);
                }
            }
            else if (pv == efficiency)
            {
                if (aValue < 0.2 || aValue > 1.0)
                {
                    retValue = CreateSimpleGenericInappropriateSpecifiedValueErrorMessage(pv.VarTypeName + " cannot be out of the range of 0.2 to 1.");
                }
            }
            else if (pv == staticPressure)
            {
                if (aValue <= 0.0)
                {
                    retValue = CreateLessThanOrEqualToZeroErrorMessage(pv);
                }
                else if (aValue > 10320)
                {
                    string msg = "Specified value for " + staticPressure.VarTypeName + " of the fan is out of the appropriate range.";
                    retValue = new ErrorMessage(ErrorType.SpecifiedValueOutOfRange, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, msg);
                    retValue.AddVarAndItsRange(staticPressure, new DoubleRange(0, 10320));
                    //if (fanType == FanType.Fan && aValue >= 3477) {
                    //   string msg = "Specified value for " + staticPressure.VarTypeName + " of the fan is out of the appropriate range.";
                    //   retValue = new ErrorMessage(ErrorType.SpecifiedValueOutOfRange, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, msg);
                    //   retValue.AddVarAndItsRange(staticPressure, new DoubleRange(0, 3477));
                    //}
                    //else if (fanType == FanType.Blower && (aValue < 3477 || aValue > 10320)) {
                    //   string msg = "Specified value for " + staticPressure.VarTypeName + " of the fan is out of the appropriate range.";
                    //   retValue = new ErrorMessage(ErrorType.SpecifiedValueOutOfRange, StringConstants.INAPPROPRIATE_SPECIFIED_VALUE, msg);
                    //   retValue.AddVarAndItsRange(staticPressure, new DoubleRange(3477, 10320));
                    //}
                }
            }
            return(retValue);
        }
Пример #23
0
 public PlotVariable(ProcessVarDouble pv, double min, double max)
 {
     this.pv  = pv;
     this.min = min;
     this.max = max;
 }
Пример #24
0
 public Furnace(string name, UnitOperationSystem uoSys) : base(name, uoSys)
 {
     excessAir = new ProcessVarDouble(StringConstants.EXCESS_AIR, PhysicalQuantity.Fraction, VarState.Specified, this);
 }
Пример #25
0
 protected override void BalancePressure(ProcessStreamBase inletStream, ProcessStreamBase outletStream, ProcessVarDouble pressureDrop)
 {
     //pressure balance
     if (inletStream.Pressure.HasValue && outletStream.Pressure.HasValue && !pressureDrop.HasValue)
     {
         double inletPressure  = inletStream.Pressure.Value;
         double outletPressure = outletStream.Pressure.Value;
         double pressDiff      = inletPressure - outletPressure;
         string errorMsg       = null;
         if (pressDiff <= 0 || pressDiff > 10320)
         {
             errorMsg = "Calculated value for the " + pressureDrop.VarTypeName + " of " + this.name + " is out of the appripriate range of 0 to 10.32 kPa.";
         }
         //if (fanType == FanType.Fan && (pressDiff <= 0 || pressDiff > 3477)) {
         //   errorMsg = "Calculated value for the " + pressureDrop.VarTypeName + " of " + this.name + " is out of the appripriate range of 0 to 3.477 kPa.";
         //}
         //else if (fanType == FanType.Blower && (pressDiff < 3477 || pressDiff > 10320)) {
         //   errorMsg = "Calculated value for the " + pressureDrop.VarTypeName + " of " + this.name + " is out of the appripriate range of 3.477 to 10.32 kPa.";
         //}
         if (errorMsg != null)
         {
             throw new InappropriateCalculatedValueException(errorMsg);
         }
         else
         {
             Calculate(pressureDrop, pressDiff);
         }
     }
     else if (inletStream.Pressure.HasValue && pressureDrop.HasValue && !outletStream.Pressure.HasValue)
     {
         double pressOutlet = inletStream.Pressure.Value - pressureDrop.Value;
         Calculate(outletStream.Pressure, pressOutlet);
     }
     else if (outletStream.Pressure.HasValue && pressureDrop.HasValue && !inletStream.Pressure.HasValue)
     {
         double pressInlet = outletStream.Pressure.Value + pressureDrop.Value;
         Calculate(inletStream.Pressure, pressInlet);
     }
     else if (inletStream.Pressure.HasValue && outletStream.Pressure.HasValue && pressureDrop.HasValue)
     {
         //over specification!!!!
     }
 }
Пример #26
0
 protected DryerRatingModel(Dryer dryer)
 {
     this.owner    = dryer;
     flowDirection = FlowDirectionType.Counter;
     gasVelocity   = new ProcessVarDouble(StringConstants.GAS_VELOCITY, PhysicalQuantity.Velocity, 2.0, VarState.Specified, dryer);
 }
Пример #27
0
 public Valve(string name, UnitOperationSystem uoSys) : base(name, uoSys)
 {
     pressureDrop = new ProcessVarDouble(StringConstants.PRESSURE_DROP, PhysicalQuantity.Pressure, VarState.Specified, this);
     InitializeVarListAndRegisterVars();
 }
Пример #28
0
 public GenericFuelStream(string name, MaterialComponents mComponents, UnitOperationSystem uoSys) : base(name, mComponents, uoSys)
 {
     heatValue = new ProcessVarDouble(StringConstants.HEAT_VALUE, PhysicalQuantity.SpecificEnergy, VarState.Specified, this);
     InitializeVarListAndRegisterVars();
 }
Пример #29
0
 protected virtual void BalancePressure(ProcessStreamBase inletStream, ProcessStreamBase outletStream, ProcessVarDouble pressureDrop)
 {
     //pressure balance
     if (inletStream.Pressure.HasValue && outletStream.Pressure.HasValue && !pressureDrop.HasValue)
     {
         double pressDiff = inletStream.Pressure.Value - outletStream.Pressure.Value;
         Calculate(pressureDrop, pressDiff);
     }
     else if (inletStream.Pressure.HasValue && pressureDrop.HasValue && !outletStream.Pressure.HasValue)
     {
         double pressOutlet = inletStream.Pressure.Value - pressureDrop.Value;
         Calculate(outletStream.Pressure, pressOutlet);
     }
     else if (outletStream.Pressure.HasValue && pressureDrop.HasValue && !inletStream.Pressure.HasValue)
     {
         double pressInlet = outletStream.Pressure.Value + pressureDrop.Value;
         Calculate(inletStream.Pressure, pressInlet);
     }
     else if (inletStream.Pressure.HasValue && outletStream.Pressure.HasValue && pressureDrop.HasValue)
     {
         //over specification!!!!
     }
 }
Пример #30
0
 public MaterialComponent(Substance substance)
 {
     this.substance    = substance;
     this.massFraction = new ProcessVarDouble(StringConstants.MASS_FRACTION, PhysicalQuantity.Fraction, 1.0, VarState.Specified, this);
     this.moleFraction = new ProcessVarDouble(StringConstants.MOLE_FRACTION, PhysicalQuantity.Fraction, 1.0, VarState.Specified, this);
 }