8#ifndef ABSTRACTSTATE_H_
9#define ABSTRACTSTATE_H_
25 std::vector<double>
tau,
42 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");
314 throw NotImplementedError(
"calc_d2alphar_dDelta_dTau is not implemented for this backend");
326 throw NotImplementedError(
"calc_d3alphar_dDelta2_dTau is not implemented for this backend");
330 throw NotImplementedError(
"calc_d3alphar_dDelta_dTau2 is not implemented for this backend");
343 throw NotImplementedError(
"calc_d4alphar_dDelta3_dTau is not implemented for this backend");
347 throw NotImplementedError(
"calc_d4alphar_dDelta2_dTau2 is not implemented for this backend");
351 throw NotImplementedError(
"calc_d4alphar_dDelta_dTau3 is not implemented for this backend");
373 throw NotImplementedError(
"calc_d2alpha0_dDelta_dTau is not implemented for this backend");
389 throw NotImplementedError(
"calc_d3alpha0_dDelta2_dTau is not implemented for this backend");
393 throw NotImplementedError(
"calc_d3alpha0_dDelta_dTau2 is not implemented for this backend");
461 throw NotImplementedError(
"calc_reciprocal_reduced_temperature is not implemented for this backend");
482 throw NotImplementedError(
"calc_compressibility_factor is not implemented for this backend");
609 throw NotImplementedError(
"This backend does not implement calc_unspecify_phase function");
626 throw NotImplementedError(
"calc_mole_fractions_liquid is not implemented for this backend");
629 throw NotImplementedError(
"calc_mole_fractions_vapor is not implemented for this backend");
648 throw NotImplementedError(
"calc_first_saturation_deriv is not implemented for this backend");
651 throw NotImplementedError(
"calc_second_saturation_deriv is not implemented for this backend");
654 throw NotImplementedError(
"calc_first_two_phase_deriv is not implemented for this backend");
657 throw NotImplementedError(
"calc_second_two_phase_deriv is not implemented for this backend");
660 throw NotImplementedError(
"calc_first_two_phase_deriv_splined is not implemented for this backend");
664 throw NotImplementedError(
"calc_saturated_liquid_keyed_output is not implemented for this backend");
667 throw NotImplementedError(
"calc_saturated_vapor_keyed_output is not implemented for this backend");
669 virtual void calc_ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
684 throw NotImplementedError(
"calc_tangent_plane_distance is not implemented for this backend");
697 throw NotImplementedError(
"calc_viscosity_contributions is not implemented for this backend");
700 throw NotImplementedError(
"calc_conductivity_contributions is not implemented for this backend");
712 throw NotImplementedError(
"calc_criticality_contour_values is not implemented for this backend");
823 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
833 "Setting reference state has not been implemented for this backend. Try using CoolProp::set_reference_stateD instead.");
836#ifndef COOLPROPDBL_MAPS_TO_DOUBLE
838 set_mole_fractions(std::vector<CoolPropDbl>(mole_fractions.begin(), mole_fractions.end()));
841 set_mass_fractions(std::vector<CoolPropDbl>(mass_fractions.begin(), mass_fractions.end()));
844 set_volu_fractions(std::vector<CoolPropDbl>(volu_fractions.begin(), volu_fractions.end()));
855 return {x.begin(), x.end()};
865 return {y.begin(), y.end()};
921 const CoolProp::parameters* outputs, std::size_t N_outputs,
double* out_buffer, std::size_t out_buffer_size,
951 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
955 throw NotImplementedError(
"set_binary_interaction_double is not implemented for this backend");
959 const std::string& value) {
960 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
964 throw NotImplementedError(
"set_binary_interaction_string is not implemented for this backend");
968 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
972 throw NotImplementedError(
"get_binary_interaction_double is not implemented for this backend");
976 throw NotImplementedError(
"get_binary_interaction_string is not implemented for this backend");
983 virtual void set_cubic_alpha_C(
const size_t i,
const std::string& parameter,
const double c1,
const double c2,
const double c3) {
984 throw ValueError(
"set_cubic_alpha_C only defined for cubic backends");
988 throw ValueError(
"set_fluid_parameter_double only defined for cubic backends");
992 throw ValueError(
"get_fluid_parameter_double only defined for cubic backends");
996 virtual bool clear();
1319 void ideal_curve(
const std::string& type, std::vector<double>&
T, std::vector<double>&
p) {
1504 double melting_line(
int param,
int given,
double value);
1547 void change_EOS(
const std::size_t i,
const std::string& EOS_name) {