teqp 0.22.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Concepts
fwd.hpp
Go to the documentation of this file.
1#pragma once
2
11#include <valarray>
12#include <variant>
13
14#include "teqp/models/vdW.hpp"
16#include "teqp/models/CPA.hpp"
30#include "teqp/models/LKP.hpp"
31
32namespace teqp {
33
34 using vad = std::valarray<double>;
35 using vecs = std::vector<std::string>;
36
37 // Define the EOS types by interrogating the types returned by the respective
38 // factory function or by alias of the class name
39 using canonical_cubic_t = decltype(canonical_PR(vad{}, vad{}, vad{}));
40 using PCSAFT_t = decltype(PCSAFT::PCSAFTfactory(nlohmann::json{}));
42 using CPA_t = decltype(CPA::CPAfactory(nlohmann::json{}));
43 using multifluid_t = decltype(multifluidfactory(nlohmann::json{}));
44 using multifluidmutant_t = decltype(build_multifluid_mutant(multifluidfactory(nlohmann::json{}), nlohmann::json{}));
45 using ammonia_water_TillnerRoth_t = AmmoniaWaterTillnerRoth;
49 using twocenterLJF_t = decltype(twocenterljf::build_two_center_model_dipole(std::string{}, double{}, double{}));
54
56
57 /*
58 // The set of these models is exposed in the variant
59 using AllowedModels = std::variant<
60 vdWEOS1,
61 vdWEOS_t,
62 canonical_cubic_t,
63 PCSAFT_t,
64 SAFTVRMie_t,
65 CPA_t,
66 multifluid_t,
67 multifluidmutant_t,
68 idealgas_t,
69 ammonia_water_TillnerRoth_t,
70 SW_EspindolaHeredia2009_t,
71 EXP6_Kataoka1992_t,
72 twocenterLJF_t,
73 LJ126KolafaNezbeda1994_t,
74 LJ126Johnson1993_t,
75 Mie6Pohl2023_t
76 >;
77 */
78}
Ideal-gas Helmholtz energy container.
A class used to evaluate mixtures using the SAFT-VR-Mie model.
A slightly more involved implementation of van der Waals, this time with mixture properties.
Definition vdW.hpp:45
auto CPAfactory(const nlohmann::json &j)
Definition CPA.hpp:301
auto PCSAFTfactory(const nlohmann::json &spec)
A JSON-based factory function for the PC-SAFT model.
Definition pcsaft.hpp:455
auto build_two_center_model_dipole(const std::string &model_version, const double &L=0.0, const double &mu_sq=0.0)
decltype(SAFTVRMie::SAFTVRMieMixture(vecs{})) SAFTVRMie_t
Definition fwd.hpp:41
std::vector< std::string > vecs
Definition fwd.hpp:35
decltype(multifluidfactory(nlohmann::json{})) multifluid_t
Definition fwd.hpp:43
AmmoniaWaterTillnerRoth ammonia_water_TillnerRoth_t
Definition fwd.hpp:45
auto build_multifluid_mutant(const Model &model, const nlohmann::json &jj)
decltype(twocenterljf::build_two_center_model_dipole(std::string{}, double{}, double{})) twocenterLJF_t
Definition fwd.hpp:49
auto canonical_PR(TCType Tc_K, PCType pc_Pa, AcentricType acentric, const std::optional< Eigen::ArrayXXd > &kmat=std::nullopt, const std::optional< double > R_JmolK=std::nullopt)
Definition cubics.hpp:300
auto multifluidfactory(const nlohmann::json &spec)
Load a model from a JSON data structure.
decltype(CPA::CPAfactory(nlohmann::json{})) CPA_t
Definition fwd.hpp:42
decltype(canonical_PR(vad{}, vad{}, vad{})) canonical_cubic_t
Definition fwd.hpp:39
std::valarray< double > vad
Definition fwd.hpp:34
decltype(PCSAFT::PCSAFTfactory(nlohmann::json{})) PCSAFT_t
Definition fwd.hpp:40
decltype(build_multifluid_mutant(multifluidfactory(nlohmann::json{}), nlohmann::json{})) multifluidmutant_t
Definition fwd.hpp:44