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;
200 throw NotImplementedError(
"calc_isothermal_compressibility is not implemented for this backend");
204 throw NotImplementedError(
"calc_isobaric_expansion_coefficient is not implemented for this backend");
208 throw NotImplementedError(
"calc_isentropic_expansion_coefficient is not implemented for this backend");
240 throw NotImplementedError(
"calc_fugacity_coefficient is not implemented for this backend");
244 throw NotImplementedError(
"calc_fugacity_coefficients is not implemented for this backend");
284 throw NotImplementedError(
"calc_d2alphar_dDelta_dTau is not implemented for this backend");
296 throw NotImplementedError(
"calc_d3alphar_dDelta2_dTau is not implemented for this backend");
300 throw NotImplementedError(
"calc_d3alphar_dDelta_dTau2 is not implemented for this backend");
313 throw NotImplementedError(
"calc_d4alphar_dDelta3_dTau is not implemented for this backend");
317 throw NotImplementedError(
"calc_d4alphar_dDelta2_dTau2 is not implemented for this backend");
321 throw NotImplementedError(
"calc_d4alphar_dDelta_dTau3 is not implemented for this backend");
343 throw NotImplementedError(
"calc_d2alpha0_dDelta_dTau is not implemented for this backend");
359 throw NotImplementedError(
"calc_d3alpha0_dDelta2_dTau is not implemented for this backend");
363 throw NotImplementedError(
"calc_d3alpha0_dDelta_dTau2 is not implemented for this backend");
431 throw NotImplementedError(
"calc_reciprocal_reduced_temperature is not implemented for this backend");
452 throw NotImplementedError(
"calc_compressibility_factor is not implemented for this backend");
579 throw NotImplementedError(
"This backend does not implement calc_unspecify_phase function");
596 throw NotImplementedError(
"calc_mole_fractions_liquid is not implemented for this backend");
599 throw NotImplementedError(
"calc_mole_fractions_vapor is not implemented for this backend");
618 throw NotImplementedError(
"calc_first_saturation_deriv is not implemented for this backend");
621 throw NotImplementedError(
"calc_second_saturation_deriv is not implemented for this backend");
624 throw NotImplementedError(
"calc_first_two_phase_deriv is not implemented for this backend");
627 throw NotImplementedError(
"calc_second_two_phase_deriv is not implemented for this backend");
630 throw NotImplementedError(
"calc_first_two_phase_deriv_splined is not implemented for this backend");
634 throw NotImplementedError(
"calc_saturated_liquid_keyed_output is not implemented for this backend");
637 throw NotImplementedError(
"calc_saturated_vapor_keyed_output is not implemented for this backend");
639 virtual void calc_ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
654 throw NotImplementedError(
"calc_tangent_plane_distance is not implemented for this backend");
667 throw NotImplementedError(
"calc_viscosity_contributions is not implemented for this backend");
670 throw NotImplementedError(
"calc_conductivity_contributions is not implemented for this backend");
682 throw NotImplementedError(
"calc_criticality_contour_values is not implemented for this backend");
778 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
788 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
791 #ifndef COOLPROPDBL_MAPS_TO_DOUBLE
793 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
796 set_mass_fractions(std::vector<CoolPropDbl>(mass_fractions.begin(), mass_fractions.end()));
799 set_volu_fractions(std::vector<CoolPropDbl>(volu_fractions.begin(), volu_fractions.end()));
804 void set_mole_fractions_double(
const std::vector<double>& mole_fractions) {
805 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
816 return std::vector<double>(x.begin(), x.end());
826 return std::vector<double>(y.begin(), y.end());
871 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
875 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
879 const std::string& value) {
880 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
884 throw NotImplementedError(
"set_binary_interaction_string 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_double is not implemented for this backend");
896 throw NotImplementedError(
"get_binary_interaction_string is not implemented for this backend");
903 virtual void set_cubic_alpha_C(
const size_t i,
const std::string& parameter,
const double c1,
const double c2,
const double c3) {
904 throw ValueError(
"set_cubic_alpha_C only defined for cubic backends");
908 throw ValueError(
"set_fluid_parameter_double only defined for cubic backends");
912 throw ValueError(
"get_fluid_parameter_double only defined for cubic backends");
916 virtual bool clear();
1225 void ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
1410 double melting_line(
int param,
int given,
double value);
1453 void change_EOS(
const std::size_t i,
const std::string& EOS_name) {