8#ifndef ABSTRACTSTATE_H_
9#define ABSTRACTSTATE_H_
26 std::vector<double>
tau,
43 std::vector<double>
x,
210 throw NotImplementedError(
"calc_isothermal_compressibility is not implemented for this backend");
214 throw NotImplementedError(
"calc_isobaric_expansion_coefficient is not implemented for this backend");
218 throw NotImplementedError(
"calc_isentropic_expansion_coefficient is not implemented for this backend");
250 throw NotImplementedError(
"calc_fugacity_coefficient is not implemented for this backend");
254 throw NotImplementedError(
"calc_fugacity_coefficients is not implemented for this backend");
294 throw NotImplementedError(
"calc_d2alphar_dDelta_dTau is not implemented for this backend");
306 throw NotImplementedError(
"calc_d3alphar_dDelta2_dTau is not implemented for this backend");
310 throw NotImplementedError(
"calc_d3alphar_dDelta_dTau2 is not implemented for this backend");
323 throw NotImplementedError(
"calc_d4alphar_dDelta3_dTau is not implemented for this backend");
327 throw NotImplementedError(
"calc_d4alphar_dDelta2_dTau2 is not implemented for this backend");
331 throw NotImplementedError(
"calc_d4alphar_dDelta_dTau3 is not implemented for this backend");
353 throw NotImplementedError(
"calc_d2alpha0_dDelta_dTau is not implemented for this backend");
369 throw NotImplementedError(
"calc_d3alpha0_dDelta2_dTau is not implemented for this backend");
373 throw NotImplementedError(
"calc_d3alpha0_dDelta_dTau2 is not implemented for this backend");
441 throw NotImplementedError(
"calc_reciprocal_reduced_temperature is not implemented for this backend");
462 throw NotImplementedError(
"calc_compressibility_factor is not implemented for this backend");
589 throw NotImplementedError(
"This backend does not implement calc_unspecify_phase function");
606 throw NotImplementedError(
"calc_mole_fractions_liquid is not implemented for this backend");
609 throw NotImplementedError(
"calc_mole_fractions_vapor is not implemented for this backend");
628 throw NotImplementedError(
"calc_first_saturation_deriv is not implemented for this backend");
631 throw NotImplementedError(
"calc_second_saturation_deriv is not implemented for this backend");
634 throw NotImplementedError(
"calc_first_two_phase_deriv is not implemented for this backend");
637 throw NotImplementedError(
"calc_second_two_phase_deriv is not implemented for this backend");
640 throw NotImplementedError(
"calc_first_two_phase_deriv_splined is not implemented for this backend");
644 throw NotImplementedError(
"calc_saturated_liquid_keyed_output is not implemented for this backend");
647 throw NotImplementedError(
"calc_saturated_vapor_keyed_output is not implemented for this backend");
649 virtual void calc_ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
664 throw NotImplementedError(
"calc_tangent_plane_distance is not implemented for this backend");
677 throw NotImplementedError(
"calc_viscosity_contributions is not implemented for this backend");
680 throw NotImplementedError(
"calc_conductivity_contributions is not implemented for this backend");
692 throw NotImplementedError(
"calc_criticality_contour_values is not implemented for this backend");
788 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
798 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
801#ifndef COOLPROPDBL_MAPS_TO_DOUBLE
803 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
806 set_mass_fractions(std::vector<CoolPropDbl>(mass_fractions.begin(), mass_fractions.end()));
809 set_volu_fractions(std::vector<CoolPropDbl>(volu_fractions.begin(), volu_fractions.end()));
814 void set_mole_fractions_double(
const std::vector<double>& mole_fractions) {
815 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
826 return std::vector<double>(x.begin(), x.end());
836 return std::vector<double>(y.begin(), y.end());
885 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
889 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
893 const std::string& value) {
894 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
898 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
902 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
906 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
910 throw NotImplementedError(
"get_binary_interaction_string is not implemented for this backend");
917 virtual void set_cubic_alpha_C(
const size_t i,
const std::string& parameter,
const double c1,
const double c2,
const double c3) {
918 throw ValueError(
"set_cubic_alpha_C only defined for cubic backends");
922 throw ValueError(
"set_fluid_parameter_double only defined for cubic backends");
926 throw ValueError(
"get_fluid_parameter_double only defined for cubic backends");
930 virtual bool clear();
1251 void ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
1436 double melting_line(
int param,
int given,
double value);
1479 void change_EOS(
const std::size_t i,
const std::string& EOS_name) {