20 PDSS_IonsFromNeutral::PDSS_IonsFromNeutral()
21 : neutralMoleculePhase_(0)
32 void PDSS_IonsFromNeutral::setNeutralSpeciesMultiplier(
const std::string& species,
double mult)
34 neutralSpeciesMultipliers_[species] = mult;
38 void PDSS_IonsFromNeutral::setSpecialSpecies(
bool special) {
47 throw CanteraError(
"PDSS_IonsFromNeutral::constructPDSSXML",
48 "no thermo Node for species " + speciesNode.
name());
51 throw CanteraError(
"PDSS_IonsFromNeutral::constructPDSSXML",
52 "thermo model for species isn't IonsFromNeutral: " 53 + speciesNode.
name());
57 throw CanteraError(
"PDSS_IonsFromNeutral::constructPDSSXML",
58 "no Thermo::neutralSpeciesMultipliers Node for species " + speciesNode.
name());
62 setNeutralSpeciesMultiplier(species_mult.first, species_mult.second);
77 for (
auto multiplier : neutralSpeciesMultipliers_) {
87 for (
size_t i = 0; i <
numMult_; i++) {
102 doublereal val = 0.0;
103 for (
size_t i = 0; i <
numMult_; i++) {
108 val -= 2.0 * log(2.0);
116 doublereal val = 0.0;
117 for (
size_t i = 0; i <
numMult_; i++) {
122 val += 2.0 * log(2.0);
130 doublereal val = 0.0;
131 for (
size_t i = 0; i <
numMult_; i++) {
141 doublereal val = 0.0;
142 for (
size_t i = 0; i <
numMult_; i++) {
157 doublereal val = 0.0;
158 for (
size_t i = 0; i <
numMult_; i++) {
163 val += 2.0 * log(2.0);
171 doublereal val = 0.0;
172 for (
size_t i = 0; i <
numMult_; i++) {
182 doublereal val = 0.0;
183 for (
size_t i = 0; i <
numMult_; i++) {
188 val -= 2.0 * log(2.0);
196 doublereal val = 0.0;
197 for (
size_t i = 0; i <
numMult_; i++) {
207 doublereal val = 0.0;
208 for (
size_t i = 0; i <
numMult_; i++) {
std::vector< size_t > idNeutralMoleculeVec
Vector of species indices in the neutral molecule ThermoPhase.
vector_fp factorVec
Stoichiometric coefficient for this species using the Neutral Molecule Species in the vector idNeutra...
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data...
std::string name() const
Returns the name of the XML node.
size_t numMult_
Number of neutral molecule species that make up the stoichiometric vector for this species...
const XML_Node * findByName(const std::string &nm, int depth=100000) const
This routine carries out a recursive search for an XML node based on the name of the node...
virtual void initThermo()
Initialization routine.
virtual doublereal density() const
Return the standard state density at standard state.
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
Header for intermediate ThermoPhase object for phases which consist of ions whose thermodynamics is c...
virtual void setParametersFromXML(const XML_Node &speciesNode)
Initialization routine for the PDSS object based on the speciesNode.
doublereal m_pres
State of the system - pressure.
vector_fp tmpNM
Vector of length equal to the number of species in the neutral molecule phase.
Class XML_Node is a tree-based representation of the contents of an XML file.
virtual void setState_TR(doublereal temp, doublereal rho)
Set the internal temperature and density.
void setParametersFromXML(const XML_Node &speciesNode)
Initialization routine for the PDSS object based on the speciesNode.
virtual doublereal enthalpy_RT_ref() const
Return the molar enthalpy divided by RT at reference pressure.
virtual doublereal cp_R() const
Return the molar const pressure heat capacity divided by RT.
virtual doublereal gibbs_RT() const
Return the molar Gibbs free energy divided by RT.
virtual doublereal entropy_R_ref() const
Return the molar entropy divided by R at reference pressure.
virtual doublereal enthalpy_RT() const
Return the standard state molar enthalpy divided by RT.
shared_ptr< ThermoPhase > neutralMoleculePhase_
Pointer to the Neutral Molecule ThermoPhase object.
virtual doublereal cp_R_ref() const
Return the molar heat capacity divided by R at reference pressure.
bool caseInsensitiveEquals(const std::string &input, const std::string &test)
Case insensitive equality predicate.
virtual doublereal molarVolume_ref() const
Return the molar volume at reference pressure.
Base class for exceptions thrown by Cantera classes.
std::string value() const
Return the value of an XML node as a string.
void setParent(VPStandardStateTP *phase, size_t k)
Set the parent VPStandardStateTP object of this PDSS object.
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual doublereal gibbs_RT_ref() const
Return the molar Gibbs free energy divided by RT at reference pressure.
doublereal m_maxTemp
Maximum temperature.
doublereal m_minTemp
Minimum temperature.
virtual doublereal intEnergy_mole() const
Return the molar internal Energy in units of J kmol-1.
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.
virtual void initThermo()
Initialization routine.
std::string attrib(const std::string &attr) const
Function returns the value of an attribute.
virtual doublereal entropy_R() const
Return the standard state entropy divided by RT.
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
doublereal m_temp
Current temperature used by the PDSS object.
Contains declarations for string manipulation functions within Cantera.
virtual doublereal molarVolume() const
Return the molar volume at standard state.
double m_h0_RT
Reference state enthalpy divided by RT.
bool add2RTln2_
Add 2RTln2 to the entropy and Gibbs free energies for this species.
Namespace for the Cantera kernel.
Declarations for the class PDSS_IonsFromNeutral ( which handles calculations for a single ion in a fl...
doublereal m_p0
Reference state pressure of the species.
doublereal m_mw
Molecular Weight of the species.