Cantera
2.1.2
|
This class can handle either an ideal solution or an ideal gas approximation of a phase. More...
#include <RedlichKwongMFTP.h>
Public Member Functions | |
virtual void | getActivityConcentrations (doublereal *c) const |
This method returns an array of generalized concentrations. More... | |
virtual doublereal | standardConcentration (size_t k=0) const |
Returns the standard concentration \( C^0_k \), which is used to normalize the generalized concentration. More... | |
virtual doublereal | logStandardConc (size_t k=0) const |
Returns the natural logarithm of the standard concentration of the kth species. More... | |
virtual void | getUnitsStandardConc (double *uA, int k=0, int sizeUA=6) const |
Returns the units of the standard and generalized concentrations. More... | |
virtual void | getActivityCoefficients (doublereal *ac) const |
Get the array of non-dimensional activity coefficients at the current solution temperature, pressure, and solution concentration. More... | |
virtual doublereal | liquidVolEst (doublereal TKelvin, doublereal &pres) const |
Estimate for the molar volume of the liquid. More... | |
virtual doublereal | densityCalc (doublereal TKelvin, doublereal pressure, int phase, doublereal rhoguess) |
Calculates the density given the temperature and the pressure and a guess at the density. More... | |
virtual doublereal | densSpinodalLiquid () const |
Return the value of the density at the liquid spinodal point (on the liquid side) for the current temperature. More... | |
virtual doublereal | densSpinodalGas () const |
Return the value of the density at the gas spinodal point (on the gas side) for the current temperature. More... | |
virtual doublereal | pressureCalc (doublereal TKelvin, doublereal molarVol) const |
Calculate the pressure given the temperature and the molar volume. More... | |
virtual doublereal | dpdVCalc (doublereal TKelvin, doublereal molarVol, doublereal &presCalc) const |
Calculate the pressure and the pressure derivative given the temperature and the molar volume. More... | |
void | pressureDerivatives () const |
Calculate dpdV and dpdT at the current conditions. More... | |
virtual void | updateMixingExpressions () |
void | updateAB () |
Update the a and b parameters. More... | |
void | calculateAB (doublereal temp, doublereal &aCalc, doublereal &bCalc) const |
Calculate the a and the b parameters given the temperature. More... | |
doublereal | da_dt () const |
void | calcCriticalConditions (doublereal a, doublereal b, doublereal a0_coeff, doublereal aT_coeff, doublereal &pc, doublereal &tc, doublereal &vc) const |
int | NicholsSolve (double TKelvin, double pres, doublereal a, doublereal b, doublereal Vroot[3]) const |
Solve the cubic equation of state. More... | |
Public Member Functions inherited from MixtureFugacityTP | |
virtual void | setPressure (doublereal p) |
Set the internally stored pressure (Pa) at constant temperature and composition. More... | |
virtual void | setState_TP (doublereal T, doublereal pres) |
Set the temperature and pressure at the same time. More... | |
virtual void | setState_TR (doublereal T, doublereal rho) |
Set the internally stored temperature (K) and density (kg/m^3) More... | |
virtual void | setState_TPX (doublereal t, doublereal p, const doublereal *x) |
Set the temperature (K), pressure (Pa), and mole fractions. More... | |
MixtureFugacityTP () | |
Constructor. More... | |
MixtureFugacityTP (const MixtureFugacityTP &b) | |
Copy Constructor. More... | |
MixtureFugacityTP & | operator= (const MixtureFugacityTP &b) |
Assignment operator. More... | |
virtual int | standardStateConvention () const |
This method returns the convention used in specification of the standard state, of which there are currently two, temperature based, and variable pressure based. More... | |
virtual void | setForcedSolutionBranch (int solnBranch) |
Set the solution branch to force the ThermoPhase to exist on one branch or another. More... | |
virtual int | forcedSolutionBranch () const |
Report the solution branch which the solution is restricted to. More... | |
virtual int | reportSolnBranchActual () const |
Report the solution branch which the solution is actually on. More... | |
virtual void | getdlnActCoeffdlnN_diag (doublereal *dlnActCoeffdlnN_diag) const |
Get the array of log concentration-like derivatives of the log activity coefficients. More... | |
virtual void | getStandardChemPotentials (doublereal *mu) const |
Get the array of chemical potentials at unit activity. More... | |
virtual void | getEnthalpy_RT (doublereal *hrt) const |
Get the nondimensional Enthalpy functions for the species at their standard states at the current T and P of the solution. More... | |
virtual void | getEntropy_R (doublereal *sr) const |
Get the array of nondimensional Enthalpy functions for the standard state species. More... | |
virtual void | getGibbs_RT (doublereal *grt) const |
Get the nondimensional Gibbs functions for the species at their standard states of solution at the current T and P of the solution. More... | |
void | getPureGibbs (doublereal *gpure) const |
Get the pure Gibbs free energies of each species. More... | |
virtual void | getIntEnergy_RT (doublereal *urt) const |
Returns the vector of nondimensional internal Energies of the standard state at the current temperature and pressure of the solution for each species. More... | |
virtual void | getCp_R (doublereal *cpr) const |
Get the nondimensional Heat Capacities at constant pressure for the standard state of the species at the current T and P. More... | |
virtual void | getStandardVolumes (doublereal *vol) const |
Get the molar volumes of each species in their standard states at the current T and P of the solution. More... | |
virtual void | getEnthalpy_RT_ref (doublereal *hrt) const |
Returns the vector of nondimensional enthalpies of the reference state at the current temperature of the solution and the reference pressure for the species. More... | |
virtual void | getGibbs_RT_ref (doublereal *grt) const |
Returns the vector of nondimensional Gibbs free energies of the reference state at the current temperature of the solution and the reference pressure for the species. More... | |
virtual void | getGibbs_ref (doublereal *g) const |
virtual void | getEntropy_R_ref (doublereal *er) const |
virtual void | getCp_R_ref (doublereal *cprt) const |
virtual void | getStandardVolumes_ref (doublereal *vol) const |
Get the molar volumes of the species reference states at the current T and reference pressure of the solution. More... | |
virtual void | setStateFromXML (const XML_Node &state) |
Set the initial state of the phase to the conditions specified in the state XML element. More... | |
int | phaseState (bool checkState=false) const |
Returns the Phase State flag for the current state of the object. More... | |
doublereal | calculatePsat (doublereal TKelvin, doublereal &molarVolGas, doublereal &molarVolLiquid) |
Calculate the saturation pressure at the current mixture content for the given temperature. More... | |
virtual doublereal | satPressure (doublereal TKelvin) |
Calculate the saturation pressure at the current mixture content for the given temperature. More... | |
Public Member Functions inherited from ThermoPhase | |
ThermoPhase () | |
Constructor. More... | |
virtual | ~ThermoPhase () |
Destructor. Deletes the species thermo manager. More... | |
ThermoPhase (const ThermoPhase &right) | |
Copy Constructor for the ThermoPhase object. More... | |
ThermoPhase & | operator= (const ThermoPhase &right) |
Assignment operator. More... | |
doublereal | _RT () const |
Return the Gas Constant multiplied by the current temperature. More... | |
virtual doublereal | refPressure () const |
Returns the reference pressure in Pa. More... | |
virtual doublereal | minTemp (size_t k=npos) const |
Minimum temperature for which the thermodynamic data for the species or phase are valid. More... | |
doublereal | Hf298SS (const int k) const |
Report the 298 K Heat of Formation of the standard state of one species (J kmol-1) More... | |
virtual void | modifyOneHf298SS (const int k, const doublereal Hf298New) |
Modify the value of the 298 K Heat of Formation of one species in the phase (J kmol-1) More... | |
virtual doublereal | maxTemp (size_t k=npos) const |
Maximum temperature for which the thermodynamic data for the species are valid. More... | |
bool | chargeNeutralityNecessary () const |
Returns the chargeNeutralityNecessity boolean. More... | |
virtual doublereal | cv_vib (int, double) const |
virtual doublereal | thermalExpansionCoeff () const |
Return the volumetric thermal expansion coefficient. Units: 1/K. More... | |
void | setElectricPotential (doublereal v) |
Set the electric potential of this phase (V). More... | |
doublereal | electricPotential () const |
Returns the electric potential of this phase (V). More... | |
virtual int | activityConvention () const |
This method returns the convention used in specification of the activities, of which there are currently two, molar- and molality-based conventions. More... | |
virtual void | getActivities (doublereal *a) const |
Get the array of non-dimensional activities at the current solution temperature, pressure, and solution concentration. More... | |
virtual void | getLnActivityCoefficients (doublereal *lnac) const |
Get the array of non-dimensional molar-based ln activity coefficients at the current solution temperature, pressure, and solution concentration. More... | |
void | getElectrochemPotentials (doublereal *mu) const |
Get the species electrochemical potentials. More... | |
virtual void | getdPartialMolarVolumes_dT (doublereal *d_vbar_dT) const |
Return an array of derivatives of partial molar volumes wrt temperature for the species in the mixture. More... | |
virtual void | getdPartialMolarVolumes_dP (doublereal *d_vbar_dP) const |
Return an array of derivatives of partial molar volumes wrt pressure for the species in the mixture. More... | |
virtual void | getdStandardVolumes_dT (doublereal *d_vol_dT) const |
Get the derivative of the molar volumes of the species standard states wrt temperature at the current T and P of the solution. More... | |
virtual void | getdStandardVolumes_dP (doublereal *d_vol_dP) const |
Get the derivative molar volumes of the species standard states wrt pressure at the current T and P of the solution. More... | |
virtual void | getIntEnergy_RT_ref (doublereal *urt) const |
Returns the vector of nondimensional internal Energies of the reference state at the current temperature of the solution and the reference pressure for each species. More... | |
virtual void | setReferenceComposition (const doublereal *const x) |
Sets the reference composition. More... | |
virtual void | getReferenceComposition (doublereal *const x) const |
Gets the reference composition. More... | |
doublereal | enthalpy_mass () const |
Specific enthalpy. More... | |
doublereal | intEnergy_mass () const |
Specific internal energy. More... | |
doublereal | entropy_mass () const |
Specific entropy. More... | |
doublereal | gibbs_mass () const |
Specific Gibbs function. More... | |
doublereal | cp_mass () const |
Specific heat at constant pressure. More... | |
doublereal | cv_mass () const |
Specific heat at constant volume. More... | |
void | setElementPotentials (const vector_fp &lambda) |
Stores the element potentials in the ThermoPhase object. More... | |
bool | getElementPotentials (doublereal *lambda) const |
Returns the element potentials stored in the ThermoPhase object. More... | |
virtual doublereal | satTemperature (doublereal p) const |
Return the saturation temperature given the pressure. More... | |
virtual doublereal | vaporFraction () const |
Return the fraction of vapor at the current conditions. More... | |
virtual void | setState_Tsat (doublereal t, doublereal x) |
Set the state to a saturated system at a particular temperature. More... | |
virtual void | setState_Psat (doublereal p, doublereal x) |
Set the state to a saturated system at a particular pressure. More... | |
void | saveSpeciesData (const size_t k, const XML_Node *const data) |
Store a reference pointer to the XML tree containing the species data for this phase. More... | |
const std::vector< const XML_Node * > & | speciesData () const |
Return a pointer to the vector of XML nodes containing the species data for this phase. More... | |
void | setSpeciesThermo (SpeciesThermo *spthermo) |
Install a species thermodynamic property manager. More... | |
virtual SpeciesThermo & | speciesThermo (int k=-1) |
Return a changeable reference to the calculation manager for species reference-state thermodynamic properties. More... | |
virtual void | initThermoFile (const std::string &inputFile, const std::string &id) |
virtual void | installSlavePhases (Cantera::XML_Node *phaseNode) |
Add in species from Slave phases. More... | |
virtual void | setParameters (int n, doublereal *const c) |
Set the equation of state parameters. More... | |
virtual void | getParameters (int &n, doublereal *const c) const |
Get the equation of state parameters in a vector. More... | |
virtual void | getdlnActCoeffds (const doublereal dTds, const doublereal *const dXds, doublereal *dlnActCoeffds) const |
Get the change in activity coefficients wrt changes in state (temp, mole fraction, etc) along a line in parameter space or along a line in physical space. More... | |
virtual void | getdlnActCoeffdlnX_diag (doublereal *dlnActCoeffdlnX_diag) const |
Get the array of ln mole fraction derivatives of the log activity coefficients - diagonal component only. More... | |
virtual void | getdlnActCoeffdlnN (const size_t ld, doublereal *const dlnActCoeffdlnN) |
Get the array of derivatives of the log activity coefficients with respect to the log of the species mole numbers. More... | |
virtual void | getdlnActCoeffdlnN_numderiv (const size_t ld, doublereal *const dlnActCoeffdlnN) |
virtual std::string | report (bool show_thermo=true) const |
returns a summary of the state of the phase as a string More... | |
virtual void | reportCSV (std::ofstream &csvFile) const |
returns a summary of the state of the phase to a comma separated file. More... | |
virtual void | setState_TPX (doublereal t, doublereal p, compositionMap &x) |
Set the temperature (K), pressure (Pa), and mole fractions. More... | |
virtual void | setState_TPX (doublereal t, doublereal p, const std::string &x) |
Set the temperature (K), pressure (Pa), and mole fractions. More... | |
virtual void | setState_TPY (doublereal t, doublereal p, const doublereal *y) |
Set the internally stored temperature (K), pressure (Pa), and mass fractions of the phase. More... | |
virtual void | setState_TPY (doublereal t, doublereal p, compositionMap &y) |
Set the internally stored temperature (K), pressure (Pa), and mass fractions of the phase. More... | |
virtual void | setState_TPY (doublereal t, doublereal p, const std::string &y) |
Set the internally stored temperature (K), pressure (Pa), and mass fractions of the phase. More... | |
virtual void | setState_PX (doublereal p, doublereal *x) |
Set the pressure (Pa) and mole fractions. More... | |
virtual void | setState_PY (doublereal p, doublereal *y) |
Set the internally stored pressure (Pa) and mass fractions. More... | |
virtual void | setState_HP (doublereal h, doublereal p, doublereal tol=1.e-4) |
Set the internally stored specific enthalpy (J/kg) and pressure (Pa) of the phase. More... | |
virtual void | setState_UV (doublereal u, doublereal v, doublereal tol=1.e-4) |
Set the specific internal energy (J/kg) and specific volume (m^3/kg). More... | |
virtual void | setState_SP (doublereal s, doublereal p, doublereal tol=1.e-4) |
Set the specific entropy (J/kg/K) and pressure (Pa). More... | |
virtual void | setState_SV (doublereal s, doublereal v, doublereal tol=1.e-4) |
Set the specific entropy (J/kg/K) and specific volume (m^3/kg). More... | |
Public Member Functions inherited from Phase | |
Phase () | |
Default constructor. More... | |
virtual | ~Phase () |
Destructor. More... | |
Phase (const Phase &right) | |
Copy Constructor. More... | |
Phase & | operator= (const Phase &right) |
Assignment operator. More... | |
XML_Node & | xml () |
Returns a reference to the XML_Node stored for the phase. More... | |
void | saveState (vector_fp &state) const |
Save the current internal state of the phase Write to vector 'state' the current internal state. More... | |
void | saveState (size_t lenstate, doublereal *state) const |
Write to array 'state' the current internal state. More... | |
void | restoreState (const vector_fp &state) |
Restore a state saved on a previous call to saveState. More... | |
void | restoreState (size_t lenstate, const doublereal *state) |
Restore the state of the phase from a previously saved state vector. More... | |
doublereal | molecularWeight (size_t k) const |
Molecular weight of species k . More... | |
void | getMolecularWeights (vector_fp &weights) const |
Copy the vector of molecular weights into vector weights. More... | |
void | getMolecularWeights (doublereal *weights) const |
Copy the vector of molecular weights into array weights. More... | |
const vector_fp & | molecularWeights () const |
Return a const reference to the internal vector of molecular weights. More... | |
doublereal | size (size_t k) const |
This routine returns the size of species k. More... | |
doublereal | charge (size_t k) const |
Dimensionless electrical charge of a single molecule of species k The charge is normalized by the the magnitude of the electron charge. More... | |
doublereal | chargeDensity () const |
Charge density [C/m^3]. More... | |
size_t | nDim () const |
Returns the number of spatial dimensions (1, 2, or 3) More... | |
void | setNDim (size_t ndim) |
Set the number of spatial dimensions (1, 2, or 3). More... | |
virtual void | freezeSpecies () |
Call when finished adding species. More... | |
bool | speciesFrozen () |
True if freezeSpecies has been called. More... | |
virtual bool | ready () const |
int | stateMFNumber () const |
Return the State Mole Fraction Number. More... | |
std::string | id () const |
Return the string id for the phase. More... | |
void | setID (const std::string &id) |
Set the string id for the phase. More... | |
std::string | name () const |
Return the name of the phase. More... | |
void | setName (const std::string &nm) |
Sets the string name for the phase. More... | |
std::string | elementName (size_t m) const |
Name of the element with index m. More... | |
size_t | elementIndex (const std::string &name) const |
Return the index of element named 'name'. More... | |
const std::vector< std::string > & | elementNames () const |
Return a read-only reference to the vector of element names. More... | |
doublereal | atomicWeight (size_t m) const |
Atomic weight of element m. More... | |
doublereal | entropyElement298 (size_t m) const |
Entropy of the element in its standard state at 298 K and 1 bar. More... | |
int | atomicNumber (size_t m) const |
Atomic number of element m. More... | |
int | elementType (size_t m) const |
Return the element constraint type Possible types include: More... | |
int | changeElementType (int m, int elem_type) |
Change the element type of the mth constraint Reassigns an element type. More... | |
const vector_fp & | atomicWeights () const |
Return a read-only reference to the vector of atomic weights. More... | |
size_t | nElements () const |
Number of elements. More... | |
void | checkElementIndex (size_t m) const |
Check that the specified element index is in range Throws an exception if m is greater than nElements()-1. More... | |
void | checkElementArraySize (size_t mm) const |
Check that an array size is at least nElements() Throws an exception if mm is less than nElements(). More... | |
doublereal | nAtoms (size_t k, size_t m) const |
Number of atoms of element m in species k . More... | |
void | getAtoms (size_t k, double *atomArray) const |
Get a vector containing the atomic composition of species k. More... | |
size_t | speciesIndex (const std::string &name) const |
Returns the index of a species named 'name' within the Phase object. More... | |
std::string | speciesName (size_t k) const |
Name of the species with index k. More... | |
std::string | speciesSPName (int k) const |
Returns the expanded species name of a species, including the phase name This is guaranteed to be unique within a Cantera problem. More... | |
const std::vector< std::string > & | speciesNames () const |
Return a const reference to the vector of species names. More... | |
size_t | nSpecies () const |
Returns the number of species in the phase. More... | |
void | checkSpeciesIndex (size_t k) const |
Check that the specified species index is in range Throws an exception if k is greater than nSpecies()-1. More... | |
void | checkSpeciesArraySize (size_t kk) const |
Check that an array size is at least nSpecies() Throws an exception if kk is less than nSpecies(). More... | |
void | setMoleFractionsByName (compositionMap &xMap) |
Set the species mole fractions by name. More... | |
void | setMoleFractionsByName (const std::string &x) |
Set the mole fractions of a group of species by name. More... | |
void | setMassFractionsByName (compositionMap &yMap) |
Set the species mass fractions by name. More... | |
void | setMassFractionsByName (const std::string &x) |
Set the species mass fractions by name. More... | |
void | setState_TRX (doublereal t, doublereal dens, const doublereal *x) |
Set the internally stored temperature (K), density, and mole fractions. More... | |
void | setState_TRX (doublereal t, doublereal dens, compositionMap &x) |
Set the internally stored temperature (K), density, and mole fractions. More... | |
void | setState_TRY (doublereal t, doublereal dens, const doublereal *y) |
Set the internally stored temperature (K), density, and mass fractions. More... | |
void | setState_TRY (doublereal t, doublereal dens, compositionMap &y) |
Set the internally stored temperature (K), density, and mass fractions. More... | |
void | setState_TNX (doublereal t, doublereal n, const doublereal *x) |
Set the internally stored temperature (K), molar density (kmol/m^3), and mole fractions. More... | |
void | setState_TR (doublereal t, doublereal rho) |
Set the internally stored temperature (K) and density (kg/m^3) More... | |
void | setState_TX (doublereal t, doublereal *x) |
Set the internally stored temperature (K) and mole fractions. More... | |
void | setState_TY (doublereal t, doublereal *y) |
Set the internally stored temperature (K) and mass fractions. More... | |
void | setState_RX (doublereal rho, doublereal *x) |
Set the density (kg/m^3) and mole fractions. More... | |
void | setState_RY (doublereal rho, doublereal *y) |
Set the density (kg/m^3) and mass fractions. More... | |
void | getMoleFractionsByName (compositionMap &x) const |
Get the mole fractions by name. More... | |
doublereal | moleFraction (size_t k) const |
Return the mole fraction of a single species. More... | |
doublereal | moleFraction (const std::string &name) const |
Return the mole fraction of a single species. More... | |
doublereal | massFraction (size_t k) const |
Return the mass fraction of a single species. More... | |
doublereal | massFraction (const std::string &name) const |
Return the mass fraction of a single species. More... | |
void | getMoleFractions (doublereal *const x) const |
Get the species mole fraction vector. More... | |
void | getMassFractions (doublereal *const y) const |
Get the species mass fractions. More... | |
const doublereal * | massFractions () const |
Return a const pointer to the mass fraction array. More... | |
void | getConcentrations (doublereal *const c) const |
Get the species concentrations (kmol/m^3). More... | |
doublereal | concentration (const size_t k) const |
Concentration of species k. More... | |
const doublereal * | moleFractdivMMW () const |
Returns a const pointer to the start of the moleFraction/MW array. More... | |
doublereal | temperature () const |
Temperature (K). More... | |
virtual doublereal | density () const |
Density (kg/m^3). More... | |
doublereal | molarDensity () const |
Molar density (kmol/m^3). More... | |
doublereal | molarVolume () const |
Molar volume (m^3/kmol). More... | |
virtual void | setDensity (const doublereal density_) |
Set the internally stored density (kg/m^3) of the phase Note the density of a phase is an independent variable. More... | |
virtual void | setMolarDensity (const doublereal molarDensity) |
Set the internally stored molar density (kmol/m^3) of the phase. More... | |
doublereal | mean_X (const doublereal *const Q) const |
Evaluate the mole-fraction-weighted mean of an array Q. More... | |
doublereal | mean_Y (const doublereal *const Q) const |
Evaluate the mass-fraction-weighted mean of an array Q. More... | |
doublereal | meanMolecularWeight () const |
The mean molecular weight. Units: (kg/kmol) More... | |
doublereal | sum_xlogx () const |
Evaluate \( \sum_k X_k \log X_k \). More... | |
doublereal | sum_xlogQ (doublereal *const Q) const |
Evaluate \( \sum_k X_k \log Q_k \). More... | |
void | addElement (const std::string &symbol, doublereal weight=-12345.0) |
Add an element. More... | |
void | addElement (const XML_Node &e) |
Add an element from an XML specification. More... | |
void | addUniqueElement (const std::string &symbol, doublereal weight=-12345.0, int atomicNumber=0, doublereal entropy298=ENTROPY298_UNKNOWN, int elem_type=CT_ELEM_TYPE_ABSPOS) |
Add an element, checking for uniqueness The uniqueness is checked by comparing the string symbol. More... | |
void | addUniqueElement (const XML_Node &e) |
Add an element, checking for uniqueness The uniqueness is checked by comparing the string symbol. More... | |
void | addElementsFromXML (const XML_Node &phase) |
Add all elements referenced in an XML_Node tree. More... | |
void | freezeElements () |
Prohibit addition of more elements, and prepare to add species. More... | |
bool | elementsFrozen () |
True if freezeElements has been called. More... | |
size_t | addUniqueElementAfterFreeze (const std::string &symbol, doublereal weight, int atomicNumber, doublereal entropy298=ENTROPY298_UNKNOWN, int elem_type=CT_ELEM_TYPE_ABSPOS) |
Add an element after elements have been frozen, checking for uniqueness The uniqueness is checked by comparing the string symbol. More... | |
void | addSpecies (const std::string &name, const doublereal *comp, doublereal charge=0.0, doublereal size=1.0) |
void | addUniqueSpecies (const std::string &name, const doublereal *comp, doublereal charge=0.0, doublereal size=1.0) |
Add a species to the phase, checking for uniqueness of the name This routine checks for uniqueness of the string name. More... | |
Static Public Attributes | |
static const doublereal | omega_a = 4.27480233540E-01 |
Omega constant for a -> value of a in terms of critical properties. More... | |
static const doublereal | omega_b = 8.66403499650E-02 |
Omega constant for b. More... | |
static const doublereal | omega_vc = 3.33333333333333E-01 |
Omega constant for the critical molar volume. More... | |
Protected Member Functions | |
virtual void | calcDensity () |
Calculate the density of the mixture using the partial molar volumes and mole fractions as input. More... | |
virtual void | setTemperature (const doublereal temp) |
Set the temperature (K) More... | |
virtual void | setMassFractions (const doublereal *const y) |
Set the mass fractions to the specified values, and then normalize them so that they sum to 1.0. More... | |
virtual void | setMassFractions_NoNorm (const doublereal *const y) |
Set the mass fractions to the specified values without normalizing. More... | |
virtual void | setMoleFractions (const doublereal *const x) |
Set the mole fractions to the specified values, and then normalize them so that they sum to 1.0. More... | |
virtual void | setMoleFractions_NoNorm (const doublereal *const x) |
Set the mole fractions to the specified values without normalizing. More... | |
virtual void | setConcentrations (const doublereal *const c) |
Set the concentrations to the specified values within the phase. More... | |
virtual doublereal | sresid () const |
Calculate the deviation terms for the total entropy of the mixture from the ideal gas mixture. More... | |
virtual doublereal | hresid () const |
Calculate the deviation terms for the total enthalpy of the mixture from the ideal gas mixture. More... | |
Protected Member Functions inherited from MixtureFugacityTP | |
void | setMoleFractions_NoState (const doublereal *const x) |
virtual void | _updateReferenceStateThermo () const |
Updates the reference state thermodynamic functions at the current T of the solution. More... | |
const vector_fp & | gibbs_RT_ref () const |
Returns the vector of nondimensional Gibbs free energies of the reference state at the current temperature of the solution and the reference pressure for the species. More... | |
doublereal | z () const |
Calculate the value of z. More... | |
virtual doublereal | psatEst (doublereal TKelvin) const |
Estimate for the saturation pressure. More... | |
int | corr0 (doublereal TKelvin, doublereal pres, doublereal &densLiq, doublereal &densGas, doublereal &liqGRT, doublereal &gasGRT) |
Utility routine in the calculation of the saturation pressure. More... | |
Protected Member Functions inherited from ThermoPhase | |
virtual void | getCsvReportData (std::vector< std::string > &names, std::vector< vector_fp > &data) const |
Fills names and data with the column names and species thermo properties to be included in the output of the reportCSV method. More... | |
Protected Member Functions inherited from Phase | |
void | init (const vector_fp &mw) |
void | setMolecularWeight (const int k, const double mw) |
Set the molecular weight of a single species to a given value. More... | |
Protected Attributes | |
int | m_standardMixingRules |
boolean indicating whether standard mixing rules are applied More... | |
int | m_formTempParam |
Form of the temperature parameterization. More... | |
doublereal | m_b_current |
Value of b in the equation of state. More... | |
doublereal | m_a_current |
Value of a in the equation of state. More... | |
vector_fp | a_vec_Curr_ |
vector_fp | b_vec_Curr_ |
Array2D | a_coeff_vec |
vector_fp | m_pc_Species |
vector_fp | m_tc_Species |
vector_fp | m_vc_Species |
int | NSolns_ |
doublereal | Vroot_ [3] |
vector_fp | m_pp |
Temporary storage - length = m_kk. More... | |
vector_fp | m_tmpV |
Temporary storage - length = m_kk. More... | |
vector_fp | m_partialMolarVolumes |
doublereal | dpdV_ |
The derivative of the pressure wrt the volume. More... | |
doublereal | dpdT_ |
The derivative of the pressure wrt the temperature. More... | |
vector_fp | dpdni_ |
Vector of derivatives of pressure wrt mole number. More... | |
Protected Attributes inherited from MixtureFugacityTP | |
doublereal | m_Pcurrent |
Current value of the pressures. More... | |
std::vector< doublereal > | moleFractions_ |
Storage for the current values of the mole fractions of the species. More... | |
int | iState_ |
Current state of the fluid. More... | |
int | forcedState_ |
Force the system to be on a particular side of the spinodal curve. More... | |
doublereal | m_Tlast_ref |
The last temperature at which the reference state thermodynamic properties were calculated at. More... | |
doublereal | m_logc0 |
Temporary storage for log of p/rt. More... | |
vector_fp | m_h0_RT |
Temporary storage for dimensionless reference state enthalpies. More... | |
vector_fp | m_cp0_R |
Temporary storage for dimensionless reference state heat capacities. More... | |
vector_fp | m_g0_RT |
Temporary storage for dimensionless reference state gibbs energies. More... | |
vector_fp | m_s0_R |
Temporary storage for dimensionless reference state entropies. More... | |
spinodalFunc * | fdpdv_ |
Protected Attributes inherited from ThermoPhase | |
SpeciesThermo * | m_spthermo |
Pointer to the calculation manager for species reference-state thermodynamic properties. More... | |
std::vector< const XML_Node * > | m_speciesData |
Vector of pointers to the species databases. More... | |
doublereal | m_phi |
Stored value of the electric potential for this phase. More... | |
vector_fp | m_lambdaRRT |
Vector of element potentials. More... | |
bool | m_hasElementPotentials |
Boolean indicating whether there is a valid set of saved element potentials for this phase. More... | |
bool | m_chargeNeutralityNecessary |
Boolean indicating whether a charge neutrality condition is a necessity. More... | |
int | m_ssConvention |
Contains the standard state convention. More... | |
std::vector< doublereal > | xMol_Ref |
Reference Mole Fraction Composition. More... | |
Protected Attributes inherited from Phase | |
size_t | m_kk |
Number of species in the phase. More... | |
size_t | m_ndim |
Dimensionality of the phase. More... | |
vector_fp | m_speciesComp |
Atomic composition of the species. More... | |
vector_fp | m_speciesSize |
Vector of species sizes. More... | |
vector_fp | m_speciesCharge |
Vector of species charges. length m_kk. More... | |
Constructors and Duplicators | |
RedlichKwongMFTP () | |
Base constructor. More... | |
RedlichKwongMFTP (const std::string &infile, std::string id="") | |
Construct and initialize a RedlichKwongMFTP object directly from an ASCII input file. More... | |
RedlichKwongMFTP (XML_Node &phaseRef, const std::string &id="") | |
Construct and initialize a RedlichKwongMFTP object directly from an XML database. More... | |
RedlichKwongMFTP (int testProb) | |
This is a special constructor, used to replicate test problems during the initial verification of the object. More... | |
RedlichKwongMFTP (const RedlichKwongMFTP &right) | |
Copy Constructor. More... | |
RedlichKwongMFTP & | operator= (const RedlichKwongMFTP &right) |
Assignment operator. More... | |
virtual ThermoPhase * | duplMyselfAsThermoPhase () const |
Duplicator from the ThermoPhase parent class. More... | |
virtual int | eosType () const |
Equation of state type flag. More... | |
Molar Thermodynamic properties | |
virtual doublereal | enthalpy_mole () const |
Molar enthalpy. Units: J/kmol. More... | |
virtual doublereal | intEnergy_mole () const |
Molar internal energy. Units: J/kmol. More... | |
virtual doublereal | entropy_mole () const |
Molar entropy. Units: J/kmol/K. More... | |
virtual doublereal | gibbs_mole () const |
Molar Gibbs function. Units: J/kmol. More... | |
virtual doublereal | cp_mole () const |
Molar heat capacity at constant pressure. Units: J/kmol/K. More... | |
virtual doublereal | cv_mole () const |
Molar heat capacity at constant volume. Units: J/kmol/K. More... | |
Mechanical Properties | |
virtual doublereal | pressure () const |
Return the thermodynamic pressure (Pa). More... | |
virtual doublereal | isothermalCompressibility () const |
Returns the isothermal compressibility. Units: 1/Pa. More... | |
Partial Molar Properties of the Solution | |
void | getChemPotentials_RT (doublereal *mu) const |
Get the array of non-dimensional species chemical potentials. More... | |
virtual void | getChemPotentials (doublereal *mu) const |
Get the species chemical potentials. Units: J/kmol. More... | |
virtual void | getPartialMolarEnthalpies (doublereal *hbar) const |
Get the species partial molar enthalpies. Units: J/kmol. More... | |
virtual void | getPartialMolarEntropies (doublereal *sbar) const |
Get the species partial molar entropies. Units: J/kmol/K. More... | |
virtual void | getPartialMolarIntEnergies (doublereal *ubar) const |
Get the species partial molar enthalpies. Units: J/kmol. More... | |
virtual void | getPartialMolarCp (doublereal *cpbar) const |
Get the partial molar heat capacities Units: J/kmol/K. More... | |
virtual void | getPartialMolarVolumes (doublereal *vbar) const |
Get the species partial molar volumes. Units: m^3/kmol. More... | |
Critical State Properties. | |
These methods are only implemented by some subclasses, and may be moved out of ThermoPhase at a later date. | |
virtual doublereal | critTemperature () const |
Critical temperature (K). More... | |
virtual doublereal | critPressure () const |
Critical pressure (Pa). More... | |
virtual doublereal | critDensity () const |
Critical density (kg/m3). More... | |
Initialization Methods - For Internal use | |
virtual void | setParametersFromXML (const XML_Node &thermoNode) |
Set equation of state parameter values from XML entries. More... | |
virtual void | initThermo () |
void | setToEquilState (const doublereal *lambda_RT) |
This method is used by the ChemEquil equilibrium solver. More... | |
virtual void | initThermoXML (XML_Node &phaseNode, const std::string &id) |
Initialize a ThermoPhase object, potentially reading activity coefficient information from an XML database. More... | |
void | readXMLPureFluid (XML_Node &pureFluidParam) |
Read the pure species RedlichKwong input parameters. More... | |
void | applyStandardMixingRules () |
Apply mixing rules for a coefficients. More... | |
void | readXMLCrossFluid (XML_Node &pureFluidParam) |
Read the cross species RedlichKwong input parameters. More... | |
void | initLengths () |
This class can handle either an ideal solution or an ideal gas approximation of a phase.
Definition at line 33 of file RedlichKwongMFTP.h.
RedlichKwongMFTP | ( | ) |
Base constructor.
Definition at line 31 of file RedlichKwongMFTP.cpp.
Referenced by RedlichKwongMFTP::duplMyselfAsThermoPhase().
RedlichKwongMFTP | ( | const std::string & | infile, |
std::string | id = "" |
||
) |
Construct and initialize a RedlichKwongMFTP object directly from an ASCII input file.
infile | Name of the input file containing the phase XML data to set up the object |
id | ID of the phase in the input file. Defaults to the empty string. |
Definition at line 56 of file RedlichKwongMFTP.cpp.
References Cantera::get_XML_File(), Cantera::get_XML_NameID(), and Cantera::importPhase().
RedlichKwongMFTP | ( | XML_Node & | phaseRef, |
const std::string & | id = "" |
||
) |
Construct and initialize a RedlichKwongMFTP object directly from an XML database.
phaseRef | XML phase node containing the description of the phase |
id | id attribute containing the name of the phase. (default is the empty string) |
Definition at line 91 of file RedlichKwongMFTP.cpp.
References Cantera::get_XML_NameID(), and Cantera::importPhase().
RedlichKwongMFTP | ( | int | testProb | ) |
This is a special constructor, used to replicate test problems during the initial verification of the object.
test problems: 1: Pure CO2 problem input file = CO2_RedlickKwongMFTP.xml
testProb | Hard -coded test problem to instantiate. Current valid values are 1. |
Definition at line 121 of file RedlichKwongMFTP.cpp.
References Cantera::get_XML_File(), Cantera::get_XML_NameID(), and Cantera::importPhase().
RedlichKwongMFTP | ( | const RedlichKwongMFTP & | right | ) |
Copy Constructor.
Copy constructor for the object. Constructed object will be a clone of this object, but will also own all of its data. This is a wrapper around the assignment operator
right | Object to be copied. |
Definition at line 160 of file RedlichKwongMFTP.cpp.
RedlichKwongMFTP & operator= | ( | const RedlichKwongMFTP & | right | ) |
Assignment operator.
Assignment operator for the object. Constructed object will be a clone of this object, but will also own all of its data.
right | Object to be copied. |
Definition at line 184 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::dpdni_, RedlichKwongMFTP::dpdT_, RedlichKwongMFTP::dpdV_, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, RedlichKwongMFTP::m_formTempParam, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_standardMixingRules, RedlichKwongMFTP::m_tmpV, and MixtureFugacityTP::operator=().
|
virtual |
Duplicator from the ThermoPhase parent class.
Given a pointer to a ThermoPhase object, this function will duplicate the ThermoPhase object and all underlying structures. This is basically a wrapper around the copy constructor.
Reimplemented from MixtureFugacityTP.
Definition at line 220 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::RedlichKwongMFTP().
|
virtual |
Equation of state type flag.
The base class returns zero. Subclasses should define this to return a unique non-zero value. Constants defined for this purpose are listed in mix_defs.h.
Reimplemented from MixtureFugacityTP.
Definition at line 225 of file RedlichKwongMFTP.cpp.
|
virtual |
Molar enthalpy. Units: J/kmol.
Reimplemented from ThermoPhase.
Definition at line 234 of file RedlichKwongMFTP.cpp.
References ThermoPhase::_RT(), MixtureFugacityTP::_updateReferenceStateThermo(), DATA_PTR, RedlichKwongMFTP::hresid(), MixtureFugacityTP::m_h0_RT, and Phase::mean_X().
Referenced by RedlichKwongMFTP::gibbs_mole(), and RedlichKwongMFTP::intEnergy_mole().
|
virtual |
Molar internal energy. Units: J/kmol.
Reimplemented from ThermoPhase.
Definition at line 243 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::enthalpy_mole(), Phase::molarDensity(), and RedlichKwongMFTP::pressure().
|
virtual |
Molar entropy. Units: J/kmol/K.
Reimplemented from ThermoPhase.
Definition at line 250 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::_updateReferenceStateThermo(), DATA_PTR, Cantera::GasConstant, MixtureFugacityTP::m_s0_R, ThermoPhase::m_spthermo, Phase::mean_X(), RedlichKwongMFTP::pressure(), SpeciesThermo::refPressure(), RedlichKwongMFTP::sresid(), and Phase::sum_xlogx().
Referenced by RedlichKwongMFTP::gibbs_mole().
|
virtual |
Molar Gibbs function. Units: J/kmol.
Reimplemented from ThermoPhase.
Definition at line 259 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::enthalpy_mole(), RedlichKwongMFTP::entropy_mole(), and Phase::temperature().
|
virtual |
Molar heat capacity at constant pressure. Units: J/kmol/K.
Reimplemented from ThermoPhase.
Definition at line 264 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::_updateReferenceStateThermo(), DATA_PTR, RedlichKwongMFTP::dpdT_, RedlichKwongMFTP::dpdV_, Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, MixtureFugacityTP::m_cp0_R, Phase::mean_X(), Phase::molarVolume(), RedlichKwongMFTP::pressureDerivatives(), and Phase::temperature().
Referenced by RedlichKwongMFTP::cv_mole().
|
virtual |
Molar heat capacity at constant volume. Units: J/kmol/K.
Reimplemented from ThermoPhase.
Definition at line 280 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::cp_mole(), and Cantera::GasConstant.
|
virtual |
Return the thermodynamic pressure (Pa).
Since the mass density, temperature, and mass fractions are stored, this method uses these values to implement the mechanical equation of state \( P(T, \rho, Y_1, \dots, Y_K) \).
\[ P = \frac{RT}{v-b_{mix}} - \frac{a_{mix}}{T^{0.5} v \left( v + b_{mix} \right) } \]
Reimplemented from MixtureFugacityTP.
Definition at line 286 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::_updateReferenceStateThermo(), Phase::density(), Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, MixtureFugacityTP::m_Pcurrent, Phase::meanMolecularWeight(), and Phase::temperature().
Referenced by RedlichKwongMFTP::entropy_mole(), RedlichKwongMFTP::getActivityCoefficients(), RedlichKwongMFTP::getChemPotentials(), and RedlichKwongMFTP::intEnergy_mole().
|
virtual |
Returns the isothermal compressibility. Units: 1/Pa.
The isothermal compressibility is defined as
\[ \kappa_T = -\frac{1}{v}\left(\frac{\partial v}{\partial P}\right)_T \]
Reimplemented from ThermoPhase.
Definition at line 360 of file RedlichKwongMFTP.cpp.
|
protectedvirtual |
Calculate the density of the mixture using the partial molar volumes and mole fractions as input.
The formula for this is
\[ \rho = \frac{\sum_k{X_k W_k}}{\sum_k{X_k V_k}} \]
where \(X_k\) are the mole fractions, \(W_k\) are the molecular weights, and \(V_k\) are the pure species molar volumes.
Note, the basis behind this formula is that in an ideal solution the partial molar volumes are equal to the species standard state molar volumes. The species molar volumes may be functions of temperature and pressure.
Reimplemented from MixtureFugacityTP.
Definition at line 306 of file RedlichKwongMFTP.cpp.
References DATA_PTR, Cantera::dot(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::m_tmpV, Phase::moleFractdivMMW(), and Phase::setDensity().
|
protectedvirtual |
Set the temperature (K)
Overwritten setTemperature(double) from State.h. This function sets the temperature, and makes sure that the value propagates to underlying objects
temp | Temperature in kelvin |
Reimplemented from MixtureFugacityTP.
Definition at line 323 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::_updateReferenceStateThermo(), Phase::setTemperature(), and RedlichKwongMFTP::updateAB().
Referenced by RedlichKwongMFTP::densityCalc().
|
protectedvirtual |
Set the mass fractions to the specified values, and then normalize them so that they sum to 1.0.
y | Array of unnormalized mass fraction values (input). Must have a length greater than or equal to the number of species. |
Reimplemented from MixtureFugacityTP.
Definition at line 330 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::setMassFractions(), and RedlichKwongMFTP::updateAB().
|
protectedvirtual |
Set the mass fractions to the specified values without normalizing.
This is useful when the normalization condition is being handled by some other means, for example by a constraint equation as part of a larger set of equations.
y | Input vector of mass fractions. Length is m_kk. |
Reimplemented from MixtureFugacityTP.
Definition at line 336 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::setMassFractions_NoNorm(), and RedlichKwongMFTP::updateAB().
|
protectedvirtual |
Set the mole fractions to the specified values, and then normalize them so that they sum to 1.0.
x | Array of unnormalized mole fraction values (input). Must have a length greater than or equal to the number of species. |
Reimplemented from MixtureFugacityTP.
Definition at line 342 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::setMoleFractions(), and RedlichKwongMFTP::updateAB().
|
protectedvirtual |
Set the mole fractions to the specified values without normalizing.
This is useful when the normalization condition is being handled by some other means, for example by a constraint equation as part of a larger set ofequations.
x | Input vector of mole fractions. Length is m_kk. |
Reimplemented from MixtureFugacityTP.
Definition at line 348 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::setMoleFractions(), and RedlichKwongMFTP::updateAB().
|
protectedvirtual |
Set the concentrations to the specified values within the phase.
c | The input vector to this routine is in dimensional units. For volumetric phases c[k] is the concentration of the kth species in kmol/m3. For surface phases, c[k] is the concentration in kmol/m2. The length of the vector is the number of species in the phase. |
Reimplemented from MixtureFugacityTP.
Definition at line 354 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::setConcentrations(), and RedlichKwongMFTP::updateAB().
|
virtual |
This method returns an array of generalized concentrations.
\( C^a_k\) are defined such that \( a_k = C^a_k / C^0_k, \) where \( C^0_k \) is a standard concentration defined below and \( a_k \) are activities used in the thermodynamic functions. These activity (or generalized) concentrations are used by kinetics manager classes to compute the forward and reverse rates of elementary reactions. Note that they may or may not have units of concentration — they might be partial pressures, mole fractions, or surface coverages, for example.
c | Output array of generalized concentrations. The units depend upon the implementation of the reaction rate expressions within the phase. |
Reimplemented from ThermoPhase.
Definition at line 367 of file RedlichKwongMFTP.cpp.
References DATA_PTR, RedlichKwongMFTP::getPartialMolarVolumes(), Phase::m_kk, and Phase::moleFraction().
|
virtual |
Returns the standard concentration \( C^0_k \), which is used to normalize the generalized concentration.
This is defined as the concentration by which the generalized concentration is normalized to produce the activity. In many cases, this quantity will be the same for all species in a phase. Since the activity for an ideal gas mixture is simply the mole fraction, for an ideal gas \( C^0_k = P/\hat R T \).
k | Optional parameter indicating the species. The default is to assume this refers to species 0. |
Reimplemented from ThermoPhase.
Definition at line 375 of file RedlichKwongMFTP.cpp.
References DATA_PTR, MixtureFugacityTP::getStandardVolumes(), and RedlichKwongMFTP::m_tmpV.
Referenced by RedlichKwongMFTP::logStandardConc().
|
virtual |
Returns the natural logarithm of the standard concentration of the kth species.
k | index of the species. (defaults to zero) |
Reimplemented from ThermoPhase.
Definition at line 381 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::standardConcentration().
|
virtual |
Returns the units of the standard and generalized concentrations.
Note they have the same units, as their ratio is defined to be equal to the activity of the kth species in the solution, which is unitless.
This routine is used in print out applications where the units are needed. Usually, MKS units are assumed throughout the program and in the XML input files.
The base ThermoPhase class assigns the default quantities of (kmol/m3) for all species. Inherited classes are responsible for overriding the default values if necessary.
uA | Output vector containing the units: uA[0] = kmol units - default = 1 uA[1] = m units - default = -nDim(), the number of spatial dimensions in the Phase class. uA[2] = kg units - default = 0; uA[3] = Pa(pressure) units - default = 0; uA[4] = Temperature units - default = 0; uA[5] = time units - default = 0 |
k | species index. Defaults to 0. |
sizeUA | output int containing the size of the vector. Currently, this is equal to 6. |
Reimplemented from ThermoPhase.
Definition at line 387 of file RedlichKwongMFTP.cpp.
References Phase::nDim().
|
virtual |
Get the array of non-dimensional activity coefficients at the current solution temperature, pressure, and solution concentration.
For all objects with the Mixture Fugacity approximation, we define the standard state as an ideal gas at the current temperature and pressure of the solution. The activities are based on this standard state.
ac | Output vector of activity coefficients. Length: m_kk. |
Reimplemented from ThermoPhase.
Definition at line 414 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, RedlichKwongMFTP::m_pp, Phase::molarVolume(), MixtureFugacityTP::moleFractions_, RedlichKwongMFTP::pressure(), and Phase::temperature().
|
virtual |
Get the array of non-dimensional species chemical potentials.
These are partial molar Gibbs free energies.
\( \mu_k / \hat R T \). Units: unitless
We close the loop on this function, here, calling getChemPotentials() and then dividing by RT. No need for child classes to handle.
mu | Output vector of non-dimensional species chemical potentials Length: m_kk. |
Reimplemented from MixtureFugacityTP.
Definition at line 450 of file RedlichKwongMFTP.cpp.
References ThermoPhase::_RT(), RedlichKwongMFTP::getChemPotentials(), and Phase::m_kk.
|
virtual |
Get the species chemical potentials. Units: J/kmol.
This function returns a vector of chemical potentials of the species in solution at the current temperature, pressure and mole fraction of the solution.
mu | Output vector of species chemical potentials. Length: m_kk. Units: J/kmol |
Reimplemented from ThermoPhase.
Definition at line 459 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, MixtureFugacityTP::getGibbs_ref(), RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, RedlichKwongMFTP::m_pp, Phase::molarVolume(), Phase::moleFraction(), MixtureFugacityTP::moleFractions_, RedlichKwongMFTP::pressure(), ThermoPhase::refPressure(), Cantera::SmallNumber, and Phase::temperature().
Referenced by RedlichKwongMFTP::getChemPotentials_RT().
|
virtual |
Get the species partial molar enthalpies. Units: J/kmol.
hbar | Output vector of species partial molar enthalpies. Length: m_kk. units are J/kmol. |
Reimplemented from ThermoPhase.
Definition at line 496 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::dpdni_, RedlichKwongMFTP::dpdT_, RedlichKwongMFTP::dpdV_, Cantera::GasConstant, MixtureFugacityTP::getEnthalpy_RT_ref(), RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_tmpV, Phase::molarVolume(), MixtureFugacityTP::moleFractions_, RedlichKwongMFTP::pressureDerivatives(), Cantera::scale(), and Phase::temperature().
|
virtual |
Get the species partial molar entropies. Units: J/kmol/K.
sbar | Output vector of species partial molar entropies. Length = m_kk. units are J/kmol/K. |
Reimplemented from ThermoPhase.
Definition at line 555 of file RedlichKwongMFTP.cpp.
References DATA_PTR, RedlichKwongMFTP::dpdT_, Cantera::GasConstant, MixtureFugacityTP::getEntropy_R_ref(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_tmpV, Phase::molarVolume(), Phase::moleFraction(), MixtureFugacityTP::moleFractions_, RedlichKwongMFTP::pressureDerivatives(), ThermoPhase::refPressure(), Cantera::scale(), Cantera::SmallNumber, and Phase::temperature().
|
virtual |
Get the species partial molar enthalpies. Units: J/kmol.
ubar | Output vector of species partial molar internal energies. Length = m_kk. units are J/kmol. |
Reimplemented from ThermoPhase.
Definition at line 612 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, MixtureFugacityTP::getIntEnergy_RT(), Phase::m_kk, Cantera::scale(), and Phase::temperature().
|
virtual |
Get the partial molar heat capacities Units: J/kmol/K.
cpbar | Output vector of species partial molar heat capacities at constant pressure. Length = m_kk. units are J/kmol/K. |
Reimplemented from ThermoPhase.
Definition at line 619 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, MixtureFugacityTP::getCp_R(), Phase::m_kk, and Cantera::scale().
|
virtual |
Get the species partial molar volumes. Units: m^3/kmol.
vbar | Output vector of species partial molar volumes. Length = m_kk. units are m^3/kmol. |
Reimplemented from ThermoPhase.
Definition at line 626 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, MixtureFugacityTP::m_Pcurrent, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_tmpV, Phase::molarVolume(), MixtureFugacityTP::moleFractions_, and Phase::temperature().
Referenced by RedlichKwongMFTP::calcDensity(), RedlichKwongMFTP::getActivityConcentrations(), and RedlichKwongMFTP::getPartialMolarEntropies().
|
virtual |
Critical temperature (K).
Reimplemented from ThermoPhase.
Definition at line 672 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, and MixtureFugacityTP::moleFractions_.
Referenced by RedlichKwongMFTP::densityCalc().
|
virtual |
Critical pressure (Pa).
Reimplemented from ThermoPhase.
Definition at line 688 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, and MixtureFugacityTP::moleFractions_.
Referenced by RedlichKwongMFTP::liquidVolEst().
|
virtual |
Critical density (kg/m3).
Reimplemented from ThermoPhase.
Definition at line 705 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::m_kk, Phase::meanMolecularWeight(), and MixtureFugacityTP::moleFractions_.
Referenced by RedlichKwongMFTP::densSpinodalGas(), and RedlichKwongMFTP::densSpinodalLiquid().
|
virtual |
Set equation of state parameter values from XML entries.
The following methods are used in the process of constructing the phase and setting its parameters from a specification in an input file. They are not normally used in application programs. To see how they are used, see files importCTML.cpp and ThermoFactory.cpp.
This method is called by function importPhase in file importCTML.cpp when processing a phase definition in an input file. It should be overloaded in subclasses to set any parameters that are specific to that particular phase model.
thermoNode | An XML_Node object corresponding to the "thermo" entry for this phase in the input file. |
Reimplemented from ThermoPhase.
Definition at line 1018 of file RedlichKwongMFTP.cpp.
References ThermoPhase::setParametersFromXML().
|
virtual |
Initialize the object
This method is provided to allow subclasses to perform any initialization required after all species have been added. For example, it might be used to resize internal work arrays that must have an entry for each species. The base class implementation does nothing, and subclasses that do not require initialization do not need to overload this method. When importing a CTML phase description, this method is called just prior to returning from function importPhase().
Reimplemented from MixtureFugacityTP.
Definition at line 723 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::initLengths(), and MixtureFugacityTP::initThermo().
|
virtual |
This method is used by the ChemEquil equilibrium solver.
It sets the state such that the chemical potentials satisfy
\[ \frac{\mu_k}{\hat R T} = \sum_m A_{k,m} \left(\frac{\lambda_m} {\hat R T}\right) \]
where \( \lambda_m \) is the element potential of element m. The temperature is unchanged. Any phase (ideal or not) that implements this method can be equilibrated by ChemEquil.
lambda_RT | Input vector of dimensionless element potentials The length is equal to nElements(). |
Reimplemented from ThermoPhase.
Definition at line 729 of file RedlichKwongMFTP.cpp.
References MixtureFugacityTP::_updateReferenceStateThermo(), DATA_PTR, MixtureFugacityTP::getGibbs_RT_ref(), Phase::m_kk, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_tmpV, ThermoPhase::refPressure(), and ThermoPhase::setState_PX().
|
virtual |
Initialize a ThermoPhase object, potentially reading activity coefficient information from an XML database.
This routine initializes the lengths in the current object and then calls the parent routine. This method is provided to allow subclasses to perform any initialization required after all species have been added. For example, it might be used to resize internal work arrays that must have an entry for each species. The base class implementation does nothing, and subclasses that do not require initialization do not need to overload this method. When importing a CTML phase description, this method is called just prior to returning from function importPhase().
phaseNode | This object must be the phase node of a complete XML tree description of the phase, including all of the species data. In other words while "phase" must point to an XML phase object, it must have sibling nodes "speciesData" that describe the species in the phase. |
id | ID of the phase. If nonnull, a check is done to see if phaseNode is pointing to the phase with the correct id. |
Reimplemented from MixtureFugacityTP.
Definition at line 785 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::applyStandardMixingRules(), XML_Node::child(), XML_Node::hasChild(), RedlichKwongMFTP::initLengths(), MixtureFugacityTP::initThermoXML(), Cantera::lowercase(), Phase::m_kk, RedlichKwongMFTP::m_standardMixingRules, XML_Node::name(), XML_Node::nChildren(), RedlichKwongMFTP::readXMLCrossFluid(), and RedlichKwongMFTP::readXMLPureFluid().
|
private |
Read the pure species RedlichKwong input parameters.
pureFluidParam | XML_Node for the pure fluid parameters |
Definition at line 870 of file RedlichKwongMFTP.cpp.
References XML_Node::attrib(), XML_Node::child(), ctml::getFloatArray(), Cantera::lowercase(), RedlichKwongMFTP::m_formTempParam, Phase::m_kk, XML_Node::name(), XML_Node::nChildren(), Cantera::npos, and Phase::speciesIndex().
Referenced by RedlichKwongMFTP::initThermoXML().
|
private |
Apply mixing rules for a coefficients.
Definition at line 934 of file RedlichKwongMFTP.cpp.
References Phase::m_kk.
Referenced by RedlichKwongMFTP::initThermoXML().
|
private |
Read the cross species RedlichKwong input parameters.
pureFluidParam | XML_Node for the cross fluid parameters |
Definition at line 951 of file RedlichKwongMFTP.cpp.
References XML_Node::attrib(), XML_Node::child(), ctml::getFloatArray(), Cantera::lowercase(), RedlichKwongMFTP::m_formTempParam, Phase::m_kk, XML_Node::name(), XML_Node::nChildren(), Cantera::npos, and Phase::speciesIndex().
Referenced by RedlichKwongMFTP::initThermoXML().
|
private |
Initialize the internal lengths in this object.
Note this is not a virtual function and only handles this object
Definition at line 764 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::dpdni_, Phase::m_kk, RedlichKwongMFTP::m_pp, RedlichKwongMFTP::m_tmpV, and Array2D::resize().
Referenced by RedlichKwongMFTP::initThermo(), and RedlichKwongMFTP::initThermoXML().
|
protectedvirtual |
Calculate the deviation terms for the total entropy of the mixture from the ideal gas mixture.
Here we use the current state conditions
Reimplemented from MixtureFugacityTP.
Definition at line 1024 of file RedlichKwongMFTP.cpp.
References Phase::density(), Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::meanMolecularWeight(), Phase::temperature(), and MixtureFugacityTP::z().
Referenced by RedlichKwongMFTP::entropy_mole().
|
protectedvirtual |
Calculate the deviation terms for the total enthalpy of the mixture from the ideal gas mixture.
Reimplemented from MixtureFugacityTP.
Definition at line 1040 of file RedlichKwongMFTP.cpp.
References Phase::density(), Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::meanMolecularWeight(), Phase::temperature(), and MixtureFugacityTP::z().
Referenced by RedlichKwongMFTP::enthalpy_mole().
|
virtual |
Estimate for the molar volume of the liquid.
Note: this is only used as a starting guess for later routines that actually calculate an accurate value for the liquid molar volume. This routine doesn't change the state of the system.
TKelvin | temperature in kelvin |
pres | Pressure in Pa. This is used as an initial guess. If the routine needs to change the pressure to find a stable liquid state, the new pressure is returned in this variable. |
Reimplemented from MixtureFugacityTP.
Definition at line 1055 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::calculateAB(), RedlichKwongMFTP::critPressure(), RedlichKwongMFTP::m_b_current, RedlichKwongMFTP::NicholsSolve(), and MixtureFugacityTP::psatEst().
Referenced by RedlichKwongMFTP::densityCalc().
|
virtual |
Calculates the density given the temperature and the pressure and a guess at the density.
Note, below T_c, this is a multivalued function. We do not cross the vapor dome in this. This is protected because it is called during setState_TP() routines. Infinite loops would result if it were not protected.
-> why is this not const?
parameters:
TKelvin | Temperature in Kelvin |
pressure | Pressure in Pascals (Newton/m**2) |
phase | int representing the phase whose density we are requesting. If we put a gas or liquid phase here, we will attempt to find a volume in that part of the volume space, only, in this routine. A value of FLUID_UNDEFINED means that we will accept anything. |
rhoguess | Guessed density of the fluid. A value of -1.0 indicates that there is no guessed density |
Reimplemented from MixtureFugacityTP.
Definition at line 1100 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::critTemperature(), Cantera::GasConstant, RedlichKwongMFTP::liquidVolEst(), RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::meanMolecularWeight(), RedlichKwongMFTP::NicholsSolve(), and RedlichKwongMFTP::setTemperature().
|
virtual |
Return the value of the density at the liquid spinodal point (on the liquid side) for the current temperature.
Reimplemented from MixtureFugacityTP.
Definition at line 1174 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::critDensity(), Phase::meanMolecularWeight(), ROOTFIND_SUCCESS, RootFind::setFuncIsGenerallyDecreasing(), RootFind::setPrintLvl(), RootFind::setTol(), and RootFind::solve().
|
virtual |
Return the value of the density at the gas spinodal point (on the gas side) for the current temperature.
Reimplemented from MixtureFugacityTP.
Definition at line 1197 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::critDensity(), Phase::meanMolecularWeight(), ROOTFIND_SUCCESS, RootFind::setFuncIsGenerallyIncreasing(), RootFind::setPrintLvl(), RootFind::setTol(), and RootFind::solve().
|
virtual |
Calculate the pressure given the temperature and the molar volume.
Calculate the pressure given the temperature and the molar volume
TKelvin | temperature in kelvin |
molarVol | molar volume ( m3/kmol) |
Reimplemented from MixtureFugacityTP.
Definition at line 1220 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, RedlichKwongMFTP::m_a_current, and RedlichKwongMFTP::m_b_current.
|
virtual |
Calculate the pressure and the pressure derivative given the temperature and the molar volume.
Temperature and mole number are held constant
TKelvin | temperature in kelvin |
molarVol | molar volume ( m3/kmol) |
presCalc | Returns the pressure. |
Reimplemented from MixtureFugacityTP.
Definition at line 1228 of file RedlichKwongMFTP.cpp.
References Cantera::GasConstant, RedlichKwongMFTP::m_a_current, and RedlichKwongMFTP::m_b_current.
Referenced by RedlichKwongMFTP::NicholsSolve(), and RedlichKwongMFTP::pressureDerivatives().
void pressureDerivatives | ( | ) | const |
Calculate dpdV and dpdT at the current conditions.
These are stored internally.
Definition at line 1241 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::dpdT_, RedlichKwongMFTP::dpdV_, RedlichKwongMFTP::dpdVCalc(), Cantera::GasConstant, RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, Phase::molarVolume(), and Phase::temperature().
Referenced by RedlichKwongMFTP::cp_mole(), RedlichKwongMFTP::getPartialMolarEnthalpies(), and RedlichKwongMFTP::getPartialMolarEntropies().
void updateAB | ( | ) |
Update the a and b parameters.
The a and the b parameters depend on the mole fraction and the temperature. This function updates the internal numbers based on the state of the object.
Definition at line 1263 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::m_a_current, RedlichKwongMFTP::m_b_current, RedlichKwongMFTP::m_formTempParam, Phase::m_kk, MixtureFugacityTP::moleFractions_, and Phase::temperature().
Referenced by RedlichKwongMFTP::setConcentrations(), RedlichKwongMFTP::setMassFractions(), RedlichKwongMFTP::setMassFractions_NoNorm(), RedlichKwongMFTP::setMoleFractions(), RedlichKwongMFTP::setMoleFractions_NoNorm(), and RedlichKwongMFTP::setTemperature().
void calculateAB | ( | doublereal | temp, |
doublereal & | aCalc, | ||
doublereal & | bCalc | ||
) | const |
Calculate the a and the b parameters given the temperature.
This function doesn't change the internal state of the object, so it is a const function. It does use the stored mole fractions in the object.
temp | Temperature (TKelvin) |
aCalc | (output) Returns the a value |
bCalc | (output) Returns the b value. |
Definition at line 1285 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::m_formTempParam, Phase::m_kk, and MixtureFugacityTP::moleFractions_.
Referenced by RedlichKwongMFTP::liquidVolEst().
int NicholsSolve | ( | double | TKelvin, |
double | pres, | ||
doublereal | a, | ||
doublereal | b, | ||
doublereal | Vroot[3] | ||
) | const |
Solve the cubic equation of state.
The R-K equation of state may be solved via the following formula:
V**3 - V**2(RT/P) - V(RTb/P - a/(P T**.5) + b*b) - (a b / (P T**.5)) = 0
Returns the number of solutions found. If it only finds the liquid branch solution, it will return a -1 or a -2 instead of 1 or 2. If it returns 0, then there is an error.
Definition at line 1368 of file RedlichKwongMFTP.cpp.
References RedlichKwongMFTP::dpdVCalc(), Cantera::fp2str(), Cantera::GasConstant, RedlichKwongMFTP::omega_a, RedlichKwongMFTP::omega_b, RedlichKwongMFTP::omega_vc, Cantera::Pi, Cantera::writelog(), and Cantera::writelogendl().
Referenced by RedlichKwongMFTP::densityCalc(), and RedlichKwongMFTP::liquidVolEst().
|
protected |
boolean indicating whether standard mixing rules are applied
Definition at line 666 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::initThermoXML(), and RedlichKwongMFTP::operator=().
|
protected |
Form of the temperature parameterization.
Definition at line 673 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::calculateAB(), RedlichKwongMFTP::operator=(), RedlichKwongMFTP::readXMLCrossFluid(), RedlichKwongMFTP::readXMLPureFluid(), and RedlichKwongMFTP::updateAB().
|
protected |
Value of b in the equation of state.
m_b is a function of the temperature and the mole fraction.
Definition at line 679 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::cp_mole(), RedlichKwongMFTP::critDensity(), RedlichKwongMFTP::critPressure(), RedlichKwongMFTP::critTemperature(), RedlichKwongMFTP::densityCalc(), RedlichKwongMFTP::dpdVCalc(), RedlichKwongMFTP::getActivityCoefficients(), RedlichKwongMFTP::getChemPotentials(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::getPartialMolarEntropies(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::hresid(), RedlichKwongMFTP::liquidVolEst(), RedlichKwongMFTP::operator=(), RedlichKwongMFTP::pressure(), RedlichKwongMFTP::pressureCalc(), RedlichKwongMFTP::pressureDerivatives(), RedlichKwongMFTP::sresid(), and RedlichKwongMFTP::updateAB().
|
protected |
Value of a in the equation of state.
a_b is a function of the temperature and the mole fraction.
Definition at line 685 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::cp_mole(), RedlichKwongMFTP::critDensity(), RedlichKwongMFTP::critPressure(), RedlichKwongMFTP::critTemperature(), RedlichKwongMFTP::densityCalc(), RedlichKwongMFTP::dpdVCalc(), RedlichKwongMFTP::getActivityCoefficients(), RedlichKwongMFTP::getChemPotentials(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::getPartialMolarEntropies(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::hresid(), RedlichKwongMFTP::operator=(), RedlichKwongMFTP::pressure(), RedlichKwongMFTP::pressureCalc(), RedlichKwongMFTP::pressureDerivatives(), RedlichKwongMFTP::sresid(), and RedlichKwongMFTP::updateAB().
|
mutableprotected |
Temporary storage - length = m_kk.
Definition at line 701 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::getActivityCoefficients(), RedlichKwongMFTP::getChemPotentials(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::getPartialMolarEntropies(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::initLengths(), RedlichKwongMFTP::operator=(), and RedlichKwongMFTP::setToEquilState().
|
mutableprotected |
Temporary storage - length = m_kk.
Definition at line 704 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::calcDensity(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::getPartialMolarEntropies(), RedlichKwongMFTP::getPartialMolarVolumes(), RedlichKwongMFTP::initLengths(), RedlichKwongMFTP::operator=(), RedlichKwongMFTP::setToEquilState(), and RedlichKwongMFTP::standardConcentration().
|
mutableprotected |
The derivative of the pressure wrt the volume.
Calculated at the current conditions temperature and mole number kept constant
Definition at line 716 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::cp_mole(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::operator=(), and RedlichKwongMFTP::pressureDerivatives().
|
mutableprotected |
The derivative of the pressure wrt the temperature.
Calculated at the current conditions Total volume and mole number kept constant
Definition at line 723 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::cp_mole(), RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::getPartialMolarEntropies(), RedlichKwongMFTP::operator=(), and RedlichKwongMFTP::pressureDerivatives().
|
mutableprotected |
Vector of derivatives of pressure wrt mole number.
Calculated at the current conditions Total volume, temperature and other mole number kept constant
Definition at line 730 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::getPartialMolarEnthalpies(), RedlichKwongMFTP::initLengths(), and RedlichKwongMFTP::operator=().
|
static |
Omega constant for a -> value of a in terms of critical properties.
this was calculated from a small nonlinear solve
Definition at line 737 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::NicholsSolve().
|
static |
Omega constant for b.
Definition at line 740 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::NicholsSolve().
|
static |
Omega constant for the critical molar volume.
Definition at line 743 of file RedlichKwongMFTP.h.
Referenced by RedlichKwongMFTP::NicholsSolve().