35#ifndef NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_MISC_PENGROBINSONEOS
36#define NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_MISC_PENGROBINSONEOS
100 template <
class T,
typename =
typename std::enable_if<
101 std::is_floating_point<T>::value ||
106 return sqrtAlpha * sqrtAlpha;
110 template <
class T,
typename =
typename std::enable_if<
111 std::is_floating_point<T>::value ||
119 template <
class T,
typename =
typename std::enable_if<
120 std::is_floating_point<T>::value ||
136 T C = f1 * logTerm * f2 * f2 - e;
139 T sqrtT = (
sqrt(B * B - 4 *
A * C) - B) / (2 *
A);
141 return sqrtT * sqrtT;
144 template <
class T,
typename =
typename std::enable_if<
145 std::is_floating_point<T>::value ||
150 T oneOrho = 1.0 / rho;
153 (oneOrho * oneOrho + 2.0 *
m_b * oneOrho -
m_b *
m_b);
Encapsulates equations of state allowing us to obtain thermodynamic properties: most relations are in...
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Peng-Robinson equation of state: p = RT/(1/rho - b) - a*Alpha(T/Tc) / (1/rho^2 + 2*b/rho - b^2) with ...
PengRobinsonEoS(const LibUtilities::SessionReaderSharedPtr &pSession)
static std::string className
Name of the class.
static EquationOfStateSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession)
Creates an instance of this class.
T GetTemperatureKernel(const T &rho, const T &e)
T GetPressureKernel(const T &rho, const T &e)
NekDouble v_GetPressure(const NekDouble &rho, const NekDouble &e) final
NekDouble v_GetEFromRhoP(const NekDouble &rho, const NekDouble &p) final
~PengRobinsonEoS(void) override
NekDouble v_GetDPDe_rho(const NekDouble &rho, const NekDouble &e) final
NekDouble v_GetTemperature(const NekDouble &rho, const NekDouble &e) final
NekDouble v_GetRhoFromPT(const NekDouble &rho, const NekDouble &p) final
NekDouble v_GetDPDrho_e(const NekDouble &rho, const NekDouble &e) final
NekDouble v_GetEntropy(const NekDouble &rho, const NekDouble &e) final
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< EquationOfState > EquationOfStateSharedPtr
A shared pointer to an equation of state object.
tinysimd::simd< NekDouble > vec_t
scalarT< T > log(scalarT< T > in)
scalarT< T > sqrt(scalarT< T > in)