Go to the documentation of this file.
23 SurfPhase::SurfPhase(doublereal n0):
60 for (
size_t k = 0; k <
m_kk; k++) {
81 for (
size_t k = 0; k <
m_kk; k++) {
89 for (
size_t k = 0; k <
m_kk; k++) {
97 for (
size_t k = 0; k <
m_kk; k++) {
120 for (
size_t k = 0; k <
m_kk; k++) {
144 "Bad value for number of parameter");
182 for (
size_t k = 0; k <
m_kk; k++) {
213 m_cp0.push_back(0.0);
214 m_mu0.push_back(0.0);
230 "Site density must be positive. Got {}", n0);
239 for (
size_t k = 0; k <
m_kk; k++) {
244 "Sum of Coverage fractions is zero or negative");
246 for (
size_t k = 0; k <
m_kk; k++) {
255 for (
size_t k = 0; k <
m_kk; k++) {
264 for (
size_t k = 0; k <
m_kk; k++) {
278 for (
size_t k = 0; k <
m_kk; k++) {
287 "Input coverages are all zero or negative");
293 if (state.
hasKey(
"coverages")) {
294 if (state[
"coverages"].is<string>()) {
306 if (
m_tlast != tnow || force) {
309 for (
size_t k = 0; k <
m_kk; k++) {
321 eosdata.
_require(
"model",
"Surface");
322 doublereal n =
getFloat(eosdata,
"site_density",
"toSI");
331 Units(1.0, 0, -
static_cast<double>(
m_ndim), 0, 0, 0, 1)));
356 doublereal n =
getFloat(eosdata,
"site_density",
"toSI");
bool getOptionalFloat(const XML_Node &parent, const std::string &name, doublereal &fltRtn, const std::string &type)
Get an optional floating-point value from a child element.
void setCoveragesNoNorm(const doublereal *theta)
Set the surface site fractions to a specified state.
std::string getChildValue(const XML_Node &parent, const std::string &nameString)
This function reads a child node with the name, nameString, and returns its XML value as the return s...
virtual void getPartialMolarCp(doublereal *cpbar) const
Return an array of partial molar heat capacities for the species in the mixture.
SurfPhase(doublereal n0=1.0)
Constructor.
virtual void getEnthalpy_RT(doublereal *hrt) const
Get the nondimensional Enthalpy functions for the species at their standard states at the current T a...
virtual void getStandardChemPotentials(doublereal *mu0) const
Get the array of chemical potentials at unit activity for the species at their standard states at the...
std::map< std::string, double > compositionMap
Map connecting a string name with a double.
virtual void getCp_R_ref(doublereal *cprt) const
Returns the vector of nondimensional constant pressure heat capacities of the reference state at the ...
virtual doublereal cv_mole() const
Molar heat capacity at constant volume. Units: J/kmol/K.
const double SmallNumber
smallest number to compare to zero.
virtual void setConcentrationsNoNorm(const double *const conc)
Set the concentrations without ignoring negative concentrations.
double convert(const std::string &key, const std::string &units) const
Convert the item stored by the given key to the units specified in units.
void setNDim(size_t ndim)
Set the number of spatial dimensions (1, 2, or 3).
virtual void getGibbs_RT_ref(doublereal *grt) const
Returns the vector of nondimensional Gibbs Free Energies of the reference state at the current temper...
virtual void getPartialMolarVolumes(doublereal *vbar) const
Return an array of partial molar volumes for the species in the mixture.
vector_fp m_work
Temporary work array.
void getCoverages(doublereal *theta) const
Return a vector of surface coverages.
virtual void setTemperature(const doublereal temp)
Set the internally stored temperature of the phase (K).
bool hasChild(const std::string &ch) const
Tests whether the current node has a child node with a particular name.
virtual void getPureGibbs(doublereal *g) const
Get the Gibbs functions for the standard state of the species at the current T and P of the solution.
bool hasKey(const std::string &key) const
Returns true if the map contains an item named key.
virtual void setParametersFromXML(const XML_Node &thermoData)
Set the Equation-of-State parameters by reading an XML Node Input.
virtual void getEntropy_R(doublereal *sr) const
Get the array of nondimensional Entropy functions for the standard state species at the current T and...
EdgePhase(doublereal n0=1.0)
Constructor.
virtual void update(doublereal T, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const
Compute the reference-state properties for all species.
void setCoveragesByName(const std::string &cov)
Set the coverages from a string of colon-separated name:value pairs.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
void getConcentrations(double *const c) const
Get the species concentrations (kmol/m^3).
virtual doublereal enthalpy_mole() const
Return the Molar Enthalpy. Units: J/kmol.
virtual void setState(const AnyMap &state)
Set the state using an AnyMap containing any combination of properties supported by the thermodynamic...
double concentration(const size_t k) const
Concentration of species k.
double moleFraction(size_t k) const
Return the mole fraction of a single species.
doublereal m_n0
Surface site density (kmol m-2)
size_t m_kk
Number of species in the phase.
virtual bool addSpecies(shared_ptr< Species > spec)
AnyMap m_input
Data supplied via setParameters.
vector_fp m_logsize
vector storing the log of the size of each species.
virtual void getGibbs_RT(doublereal *grt) const
Get the nondimensional Gibbs functions for the species in their standard states at the current T and ...
virtual doublereal cp_mole() const
Molar heat capacity at constant pressure. Units: J/kmol/K.
void setCoverages(const doublereal *theta)
Set the surface site fractions to a specified state.
doublereal m_logn0
log of the surface site density
virtual void getEntropy_R_ref(doublereal *er) const
Returns the vector of nondimensional entropies of the reference state at the current temperature of t...
vector_fp m_speciesSize
Vector of species sizes (number of sites occupied). length m_kk.
const U & getValue(const std::map< T, U > &m, const T &key, const U &default_val)
Const accessor for a value in a std::map.
virtual void getEnthalpy_RT_ref(doublereal *hrt) const
Returns the vector of nondimensional enthalpies of the reference state at the current temperature of ...
virtual void getActivityConcentrations(doublereal *c) const
Return a vector of activity concentrations for each species.
void _updateThermo(bool force=false) const
Update the species reference state thermodynamic functions.
virtual void setStateFromXML(const XML_Node &state)
Set the initial state of the Surface Phase from an XML_Node.
virtual void getChemPotentials(doublereal *mu) const
Get the species chemical potentials. Units: J/kmol.
vector_fp m_mu0
Temporary storage for the reference state Gibbs energies.
virtual doublereal logStandardConc(size_t k=0) const
Natural logarithm of the standard concentration of the kth species.
Class XML_Node is a tree-based representation of the contents of an XML file.
doublereal m_tlast
last value of the temperature processed by reference state
const double OneAtm
One atmosphere [Pa].
doublereal RT() const
Return the Gas Constant multiplied by the current temperature.
virtual doublereal intEnergy_mole() const
Return the Molar Internal Energy. Units: J/kmol.
virtual void initThermoFile(const std::string &inputFile, const std::string &id)
virtual void initThermo()
Initialize the ThermoPhase object after all species have been set up.
compositionMap parseCompString(const std::string &ss, const std::vector< std::string > &names)
Parse a composition string into a map consisting of individual key:composition pairs.
doublereal temperature() const
Temperature (K).
virtual void setParametersFromXML(const XML_Node &thermoData)
Set the Equation-of-State parameters by reading an XML Node Input.
void scale(InputIter begin, InputIter end, OutputIter out, S scale_factor)
Multiply elements of an array by a scale factor.
virtual doublereal entropy_mole() const
Return the Molar Entropy. Units: J/kmol-K.
MultiSpeciesThermo m_spthermo
Pointer to the calculation manager for species reference-state thermodynamic properties.
virtual void setParameters(int n, doublereal *const c)
Set the equation of state parameters from the argument list.
A simple thermodynamic model for a surface phase, assuming an ideal solution model.
virtual void getPartialMolarEntropies(doublereal *sbar) const
Returns an array of partial molar entropies of the species in the solution.
doublereal getFloat(const XML_Node &parent, const std::string &name, const std::string &type)
Get a floating-point value from a child element.
virtual bool addSpecies(shared_ptr< Species > spec)
doublereal mean_X(const doublereal *const Q) const
Evaluate the mole-fraction-weighted mean of an array Q.
vector_fp m_s0
Temporary storage for the reference state entropies.
A representation of the units associated with a dimensional quantity.
virtual void getPartialMolarEnthalpies(doublereal *hbar) const
Returns an array of partial molar enthalpies for the species in the mixture.
A map of string keys to values whose type can vary at runtime.
const double GasConstant
Universal Gas Constant [J/kmol/K].
vector_fp m_cp0
Temporary storage for the reference state heat capacities.
virtual void setState(const AnyMap &state)
Set the state using an AnyMap containing any combination of properties supported by the thermodynamic...
Base class for exceptions thrown by Cantera classes.
void importPhase(XML_Node &phase, ThermoPhase *th)
Import a phase information into an empty ThermoPhase object.
const std::vector< std::string > & speciesNames() const
Return a const reference to the vector of species names.
void _require(const std::string &a, const std::string &v) const
Require that the current XML node has an attribute named by the first argument, a,...
virtual void getCp_R(doublereal *cpr) const
Get the nondimensional Heat Capacities at constant pressure for the species standard states at the cu...
virtual void setConcentrations(const double *const conc)
Set the concentrations to the specified values within the phase.
Namespace for the Cantera kernel.
virtual doublereal standardConcentration(size_t k=0) const
Return the standard concentration for the kth species.
std::string speciesName(size_t k) const
Name of the species with index k.
size_t m_ndim
Dimensionality of the phase.
vector_fp m_h0
Temporary storage for the reference state enthalpies.
virtual void getStandardVolumes(doublereal *vol) const
Get the molar volumes of the species standard states at the current T and P of the solution.
void setSiteDensity(doublereal n0)
Set the site density of the surface phase (kmol m-2)
virtual double size(size_t k) const
Returns the number of sites occupied by one molecule of species k.