diff --git a/include/CoolPropFluid.h b/include/CoolPropFluid.h index d247a6ec..04505fe2 100644 --- a/include/CoolPropFluid.h +++ b/include/CoolPropFluid.h @@ -293,6 +293,8 @@ public: BibTeX_conductivity; ///< The BibTeX key for the conductivity model bool viscosity_using_ECS; ///< A flag for whether to use extended corresponding states for viscosity. False for no bool conductivity_using_ECS; ///< A flag for whether to use extended corresponding states for conductivity. False for no + bool conductivity_model_provided; ///< A flag for whether thermal conductivity model is provided. False for no + bool viscosity_model_provided; ///< A flag for whether viscosity model is provided. False for no long double sigma_eta, ///< The Lennard-Jones 12-6 \f$ \sigma \f$ parameter epsilon_over_k; ///< The Lennard-Jones 12-6 \f$ \varepsilon/k \f$ parameter ViscosityHardcodedEnum hardcoded_viscosity; ///< Hardcoded flags for the viscosity @@ -301,6 +303,8 @@ public: hardcoded_conductivity = CONDUCTIVITY_NOT_HARDCODED; viscosity_using_ECS = false; conductivity_using_ECS = false; + viscosity_model_provided = false; + conductivity_model_provided = false; }; }; diff --git a/src/Backends/Helmholtz/Fluids/FluidLibrary.h b/src/Backends/Helmholtz/Fluids/FluidLibrary.h index 2b8a2ef9..cef386f7 100644 --- a/src/Backends/Helmholtz/Fluids/FluidLibrary.h +++ b/src/Backends/Helmholtz/Fluids/FluidLibrary.h @@ -856,11 +856,13 @@ protected: // Parse viscosity if (transport.HasMember("viscosity")){ parse_viscosity(transport["viscosity"],fluid); + fluid.transport.viscosity_model_provided = true; } // Parse thermal conductivity if (transport.HasMember("conductivity")){ parse_thermal_conductivity(transport["conductivity"],fluid); + fluid.transport.conductivity_model_provided = true; } }; diff --git a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp index 2d42d1ba..9722f1c9 100644 --- a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp +++ b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp @@ -399,6 +399,10 @@ long double HelmholtzEOSMixtureBackend::calc_viscosity(void) { // Get a reference for code cleanness CoolPropFluid &component = *(components[0]); + + if (!component.transport.viscosity_model_provided){ + throw ValueError(format("Viscosity model is not available for this fluid")); + } // Check if using ECS if (component.transport.viscosity_using_ECS) @@ -465,6 +469,10 @@ long double HelmholtzEOSMixtureBackend::calc_conductivity(void) { // Get a reference for code cleanness CoolPropFluid &component = *(components[0]); + + if (!component.transport.conductivity_model_provided){ + throw ValueError(format("Thermal conductivity model is not available for this fluid")); + } // Check if using ECS if (component.transport.conductivity_using_ECS)