Source code for idaes.surrogate.helmet.DataManipulation

##############################################################################
# Institute for the Design of Advanced Energy Systems Process Systems
# Engineering Framework (IDAES PSE Framework) Copyright (c) 2018-2019, by the
# software owners: The Regents of the University of California, through
# Lawrence Berkeley National Laboratory,  National Technology & Engineering
# Solutions of Sandia, LLC, Carnegie Mellon University, West Virginia
# University Research Corporation, et al. All rights reserved.
#
# Please see the files COPYRIGHT.txt and LICENSE.txt for full copyright and
# license information, respectively. Both files are also available online
# at the URL "https://github.com/IDAES/idaes-pse".
##############################################################################
"""
Calculates dimensionless data
"""

import math

molecule = ""
critT, critD, critP, acc, R, M, Rm = [0, 0, 0, 0, 0, 0, 0]


[docs]def molData(fluidData, mol, RVal): """ Sets up important global values """ global critT, critP, critD, M, triple, acc, R, Rm, molecule (critT, critP, critD, M, triple, acc) = fluidData molecule = mol R = RVal Rm = RVal
[docs]def PVT(x): """ Calculate dimensionless compressibility Inputs: X = [Pressure, Density, Temperature] OutputS: X = [Delta, Tau, Compressibility] """ Pressure = float(x[0]) Density = float(x[1]) Temperature = float(x[2]) Tau = float(critT) / Temperature Delta = Density / float(critD) if Density != 0: Z = (Pressure * 1000 / R / Temperature / Density) - 1.00 else: Z = 0 return [Delta, Tau, Z]
[docs]def P(x): """ Calculate reduced density and inverse reduced temperature Return array of Delta, Tau, Pressure """ Temperature = float(x[2]) Density = float(x[1]) Pressure = float(x[0]) Tau = float(critT) / Temperature Delta = Density / float(critD) return [Delta, Tau, Pressure]
[docs]def CP(x): """ Calculate dimensionless isobaric heat capacity Inputs: X = [Density, Temperature, Isobaric Heat Capacity] Outputs: X = [Delta, Tau, CP] """ Delta = float(x[0]) / float(critD) Tau = float(critT) / float(x[1]) CP = float(x[2]) / R return [Delta, Tau, CP]
[docs]def CV(x): """ Calculate dimensionless isochoric heat capacity Inputs: X = [Density, Temperature, Isochoric Heat Capacity] Outputs: X = [Delta, Tau, CV] """ Delta = float(x[0]) / float(critD) Tau = float(critT) / float(x[1]) CV = float(x[2]) / R return [Delta, Tau, CV]
[docs]def SND(x): """ Calculate dimensionless speed of sound Inputs: X = [Density, Temperature, Speed of Sound] Outputs: X = [Delta, Tau, W] """ Delta = float(x[0]) / float(critD) Tau = float(critT) / float(x[1]) w = (float(x[2]) ** 2) / R / 1000 * M / float(x[1]) return [Delta, Tau, w]
[docs]def CP0(x): """ Calculate dimensionless ideal isobaric heat capacity """ Cp0 = float(x[1]) / Rm / 1000.0 Temp = float(x[0]) / 1000.0 return [Temp, Cp0]
[docs]def DL(x): """ Calculate Theta and Delta for saturated liquid density Inputs: X = [Density, Temperature] """ Theta = 1 - float(x[1]) / float(critT) Delta = float(x[0]) / float(critD) - 1 return [Theta, Delta]
[docs]def DV(x): """ Calculate Theta and Delta for saturated vapor density Inputs: X = [Density, Temperature] """ Theta = 1 - float(x[1]) / float(critT) Delta = math.log(float(x[0]) / float(critD)) return [Theta, Delta]
[docs]def Dsat(x): """ Calculate dimensionless terms """ Theta = float(critT) / float(x[1]) Delta = float(x[0]) / float(critD) return [Delta, Theta]
[docs]def PV(x): """ Calculate Theta, Tau, and Psi for saturated liquid density Inputs: X = [Pressure, Temperature] """ Theta = 1 - float(x[1]) / float(critT) Psi = math.log(float(x[0]) / float(critP)) Tau = float(critT) / float(x[1]) return [Tau, Theta, Psi]