#ifndef PCSAFTFLUID_H #define PCSAFTFLUID_H #include #include #include #include "rapidjson_include.h" namespace CoolProp { struct PCSAFTValues { CoolPropDbl m; ///< Number of segments CoolPropDbl sigma; ///< Segment diameter (1/Angstrom) CoolPropDbl u; ///< Dispersion energy divided by Boltzmann constant (K) CoolPropDbl uAB; ///< Association energy (K) CoolPropDbl volA; ///< Association volume CoolPropDbl dipm; ///< Dipole moment (Debye) CoolPropDbl dipnum; ///< Number of dipole moments per molecule CoolPropDbl z; ///< Charge of the compound }; class PCSAFTFluid { protected: std::string name; // name of fluid std::string CAS; // CAS number CoolPropDbl molemass; ///< Molar mass (kg/mol) std::vector aliases; PCSAFTValues params; public: PCSAFTFluid(){}; PCSAFTFluid(rapidjson::Value::ValueIterator itr); ~PCSAFTFluid(){}; std::string getName() const { return name; } std::string getCAS() const { return CAS; } CoolPropDbl molar_mass() const { return molemass; } std::vector getAliases() const { return aliases; } CoolPropDbl getM() const { return params.m; } CoolPropDbl getSigma() const { return params.sigma; } CoolPropDbl getU() const { return params.u; } CoolPropDbl getUAB() const { return params.uAB; } CoolPropDbl getVolA() const { return params.volA; } CoolPropDbl getDipm() const { return params.dipm; } CoolPropDbl getDipnum() const { return params.dipnum; } CoolPropDbl getZ() const { return params.z; } void calc_water_sigma(double t); }; } /* namespace CoolProp */ #endif /* PCSAFTFLUID_H_ */