SharpProp 2.0.1
See the version list below for details.
dotnet add package SharpProp --version 2.0.1
NuGet\Install-Package SharpProp -Version 2.0.1
<PackageReference Include="SharpProp" Version="2.0.1" />
<PackageVersion Include="SharpProp" Version="2.0.1" />
<PackageReference Include="SharpProp" />
paket add SharpProp --version 2.0.1
#r "nuget: SharpProp, 2.0.1"
#:package SharpProp@2.0.1
#addin nuget:?package=SharpProp&version=2.0.1
#tool nuget:?package=SharpProp&version=2.0.1
A simple, full-featured, lightweight CoolProp wrapper for C#
Quick start
All calculations of thermophysical properties are performed in SI units.
The Fluid class is responsible for pure fluids and binary mixtures, the Mixture class - for mixtures with pure
fluids components, the HumidAir class - for humid air.
The FluidsList is an enum of all available fluids.
List of properties
For the Fluid and Mixture instances:
Compressibility- compressibility factor (-)Conductivity- thermal conductivity (W/m/K)CriticalPressure- absolute pressure at the critical point (Pa)CriticalTemperature- absolute temperature at the critical point (K)Density- mass density (kg/m3)DynamicViscosity- dynamic viscosity (Pa*s)Enthalpy- mass specific enthalpy (J/kg)Entropy- mass specific entropy (J/kg/K)FreezingTemperature- temperature at freezing point (for incompressible fluids) (K)InternalEnergy- mass specific internal energy (J/kg)MaxPressure- maximum pressure limit (Pa)MaxTemperature- maximum temperature limit (K)MinPressure- minimum pressure limit (Pa)MinTemperature- minimum temperature limit (K)MolarMass- molar mass (kg/mol)Phase- phasePrandtl- Prandtl number (-)Pressure- absolute pressure (Pa)Quality- mass vapor quality (-)SoundSpeed- sound speed (m/s)SpecificHeat- mass specific constant pressure specific heat (J/kg/K)SurfaceTension- surface tension (N/m)Temperature- absolute temperature (K)TriplePressure- absolute pressure at the triple point (Pa)TripleTemperature- absolute temperature at the triple point (K)
For the HumidAir instances:
Compressibility- compressibility factor (-)Conductivity- thermal conductivity (W/m/K)Density- mass density per humid air unit (kg/m3)DewTemperature- dew-point absolute temperature (K)DynamicViscosity- dynamic viscosity (Pa*s)Enthalpy- mass specific enthalpy per humid air (J/kg)Entropy- mass specific entropy per humid air (J/kg/K)Humidity- absolute humidity ratio (kg/kg d.a.)PartialPressure- partial pressure of water vapor (Pa)Pressure- absolute pressure (Pa)RelativeHumidity- relative humidity ratio (from 0 to 1) (-)SpecificHeat- mass specific constant pressure specific heat per humid air (J/kg/K)Temperature- absolute dry-bulb temperature (K)WetBulbTemperature- absolute wet-bulb temperature (K)
NB. If the required property is not present in the instance of the fluid, then you can add it by extending
the Fluid, Mixture or HumidAir classes.
Examples
Don't forget to add using SharpProp; at the top of the code.
Pure fluids
To calculate the specific heat of saturated water vapour at 101325 Pa:
var waterVapour = new Fluid(FluidsList.Water);
waterVapour.Update(Input.Pressure(101325), Input.Quality(1));
Console.WriteLine(waterVapour.SpecificHeat); // 2079.937085633241
Incompressible binary mixtures
To calculate the dynamic viscosity of propylene glycol aqueous solution with 60 % mass fraction at 101325 Pa and 253.15 K:
var propyleneGlycol = new Fluid(FluidsList.MPG, 0.6);
propyleneGlycol.Update(Input.Pressure(101325), Input.Temperature(253.15));
Console.WriteLine(propyleneGlycol.DynamicViscosity); // 0.13907391053938847
Mixtures
To calculate the density of ethanol aqueous solution (with ethanol 40 % mass fraction) at 200 kPa and 277.15 K:
var mixture = new Mixture(new List<FluidsList> {FluidsList.Water, FluidsList.Ethanol},
new List<double> {0.6, 0.4});
mixture.Update(Input.Pressure(200e3), Input.Temperature(277.15));
Console.WriteLine(mixture.Density); // 883.3922771627759
Humid air
To calculate the wet bulb temperature of humid air at 99 kPa, 303.15 K and 50 % relative humidity:
var humidAir = new HumidAir();
humidAir.Update(InputHumidAir.Pressure(99e3), InputHumidAir.Temperature(303.15),
InputHumidAir.RelativeHumidity(0.5));
// or use:
// var humidAir = HumidAir.WithState(InputHumidAir.Pressure(99e3), InputHumidAir.Temperature(303.15),
// InputHumidAir.RelativeHumidity(0.5));
Console.WriteLine(humidAir.WetBulbTemperature); // 295.0965785590792
Converting to JSON string
For example, converting the Fluid instance to indented JSON string:
var refrigerant = new Fluid(FluidsList.R32);
refrigerant.Update(Input.Temperature(278.15), Input.Quality(1));
Console.WriteLine(refrigerant.AsJson(indented: true));
As a result:
{
"Name": "R32",
"Fraction": 1.0,
"Compressibility": 0.8266625877210833,
"Conductivity": 0.013435453854396475,
"CriticalPressure": 5782000.0,
"CriticalTemperature": 351.255,
"Density": 25.89088151061046,
"DynamicViscosity": 1.2606543144761657E-05,
"Enthalpy": 516105.7800378023,
"Entropy": 2136.2654412978777,
"FreezingTemperature": null,
"InternalEnergy": 479357.39743435377,
"MaxPressure": 70000000.0,
"MaxTemperature": 435.0,
"MinPressure": 47.999893876059375,
"MinTemperature": 136.34,
"MolarMass": 0.052024,
"Phase": "TwoPhase",
"Prandtl": 1.2252282243443504,
"Pressure": 951448.019691762,
"Quality": 1.0,
"SoundSpeed": 209.6337575990297,
"SpecificHeat": 1305.7899441785378,
"SurfaceTension": 0.010110117241546162,
"Temperature": 278.15,
"TriplePressure": 47.999893876059375,
"TripleTemperature": 136.34
}
Adding other properties or inputs
See an examples in SharpProp.Tests/Fluids and SharpProp.Tests/HumidAir.
Equality of instances
Since v2.0.0, you can simply determine the equality of Fluid, Mixture and HumidAir instances by its state.
Just use the Equals method or the equality operators (== or !=).
Exactly the same way you can compare inputs (Input, InputHumidAir or any IKeyedInput record).
For example:
var humidAir = HumidAir.WithState(InputHumidAir.Pressure(101325),
InputHumidAir.Temperature(293.15), InputHumidAir.RelativeHumidity(0.5));
var humidAirWithSameState = HumidAir.WithState(InputHumidAir.Pressure(101325),
InputHumidAir.Temperature(293.15), InputHumidAir.RelativeHumidity(0.5));
Console.WriteLine(humidAir == humidAirWithSameState); // true
Console.WriteLine(InputHumidAir.Pressure(101325) == InputHumidAir.Pressure(101.325e3)); // true
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net5.0
- Newtonsoft.Json (>= 13.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SharpProp:
| Package | Downloads |
|---|---|
|
VCRC
Cross-platform vapor-compression refrigeration cycles analysis tool |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.7.0 | 560 | 10/2/2025 |
| 7.6.0 | 385 | 9/5/2025 |
| 7.5.1 | 1,353 | 5/16/2025 |
| 7.5.0 | 1,085 | 3/1/2025 |
| 7.4.0 | 1,552 | 12/18/2024 |
| 7.3.0 | 1,317 | 10/3/2024 |
| 7.2.11 | 1,379 | 8/29/2024 |
| 7.2.10 | 904 | 7/2/2024 |
| 7.2.9 | 1,461 | 6/11/2024 |
| 7.2.8 | 1,335 | 3/19/2024 |
| 7.2.7 | 782 | 2/21/2024 |
| 7.2.6 | 420 | 1/19/2024 |
| 7.2.4 | 308 | 1/16/2024 |
| 7.2.3 | 434 | 12/27/2023 |
| 7.2.2 | 360 | 12/20/2023 |
| 7.2.1 | 434 | 12/10/2023 |
| 7.2.0 | 362 | 11/30/2023 |
| 7.1.0 | 421 | 11/15/2023 |
| 7.0.6 | 278 | 11/10/2023 |
| 7.0.5 | 493 | 10/11/2023 |
| 7.0.4 | 487 | 9/26/2023 |
| 7.0.3 | 561 | 9/6/2023 |
| 7.0.2 | 484 | 8/31/2023 |
| 7.0.1 | 353 | 8/30/2023 |
| 7.0.0 | 521 | 8/4/2023 |
| 6.0.4 | 1,303 | 3/18/2023 |
| 6.0.3 | 518 | 3/10/2023 |
| 6.0.2 | 546 | 3/5/2023 |
| 6.0.1 | 581 | 2/26/2023 |
| 6.0.0 | 623 | 2/18/2023 |
| 5.0.0 | 2,707 | 12/4/2022 |
| 4.4.1 | 5,432 | 11/21/2022 |
| 4.4.0 | 607 | 11/15/2022 |
| 4.3.3 | 793 | 11/7/2022 |
| 4.3.2 | 655 | 11/2/2022 |
| 4.3.1 | 830 | 9/12/2022 |
| 4.2.5 | 757 | 9/5/2022 |
| 4.2.4 | 772 | 8/17/2022 |
| 4.2.3 | 793 | 8/5/2022 |
| 4.2.2 | 786 | 7/22/2022 |
| 4.2.1 | 821 | 7/4/2022 |
| 4.2.0 | 820 | 6/29/2022 |
| 4.1.0 | 575 | 6/27/2022 |
| 4.0.3 | 1,045 | 6/22/2022 |
| 4.0.2 | 774 | 6/14/2022 |
| 4.0.1 | 810 | 6/7/2022 |
| 4.0.0 | 698 | 5/27/2022 |
| 3.2.4 | 716 | 5/7/2022 |
| 3.2.3 | 887 | 4/24/2022 |
| 3.2.2 | 1,046 | 4/6/2022 |
| 3.2.1 | 871 | 4/4/2022 |
| 3.2.0 | 911 | 3/22/2022 |
| 3.1.19 | 831 | 3/11/2022 |
| 3.1.18 | 852 | 3/4/2022 |
| 3.1.17 | 810 | 3/1/2022 |
| 3.1.16 | 831 | 2/17/2022 |
| 3.1.15 | 817 | 2/12/2022 |
| 3.1.14 | 894 | 1/29/2022 |
| 3.1.13 | 578 | 1/10/2022 |
| 3.1.11 | 734 | 12/8/2021 |
| 3.1.10 | 642 | 12/5/2021 |
| 3.1.9 | 1,700 | 11/28/2021 |
| 3.1.8 | 594 | 11/27/2021 |
| 3.1.7 | 3,448 | 11/25/2021 |
| 3.1.6 | 472 | 11/23/2021 |
| 3.1.4 | 511 | 11/16/2021 |
| 3.1.3 | 504 | 11/13/2021 |
| 3.1.2 | 559 | 11/6/2021 |
| 3.1.1 | 552 | 11/5/2021 |
| 3.1.0 | 537 | 10/29/2021 |
| 3.0.4 | 520 | 10/26/2021 |
| 3.0.3 | 642 | 10/24/2021 |
| 3.0.2 | 608 | 10/23/2021 |
| 3.0.1 | 531 | 10/22/2021 |
| 3.0.0 | 559 | 10/21/2021 |
| 2.0.4 | 530 | 10/18/2021 |
| 2.0.3 | 580 | 10/17/2021 |
| 2.0.2 | 507 | 10/15/2021 |
| 2.0.1 | 491 | 10/5/2021 |
| 2.0.0 | 505 | 9/27/2021 |
| 1.1.0 | 584 | 9/18/2021 |
| 1.0.6 | 492 | 9/18/2021 |
| 1.0.5 | 591 | 9/15/2021 |
| 1.0.4 | 525 | 9/15/2021 |
| 1.0.3 | 516 | 9/15/2021 |
| 1.0.2 | 525 | 9/15/2021 |
| 1.0.1 | 593 | 9/12/2021 |