8 #ifndef ABSTRACTSTATE_H_
9 #define ABSTRACTSTATE_H_
26 std::vector<double>
tau,
43 std::vector<double>
x,
115 CachedElement _hmolar,
_smolar,
_umolar,
_logp,
_logrhomolar,
_cpmolar,
_cp0molar,
_cvmolar,
_speed_sound,
_gibbsmolar,
_helmholtzmolar;
196 throw NotImplementedError(
"calc_isothermal_compressibility is not implemented for this backend");
200 throw NotImplementedError(
"calc_isobaric_expansion_coefficient is not implemented for this backend");
204 throw NotImplementedError(
"calc_isentropic_expansion_coefficient is not implemented for this backend");
236 throw NotImplementedError(
"calc_fugacity_coefficient is not implemented for this backend");
240 throw NotImplementedError(
"calc_fugacity_coefficients is not implemented for this backend");
280 throw NotImplementedError(
"calc_d2alphar_dDelta_dTau is not implemented for this backend");
292 throw NotImplementedError(
"calc_d3alphar_dDelta2_dTau is not implemented for this backend");
296 throw NotImplementedError(
"calc_d3alphar_dDelta_dTau2 is not implemented for this backend");
309 throw NotImplementedError(
"calc_d4alphar_dDelta3_dTau is not implemented for this backend");
313 throw NotImplementedError(
"calc_d4alphar_dDelta2_dTau2 is not implemented for this backend");
317 throw NotImplementedError(
"calc_d4alphar_dDelta_dTau3 is not implemented for this backend");
339 throw NotImplementedError(
"calc_d2alpha0_dDelta_dTau is not implemented for this backend");
355 throw NotImplementedError(
"calc_d3alpha0_dDelta2_dTau is not implemented for this backend");
359 throw NotImplementedError(
"calc_d3alpha0_dDelta_dTau2 is not implemented for this backend");
427 throw NotImplementedError(
"calc_reciprocal_reduced_temperature is not implemented for this backend");
448 throw NotImplementedError(
"calc_compressibility_factor is not implemented for this backend");
575 throw NotImplementedError(
"This backend does not implement calc_unspecify_phase function");
592 throw NotImplementedError(
"calc_mole_fractions_liquid is not implemented for this backend");
595 throw NotImplementedError(
"calc_mole_fractions_vapor is not implemented for this backend");
614 throw NotImplementedError(
"calc_first_saturation_deriv is not implemented for this backend");
617 throw NotImplementedError(
"calc_second_saturation_deriv is not implemented for this backend");
620 throw NotImplementedError(
"calc_first_two_phase_deriv is not implemented for this backend");
623 throw NotImplementedError(
"calc_second_two_phase_deriv is not implemented for this backend");
626 throw NotImplementedError(
"calc_first_two_phase_deriv_splined is not implemented for this backend");
630 throw NotImplementedError(
"calc_saturated_liquid_keyed_output is not implemented for this backend");
633 throw NotImplementedError(
"calc_saturated_vapor_keyed_output is not implemented for this backend");
635 virtual void calc_ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
650 throw NotImplementedError(
"calc_tangent_plane_distance is not implemented for this backend");
663 throw NotImplementedError(
"calc_viscosity_contributions is not implemented for this backend");
666 throw NotImplementedError(
"calc_conductivity_contributions is not implemented for this backend");
678 throw NotImplementedError(
"calc_criticality_contour_values is not implemented for this backend");
774 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
784 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
787 #ifndef COOLPROPDBL_MAPS_TO_DOUBLE
789 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
792 set_mass_fractions(std::vector<CoolPropDbl>(mass_fractions.begin(), mass_fractions.end()));
795 set_volu_fractions(std::vector<CoolPropDbl>(volu_fractions.begin(), volu_fractions.end()));
800 void set_mole_fractions_double(
const std::vector<double>& mole_fractions) {
801 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
812 return std::vector<double>(x.begin(), x.end());
822 return std::vector<double>(y.begin(), y.end());
867 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
871 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
875 const std::string& value) {
876 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
880 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
884 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
888 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
892 throw NotImplementedError(
"get_binary_interaction_string is not implemented for this backend");
899 virtual void set_cubic_alpha_C(
const size_t i,
const std::string& parameter,
const double c1,
const double c2,
const double c3) {
900 throw ValueError(
"set_cubic_alpha_C only defined for cubic backends");
904 throw ValueError(
"set_fluid_parameter_double only defined for cubic backends");
908 throw ValueError(
"get_fluid_parameter_double only defined for cubic backends");
912 virtual bool clear();
1219 void ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
1404 double melting_line(
int param,
int given,
double value);
1447 void change_EOS(
const std::size_t i,
const std::string& EOS_name) {