8#ifndef ABSTRACTSTATE_H_
9#define ABSTRACTSTATE_H_
26 std::vector<double>
tau,
43 std::vector<double>
x,
118 CAE _hmolar =
cache.
next(),
_smolar =
cache.
next(),
_umolar =
cache.
next(),
_logp =
cache.
next(),
_logrhomolar =
cache.
next(),
_cpmolar =
cache.
next(),
_cp0molar =
cache.
next(),
_cvmolar =
cache.
next(),
_speed_sound =
cache.
next(),
_gibbsmolar =
cache.
next(),
_helmholtzmolar =
cache.
next();
203 throw NotImplementedError(
"calc_isothermal_compressibility is not implemented for this backend");
207 throw NotImplementedError(
"calc_isobaric_expansion_coefficient is not implemented for this backend");
211 throw NotImplementedError(
"calc_isentropic_expansion_coefficient is not implemented for this backend");
243 throw NotImplementedError(
"calc_fugacity_coefficient is not implemented for this backend");
247 throw NotImplementedError(
"calc_fugacity_coefficients is not implemented for this backend");
287 throw NotImplementedError(
"calc_d2alphar_dDelta_dTau is not implemented for this backend");
299 throw NotImplementedError(
"calc_d3alphar_dDelta2_dTau is not implemented for this backend");
303 throw NotImplementedError(
"calc_d3alphar_dDelta_dTau2 is not implemented for this backend");
316 throw NotImplementedError(
"calc_d4alphar_dDelta3_dTau is not implemented for this backend");
320 throw NotImplementedError(
"calc_d4alphar_dDelta2_dTau2 is not implemented for this backend");
324 throw NotImplementedError(
"calc_d4alphar_dDelta_dTau3 is not implemented for this backend");
346 throw NotImplementedError(
"calc_d2alpha0_dDelta_dTau is not implemented for this backend");
362 throw NotImplementedError(
"calc_d3alpha0_dDelta2_dTau is not implemented for this backend");
366 throw NotImplementedError(
"calc_d3alpha0_dDelta_dTau2 is not implemented for this backend");
434 throw NotImplementedError(
"calc_reciprocal_reduced_temperature is not implemented for this backend");
455 throw NotImplementedError(
"calc_compressibility_factor is not implemented for this backend");
582 throw NotImplementedError(
"This backend does not implement calc_unspecify_phase function");
599 throw NotImplementedError(
"calc_mole_fractions_liquid is not implemented for this backend");
602 throw NotImplementedError(
"calc_mole_fractions_vapor is not implemented for this backend");
621 throw NotImplementedError(
"calc_first_saturation_deriv is not implemented for this backend");
624 throw NotImplementedError(
"calc_second_saturation_deriv is not implemented for this backend");
627 throw NotImplementedError(
"calc_first_two_phase_deriv is not implemented for this backend");
630 throw NotImplementedError(
"calc_second_two_phase_deriv is not implemented for this backend");
633 throw NotImplementedError(
"calc_first_two_phase_deriv_splined is not implemented for this backend");
637 throw NotImplementedError(
"calc_saturated_liquid_keyed_output is not implemented for this backend");
640 throw NotImplementedError(
"calc_saturated_vapor_keyed_output is not implemented for this backend");
642 virtual void calc_ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
657 throw NotImplementedError(
"calc_tangent_plane_distance is not implemented for this backend");
670 throw NotImplementedError(
"calc_viscosity_contributions is not implemented for this backend");
673 throw NotImplementedError(
"calc_conductivity_contributions is not implemented for this backend");
685 throw NotImplementedError(
"calc_criticality_contour_values is not implemented for this backend");
781 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
791 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
794#ifndef COOLPROPDBL_MAPS_TO_DOUBLE
796 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
799 set_mass_fractions(std::vector<CoolPropDbl>(mass_fractions.begin(), mass_fractions.end()));
802 set_volu_fractions(std::vector<CoolPropDbl>(volu_fractions.begin(), volu_fractions.end()));
807 void set_mole_fractions_double(
const std::vector<double>& mole_fractions) {
808 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
819 return std::vector<double>(x.begin(), x.end());
829 return std::vector<double>(y.begin(), y.end());
878 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
882 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
886 const std::string& value) {
887 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
891 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
895 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
899 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
903 throw NotImplementedError(
"get_binary_interaction_string is not implemented for this backend");
910 virtual void set_cubic_alpha_C(
const size_t i,
const std::string& parameter,
const double c1,
const double c2,
const double c3) {
911 throw ValueError(
"set_cubic_alpha_C only defined for cubic backends");
915 throw ValueError(
"set_fluid_parameter_double only defined for cubic backends");
919 throw ValueError(
"get_fluid_parameter_double only defined for cubic backends");
923 virtual bool clear();
1232 void ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
1417 double melting_line(
int param,
int given,
double value);
1460 void change_EOS(
const std::size_t i,
const std::string& EOS_name) {