teqp 0.23.1
Loading...
Searching...
No Matches
fwd.hpp
Go to the documentation of this file.
1#pragma once
2
10
11#include <valarray>
12#include <variant>
13
14#include "teqp/models/vdW.hpp"
17#include "teqp/models/CPA.hpp"
31#include "teqp/models/LKP.hpp"
32
33namespace teqp {
34
35 using vad = std::valarray<double>;
36 using vecs = std::vector<std::string>;
37
38 // Define the EOS types by interrogating the types returned by the respective
39 // factory function or by alias of the class name
40 using canonical_cubic_t = decltype(canonical_PR(vad{}, vad{}, vad{}));
41 using PCSAFT_t = decltype(PCSAFT::PCSAFTfactory(nlohmann::json{}));
43 using CPA_t = decltype(CPA::CPAfactory(nlohmann::json{}));
44 using multifluid_t = decltype(multifluidfactory(nlohmann::json{}));
45 using multifluidmutant_t = decltype(build_multifluid_mutant(multifluidfactory(nlohmann::json{}), nlohmann::json{}));
50 using twocenterLJF_t = decltype(twocenterljf::build_two_center_model_dipole(std::string{}, double{}, double{}));
55
57
58 /*
59 // The set of these models is exposed in the variant
60 using AllowedModels = std::variant<
61 vdWEOS1,
62 vdWEOS_t,
63 canonical_cubic_t,
64 PCSAFT_t,
65 SAFTVRMie_t,
66 CPA_t,
67 multifluid_t,
68 multifluidmutant_t,
69 idealgas_t,
70 ammonia_water_TillnerRoth_t,
71 SW_EspindolaHeredia2009_t,
72 EXP6_Kataoka1992_t,
73 twocenterLJF_t,
74 LJ126KolafaNezbeda1994_t,
75 LJ126Johnson1993_t,
76 Mie6Pohl2023_t
77 >;
78 */
79}
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:42
IdealHelmholtz idealgas_t
Definition fwd.hpp:56
std::vector< std::string > vecs
Definition fwd.hpp:36
decltype(multifluidfactory(nlohmann::json{})) multifluid_t
Definition fwd.hpp:44
AmmoniaWaterTillnerRoth ammonia_water_TillnerRoth_t
Definition fwd.hpp:46
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:50
LJ126Johnson1993 LJ126Johnson1993_t
Definition fwd.hpp:52
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)
vdWEOS< double > vdWEOS_t
Definition fwd.hpp:49
auto multifluidfactory(const nlohmann::json &spec)
Load a model from a JSON data structure.
decltype(CPA::CPAfactory(nlohmann::json{})) CPA_t
Definition fwd.hpp:43
Mie::Mie6Pohl2023 Mie6Pohl2023_t
Definition fwd.hpp:53
exp6::Kataoka1992 EXP6_Kataoka1992_t
Definition fwd.hpp:48
LJ126KolafaNezbeda1994 LJ126KolafaNezbeda1994_t
Definition fwd.hpp:51
squarewell::EspindolaHeredia2009 SW_EspindolaHeredia2009_t
Definition fwd.hpp:47
decltype(canonical_PR(vad{}, vad{}, vad{})) canonical_cubic_t
Definition fwd.hpp:40
std::valarray< double > vad
Definition fwd.hpp:35
QuantumCorrectedPR QuantumPR_t
Definition fwd.hpp:54
decltype(PCSAFT::PCSAFTfactory(nlohmann::json{})) PCSAFT_t
Definition fwd.hpp:41
decltype(build_multifluid_mutant(multifluidfactory(nlohmann::json{}), nlohmann::json{})) multifluidmutant_t
Definition fwd.hpp:45