diff --git a/VCRC.sln.DotSettings b/VCRC.sln.DotSettings index 0ff626f..3093acc 100644 --- a/VCRC.sln.DotSettings +++ b/VCRC.sln.DotSettings @@ -1,6 +1,4 @@ - + CIC @@ -55,6 +53,9 @@ True + + True + True diff --git a/src/VCRC/Fluids/IRefrigerant.cs b/src/VCRC/Fluids/IRefrigerant.cs index e96f6c1..845b63d 100644 --- a/src/VCRC/Fluids/IRefrigerant.cs +++ b/src/VCRC/Fluids/IRefrigerant.cs @@ -90,6 +90,12 @@ public interface IRefrigerant : IFluid /// Invalid superheat! IRefrigerant Superheated(Pressure pressure, TemperatureDelta superheat); + /// + new IRefrigerant SpecifyPhase(Phases phase); + + /// + new IRefrigerant UnspecifyPhase(); + /// new IRefrigerant WithState( IKeyedInput firstInput, diff --git a/src/VCRC/Fluids/Refrigerant.cs b/src/VCRC/Fluids/Refrigerant.cs index 615df9a..b552100 100644 --- a/src/VCRC/Fluids/Refrigerant.cs +++ b/src/VCRC/Fluids/Refrigerant.cs @@ -32,11 +32,8 @@ public Refrigerant(FluidsList name) .ToUnit(TemperatureDeltaUnit.Kelvin); public bool HasGlide => Glide > 0.01.Kelvins(); - public bool IsSingleComponent => !IsAzeotropicBlend && !IsZeotropicBlend; - public bool IsAzeotropicBlend => BlendRegex(false).IsMatch(Name.ToString()); - public bool IsZeotropicBlend => BlendRegex(true).IsMatch(Name.ToString()); public IRefrigerant Subcooled( @@ -64,6 +61,10 @@ public IRefrigerant Superheated(Pressure pressure, TemperatureDelta superheat) = : superheat.Equals(TemperatureDelta.Zero, Tolerance.Kelvins()) ? DewPointAt(pressure) : DewPointAt(pressure).HeatingTo(DewPointAt(pressure).Temperature + superheat); + public new IRefrigerant SpecifyPhase(Phases phase) => (Refrigerant)base.SpecifyPhase(phase); + + public new IRefrigerant UnspecifyPhase() => (Refrigerant)base.UnspecifyPhase(); + public new IRefrigerant WithState( IKeyedInput firstInput, IKeyedInput secondInput diff --git a/src/VCRC/VCRC.csproj b/src/VCRC/VCRC.csproj index 2167be9..a947753 100644 --- a/src/VCRC/VCRC.csproj +++ b/src/VCRC/VCRC.csproj @@ -10,7 +10,7 @@ - + diff --git a/tests/VCRC.Tests/Fluids/RefrigerantTests.cs b/tests/VCRC.Tests/Fluids/RefrigerantTests.cs index 672ee0a..dd39b7f 100644 --- a/tests/VCRC.Tests/Fluids/RefrigerantTests.cs +++ b/tests/VCRC.Tests/Fluids/RefrigerantTests.cs @@ -256,6 +256,7 @@ public void Methods_New_ReturnsInstancesOfTheRefrigerantType() { _sut.Clone().Should().BeOfType(); _sut.Factory().Should().BeOfType(); + _sut.SpecifyPhase(Phases.Gas).UnspecifyPhase().Should().BeOfType(); _sut.IsentropicCompressionTo(HighPressure).Should().BeOfType(); _sut.CompressionTo(HighPressure, _isentropicEfficiency).Should().BeOfType(); _sut.IsenthalpicExpansionTo(LowPressure).Should().BeOfType();