Clean up interstitial whitespace
Remove extra space around operators, between words, etc.
This commit is contained in:
parent
6a04193646
commit
acdf9cf0ed
291 changed files with 3510 additions and 3516 deletions
|
|
@ -135,7 +135,7 @@ public:
|
|||
m_ncols++;
|
||||
m_data.resize(m_nrows*m_ncols);
|
||||
size_t m;
|
||||
for (m = 0; m < m_nrows; m++) {
|
||||
for (m = 0; m < m_nrows; m++) {
|
||||
value(m_ncols, m) = c[m];
|
||||
}
|
||||
}
|
||||
|
|
@ -152,7 +152,7 @@ public:
|
|||
m_ncols++;
|
||||
m_data.resize(m_nrows*m_ncols);
|
||||
size_t m;
|
||||
for (m = 0; m < m_nrows; m++) {
|
||||
for (m = 0; m < m_nrows; m++) {
|
||||
value(m_ncols, m) = c[m];
|
||||
}
|
||||
}
|
||||
|
|
@ -171,7 +171,7 @@ public:
|
|||
//! Get the nth row and return it in a vector
|
||||
/*!
|
||||
* @param n Index of the row to be returned.
|
||||
* @param rw Return Vector for the operation.
|
||||
* @param rw Return Vector for the operation.
|
||||
* Must have a length of m_ncols.
|
||||
*/
|
||||
void getRow(size_t n, doublereal* const rw) {
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
|
||||
//! Returns the value of a single matrix entry
|
||||
/*!
|
||||
* This is a key entry. Returns the value of the matrix position (i,j)
|
||||
* This is a key entry. Returns the value of the matrix position (i,j)
|
||||
* element.
|
||||
*
|
||||
* @param i The row index
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@ public:
|
|||
//! static function that deletes all factories
|
||||
//! in the internal registry maintained in a static variable
|
||||
static void deleteFactories() {
|
||||
std::vector< FactoryBase* >::iterator iter ;
|
||||
std::vector< FactoryBase* >::iterator iter;
|
||||
for (iter = s_vFactoryRegistry.begin();
|
||||
iter != s_vFactoryRegistry.end();
|
||||
++iter) {
|
||||
(*iter)->deleteFactory() ;
|
||||
(*iter)->deleteFactory();
|
||||
}
|
||||
s_vFactoryRegistry.clear() ;
|
||||
s_vFactoryRegistry.clear();
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
@ -42,18 +42,18 @@ protected:
|
|||
* Adds the current object to the current static list
|
||||
*/
|
||||
FactoryBase() {
|
||||
s_vFactoryRegistry.push_back(this) ;
|
||||
s_vFactoryRegistry.push_back(this);
|
||||
}
|
||||
|
||||
//! Virtual abstract function that deletes the factory
|
||||
/*!
|
||||
* This must be properly defined in child objects.
|
||||
*/
|
||||
virtual void deleteFactory() = 0 ;
|
||||
virtual void deleteFactory() = 0;
|
||||
|
||||
private:
|
||||
//! statically held list of Factories.
|
||||
static std::vector<FactoryBase*> s_vFactoryRegistry ;
|
||||
static std::vector<FactoryBase*> s_vFactoryRegistry;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,11 +88,11 @@ private:
|
|||
clock_t start_ticks;
|
||||
|
||||
//! internal constant containing clock ticks per second
|
||||
const double inv_clocks_per_sec;
|
||||
const double inv_clocks_per_sec;
|
||||
|
||||
//! internal constant containing the total number of ticks
|
||||
//! per rollover.
|
||||
const double clock_width;
|
||||
const double clock_width;
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@
|
|||
// corresponding Fortran data types on your system. The defaults
|
||||
// are OK for most systems
|
||||
|
||||
typedef double doublereal; // Fortran double precision
|
||||
typedef int integer; // Fortran integer
|
||||
typedef int ftnlen; // Fortran hidden string length type
|
||||
typedef double doublereal; // Fortran double precision
|
||||
typedef int integer; // Fortran integer
|
||||
typedef int ftnlen; // Fortran hidden string length type
|
||||
|
||||
// Fortran compilers pass character strings in argument lists by
|
||||
// adding a hidden argument with the length of the string. Some
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ const doublereal Planck = 6.62607009e-34; // J-s
|
|||
const doublereal Planck_bar = Planck / (2 * Pi); // m2-kg/s
|
||||
|
||||
/// log(k/h)
|
||||
const doublereal logBoltz_Planck = std::log(Boltzmann / Planck); // ln(k_B/h)
|
||||
const doublereal logBoltz_Planck = std::log(Boltzmann / Planck); // ln(k_B/h)
|
||||
/// Stefan-Boltzmann constant
|
||||
const doublereal StefanBoltz = 5.670373e-8;
|
||||
|
||||
|
|
@ -154,9 +154,9 @@ typedef std::map<std::string, doublereal> Composition;
|
|||
|
||||
//! Turn on the use of stl vectors for the basic array type within cantera
|
||||
//! Vector of doubles.
|
||||
typedef std::vector<double> vector_fp;
|
||||
typedef std::vector<double> vector_fp;
|
||||
//! Vector of ints
|
||||
typedef std::vector<int> vector_int;
|
||||
typedef std::vector<int> vector_int;
|
||||
|
||||
//! A grouplist is a vector of groups of species
|
||||
typedef std::vector<std::vector<size_t> > grouplist_t;
|
||||
|
|
@ -164,6 +164,6 @@ typedef std::vector<std::vector<size_t> > grouplist_t;
|
|||
//! index returned by functions to indicate "no position"
|
||||
const size_t npos = static_cast<size_t>(-1);
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace Cantera
|
|||
*
|
||||
* A group of defines may be used during debugging to assert
|
||||
* conditions which should be true. These are named AssertTrace(),
|
||||
* AssertThrow(), and AssertThrowMsg(). Examples of their usage is
|
||||
* AssertThrow(), and AssertThrowMsg(). Examples of their usage is
|
||||
* given below.
|
||||
*
|
||||
* @code
|
||||
|
|
@ -200,7 +200,7 @@ public:
|
|||
/*!
|
||||
* This is a std:string containing the file name and the line number
|
||||
*/
|
||||
#define STR_TRACE (std::string(__FILE__) + ":" + XSTR_TRACE_LINE(__LINE__))
|
||||
#define STR_TRACE (std::string(__FILE__) + ":" + XSTR_TRACE_LINE(__LINE__))
|
||||
|
||||
#ifdef NDEBUG
|
||||
#ifndef AssertTrace
|
||||
|
|
@ -217,7 +217,7 @@ public:
|
|||
//! Assertion must be true or an error is thrown
|
||||
/*!
|
||||
* Assertion must be true or else a CanteraError is thrown. A diagnostic string containing the
|
||||
* file and line number, indicating where the error
|
||||
* file and line number, indicating where the error
|
||||
* occurred is added to the thrown object.
|
||||
*
|
||||
* @param expr Boolean expression that must be true
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ void addFloatArray(XML_Node& node, const std::string& titleString,
|
|||
* @code
|
||||
* const XML_Node &node;
|
||||
* std::string titleString = "additionalTemperatures";
|
||||
* int n = 3;
|
||||
* int n = 3;
|
||||
* int Tcases[3] = [273.15, 298.15, 373.15];
|
||||
* std::string typeString = "optional";
|
||||
* std::string units = "Kelvin";
|
||||
|
|
@ -241,11 +241,11 @@ void addNamedFloatArray(XML_Node& parentNode, const std::string& name, const siz
|
|||
void addString(XML_Node& node, const std::string& titleString,
|
||||
const std::string& valueString, const std::string& typeString="");
|
||||
|
||||
//! This function reads the current node or a child node of the current node
|
||||
//! This function reads the current node or a child node of the current node
|
||||
//! with the default name, "floatArray", with a value field
|
||||
//! consisting of a comma separated list of floats
|
||||
/*!
|
||||
* This function will read either the current XML node or a child node to the
|
||||
* This function will read either the current XML node or a child node to the
|
||||
* current XML node, with the name "floatArray". It will have a title
|
||||
* attribute, and the body of the XML node will be filled out with a comma
|
||||
* separated list of doublereals. Get an array of floats from the XML Node.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
* @ingroup utils
|
||||
*
|
||||
* These functions store
|
||||
* some parameters in global storage that are accessible at all times
|
||||
* some parameters in global storage that are accessible at all times
|
||||
* from the calling application.
|
||||
* Contains module definitions for
|
||||
* - inputfiles (see \ref inputfiles)
|
||||
|
|
@ -115,7 +115,7 @@ void addDirectory(const std::string& dir);
|
|||
void appdelete();
|
||||
|
||||
//! @copydoc Application::thread_complete
|
||||
void thread_complete() ;
|
||||
void thread_complete();
|
||||
|
||||
//! Returns root directory where %Cantera is installed
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Cantera
|
|||
/// stream, but classes may be derived from Logger that implement
|
||||
/// other output options. This is important when Cantera is used
|
||||
/// in applications that do not display the standard output, such
|
||||
/// as MATLAB. The Cantera MATLAB interface derives a class from
|
||||
/// as MATLAB. The Cantera MATLAB interface derives a class from
|
||||
/// Logger that implements these methods with MATLAB-specific
|
||||
/// procedures, insuring that the messages will be passed through
|
||||
/// to the user. It would also be possible to derive a class that
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ inline void sum_each(OutputIter x_begin, OutputIter x_end,
|
|||
* Example:
|
||||
*
|
||||
* \code
|
||||
* vector<double> x(3), y(20), ;
|
||||
* vector<double> x(3), y(20);
|
||||
* vector<int> index(3);
|
||||
* index[0] = 9;
|
||||
* index[1] = 2;
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ public:
|
|||
/*!
|
||||
* @param n Number of the child to return
|
||||
*/
|
||||
XML_Node& child(const size_t n) const ;
|
||||
XML_Node& child(const size_t n) const;
|
||||
|
||||
//! Return an unchangeable reference to the vector of children of the current node
|
||||
/*!
|
||||
|
|
@ -540,7 +540,7 @@ public:
|
|||
*/
|
||||
std::vector<XML_Node*> getChildren(const std::string& name) const;
|
||||
|
||||
//! Return a changeable reference to a child of the current node, named by the argument
|
||||
//! Return a changeable reference to a child of the current node, named by the argument
|
||||
/*!
|
||||
* Note the underlying data allows for more than one XML element with the same name.
|
||||
* This routine returns the first child with the given name.
|
||||
|
|
@ -709,7 +709,7 @@ protected:
|
|||
/*!
|
||||
* Search for a phase Node matching a name.
|
||||
*
|
||||
* @param root Starting XML_Node* pointer for the search
|
||||
* @param root Starting XML_Node* pointer for the search
|
||||
* @param phaseName Name of the phase to search for
|
||||
*
|
||||
* @return Returns the XML_Node pointer if the phase is found.
|
||||
|
|
|
|||
|
|
@ -32,10 +32,10 @@ public:
|
|||
iterations(0),
|
||||
maxStepSize(10.0), propertyPair(TP), contin(false) {}
|
||||
|
||||
doublereal relTolerance; ///< Relative tolerance
|
||||
doublereal absElemTol; ///< Abs Tol in element number
|
||||
int maxIterations; ///< Maximum number of iterations
|
||||
int iterations; ///< Iteration counter
|
||||
doublereal relTolerance; ///< Relative tolerance
|
||||
doublereal absElemTol; ///< Abs Tol in element number
|
||||
int maxIterations; ///< Maximum number of iterations
|
||||
int iterations; ///< Iteration counter
|
||||
|
||||
/**
|
||||
* Maximum step size. Largest change in any element potential or
|
||||
|
|
@ -77,7 +77,7 @@ class PropertyCalculator;
|
|||
* chemical equilibrium. Non-stoichiometric methods are faster
|
||||
* when they converge, but stoichiometric ones tend to be more
|
||||
* robust and can be used also for problems with multiple
|
||||
* condensed phases. As expected, the ChemEquil solver is faster
|
||||
* condensed phases. As expected, the ChemEquil solver is faster
|
||||
* than MultiPhaseEquil for many single-phase equilibrium
|
||||
* problems (particularly if there are only a few elements but
|
||||
* very many species), but can be less stable. Problem
|
||||
|
|
@ -153,7 +153,7 @@ protected:
|
|||
* means that the 2 ThermoPhases have to have consist of the same
|
||||
* species and elements.
|
||||
*/
|
||||
thermo_t* m_phase;
|
||||
thermo_t* m_phase;
|
||||
|
||||
//! number of atoms of element m in species k.
|
||||
doublereal nAtoms(size_t k, size_t m) const {
|
||||
|
|
@ -183,7 +183,7 @@ protected:
|
|||
int setInitialMoles(thermo_t& s, vector_fp& elMoleGoal, int loglevel = 0);
|
||||
|
||||
//! Generate a starting estimate for the element potentials.
|
||||
int estimateElementPotentials(thermo_t& s, vector_fp& lambda,
|
||||
int estimateElementPotentials(thermo_t& s, vector_fp& lambda,
|
||||
vector_fp& elMolesGoal, int loglevel = 0);
|
||||
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -629,7 +629,7 @@ private:
|
|||
std::map<std::string, size_t> m_enamemap;
|
||||
|
||||
//! Number of phases in the MultiPhase object
|
||||
size_t m_np;
|
||||
size_t m_np;
|
||||
|
||||
//! Current value of the temperature (kelvin)
|
||||
doublereal m_temp;
|
||||
|
|
@ -761,7 +761,7 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn,
|
|||
*
|
||||
* Also, without perturbation of FormulaMatrix[], BasisOptimize[] would
|
||||
* produce a zero pivot because the matrix would be singular (unless the argon
|
||||
* element column was already the last column of FormulaMatrix[].
|
||||
* element column was already the last column of FormulaMatrix[].
|
||||
*
|
||||
* This routine borrows heavily from BasisOptimize algorithm. It finds nc
|
||||
* constraints which span the range space of the Component Formula matrix, and
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ namespace Cantera
|
|||
{
|
||||
|
||||
/*!
|
||||
* Multiphase chemical equilibrium solver. Class MultiPhaseEquil is designed
|
||||
* Multiphase chemical equilibrium solver. Class MultiPhaseEquil is designed
|
||||
* to be used to set a mixture containing one or more phases to a state of
|
||||
* chemical equilibrium. It implements the VCS algorithm, described in Smith
|
||||
* chemical equilibrium. It implements the VCS algorithm, described in Smith
|
||||
* and Missen, "Chemical Reaction Equilibrium."
|
||||
*
|
||||
* This class only handles chemical equilibrium at a specified temperature and
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public:
|
|||
* number of components, which can be obtained from the
|
||||
* numComponents() command.
|
||||
*/
|
||||
size_t component(size_t m) const ;
|
||||
size_t component(size_t m) const;
|
||||
|
||||
//! Get the stoichiometric reaction coefficients for a single
|
||||
//! reaction index
|
||||
|
|
@ -260,7 +260,7 @@ public:
|
|||
* @param logLevel Determines the amount of printing to the output file.
|
||||
*/
|
||||
int equilibrate_TV(int XY, doublereal xtarget,
|
||||
int estimateEquil = 0,
|
||||
int estimateEquil = 0,
|
||||
int printLvl = 0, doublereal err = 1.0E-6,
|
||||
int maxsteps = VCS_MAXSTEPS, int logLevel = -99);
|
||||
|
||||
|
|
@ -276,7 +276,7 @@ public:
|
|||
* compile with debug flags to get some printing).
|
||||
* @param logLevel Determines the amount of printing to the output file.
|
||||
*/
|
||||
int determine_PhaseStability(int iph, double& funcStab, int printLvl= 0, int logLevel = -99);
|
||||
int determine_PhaseStability(int iph, double& funcStab, int printLvl= 0, int logLevel = -99);
|
||||
|
||||
//! Report the equilibrium answer in a comma separated table format
|
||||
/*!
|
||||
|
|
@ -303,7 +303,7 @@ public:
|
|||
|
||||
// Friend functions
|
||||
friend int vcs_Cantera_to_vprob(MultiPhase* mphase, VCS_PROB* vprob);
|
||||
friend int vcs_Cantera_update_vprob(MultiPhase* mphase, VCS_PROB* vprob);
|
||||
friend int vcs_Cantera_update_vprob(MultiPhase* mphase, VCS_PROB* vprob);
|
||||
|
||||
protected:
|
||||
//! Vector that takes into account of the current sorting of the species
|
||||
|
|
|
|||
|
|
@ -15,32 +15,32 @@ class vcs_VolPhase;
|
|||
class vcs_SpeciesProperties
|
||||
{
|
||||
public:
|
||||
size_t IndexPhase;
|
||||
size_t IndexSpeciesPhase;
|
||||
size_t IndexPhase;
|
||||
size_t IndexSpeciesPhase;
|
||||
vcs_VolPhase* OwningPhase;
|
||||
size_t NumElements;
|
||||
size_t NumElements;
|
||||
|
||||
//! Name of the species
|
||||
std::string SpName;
|
||||
|
||||
VCS_SPECIES_THERMO* SpeciesThermo; /* Pointer to the thermo
|
||||
structure for this species */
|
||||
double WtSpecies; /* Molecular Weight of the species (gm/mol) */
|
||||
double WtSpecies; /* Molecular Weight of the species (gm/mol) */
|
||||
|
||||
//! Column of the formula matrix, comprising the
|
||||
//! element composition of the species */
|
||||
std::vector<double> FormulaMatrixCol;
|
||||
|
||||
double Charge; /* Charge state of the species -> This may
|
||||
double Charge; /* Charge state of the species -> This may
|
||||
be duplication of what's in the
|
||||
FormulaMatrixCol entries. However, it's prudent
|
||||
to separate it out. */
|
||||
int SurfaceSpecies; /* True if this species belongs to a surface phase */
|
||||
int SurfaceSpecies; /* True if this species belongs to a surface phase */
|
||||
/*
|
||||
* Various Calculated Quantities that are appropriate to
|
||||
* keep copies of at this level.
|
||||
*/
|
||||
double VolPM; /* Partial molar volume of the species */
|
||||
double VolPM; /* Partial molar volume of the species */
|
||||
double ReferenceMoleFraction; /* Representative value of the mole
|
||||
fraction of this species in a phase.
|
||||
This value is used for convergence issues
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ namespace Cantera
|
|||
class ThermoPhase;
|
||||
|
||||
//! Models for the standard state volume of each species
|
||||
#define VCS_SSVOL_IDEALGAS 0
|
||||
#define VCS_SSVOL_CONSTANT 1
|
||||
#define VCS_SSVOL_IDEALGAS 0
|
||||
#define VCS_SSVOL_CONSTANT 1
|
||||
|
||||
/*
|
||||
* DEFINITIONS FOR THE vcs_VolPhase structure
|
||||
|
|
@ -29,14 +29,14 @@ class ThermoPhase;
|
|||
* Equation of State Types
|
||||
* - Permissible values for the EqnState variable in CPC_PHASE structure
|
||||
*/
|
||||
#define VCS_EOS_CONSTANT 0
|
||||
#define VCS_EOS_IDEAL_GAS 1
|
||||
#define VCS_EOS_STOICH_SUB 5
|
||||
#define VCS_EOS_IDEAL_SOLN 22
|
||||
#define VCS_EOS_CONSTANT 0
|
||||
#define VCS_EOS_IDEAL_GAS 1
|
||||
#define VCS_EOS_STOICH_SUB 5
|
||||
#define VCS_EOS_IDEAL_SOLN 22
|
||||
#define VCS_EOS_DEBEYE_HUCKEL 23
|
||||
#define VCS_EOS_REDLICK_KWONG 24
|
||||
#define VCS_EOS_REGULAR_SOLN 25
|
||||
#define VCS_EOS_UNK_CANTERA -1
|
||||
#define VCS_EOS_REGULAR_SOLN 25
|
||||
#define VCS_EOS_UNK_CANTERA -1
|
||||
|
||||
struct VCS_SPECIES;
|
||||
class vcs_SpeciesProperties;
|
||||
|
|
@ -832,7 +832,7 @@ private:
|
|||
* - VCS_STATECALC_NEW
|
||||
* - VCS_STATECALC_TMP
|
||||
*/
|
||||
int m_vcsStateStatus;
|
||||
int m_vcsStateStatus;
|
||||
|
||||
//! Value of the potential for the phase (Volts)
|
||||
double m_phi;
|
||||
|
|
|
|||
|
|
@ -17,14 +17,14 @@ namespace Cantera
|
|||
* ERROR CODES
|
||||
*/
|
||||
//@{
|
||||
#define VCS_SUCCESS 0
|
||||
#define VCS_NOMEMORY 1
|
||||
#define VCS_SUCCESS 0
|
||||
#define VCS_NOMEMORY 1
|
||||
#define VCS_FAILED_CONVERGENCE -1
|
||||
#define VCS_SHOULDNT_BE_HERE -2
|
||||
#define VCS_PUB_BAD -3
|
||||
#define VCS_THERMO_OUTOFRANGE -4
|
||||
#define VCS_FAILED_LOOKUP -5
|
||||
#define VCS_MP_FAIL -6
|
||||
#define VCS_SHOULDNT_BE_HERE -2
|
||||
#define VCS_PUB_BAD -3
|
||||
#define VCS_THERMO_OUTOFRANGE -4
|
||||
#define VCS_FAILED_LOOKUP -5
|
||||
#define VCS_MP_FAIL -6
|
||||
//@}
|
||||
|
||||
/*!
|
||||
|
|
@ -46,32 +46,32 @@ namespace Cantera
|
|||
//! Cutoff relative mole fraction value,
|
||||
//! below which species are deleted from the equilibrium problem.
|
||||
#ifndef VCS_RELDELETE_SPECIES_CUTOFF
|
||||
#define VCS_RELDELETE_SPECIES_CUTOFF 1.0e-64
|
||||
#define VCS_RELDELETE_SPECIES_CUTOFF 1.0e-64
|
||||
#endif
|
||||
|
||||
//! Cutoff relative mole number value,
|
||||
//! below which species are deleted from the equilibrium problem.
|
||||
#ifndef VCS_DELETE_MINORSPECIES_CUTOFF
|
||||
#define VCS_DELETE_MINORSPECIES_CUTOFF 1.0e-140
|
||||
#define VCS_DELETE_MINORSPECIES_CUTOFF 1.0e-140
|
||||
#endif
|
||||
|
||||
//! Relative value of multiphase species mole number for a
|
||||
//! multiphase species which is small.
|
||||
#ifndef VCS_SMALL_MULTIPHASE_SPECIES
|
||||
#define VCS_SMALL_MULTIPHASE_SPECIES 1.0e-25
|
||||
#define VCS_SMALL_MULTIPHASE_SPECIES 1.0e-25
|
||||
#endif
|
||||
|
||||
//! Cutoff relative moles below which a phase is deleted
|
||||
//! from the equilibrium problem.
|
||||
//! Cutoff relative moles below which a phase is deleted
|
||||
//! from the equilibrium problem.
|
||||
#ifndef VCS_DELETE_PHASE_CUTOFF
|
||||
#define VCS_DELETE_PHASE_CUTOFF 1.0e-13
|
||||
#define VCS_DELETE_PHASE_CUTOFF 1.0e-13
|
||||
#endif
|
||||
|
||||
//! Relative mole number of species in a phase that is created
|
||||
//! We want this to be comfortably larger than the VCS_DELETE_PHASE_CUTOFF value
|
||||
//! so that the phase can have a chance to survive.
|
||||
#ifndef VCS_POP_PHASE_MOLENUM
|
||||
#define VCS_POP_PHASE_MOLENUM 1.0e-11
|
||||
#define VCS_POP_PHASE_MOLENUM 1.0e-11
|
||||
#endif
|
||||
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ namespace Cantera
|
|||
//! comprises the bulk of an element's total concentration
|
||||
//! is deleted.
|
||||
#ifndef VCS_DELETE_ELEMENTABS_CUTOFF
|
||||
#define VCS_DELETE_ELEMENTABS_CUTOFF 1.0e-280
|
||||
#define VCS_DELETE_ELEMENTABS_CUTOFF 1.0e-280
|
||||
#endif
|
||||
|
||||
//! Maximum steps in the inner loop
|
||||
|
|
@ -94,9 +94,9 @@ namespace Cantera
|
|||
* @{
|
||||
*/
|
||||
//! nondimensional
|
||||
#define VCS_NONDIMENSIONAL_G 1
|
||||
#define VCS_NONDIMENSIONAL_G 1
|
||||
//! dimensioned
|
||||
#define VCS_DIMENSIONAL_G 0
|
||||
#define VCS_DIMENSIONAL_G 0
|
||||
//@}
|
||||
|
||||
|
||||
|
|
@ -112,24 +112,24 @@ namespace Cantera
|
|||
* An example of this would be a species that contains Ni. But,
|
||||
* the amount of Ni elements is exactly zero.
|
||||
*/
|
||||
#define VCS_SPECIES_COMPONENT_STOICHZERO 3
|
||||
#define VCS_SPECIES_COMPONENT_STOICHZERO 3
|
||||
|
||||
//! Species is a component which can be nonzero
|
||||
#define VCS_SPECIES_COMPONENT 2
|
||||
#define VCS_SPECIES_COMPONENT 2
|
||||
|
||||
//! Species is a major species
|
||||
/*!
|
||||
* A major species is either a species in a multicomponent phase with
|
||||
* significant concentration or it's a Stoich Phase
|
||||
*/
|
||||
#define VCS_SPECIES_MAJOR 1
|
||||
#define VCS_SPECIES_MAJOR 1
|
||||
|
||||
//! Species is a major species
|
||||
/*!
|
||||
* A major species is either a species in a multicomponent phase with
|
||||
* significant concentration or it's a Stoich Phase
|
||||
*/
|
||||
#define VCS_SPECIES_MINOR 0
|
||||
#define VCS_SPECIES_MINOR 0
|
||||
|
||||
//! Species lies in a multicomponent phase, with a small phase concentration
|
||||
/*!
|
||||
|
|
@ -137,21 +137,21 @@ namespace Cantera
|
|||
* It concentration is currently very low, necessitating a
|
||||
* different method of calculation.
|
||||
*/
|
||||
#define VCS_SPECIES_SMALLMS -1
|
||||
#define VCS_SPECIES_SMALLMS -1
|
||||
|
||||
//! Species lies in a multicomponent phase with concentration zero
|
||||
/*!
|
||||
* The species lies in a multicomponent phase which currently doesn't exist.
|
||||
* It concentration is currently zero.
|
||||
*/
|
||||
#define VCS_SPECIES_ZEROEDMS -2
|
||||
#define VCS_SPECIES_ZEROEDMS -2
|
||||
|
||||
//! Species is a SS phase, that is currently zeroed out.
|
||||
/*!
|
||||
* The species lies in a single-species phase which
|
||||
* is currently zeroed out.
|
||||
*/
|
||||
#define VCS_SPECIES_ZEROEDSS -3
|
||||
#define VCS_SPECIES_ZEROEDSS -3
|
||||
|
||||
//! Species has such a small mole fraction it is deleted even though its
|
||||
//! phase may possibly exist.
|
||||
|
|
@ -160,14 +160,14 @@ namespace Cantera
|
|||
* that it best to throw the calculation of it out.
|
||||
* It will be added back in at the end of the calculation.
|
||||
*/
|
||||
#define VCS_SPECIES_DELETED -4
|
||||
#define VCS_SPECIES_DELETED -4
|
||||
|
||||
//! Species refers to an electron in the metal.
|
||||
/*!
|
||||
* The unknown is equal to the electric potential of the phase
|
||||
* in which it exists.
|
||||
*/
|
||||
#define VCS_SPECIES_INTERFACIALVOLTAGE -5
|
||||
#define VCS_SPECIES_INTERFACIALVOLTAGE -5
|
||||
|
||||
//! Species lies in a multicomponent phase that is zeroed atm
|
||||
/*!
|
||||
|
|
@ -176,7 +176,7 @@ namespace Cantera
|
|||
* These species will formally always have zero mole numbers in the
|
||||
* solution vector.
|
||||
*/
|
||||
#define VCS_SPECIES_ZEROEDPHASE -6
|
||||
#define VCS_SPECIES_ZEROEDPHASE -6
|
||||
|
||||
//! Species lies in a multicomponent phase that is active, but species concentration is zero
|
||||
/*!
|
||||
|
|
@ -185,7 +185,7 @@ namespace Cantera
|
|||
* is a temporary condition that exists at the start of an equilibrium problem.
|
||||
* The species is soon "birthed" or "deleted".
|
||||
*/
|
||||
#define VCS_SPECIES_ACTIVEBUTZERO -7
|
||||
#define VCS_SPECIES_ACTIVEBUTZERO -7
|
||||
|
||||
//! Species lies in a multicomponent phase that is active,
|
||||
//! but species concentration is zero due to stoich constraint
|
||||
|
|
@ -196,7 +196,7 @@ namespace Cantera
|
|||
* An example of this would be a species that contains Ni. But,
|
||||
* the amount of Ni elements in the current problem statement is exactly zero.
|
||||
*/
|
||||
#define VCS_SPECIES_STOICHZERO -8
|
||||
#define VCS_SPECIES_STOICHZERO -8
|
||||
|
||||
//@}
|
||||
|
||||
|
|
@ -206,26 +206,26 @@ namespace Cantera
|
|||
*/
|
||||
//@{
|
||||
//! Always exists because it contains inerts which can't exist in any other phase
|
||||
#define VCS_PHASE_EXIST_ALWAYS 3
|
||||
#define VCS_PHASE_EXIST_ALWAYS 3
|
||||
|
||||
//! Phase is a normal phase that currently exists
|
||||
#define VCS_PHASE_EXIST_YES 2
|
||||
#define VCS_PHASE_EXIST_YES 2
|
||||
|
||||
//! Phase is a normal phase that exists in a small concentration
|
||||
/*!
|
||||
* Concentration is so small that it must be calculated using an alternate
|
||||
* method
|
||||
*/
|
||||
#define VCS_PHASE_EXIST_MINORCONC 1
|
||||
#define VCS_PHASE_EXIST_MINORCONC 1
|
||||
|
||||
//! Phase doesn't currently exist in the mixture
|
||||
#define VCS_PHASE_EXIST_NO 0
|
||||
#define VCS_PHASE_EXIST_NO 0
|
||||
|
||||
//! Phase currently is zeroed due to a programmatic issue
|
||||
/*!
|
||||
* We zero phases because we want to follow phase stability boundaries.
|
||||
*/
|
||||
#define VCS_PHASE_EXIST_ZEROEDPHASE -6
|
||||
#define VCS_PHASE_EXIST_ZEROEDPHASE -6
|
||||
|
||||
//@}
|
||||
|
||||
|
|
@ -257,11 +257,11 @@ namespace Cantera
|
|||
@endverbatim
|
||||
* @{
|
||||
*/
|
||||
#define VCS_UNITS_KCALMOL -1
|
||||
#define VCS_UNITS_UNITLESS 0
|
||||
#define VCS_UNITS_KJMOL 1
|
||||
#define VCS_UNITS_KELVIN 2
|
||||
#define VCS_UNITS_MKS 3
|
||||
#define VCS_UNITS_KCALMOL -1
|
||||
#define VCS_UNITS_UNITLESS 0
|
||||
#define VCS_UNITS_KJMOL 1
|
||||
#define VCS_UNITS_KELVIN 2
|
||||
#define VCS_UNITS_MKS 3
|
||||
//@}
|
||||
|
||||
/*!
|
||||
|
|
@ -275,7 +275,7 @@ namespace Cantera
|
|||
|
||||
|
||||
//! An element constraint that is current turned off
|
||||
#define VCS_ELEM_TYPE_TURNEDOFF -1
|
||||
#define VCS_ELEM_TYPE_TURNEDOFF -1
|
||||
|
||||
//! Normal element constraint consisting of positive coefficients for the
|
||||
//! formula matrix.
|
||||
|
|
@ -284,13 +284,13 @@ namespace Cantera
|
|||
* With this constraint, we may employ various strategies to handle
|
||||
* small values of the element number successfully.
|
||||
*/
|
||||
#define VCS_ELEM_TYPE_ABSPOS 0
|
||||
#define VCS_ELEM_TYPE_ABSPOS 0
|
||||
|
||||
//! This refers to conservation of electrons
|
||||
/*!
|
||||
* Electrons may have positive or negative values in the Formula matrix.
|
||||
*/
|
||||
#define VCS_ELEM_TYPE_ELECTRONCHARGE 1
|
||||
#define VCS_ELEM_TYPE_ELECTRONCHARGE 1
|
||||
|
||||
//! This refers to a charge neutrality of a single phase
|
||||
/*!
|
||||
|
|
@ -328,7 +328,7 @@ namespace Cantera
|
|||
/*!
|
||||
* currently there are none
|
||||
*/
|
||||
#define VCS_ELEM_TYPE_OTHERCONSTRAINT 6
|
||||
#define VCS_ELEM_TYPE_OTHERCONSTRAINT 6
|
||||
//@}
|
||||
|
||||
/*!
|
||||
|
|
@ -336,7 +336,7 @@ namespace Cantera
|
|||
* @{
|
||||
*/
|
||||
//! Unknown refers to mole number of a single species
|
||||
#define VCS_SPECIES_TYPE_MOLNUM 0
|
||||
#define VCS_SPECIES_TYPE_MOLNUM 0
|
||||
|
||||
//! Unknown refers to the voltage level of a phase
|
||||
/*!
|
||||
|
|
@ -356,20 +356,20 @@ namespace Cantera
|
|||
* @{
|
||||
*/
|
||||
//! State Calculation is currently in an unknown state
|
||||
#define VCS_STATECALC_UNKNOWN -1
|
||||
#define VCS_STATECALC_UNKNOWN -1
|
||||
//! State Calculation based on the old or base mole numbers
|
||||
#define VCS_STATECALC_OLD 0
|
||||
#define VCS_STATECALC_OLD 0
|
||||
|
||||
//! State Calculation based on the new or tentative mole numbers
|
||||
#define VCS_STATECALC_NEW 1
|
||||
#define VCS_STATECALC_NEW 1
|
||||
|
||||
//! State Calculation based on tentative mole numbers
|
||||
//! for a phase which is currently zeroed, but is being
|
||||
//! evaluated for whether it should pop back into existence
|
||||
#define VCS_STATECALC_PHASESTABILITY 2
|
||||
#define VCS_STATECALC_PHASESTABILITY 2
|
||||
|
||||
//! State Calculation based on a temporary set of mole numbers
|
||||
#define VCS_STATECALC_TMP 3
|
||||
#define VCS_STATECALC_TMP 3
|
||||
//@}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ public:
|
|||
* - VCS_UNITS_UNITLESS: 1.0 K-1
|
||||
* - VCS_UNITS_KJMOL: kJ gmol-1 K-1
|
||||
* - VCS_UNITS_KELVIN: 1.0 K-1
|
||||
* - VCS_UNITS_MKS: joules kmol-1 K-1 = kg m2 s-2 kmol-1 K-1
|
||||
* - VCS_UNITS_MKS: joules kmol-1 K-1 = kg m2 s-2 kmol-1 K-1
|
||||
*/
|
||||
double vcsUtil_gasConstant(int mu_units);
|
||||
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ public:
|
|||
|
||||
//! Molecular weight of species
|
||||
/*!
|
||||
* WtSpecies[k] = molecular weight of species in gm/mol
|
||||
* WtSpecies[k] = molecular weight of species in gm/mol
|
||||
*/
|
||||
std::vector<double> WtSpecies;
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ public:
|
|||
// String containing the title of the run
|
||||
std::string Title;
|
||||
|
||||
//! Vector of pointers to thermo structures which identify the model and
|
||||
//! Vector of pointers to thermo structures which identify the model and
|
||||
//! parameters for evaluating the thermodynamic functions for that
|
||||
//! particular species
|
||||
std::vector<VCS_SPECIES_THERMO*> SpeciesThermo;
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public:
|
|||
* using a variant of the VCS method. Nonideal phases can be accommodated
|
||||
* as well.
|
||||
*
|
||||
* Any number of single-species phases and multi-species phases
|
||||
* Any number of single-species phases and multi-species phases
|
||||
* can be handled by the present version.
|
||||
*
|
||||
* @param print_lvl 1 -> Print results to standard output;
|
||||
|
|
@ -241,7 +241,7 @@ public:
|
|||
* across the interface on the SHE (standard hydrogen electrode) scale
|
||||
* (volts).
|
||||
* - #VCS_SPECIES_ZEROEDPHASE: Species lies in a multicomponent phase
|
||||
* that is zeroed atm and will stay deleted due to a choice from a
|
||||
* that is zeroed atm and will stay deleted due to a choice from a
|
||||
* higher level. These species will formally always have zero mole
|
||||
* numbers in the solution vector.
|
||||
* - #VCS_SPECIES_ACTIVEBUTZERO: The species lies in a multicomponent
|
||||
|
|
@ -481,7 +481,7 @@ public:
|
|||
//! into existence
|
||||
/*!
|
||||
* Updates #m_deltaMolNumSpecies[irxn] : reaction adjustments, where irxn
|
||||
* refers to the irxn'th species formation reaction. This adjustment is
|
||||
* refers to the irxn'th species formation reaction. This adjustment is
|
||||
* for species irxn + M, where M is the number of components.
|
||||
*
|
||||
* @param iphasePop Phase id of the phase that will come into existence
|
||||
|
|
@ -503,7 +503,7 @@ public:
|
|||
* -------
|
||||
* m_deltaMolNumSpecies(irxn) : reaction adjustments, where irxn refers to
|
||||
* the irxn'th species formation reaction.
|
||||
* This adjustment is for species irxn + M,
|
||||
* This adjustment is for species irxn + M,
|
||||
* where M is the number of components.
|
||||
*
|
||||
* Special branching occurs sometimes. This causes the component basis
|
||||
|
|
@ -532,7 +532,7 @@ public:
|
|||
* Formation reactions are
|
||||
* reactions which create each noncomponent species from the component
|
||||
* species. m_stoichCoeffRxnMatrix(jcomp,irxn) are the stoichiometric
|
||||
* coefficients for these reactions. A stoichiometric coefficient of
|
||||
* coefficients for these reactions. A stoichiometric coefficient of
|
||||
* one is assumed for species irxn in this reaction.
|
||||
*
|
||||
* @param l
|
||||
|
|
@ -797,7 +797,7 @@ public:
|
|||
* actually contains argon. Then, nc < ne. Also, without perturbation of
|
||||
* FormulaMatrix[] vcs_basopt[] would produce a zero pivot because the
|
||||
* matrix would be singular (unless the argon element column was already
|
||||
* the last column of FormulaMatrix[].
|
||||
* the last column of FormulaMatrix[].
|
||||
*
|
||||
* This routine borrows heavily from vcs_basopt's algorithm. It finds nc
|
||||
* constraints which span the range space of the Component Formula matrix,
|
||||
|
|
@ -848,7 +848,7 @@ public:
|
|||
*
|
||||
* NOTE: currently this routine is not used.
|
||||
*/
|
||||
int vcs_rxn_adj_cg();
|
||||
int vcs_rxn_adj_cg();
|
||||
|
||||
//! Calculates the diagonal contribution to the Hessian due to
|
||||
//! the dependence of the activity coefficients on the mole numbers.
|
||||
|
|
@ -947,7 +947,7 @@ public:
|
|||
* with significantly different total kmol numbers than one
|
||||
* the algorithm would have problems.
|
||||
*/
|
||||
void vcs_nondim_TP();
|
||||
void vcs_nondim_TP();
|
||||
|
||||
//! Redimensionalize the problem data
|
||||
/*!
|
||||
|
|
@ -957,7 +957,7 @@ public:
|
|||
* or in nondimensional form. This routine switches the data from
|
||||
* nondimensional form into dimensional form.
|
||||
*/
|
||||
void vcs_redim_TP();
|
||||
void vcs_redim_TP();
|
||||
|
||||
//! Print the string representing the Chemical potential units
|
||||
/*!
|
||||
|
|
@ -965,7 +965,7 @@ public:
|
|||
*
|
||||
* @param unitsFormat Integer representing the units system
|
||||
*/
|
||||
void vcs_printChemPotUnits(int unitsFormat) const;
|
||||
void vcs_printChemPotUnits(int unitsFormat) const;
|
||||
|
||||
//! Computes the current elemental abundances vector
|
||||
/*!
|
||||
|
|
@ -984,7 +984,7 @@ public:
|
|||
* definition. Satisfaction of extra constraints would have had to occur
|
||||
* in the problem specification.
|
||||
*
|
||||
* The constraints should be broken up into 2 sections. If a constraint
|
||||
* The constraints should be broken up into 2 sections. If a constraint
|
||||
* involves a formula matrix with positive and negative signs, and eaSet =
|
||||
* 0.0, then you can't expect that the sum will be zero. There may be
|
||||
* roundoff that inhibits this. However, if the formula matrix is all of
|
||||
|
|
@ -1202,7 +1202,7 @@ private:
|
|||
*
|
||||
* Then, if TL is zero, the phase pops into existence if DG_i_O < 0.
|
||||
* Also, if the phase exists, then we check to see if the species
|
||||
* can have a mole number larger than VCS_DELETE_SPECIES_CUTOFF
|
||||
* can have a mole number larger than VCS_DELETE_SPECIES_CUTOFF
|
||||
* (default value = 1.0E-32).
|
||||
*/
|
||||
int vcs_recheck_deleted();
|
||||
|
|
@ -1354,7 +1354,7 @@ private:
|
|||
* @param[in] molNum Current mole numbers of species to be used as input
|
||||
* to the calculation (units = kmol), (length = totalNuMSpecies)
|
||||
*
|
||||
* @param[out] ac Activity coefficients (length = totalNumSpecies) Note
|
||||
* @param[out] ac Activity coefficients (length = totalNumSpecies) Note
|
||||
* this is only partially formed. Only species in phases that
|
||||
* participate in the reaction will be updated
|
||||
* @param[out] mu_i dimensionless chemical potentials (length
|
||||
|
|
@ -1427,10 +1427,10 @@ private:
|
|||
std::vector<double> m_wx;
|
||||
|
||||
public:
|
||||
//! value of the number of species used to malloc data structures
|
||||
//! value of the number of species used to malloc data structures
|
||||
size_t NSPECIES0;
|
||||
|
||||
//! value of the number of phases used to malloc data structures
|
||||
//! value of the number of phases used to malloc data structures
|
||||
size_t NPHASE0;
|
||||
|
||||
//! Total number of species in the problems
|
||||
|
|
@ -1531,7 +1531,7 @@ public:
|
|||
//! at the new tentatite T, P, and mole numbers.
|
||||
/*!
|
||||
* The first NC entries are for components. The following
|
||||
* NR entries are for the current non-component species in the mechanism.
|
||||
* NR entries are for the current non-component species in the mechanism.
|
||||
* Length = number of species
|
||||
*/
|
||||
std::vector<double> m_feSpecies_new;
|
||||
|
|
@ -1575,7 +1575,7 @@ public:
|
|||
*/
|
||||
Array2D m_deltaMolNumPhase;
|
||||
|
||||
//! This is 1 if the phase, iphase, participates in the formation reaction
|
||||
//! This is 1 if the phase, iphase, participates in the formation reaction
|
||||
//! irxn, and zero otherwise. PhaseParticipation(iphase,irxn)
|
||||
Array2D m_phaseParticipation;
|
||||
|
||||
|
|
@ -1588,7 +1588,7 @@ public:
|
|||
|
||||
//! Delta G(irxn) for the noncomponent species in the mechanism.
|
||||
/*!
|
||||
* Computed by the subroutine deltaG. m_deltaGRxn is the free
|
||||
* Computed by the subroutine deltaG. m_deltaGRxn is the free
|
||||
* energy change for the reaction which forms species K from the
|
||||
* component species. This vector has length equal to the number
|
||||
* of noncomponent species in the mechanism. It starts with
|
||||
|
|
@ -1674,7 +1674,7 @@ public:
|
|||
std::vector<double> m_deltaPhaseMoles;
|
||||
|
||||
//! Temperature (Kelvin)
|
||||
double m_temperature;
|
||||
double m_temperature;
|
||||
|
||||
//! Pressure (units are determined by m_VCS_UnitsFormat
|
||||
/*!
|
||||
|
|
@ -1692,7 +1692,7 @@ public:
|
|||
|
||||
//! Total kmoles of inert to add to each phase
|
||||
/*!
|
||||
* TPhInertMoles[iph] = Total kmoles of inert to add to each phase
|
||||
* TPhInertMoles[iph] = Total kmoles of inert to add to each phase
|
||||
* length = number of phases
|
||||
*/
|
||||
std::vector<double> TPhInertMoles;
|
||||
|
|
@ -1703,7 +1703,7 @@ public:
|
|||
//! Tolerance requirements for minor species
|
||||
double m_tolmin;
|
||||
|
||||
//! Below this, major species aren't refined any more
|
||||
//! Below this, major species aren't refined any more
|
||||
double m_tolmaj2;
|
||||
|
||||
//! Below this, minor species aren't refined any more
|
||||
|
|
@ -1751,7 +1751,7 @@ public:
|
|||
std::vector<size_t> m_elementMapIndex;
|
||||
|
||||
//! Mapping between the species index for noncomponent species and the
|
||||
//! full species index.
|
||||
//! full species index.
|
||||
/*!
|
||||
* ir[irxn] = Mapping between the reaction index for noncomponent
|
||||
* formation reaction of a species and the full species
|
||||
|
|
@ -1819,7 +1819,7 @@ public:
|
|||
/*!
|
||||
* The default is to have this unitless
|
||||
*/
|
||||
char m_unitsState;
|
||||
char m_unitsState;
|
||||
|
||||
//! Multiplier for the mole numbers within the nondimensionless formulation
|
||||
/*!
|
||||
|
|
@ -1830,7 +1830,7 @@ public:
|
|||
*/
|
||||
double m_totalMoleScale;
|
||||
|
||||
//! specifies the activity convention of the phase containing the species
|
||||
//! specifies the activity convention of the phase containing the species
|
||||
/*!
|
||||
* * 0 = molar based
|
||||
* * 1 = molality based
|
||||
|
|
@ -1848,7 +1848,7 @@ public:
|
|||
*/
|
||||
std::vector<int> m_phaseActConvention;
|
||||
|
||||
//! specifies the ln(Mnaught) used to calculate the chemical potentials
|
||||
//! specifies the ln(Mnaught) used to calculate the chemical potentials
|
||||
/*!
|
||||
* For molar based activity conventions this will be equal to 0.0.
|
||||
* length = number of species.
|
||||
|
|
@ -1890,7 +1890,7 @@ public:
|
|||
std::vector<std::vector<size_t> > phasePopProblemLists_;
|
||||
|
||||
//! Vector of pointers to thermostructures which identify the model
|
||||
//! and parameters for evaluating the thermodynamic functions for that
|
||||
//! and parameters for evaluating the thermodynamic functions for that
|
||||
//! particular species.
|
||||
/*!
|
||||
* SpeciesThermo[k] pointer to the thermo information for the kth species
|
||||
|
|
@ -1900,7 +1900,7 @@ public:
|
|||
//! Choice of Hessians
|
||||
/*!
|
||||
* If this is true, then we will use a better approximation to the
|
||||
* Hessian based on Jacobian of the ln(ActCoeff) with respect to mole
|
||||
* Hessian based on Jacobian of the ln(ActCoeff) with respect to mole
|
||||
* numbers
|
||||
*/
|
||||
int m_useActCoeffJac;
|
||||
|
|
|
|||
|
|
@ -17,15 +17,15 @@ namespace Cantera
|
|||
class vcs_VolPhase;
|
||||
|
||||
// Models for the species standard state Naught temperature dependence
|
||||
#define VCS_SS0_NOTHANDLED -1
|
||||
#define VCS_SS0_CONSTANT 0
|
||||
//#define VCS_SS0_NASA_POLY 1
|
||||
#define VCS_SS0_CONSTANT_CP 2
|
||||
#define VCS_SS0_NOTHANDLED -1
|
||||
#define VCS_SS0_CONSTANT 0
|
||||
//#define VCS_SS0_NASA_POLY 1
|
||||
#define VCS_SS0_CONSTANT_CP 2
|
||||
|
||||
// Models for the species standard state extra pressure dependence
|
||||
#define VCS_SSSTAR_NOTHANDLED -1
|
||||
#define VCS_SSSTAR_CONSTANT 0
|
||||
#define VCS_SSSTAR_IDEAL_GAS 1
|
||||
#define VCS_SSSTAR_NOTHANDLED -1
|
||||
#define VCS_SSSTAR_CONSTANT 0
|
||||
#define VCS_SSSTAR_IDEAL_GAS 1
|
||||
|
||||
/*!
|
||||
* Identifies the thermo model for the species. This structure is shared by
|
||||
|
|
@ -51,7 +51,7 @@ public:
|
|||
//! Integer representing the models for the species standard state
|
||||
//! Naught temperature dependence. They are listed above and start
|
||||
//! with VCS_SS0_...
|
||||
int SS0_Model;
|
||||
int SS0_Model;
|
||||
|
||||
//! Internal storage of the last calculation of the reference naught Gibbs
|
||||
//! free energy at SS0_TSave. (always in units of Kelvin)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public:
|
|||
* inherited from Kinetics even if the application only has
|
||||
* a pointer to Kinetics to work with.
|
||||
*
|
||||
* These routines are basically wrappers around the derived copy constructor.
|
||||
* These routines are basically wrappers around the derived copy constructor.
|
||||
*
|
||||
* @param tpVector Vector of shallow pointers to ThermoPhase objects. this is the
|
||||
* m_thermo vector within this object
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ protected:
|
|||
//! Difference between the global reactants order and the global products
|
||||
//! order. Of type "double" to account for the fact that we can have real-
|
||||
//! valued stoichiometries.
|
||||
vector_fp m_dn;
|
||||
vector_fp m_dn;
|
||||
|
||||
vector_fp m_conc;
|
||||
vector_fp m_grt;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public:
|
|||
//! Constructor.
|
||||
FalloffMgr() :
|
||||
m_worksize(0) {
|
||||
m_factory = FalloffFactory::factory(); // RFB:TODO This raw pointer should be encapsulated
|
||||
m_factory = FalloffFactory::factory(); // RFB:TODO This raw pointer should be encapsulated
|
||||
// because accessing a 'Singleton Factory'
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ protected:
|
|||
std::vector<InterfaceKinetics*> m_vecKinPtrs;
|
||||
|
||||
//! Vector of number of species in each Surface Phase
|
||||
std::vector<size_t> m_nsp;
|
||||
std::vector<size_t> m_nsp;
|
||||
|
||||
//! index of the surface phase in each InterfaceKinetics object
|
||||
std::vector<size_t> m_surfindex;
|
||||
|
|
@ -240,13 +240,13 @@ protected:
|
|||
|
||||
size_t m_numBulkPhases;
|
||||
std::vector<size_t> m_nspBulkPhases;
|
||||
size_t m_numTotalBulkSpecies;
|
||||
size_t m_numTotalBulkSpecies;
|
||||
size_t m_numTotalSpecies;
|
||||
|
||||
std::vector<vector_int> pLocVec;
|
||||
//! Pointer to the CVODE integrator
|
||||
Integrator* m_integ;
|
||||
doublereal m_atol, m_rtol; // tolerances
|
||||
doublereal m_atol, m_rtol; // tolerances
|
||||
doublereal m_maxstep; //!< max step size
|
||||
vector_fp m_work;
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class ImplicitSurfChem;
|
|||
* information about the phases (i.e., temperature pressure, and mole
|
||||
* fraction).
|
||||
*
|
||||
* The extrinsic specification of whether a phase exists or not must be
|
||||
* The extrinsic specification of whether a phase exists or not must be
|
||||
* specified on top of the intrinsic calculation of the reaction rate. This
|
||||
* class carries a set of booleans indicating whether a phase in the
|
||||
* heterogeneous mechanism exists or not.
|
||||
|
|
@ -113,7 +113,7 @@ public:
|
|||
*
|
||||
* units = J kmol-1
|
||||
*
|
||||
* @param deltaG Output vector of deltaG's for reactions Length:
|
||||
* @param deltaG Output vector of deltaG's for reactions Length:
|
||||
* nReactions(). If 0, this updates the internally stored values only.
|
||||
*/
|
||||
virtual void getDeltaGibbs(doublereal* deltaG);
|
||||
|
|
@ -283,7 +283,7 @@ public:
|
|||
|
||||
//! When an electrode reaction rate is optionally specified in terms of its
|
||||
//! exchange current density, adjust kfwd to the standard reaction rate constant form and units.
|
||||
//! When the BV reaction types are used, keep the exchange current density form.
|
||||
//! When the BV reaction types are used, keep the exchange current density form.
|
||||
/*!
|
||||
* For a reaction rate constant that was given in units of Amps/m2 (exchange current
|
||||
* density formulation with iECDFormulation == true), convert the rate to
|
||||
|
|
@ -498,7 +498,7 @@ protected:
|
|||
//! Electrochemical transfer coefficient for the forward direction
|
||||
/*!
|
||||
* Electrochemical transfer coefficient for all reactions that have transfer reactions
|
||||
* the reaction is given by m_ctrxn[i]
|
||||
* the reaction is given by m_ctrxn[i]
|
||||
*/
|
||||
vector_fp m_beta;
|
||||
|
||||
|
|
|
|||
|
|
@ -477,7 +477,7 @@ public:
|
|||
*
|
||||
* units = J kmol-1
|
||||
*
|
||||
* @param deltaG Output vector of deltaG's for reactions Length:
|
||||
* @param deltaG Output vector of deltaG's for reactions Length:
|
||||
* nReactions().
|
||||
*/
|
||||
virtual void getDeltaGibbs(doublereal* deltaG) {
|
||||
|
|
@ -492,7 +492,7 @@ public:
|
|||
*
|
||||
* units = J kmol-1
|
||||
*
|
||||
* @param deltaM Output vector of deltaM's for reactions Length:
|
||||
* @param deltaM Output vector of deltaM's for reactions Length:
|
||||
* nReactions().
|
||||
*/
|
||||
virtual void getDeltaElectrochemPotentials(doublereal* deltaM) {
|
||||
|
|
@ -947,7 +947,7 @@ protected:
|
|||
* for the species vector for the n'th phase in the kinetics
|
||||
* class.
|
||||
*/
|
||||
std::vector<size_t> m_start;
|
||||
std::vector<size_t> m_start;
|
||||
|
||||
/**
|
||||
* Mapping of the phase id, i.e., the id attribute in the XML
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public:
|
|||
|
||||
virtual void deleteFactory() {
|
||||
ScopedLock lock(kinetics_mutex);
|
||||
delete s_factory ;
|
||||
s_factory = 0 ;
|
||||
delete s_factory;
|
||||
s_factory = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -76,8 +76,8 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
std::vector<R> m_rates;
|
||||
std::vector<size_t> m_rxn;
|
||||
std::vector<R> m_rates;
|
||||
std::vector<size_t> m_rxn;
|
||||
|
||||
//! map reaction number to index in m_rxn / m_rates
|
||||
std::map<size_t, size_t> m_indices;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
namespace Cantera
|
||||
{
|
||||
enum flow_t { NetFlow, OneWayFlow };
|
||||
enum flow_t { NetFlow, OneWayFlow };
|
||||
|
||||
// forward references
|
||||
class Path;
|
||||
|
|
@ -33,10 +33,10 @@ public:
|
|||
virtual ~SpeciesNode() {}
|
||||
|
||||
// public attributes
|
||||
size_t number; ///< Species number
|
||||
std::string name; ///< Label on graph
|
||||
doublereal value; ///< May be used to set node appearance
|
||||
bool visible; ///< Visible on graph;
|
||||
size_t number; ///< Species number
|
||||
std::string name; ///< Label on graph
|
||||
doublereal value; ///< May be used to set node appearance
|
||||
bool visible; ///< Visible on graph;
|
||||
|
||||
/**
|
||||
* @name References.
|
||||
|
|
@ -44,10 +44,10 @@ public:
|
|||
* to another node.
|
||||
*/
|
||||
//@{
|
||||
Path* path(int n) {
|
||||
Path* path(int n) {
|
||||
return m_paths[n];
|
||||
}
|
||||
const Path* path(int n) const {
|
||||
const Path* path(int n) const {
|
||||
return m_paths[n];
|
||||
}
|
||||
//@}
|
||||
|
|
@ -269,8 +269,7 @@ public:
|
|||
std::string dashed_color;
|
||||
std::string element;
|
||||
std::string m_font;
|
||||
doublereal threshold,
|
||||
bold_min, dashed_max, label_min;
|
||||
doublereal threshold, bold_min, dashed_max, label_min;
|
||||
doublereal x_size, y_size;
|
||||
std::string name, dot_options;
|
||||
flow_t flow_type;
|
||||
|
|
@ -280,14 +279,14 @@ public:
|
|||
doublereal arrow_hue;
|
||||
|
||||
protected:
|
||||
doublereal m_flxmax;
|
||||
doublereal m_flxmax;
|
||||
std::map<size_t, std::map<size_t, Path*> > m_paths;
|
||||
std::map<size_t, SpeciesNode*> m_nodes;
|
||||
std::vector<Path*> m_pathlist;
|
||||
std::vector<std::string> m_include;
|
||||
std::vector<std::string> m_exclude;
|
||||
std::vector<Path*> m_pathlist;
|
||||
std::vector<std::string> m_include;
|
||||
std::vector<std::string> m_exclude;
|
||||
std::vector<size_t> m_speciesNumber;
|
||||
std::map<size_t, int> m_rxns;
|
||||
std::map<size_t, int> m_rxns;
|
||||
size_t m_local;
|
||||
};
|
||||
|
||||
|
|
@ -324,7 +323,7 @@ protected:
|
|||
std::vector<std::vector<int> > m_groups;
|
||||
std::vector<Group> m_sgroup;
|
||||
std::vector<std::string> m_elementSymbols;
|
||||
std::map<size_t, std::map<size_t, std::map<size_t, Group> > > m_transfer;
|
||||
std::map<size_t, std::map<size_t, std::map<size_t, Group> > > m_transfer;
|
||||
std::vector<bool> m_determinate;
|
||||
Array2D m_atoms;
|
||||
std::map<std::string, size_t> m_enamemap;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public:
|
|||
//! Update concentration-dependent parts of the rate coefficient.
|
||||
/*!
|
||||
* For this class, there are no
|
||||
* concentration-dependent parts, so this method does nothing.
|
||||
* concentration-dependent parts, so this method does nothing.
|
||||
*/
|
||||
void update_C(const doublereal* c) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -657,9 +657,9 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
std::vector<C1> m_c1_list;
|
||||
std::vector<C2> m_c2_list;
|
||||
std::vector<C3> m_c3_list;
|
||||
std::vector<C1> m_c1_list;
|
||||
std::vector<C2> m_c2_list;
|
||||
std::vector<C3> m_c3_list;
|
||||
std::vector<C_AnyN> m_cn_list;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const int THREE_BODY_RXN = 2;
|
|||
* The general form for a gas-phase association or dissociation reaction, with a
|
||||
* pressure-dependent rate. Example: CH3 + H (+M) <-> CH4 (+M)
|
||||
*/
|
||||
const int FALLOFF_RXN = 4;
|
||||
const int FALLOFF_RXN = 4;
|
||||
|
||||
/**
|
||||
* A pressure-dependent rate expression consisting of several Arrhenius rate
|
||||
|
|
@ -61,7 +61,7 @@ const int CHEBYSHEV_RXN = 6;
|
|||
* a reaction intermediate. Example: Si + SiH4 (+M) <-> Si2H2 + H2
|
||||
* (+M), which competes with Si + SiH4 (+M) <-> Si2H4 (+M).
|
||||
*/
|
||||
const int CHEMACT_RXN = 8;
|
||||
const int CHEMACT_RXN = 8;
|
||||
|
||||
/**
|
||||
* A reaction occurring on a surface.
|
||||
|
|
@ -69,7 +69,7 @@ const int CHEMACT_RXN = 8;
|
|||
* The dimensionality of the interface is a separate concept from the type
|
||||
* of the reaction.
|
||||
*/
|
||||
const int SURFACE_RXN = 20;
|
||||
const int SURFACE_RXN = 20;
|
||||
|
||||
//! A reaction occurring on an interface, e.g a surface or edge.
|
||||
const int INTERFACE_RXN = 20;
|
||||
|
|
@ -97,13 +97,13 @@ const int SURFACEAFFINITY_RXN = 27;
|
|||
* The dimensionality of the interface is a separate concept from the type
|
||||
* of the reaction.
|
||||
*/
|
||||
const int EDGE_RXN = 22;
|
||||
const int EDGE_RXN = 22;
|
||||
|
||||
/**
|
||||
* A global reaction. These may have non-mass action reaction orders,
|
||||
* and are not allowed to be reversible.
|
||||
*/
|
||||
const int GLOBAL_RXN = 30;
|
||||
const int GLOBAL_RXN = 30;
|
||||
|
||||
//@}
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ const int CHEBYSHEV_REACTION_RATECOEFF_TYPE = 8;
|
|||
//@{
|
||||
const int SIMPLE_FALLOFF = 100;
|
||||
const int TROE_FALLOFF = 110;
|
||||
const int SRI_FALLOFF = 112;
|
||||
const int SRI_FALLOFF = 112;
|
||||
//@}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ namespace Cantera
|
|||
* values defined in @ref solvesp_methods.
|
||||
*
|
||||
* ### Pseudo time stepping algorithm:
|
||||
* The time step is determined from sdot[], so so that the time step
|
||||
* The time step is determined from sdot[], so that the time step
|
||||
* doesn't ever change the value of a variable by more than 100%.
|
||||
*
|
||||
* This algorithm does use a damped Newton's method to relax the equations.
|
||||
|
|
@ -132,7 +132,7 @@ namespace Cantera
|
|||
*
|
||||
* `EXTRA_ACCURACY`: A constant that is the ratio of the required update norm
|
||||
* in this Newton iteration compared to that in the nonlinear solver. A value
|
||||
* of 0.1 is used so surface species are safely overconverged.
|
||||
* of 0.1 is used so surface species are safely overconverged.
|
||||
*
|
||||
* Functions called:
|
||||
* - `ct_dgetrf` -- First half of LAPACK direct solve of a full Matrix
|
||||
|
|
@ -217,7 +217,7 @@ private:
|
|||
* @param netProdRateSolnSP Output variable. Net production rate of all
|
||||
* of the species in the solution vector.
|
||||
* @param XMolSolnSP output variable. Mole fraction of all of the species
|
||||
* in the solution vector
|
||||
* in the solution vector
|
||||
* @param label Output variable. Pointer to the value of the species
|
||||
* index (kindexSP) that is controlling the time step
|
||||
* @param label_old Output variable. Pointer to the value of the species
|
||||
|
|
@ -288,8 +288,8 @@ private:
|
|||
* @param do_time Calculate a time dependent residual
|
||||
* @param deltaT Delta time for time dependent problem.
|
||||
*/
|
||||
void fun_eval(doublereal* resid, const doublereal* CSolnSP,
|
||||
const doublereal* CSolnOldSP, const bool do_time, const doublereal deltaT);
|
||||
void fun_eval(doublereal* resid, const doublereal* CSolnSP,
|
||||
const doublereal* CSolnOldSP, const bool do_time, const doublereal deltaT);
|
||||
|
||||
//! Main routine that calculates the current residual and Jacobian
|
||||
/*!
|
||||
|
|
@ -305,7 +305,7 @@ private:
|
|||
*/
|
||||
void resjac_eval(SquareMatrix& jac, doublereal* resid,
|
||||
doublereal* CSolnSP,
|
||||
const doublereal* CSolnSPOld, const bool do_time,
|
||||
const doublereal* CSolnSPOld, const bool do_time,
|
||||
const doublereal deltaT);
|
||||
|
||||
//! Pointer to the manager of the implicit surface chemistry problem
|
||||
|
|
@ -397,7 +397,7 @@ private:
|
|||
* This is equal to or less than the total number of volumetric phases in
|
||||
* all of the InterfaceKinetics objects. We usually do not include bulk
|
||||
* phases. Bulk phases are only included in the calculation when their
|
||||
* domain isn't included in the underlying continuum model conservation
|
||||
* domain isn't included in the underlying continuum model conservation
|
||||
* equation system.
|
||||
*
|
||||
* This is equal to 0, for the time being
|
||||
|
|
@ -408,7 +408,7 @@ private:
|
|||
/*!
|
||||
* Length is number of bulk phases
|
||||
*/
|
||||
std::vector<size_t> m_numBulkSpecies;
|
||||
std::vector<size_t> m_numBulkSpecies;
|
||||
|
||||
//! Total number of species in all bulk phases.
|
||||
/*!
|
||||
|
|
@ -444,7 +444,7 @@ private:
|
|||
* varies from 0 to (num species in phase - 1) and `i` is the surface
|
||||
* phase index in the problem. Length is equal to #m_numSurfPhases.
|
||||
*/
|
||||
std::vector<size_t> m_spSurfLarge;
|
||||
std::vector<size_t> m_spSurfLarge;
|
||||
|
||||
//! The absolute tolerance in real units. units are (kmol/m2)
|
||||
doublereal m_atol;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public:
|
|||
|
||||
//! Return the value of element (i,j).
|
||||
/*!
|
||||
* This method does not alter the array.
|
||||
* This method does not alter the array.
|
||||
* @param i row
|
||||
* @param j column
|
||||
* @return Returns the value of the matrix entry
|
||||
|
|
@ -299,7 +299,7 @@ protected:
|
|||
doublereal m_zero;
|
||||
|
||||
//! Pivot vector
|
||||
vector_int m_ipiv;
|
||||
vector_int m_ipiv;
|
||||
|
||||
//! Vector of column pointers
|
||||
std::vector<doublereal*> m_colPtrs;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ private:
|
|||
int m_maxsteps;
|
||||
int m_maxErrTestFails;
|
||||
FuncData* m_fdata;
|
||||
N_Vector* m_yS;
|
||||
N_Vector* m_yS;
|
||||
size_t m_np;
|
||||
int m_mupper, m_mlower;
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ private:
|
|||
bool m_sens_ok;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
#else
|
||||
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ protected:
|
|||
ResidJacEval& m_resid;
|
||||
|
||||
//! Number of total equations in the system
|
||||
integer m_neq;
|
||||
integer m_neq;
|
||||
doublereal m_time;
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public:
|
|||
* LAPACK is handled by either throwing an exception of type, CELapackError, or by
|
||||
* returning the error code condition to the calling routine.
|
||||
*
|
||||
* The int variable, m_useReturnErrorCode, determines which method is used.
|
||||
* The int variable, m_useReturnErrorCode, determines which method is used.
|
||||
* The default value of zero means that an exception is thrown. A value of 1
|
||||
* means that a return code is used.
|
||||
*
|
||||
|
|
@ -102,7 +102,7 @@ public:
|
|||
*/
|
||||
void resize(size_t n, size_t m, doublereal v = 0.0);
|
||||
|
||||
virtual doublereal* const* colPts();
|
||||
virtual doublereal* const* colPts();
|
||||
|
||||
//! Return a const vector of const pointers to the columns
|
||||
/*!
|
||||
|
|
@ -148,7 +148,7 @@ public:
|
|||
|
||||
protected:
|
||||
//! Vector of pivots. Length is equal to the max of m and n.
|
||||
vector_int m_ipiv;
|
||||
vector_int m_ipiv;
|
||||
|
||||
//! Vector of column pointers
|
||||
std::vector<doublereal*> m_colPts;
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ public:
|
|||
m_f2 = &m_f2->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_f2->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -402,7 +402,7 @@ public:
|
|||
m_f2 = &m_f2->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_f2->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -463,7 +463,7 @@ public:
|
|||
m_f2 = &m_f2->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_f2->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -522,7 +522,7 @@ public:
|
|||
Func1::operator=(right);
|
||||
m_f1 = &m_f1->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
virtual int ID() const {
|
||||
|
|
@ -597,7 +597,7 @@ public:
|
|||
Func1::operator=(right);
|
||||
m_f1 = &m_f1->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -658,7 +658,7 @@ public:
|
|||
m_f2 = &m_f2->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_f2->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -724,7 +724,7 @@ public:
|
|||
m_f2 = &m_f2->duplicate();
|
||||
m_f1->setParent(this);
|
||||
m_f2->setParent(this);
|
||||
m_parent = 0;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -791,10 +791,10 @@ public:
|
|||
return *this;
|
||||
}
|
||||
Func1::operator=(right);
|
||||
m_A = right.m_A;
|
||||
m_t0 = right.m_t0;
|
||||
m_tau = right.m_tau;
|
||||
m_parent = 0;
|
||||
m_A = right.m_A;
|
||||
m_t0 = right.m_t0;
|
||||
m_tau = right.m_tau;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -836,9 +836,9 @@ public:
|
|||
return *this;
|
||||
}
|
||||
Func1::operator=(right);
|
||||
m_cpoly = right.m_cpoly;
|
||||
m_n = right.m_n;
|
||||
m_parent = 0;
|
||||
m_cpoly = right.m_cpoly;
|
||||
m_n = right.m_n;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -896,11 +896,11 @@ public:
|
|||
}
|
||||
Func1::operator=(right);
|
||||
m_omega = right.m_omega;
|
||||
m_a0_2 = right.m_a0_2;
|
||||
m_ccos = right.m_ccos;
|
||||
m_csin = right.m_csin;
|
||||
m_n = right.m_n;
|
||||
m_parent = 0;
|
||||
m_a0_2 = right.m_a0_2;
|
||||
m_ccos = right.m_ccos;
|
||||
m_csin = right.m_csin;
|
||||
m_n = right.m_n;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -960,11 +960,11 @@ public:
|
|||
return *this;
|
||||
}
|
||||
Func1::operator=(right);
|
||||
m_n = right.m_n;
|
||||
m_A = right.m_A;
|
||||
m_b = right.m_b;
|
||||
m_E = right.m_E;
|
||||
m_parent = 0;
|
||||
m_n = right.m_n;
|
||||
m_A = right.m_A;
|
||||
m_b = right.m_b;
|
||||
m_E = right.m_E;
|
||||
m_parent = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@
|
|||
#include "sundials/sundials_nvector.h"
|
||||
|
||||
// These constants are defined internally in the IDA package, ida.c
|
||||
#define IDA_NN 0
|
||||
#define IDA_SS 1
|
||||
#define IDA_SV 2
|
||||
#define IDA_WF 3
|
||||
#define IDA_NN 0
|
||||
#define IDA_SS 1
|
||||
#define IDA_SV 2
|
||||
#define IDA_WF 3
|
||||
|
||||
#define REAL_WORKSPACE_SIZE 0
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ public:
|
|||
|
||||
//! Set the stop time
|
||||
/*!
|
||||
* @param tstop the independent variable value past which the solution is not to proceed.
|
||||
* @param tstop the independent variable value past which the solution is not to proceed.
|
||||
*/
|
||||
virtual void setStopTime(doublereal tstop);
|
||||
|
||||
|
|
|
|||
|
|
@ -17,20 +17,20 @@
|
|||
namespace Cantera
|
||||
{
|
||||
|
||||
const int DIAG = 1;
|
||||
const int DIAG = 1;
|
||||
const int DENSE = 2;
|
||||
const int NOJAC = 4;
|
||||
const int JAC = 8;
|
||||
const int GMRES =16;
|
||||
const int BAND =32;
|
||||
const int JAC = 8;
|
||||
const int GMRES = 16;
|
||||
const int BAND = 32;
|
||||
|
||||
/**
|
||||
* Specifies the method used to integrate the system of equations.
|
||||
* Not all methods are supported by all integrators.
|
||||
*/
|
||||
enum MethodType {
|
||||
BDF_Method, /**< Backward Differentiation */
|
||||
Adams_Method /**< Adams */
|
||||
BDF_Method, /**< Backward Differentiation */
|
||||
Adams_Method /**< Adams */
|
||||
};
|
||||
|
||||
//! Specifies the method used for iteration.
|
||||
|
|
@ -212,6 +212,6 @@ private:
|
|||
// defined in ODE_integrators.cpp
|
||||
Integrator* newIntegrator(const std::string& itype);
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -44,9 +44,9 @@ enum ResidEval_Type_Enum {
|
|||
|
||||
//! Wrappers for the function evaluators for Nonlinear solvers and Time steppers
|
||||
/*!
|
||||
* A class for full (non-sparse dense matrices with Fortran-compatible data storage.
|
||||
* A class for full (non-sparse dense matrices with Fortran-compatible data storage.
|
||||
* The class adds support for identifying what types of calls are made to the residual
|
||||
* evaluator by adding the ResidEval_Type_Enum class.
|
||||
* evaluator by adding the ResidEval_Type_Enum class.
|
||||
*/
|
||||
class ResidJacEval : public ResidEval
|
||||
{
|
||||
|
|
@ -106,7 +106,7 @@ public:
|
|||
const doublereal* const ydot,
|
||||
doublereal* const r);
|
||||
|
||||
virtual int getInitialConditions(const doublereal t0, doublereal* const y, doublereal* const ydot);
|
||||
virtual int getInitialConditions(const doublereal t0, doublereal* const y, doublereal* const ydot);
|
||||
|
||||
//! Filter the solution predictions
|
||||
/*!
|
||||
|
|
@ -152,8 +152,8 @@ public:
|
|||
* 1 Means a successful operation
|
||||
* -0 or neg value Means an unsuccessful operation
|
||||
*/
|
||||
virtual int evalTimeTrackingEqns(const doublereal t, const doublereal delta_t, const doublereal* const y,
|
||||
const doublereal* const ydot);
|
||||
virtual int evalTimeTrackingEqns(const doublereal t, const doublereal delta_t, const doublereal* const y,
|
||||
const doublereal* const ydot);
|
||||
|
||||
//! Evaluate any stopping criteria other than a final time limit
|
||||
/*!
|
||||
|
|
@ -256,8 +256,8 @@ public:
|
|||
* 1 Means a successful operation
|
||||
* -0 or neg value Means an unsuccessful operation
|
||||
*/
|
||||
virtual int matrixConditioning(doublereal* const matrix, const int nrows,
|
||||
doublereal* const rhs);
|
||||
virtual int matrixConditioning(doublereal* const matrix, const int nrows,
|
||||
doublereal* const rhs);
|
||||
|
||||
//! Calculate an analytical Jacobian and the residual at the current time and values.
|
||||
/*!
|
||||
|
|
@ -287,7 +287,7 @@ public:
|
|||
* @param cj Coefficient of yprime used in the evaluation of the Jacobian
|
||||
* @param y Solution vector (input, do not modify)
|
||||
* @param ydot Rate of change of solution vector. (input, do not modify)
|
||||
* @param jacobianColPts Pointer to the vector of pts to columns of the SquareMatrix
|
||||
* @param jacobianColPts Pointer to the vector of pts to columns of the SquareMatrix
|
||||
* object to be calculated (output)
|
||||
* @param resid Value of the residual that is computed (output)
|
||||
* @return Returns a flag to indicate that operation is successful.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Cantera
|
|||
/// @name Constant which determines the return integer from the routine
|
||||
|
||||
//! This means that the root solver was a success
|
||||
#define ROOTFIND_SUCCESS 0
|
||||
#define ROOTFIND_SUCCESS 0
|
||||
//! This return value means that the root finder resolved a solution in the x coordinate
|
||||
//! However, convergence in F was not achieved.
|
||||
/*!
|
||||
|
|
@ -36,13 +36,13 @@ namespace Cantera
|
|||
*/
|
||||
#define ROOTFIND_SUCCESS_XCONVERGENCEONLY 1
|
||||
//! This means that the root solver failed to achieve convergence
|
||||
#define ROOTFIND_FAILEDCONVERGENCE -1
|
||||
#define ROOTFIND_FAILEDCONVERGENCE -1
|
||||
//! This means that the input to the root solver was defective
|
||||
#define ROOTFIND_BADINPUT -2
|
||||
#define ROOTFIND_BADINPUT -2
|
||||
//! This means that the rootfinder believes the solution is lower than xmin
|
||||
#define ROOTFIND_SOLNLOWERTHANXMIN -3
|
||||
#define ROOTFIND_SOLNLOWERTHANXMIN -3
|
||||
//! This means that the rootfinder believes the solution is higher than xmax
|
||||
#define ROOTFIND_SOLNHIGHERTHANXMAX -4
|
||||
#define ROOTFIND_SOLNHIGHERTHANXMAX -4
|
||||
//@}
|
||||
|
||||
//! Root finder for 1D problems
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public:
|
|||
|
||||
virtual GeneralMatrix* duplMyselfAsGeneralMatrix() const;
|
||||
|
||||
virtual vector_fp::iterator begin();
|
||||
virtual vector_fp::iterator begin();
|
||||
virtual vector_fp::const_iterator begin() const;
|
||||
|
||||
virtual doublereal* const* colPts();
|
||||
|
|
|
|||
|
|
@ -130,22 +130,22 @@ extern "C" {
|
|||
int _DSCAL_(integer* n, doublereal* da, doublereal* dx, integer* incx);
|
||||
|
||||
int _DGEQRF_(const integer* m, const integer* n, doublereal* a, const integer* lda,
|
||||
doublereal* tau, doublereal* work, const integer* lwork, integer* info);
|
||||
doublereal* tau, doublereal* work, const integer* lwork, integer* info);
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DORMQR_(const char* side, const char* trans, const integer* m, const integer* n,
|
||||
int _DORMQR_(const char* side, const char* trans, const integer* m, const integer* n,
|
||||
const integer* k, doublereal* a, const integer* lda,
|
||||
doublereal* tau, doublereal* c, const integer* ldc,
|
||||
doublereal* work, const integer* lwork, integer* info, ftnlen sisize, ftnlen trsize);
|
||||
doublereal* work, const integer* lwork, integer* info, ftnlen sisize, ftnlen trsize);
|
||||
#else
|
||||
int _DORMQR_(const char* side, ftnlen sisize, const char* trans, ftnlen trsize, const integer* m,
|
||||
const integer* n, const integer* k, doublereal* a, const integer* lda,
|
||||
doublereal* tau,doublereal* c, const integer* ldc,
|
||||
doublereal* work, const integer* lwork, integer* info);
|
||||
doublereal* work, const integer* lwork, integer* info);
|
||||
#endif
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DTRTRS_(const char* uplo, const char* trans, const char* diag, const integer* n,
|
||||
int _DTRTRS_(const char* uplo, const char* trans, const char* diag, const integer* n,
|
||||
const integer* nrhs, doublereal* a, const integer* lda,
|
||||
doublereal* b, const integer* ldb, integer* info,
|
||||
ftnlen upsize, ftnlen trsize, ftnlen disize);
|
||||
|
|
@ -157,7 +157,7 @@ extern "C" {
|
|||
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DTRCON_(const char* norm, const char* uplo, const char* diag, const integer* n,
|
||||
int _DTRCON_(const char* norm, const char* uplo, const char* diag, const integer* n,
|
||||
doublereal* a, const integer* lda, const doublereal* rcond,
|
||||
doublereal* work, const integer* iwork, integer* info, ftnlen nosize,
|
||||
ftnlen upsize, ftnlen disize);
|
||||
|
|
@ -169,23 +169,23 @@ extern "C" {
|
|||
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DPOTRF_(const char* uplo, const integer* n, doublereal* a, const integer* lda, integer* info,
|
||||
int _DPOTRF_(const char* uplo, const integer* n, doublereal* a, const integer* lda, integer* info,
|
||||
ftnlen upsize);
|
||||
#else
|
||||
int _DPOTRF_(const char* uplo, ftnlen upsize, const integer* n, doublereal* a, const integer* lda,
|
||||
int _DPOTRF_(const char* uplo, ftnlen upsize, const integer* n, doublereal* a, const integer* lda,
|
||||
integer* info);
|
||||
#endif
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DPOTRS_(const char* uplo, const integer* n, const integer* nrhs, doublereal* a, const integer* lda,
|
||||
int _DPOTRS_(const char* uplo, const integer* n, const integer* nrhs, doublereal* a, const integer* lda,
|
||||
doublereal* b, const integer* ldb, integer* info, ftnlen upsize);
|
||||
#else
|
||||
int _DPOTRS_(const char* uplo, ftnlen upsize, const integer* n, const integer* nrhs, doublereal* a, const integer* lda,
|
||||
int _DPOTRS_(const char* uplo, ftnlen upsize, const integer* n, const integer* nrhs, doublereal* a, const integer* lda,
|
||||
doublereal* b, const integer* ldb, integer* info);
|
||||
#endif
|
||||
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
int _DGECON_(const char* norm, const integer* n, doublereal* a, const integer* lda,
|
||||
int _DGECON_(const char* norm, const integer* n, doublereal* a, const integer* lda,
|
||||
const doublereal* rnorm, const doublereal* rcond,
|
||||
doublereal* work, const integer* iwork, integer* info, ftnlen nosize);
|
||||
#else
|
||||
|
|
@ -199,7 +199,7 @@ extern "C" {
|
|||
const integer* ipiv, const doublereal* anorm, const doublereal* rcond,
|
||||
doublereal* work, const integer* iwork, integer* info, ftnlen nosize);
|
||||
#else
|
||||
int _DGBCON_(const char* norm, ftnlen nosize, const integer* n, integer* kl, integer* ku, doublereal* ab, const integer* ldab,
|
||||
int _DGBCON_(const char* norm, ftnlen nosize, const integer* n, integer* kl, integer* ku, doublereal* ab, const integer* ldab,
|
||||
const integer* ipiv, const doublereal* anorm, const doublereal* rcond,
|
||||
doublereal* work, const integer* iwork, integer* info);
|
||||
#endif
|
||||
|
|
@ -387,13 +387,13 @@ inline void ct_dormqr(ctlapack::side_t rlside, ctlapack::transpose_t trans, size
|
|||
integer f_ldc = static_cast<integer>(ldc);
|
||||
integer f_info = 0;
|
||||
#ifdef NO_FTN_STRING_LEN_AT_END
|
||||
_DORMQR_(&side, &tr, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info);
|
||||
_DORMQR_(&side, &tr, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info);
|
||||
#else
|
||||
ftnlen trsize = 1;
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
_DORMQR_(&side, &tr, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info, trsize, trsize);
|
||||
_DORMQR_(&side, &tr, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info, trsize, trsize);
|
||||
#else
|
||||
_DORMQR_(&side, trsize, &tr, trsize, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info);
|
||||
_DORMQR_(&side, trsize, &tr, trsize, &f_m, &f_n, &f_k, a, &f_lda, tau, c, &f_ldc, work, &f_lwork, &f_info);
|
||||
#endif
|
||||
#endif
|
||||
info = f_info;
|
||||
|
|
@ -430,7 +430,7 @@ inline void ct_dtrtrs(ctlapack::upperlower_t uplot, ctlapack::transpose_t trans,
|
|||
* @param work Must be dimensioned equal to greater than 3N
|
||||
* @param iwork Must be dimensioned equal to or greater than N
|
||||
*/
|
||||
inline doublereal ct_dtrcon(const char* norm, ctlapack::upperlower_t uplot, const char* diag,
|
||||
inline doublereal ct_dtrcon(const char* norm, ctlapack::upperlower_t uplot, const char* diag,
|
||||
size_t n, doublereal* a, size_t lda, doublereal* work, int* iwork, int& info)
|
||||
{
|
||||
char uplo = upper_lower[uplot];
|
||||
|
|
@ -518,13 +518,13 @@ inline doublereal ct_dgecon(const char norm, size_t n, doublereal* a, size_t lda
|
|||
doublereal rcond;
|
||||
|
||||
#ifdef NO_FTN_STRING_LEN_AT_END
|
||||
_DGECON_(&cnorm, &f_n a, &f_lda, &anorm, &rcond, work, iwork, &f_info);
|
||||
_DGECON_(&cnorm, &f_n a, &f_lda, &anorm, &rcond, work, iwork, &f_info);
|
||||
#else
|
||||
ftnlen trsize = 1;
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
_DGECON_(&cnorm, &f_n, a, &f_lda, &anorm, &rcond, work, iwork, &f_info, trsize);
|
||||
_DGECON_(&cnorm, &f_n, a, &f_lda, &anorm, &rcond, work, iwork, &f_info, trsize);
|
||||
#else
|
||||
_DGECON_(&cnorm, trsize, &f_n, a, &f_lda, &anorm, &rcond, work, iwork, &f_info);
|
||||
_DGECON_(&cnorm, trsize, &f_n, a, &f_lda, &anorm, &rcond, work, iwork, &f_info);
|
||||
#endif
|
||||
#endif
|
||||
info = f_info;
|
||||
|
|
@ -573,13 +573,13 @@ inline doublereal ct_dlange(const char norm, size_t m, size_t n, doublereal* a,
|
|||
doublereal anorm;
|
||||
|
||||
#ifdef NO_FTN_STRING_LEN_AT_END
|
||||
anorm = _DLANGE_(&cnorm, &f_m, &f_n a, &f_lda, work);
|
||||
anorm = _DLANGE_(&cnorm, &f_m, &f_n a, &f_lda, work);
|
||||
#else
|
||||
ftnlen trsize = 1;
|
||||
#ifdef LAPACK_FTN_STRING_LEN_AT_END
|
||||
anorm = _DLANGE_(&cnorm, &f_m, &f_n, a, &f_lda, work, trsize);
|
||||
anorm = _DLANGE_(&cnorm, &f_m, &f_n, a, &f_lda, work, trsize);
|
||||
#else
|
||||
anorm = _DLANGE_(&cnorm, trsize, &f_m, &f_n, a, &f_lda, work);
|
||||
anorm = _DLANGE_(&cnorm, trsize, &f_m, &f_n, a, &f_lda, work);
|
||||
#endif
|
||||
#endif
|
||||
return anorm;
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ namespace Cantera
|
|||
/*!
|
||||
* Given a collection of points X(I) and a set of values Y(I) which
|
||||
* correspond to some function or measurement at each of the X(I),
|
||||
* subroutine DPOLFT computes the weighted least-squares polynomial
|
||||
* subroutine DPOLFT computes the weighted least-squares polynomial
|
||||
* fits of all degrees up to some degree either specified by the user
|
||||
* or determined by the routine. The fits thus obtained are in
|
||||
* orthogonal polynomial form. Subroutine DP1VLU may then be
|
||||
* orthogonal polynomial form. Subroutine DP1VLU may then be
|
||||
* called to evaluate the fitted polynomials and any of their
|
||||
* derivatives at any point. The subroutine DPCOEF may be used to
|
||||
* derivatives at any point. The subroutine DPCOEF may be used to
|
||||
* express the polynomial fits as powers of (X-C) for any specified
|
||||
* point C.
|
||||
*
|
||||
|
|
@ -34,34 +34,34 @@ namespace Cantera
|
|||
* distinct. There are n of them.
|
||||
* @param y array of corresponding function values. There are n of them
|
||||
* @param w array of positive values to be used as weights. If
|
||||
* W[0] is negative, DPOLFT will set all the weights
|
||||
* W[0] is negative, DPOLFT will set all the weights
|
||||
* to 1.0, which means unweighted least squares error
|
||||
* will be minimized. To minimize relative error, the
|
||||
* user should set the weights to: W(I) = 1.0/Y(I)**2,
|
||||
* I = 1,...,N .
|
||||
* @param maxdeg maximum degree to be allowed for polynomial fit.
|
||||
* MAXDEG may be any non-negative integer less than N.
|
||||
* Note -- MAXDEG cannot be equal to N-1 when a
|
||||
* MAXDEG may be any non-negative integer less than N.
|
||||
* Note -- MAXDEG cannot be equal to N-1 when a
|
||||
* statistical test is to be used for degree selection,
|
||||
* i.e., when input value of EPS is negative.
|
||||
* i.e., when input value of EPS is negative.
|
||||
* @param ndeg output degree of the fit computed.
|
||||
* @param eps Specifies the criterion to be used in determining
|
||||
* the degree of fit to be computed.
|
||||
* (1) If EPS is input negative, DPOLFT chooses the
|
||||
* (1) If EPS is input negative, DPOLFT chooses the
|
||||
* degree based on a statistical F test of
|
||||
* significance. One of three possible
|
||||
* significance levels will be used: .01, .05 or
|
||||
* .10. If EPS=-1.0 , the routine will
|
||||
* .10. If EPS=-1.0 , the routine will
|
||||
* automatically select one of these levels based
|
||||
* on the number of data points and the maximum
|
||||
* degree to be considered. If EPS is input as
|
||||
* degree to be considered. If EPS is input as
|
||||
* -.01, -.05, or -.10, a significance level of
|
||||
* .01, .05, or .10, respectively, will be used.
|
||||
* (2) If EPS is set to 0., DPOLFT computes the
|
||||
* polynomials of degrees 0 through MAXDEG .
|
||||
* (3) If EPS is input positive, EPS is the RMS
|
||||
* (2) If EPS is set to 0., DPOLFT computes the
|
||||
* polynomials of degrees 0 through MAXDEG .
|
||||
* (3) If EPS is input positive, EPS is the RMS
|
||||
* error tolerance which must be satisfied by the
|
||||
* fitted polynomial. DPOLFT will increase the
|
||||
* fitted polynomial. DPOLFT will increase the
|
||||
* degree of fit until this criterion is met or
|
||||
* until the maximum degree is reached.
|
||||
* @param r Output vector containing the first ndeg+1 Taylor coefficients
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@ namespace Cantera
|
|||
{
|
||||
|
||||
// domain types
|
||||
const int cFlowType = 50;
|
||||
const int cConnectorType = 100;
|
||||
const int cSurfType = 102;
|
||||
const int cInletType = 104;
|
||||
const int cSymmType = 105;
|
||||
const int cOutletType = 106;
|
||||
const int cEmptyType = 107;
|
||||
const int cOutletResType = 108;
|
||||
const int cPorousType = 109;
|
||||
const int cFlowType = 50;
|
||||
const int cConnectorType = 100;
|
||||
const int cSurfType = 102;
|
||||
const int cInletType = 104;
|
||||
const int cSymmType = 105;
|
||||
const int cOutletType = 106;
|
||||
const int cEmptyType = 107;
|
||||
const int cOutletResType = 108;
|
||||
const int cPorousType = 109;
|
||||
|
||||
class MultiJac;
|
||||
class OneDim;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ protected:
|
|||
*/
|
||||
OneDim* m_resid;
|
||||
|
||||
vector_fp m_r1;
|
||||
vector_fp m_r1;
|
||||
doublereal m_rtol, m_atol;
|
||||
doublereal m_elapsed;
|
||||
vector_fp m_ssdiag;
|
||||
|
|
|
|||
|
|
@ -253,21 +253,21 @@ public:
|
|||
protected:
|
||||
void evalSSJacobian(doublereal* x, doublereal* xnew);
|
||||
|
||||
doublereal m_tmin; // minimum timestep size
|
||||
doublereal m_tmax; // maximum timestep size
|
||||
doublereal m_tfactor; // factor time step is multiplied by
|
||||
doublereal m_tmin; // minimum timestep size
|
||||
doublereal m_tmax; // maximum timestep size
|
||||
doublereal m_tfactor; // factor time step is multiplied by
|
||||
// if time stepping fails ( < 1 )
|
||||
|
||||
MultiJac* m_jac; // Jacobian evaluator
|
||||
MultiNewton* m_newt; // Newton iterator
|
||||
doublereal m_rdt; // reciprocal of time step
|
||||
bool m_jac_ok; // if true, Jacobian is current
|
||||
MultiJac* m_jac; // Jacobian evaluator
|
||||
MultiNewton* m_newt; // Newton iterator
|
||||
doublereal m_rdt; // reciprocal of time step
|
||||
bool m_jac_ok; // if true, Jacobian is current
|
||||
|
||||
//! number of domains
|
||||
size_t m_nd;
|
||||
|
||||
size_t m_bw; // Jacobian bandwidth
|
||||
size_t m_size; // solution vector size
|
||||
size_t m_bw; // Jacobian bandwidth
|
||||
size_t m_size; // solution vector size
|
||||
|
||||
std::vector<Domain1D*> m_dom, m_connect, m_bulk;
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public:
|
|||
* the leftmost grid point in the domain.
|
||||
* @param value the value.
|
||||
*/
|
||||
void setValue(size_t dom, size_t comp, size_t localPoint, doublereal value);
|
||||
void setValue(size_t dom, size_t comp, size_t localPoint, doublereal value);
|
||||
|
||||
/**
|
||||
* Get one entry in the solution vector.
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ namespace Cantera
|
|||
//------------------------------------------
|
||||
|
||||
// Offsets of solution components in the solution array.
|
||||
const size_t c_offset_U = 0; // axial velocity
|
||||
const size_t c_offset_V = 1; // strain rate
|
||||
const size_t c_offset_T = 2; // temperature
|
||||
const size_t c_offset_L = 3; // (1/r)dP/dr
|
||||
const size_t c_offset_Y = 4; // mass fractions
|
||||
const size_t c_offset_U = 0; // axial velocity
|
||||
const size_t c_offset_V = 1; // strain rate
|
||||
const size_t c_offset_T = 2; // temperature
|
||||
const size_t c_offset_L = 3; // (1/r)dP/dr
|
||||
const size_t c_offset_Y = 4; // mass fractions
|
||||
|
||||
// Transport option flags
|
||||
const int c_Mixav_Transport = 0;
|
||||
|
|
@ -318,7 +318,7 @@ protected:
|
|||
setGas(x,j);
|
||||
m_rho[j] = m_thermo->density();
|
||||
m_wtm[j] = m_thermo->meanMolecularWeight();
|
||||
m_cp[j] = m_thermo->cp_mass();
|
||||
m_cp[j] = m_thermo->cp_mass();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -428,7 +428,7 @@ protected:
|
|||
// member data
|
||||
//---------------------------------------------------------
|
||||
|
||||
doublereal m_press; // pressure
|
||||
doublereal m_press; // pressure
|
||||
|
||||
// grid parameters
|
||||
vector_fp m_dz;
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the functions of
|
||||
* temperature needed by this parameterization, and three pointers to arrays where the
|
||||
* temperature needed by this parameterization, and three pointers to arrays where the
|
||||
* computed property values should be written. This method updates only one value in
|
||||
* each array.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ public:
|
|||
//! state of the species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* Units are Joules/kmol
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getPureGibbs(doublereal* gpure) const {
|
||||
|
|
@ -159,7 +159,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
void getEnthalpy_RT(doublereal* hrt) const {
|
||||
|
|
@ -170,7 +170,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
void getEntropy_R(doublereal* sr) const {
|
||||
|
|
@ -307,19 +307,19 @@ public:
|
|||
|
||||
protected:
|
||||
//! Temporary storage for dimensionless reference state enthalpies
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_h0_RT;
|
||||
|
||||
//! Temporary storage for dimensionless reference state heat capacities
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_cp0_R;
|
||||
|
||||
//! Temporary storage for dimensionless reference state Gibbs energies
|
||||
mutable vector_fp m_g0_RT;
|
||||
mutable vector_fp m_g0_RT;
|
||||
|
||||
//! Temporary storage for dimensionless reference state entropies
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
//! Temporary array containing internally calculated partial pressures
|
||||
mutable vector_fp m_pp;
|
||||
mutable vector_fp m_pp;
|
||||
|
||||
//! Current pressure (Pa)
|
||||
doublereal m_press;
|
||||
|
|
|
|||
|
|
@ -28,18 +28,18 @@ namespace Cantera
|
|||
* These are possible formats for the molality-based activity coefficients.
|
||||
*/
|
||||
//@{
|
||||
#define DHFORM_DILUTE_LIMIT 0
|
||||
#define DHFORM_BDOT_AK 1
|
||||
#define DHFORM_BDOT_ACOMMON 2
|
||||
#define DHFORM_BETAIJ 3
|
||||
#define DHFORM_DILUTE_LIMIT 0
|
||||
#define DHFORM_BDOT_AK 1
|
||||
#define DHFORM_BDOT_ACOMMON 2
|
||||
#define DHFORM_BETAIJ 3
|
||||
#define DHFORM_PITZER_BETAIJ 4
|
||||
//@}
|
||||
/*
|
||||
* @name Acceptable ways to calculate the value of A_Debye
|
||||
*/
|
||||
//@{
|
||||
#define A_DEBYE_CONST 0
|
||||
#define A_DEBYE_WATER 1
|
||||
#define A_DEBYE_CONST 0
|
||||
#define A_DEBYE_WATER 1
|
||||
//@}
|
||||
|
||||
class WaterProps;
|
||||
|
|
@ -108,7 +108,7 @@ class PDSS_Water;
|
|||
* all solutes. The molar volume for the water solvent, however,
|
||||
* is obtained from a pure water equation of state, waterSS.
|
||||
* Therefore, the water standard state varies with both T and P.
|
||||
* It is an error to request standard state water properties at a T and P
|
||||
* It is an error to request standard state water properties at a T and P
|
||||
* where the water phase is not a stable phase, i.e., beyond its
|
||||
* spinodal curve.
|
||||
*
|
||||
|
|
@ -117,7 +117,7 @@ class PDSS_Water;
|
|||
* <HR>
|
||||
*
|
||||
* Chemical potentials
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* on the molality form, have the following general format:
|
||||
*
|
||||
* \f[
|
||||
|
|
@ -785,7 +785,7 @@ public:
|
|||
|
||||
/**
|
||||
* @}
|
||||
* @name Activities, Standard States, and Activity Concentrations
|
||||
* @name Activities, Standard States, and Activity Concentrations
|
||||
*
|
||||
* The activity \f$a_k\f$ of a species in solution is
|
||||
* related to the chemical potential by \f[ \mu_k = \mu_k^0(T)
|
||||
|
|
@ -924,7 +924,7 @@ public:
|
|||
* \f]
|
||||
*
|
||||
* The reference-state pure-species entropies,\f$ \hat s^0_k(T) \f$,
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* species thermodynamic
|
||||
* property manager. They are polynomial functions of temperature.
|
||||
* @see SpeciesThermo
|
||||
|
|
@ -1025,9 +1025,9 @@ public:
|
|||
* to see if phaseNode is pointing to the phase
|
||||
* with the correct id.
|
||||
*/
|
||||
virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
|
||||
virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
|
||||
|
||||
//! Return the Debye Huckel constant as a function of temperature
|
||||
//! Return the Debye Huckel constant as a function of temperature
|
||||
//! and pressure (Units = sqrt(kg/gmol))
|
||||
/*!
|
||||
* The default is to assume that it is constant, given
|
||||
|
|
@ -1163,7 +1163,7 @@ private:
|
|||
//@}
|
||||
|
||||
protected:
|
||||
//! form of the Debye-Huckel parameterization used in the model.
|
||||
//! form of the Debye-Huckel parameterization used in the model.
|
||||
/*!
|
||||
* The options are described at the top of this document,
|
||||
* and in the general documentation.
|
||||
|
|
@ -1219,7 +1219,7 @@ protected:
|
|||
* - nonpolarNeutral
|
||||
* .
|
||||
*/
|
||||
vector_int m_electrolyteSpeciesType;
|
||||
vector_int m_electrolyteSpeciesType;
|
||||
|
||||
/**
|
||||
* a_k = Size of the ionic species in the DH formulation
|
||||
|
|
@ -1316,7 +1316,7 @@ protected:
|
|||
* in some formulations to extend DH to higher molalities. B_dot is
|
||||
* specific to the major ionic pair.
|
||||
*/
|
||||
vector_fp m_B_Dot;
|
||||
vector_fp m_B_Dot;
|
||||
|
||||
/**
|
||||
* These are coefficients to describe the increase in activity coeff for
|
||||
|
|
@ -1326,7 +1326,7 @@ protected:
|
|||
vector_fp m_npActCoeff;
|
||||
|
||||
|
||||
//! Pointer to the Water standard state object
|
||||
//! Pointer to the Water standard state object
|
||||
/*!
|
||||
* derived from the equation of state for water.
|
||||
*/
|
||||
|
|
@ -1342,10 +1342,10 @@ protected:
|
|||
WaterProps* m_waterProps;
|
||||
|
||||
//! Temporary array used in equilibrium calculations
|
||||
mutable vector_fp m_pp;
|
||||
mutable vector_fp m_pp;
|
||||
|
||||
//! vector of size m_kk, used as a temporary holding area.
|
||||
mutable vector_fp m_tmpV;
|
||||
mutable vector_fp m_tmpV;
|
||||
|
||||
/**
|
||||
* Stoichiometric species charge -> This is for calculations
|
||||
|
|
@ -1359,7 +1359,7 @@ protected:
|
|||
* For species that aren't ion pairs, it's equal to the
|
||||
* m_speciesCharge[] value.
|
||||
*/
|
||||
vector_fp m_speciesCharge_Stoich;
|
||||
vector_fp m_speciesCharge_Stoich;
|
||||
|
||||
/**
|
||||
* Array of 2D data used in the DHFORM_BETAIJ formulation
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Cantera
|
|||
*/
|
||||
|
||||
//! An element constraint that is current turned off
|
||||
#define CT_ELEM_TYPE_TURNEDOFF -1
|
||||
#define CT_ELEM_TYPE_TURNEDOFF -1
|
||||
|
||||
//! Normal element constraint consisting of positive coefficients for the
|
||||
//! formula matrix.
|
||||
|
|
@ -32,13 +32,13 @@ namespace Cantera
|
|||
* With this constraint, we may employ various strategies to handle
|
||||
* small values of the element number successfully.
|
||||
*/
|
||||
#define CT_ELEM_TYPE_ABSPOS 0
|
||||
#define CT_ELEM_TYPE_ABSPOS 0
|
||||
|
||||
//! This refers to conservation of electrons
|
||||
/*!
|
||||
* Electrons may have positive or negative values in the Formula matrix.
|
||||
*/
|
||||
#define CT_ELEM_TYPE_ELECTRONCHARGE 1
|
||||
#define CT_ELEM_TYPE_ELECTRONCHARGE 1
|
||||
|
||||
//! This refers to a charge neutrality of a single phase
|
||||
/*!
|
||||
|
|
@ -76,7 +76,7 @@ namespace Cantera
|
|||
/*!
|
||||
* currently there are none
|
||||
*/
|
||||
#define CT_ELEM_TYPE_OTHERCONSTRAINT 6
|
||||
#define CT_ELEM_TYPE_OTHERCONSTRAINT 6
|
||||
//@}
|
||||
|
||||
//! Number indicating we don't know the entropy of the element in its most
|
||||
|
|
@ -95,6 +95,6 @@ namespace Cantera
|
|||
//! @exception CanteraError If a match is not found, throws a CanteraError
|
||||
double LookupWtElements(const std::string& ename);
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace Cantera
|
|||
* R_s = k_s C_{gas}
|
||||
* \f]
|
||||
* where the units for \f$ R_s \f$ are kmol m-2 s-1. \f$ C_{gas} \f$ has units
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* units of m s-1. Nowhere does the concentration of the bulk phase
|
||||
* appear in the rate constant expression, since it's a stoichiometric
|
||||
* phase, and the activity is always equal to 1.0.
|
||||
|
|
@ -176,7 +176,7 @@ public:
|
|||
/*!
|
||||
* @param right Object to be copied
|
||||
*/
|
||||
FixedChemPotSSTP(const FixedChemPotSSTP& right);
|
||||
FixedChemPotSSTP(const FixedChemPotSSTP& right);
|
||||
|
||||
//! Special constructor for the FixecChemPotSSTP class setting an element chemical
|
||||
//! potential directly
|
||||
|
|
@ -252,7 +252,7 @@ public:
|
|||
* \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
|
||||
* \f]
|
||||
*/
|
||||
virtual doublereal thermalExpansionCoeff() const ;
|
||||
virtual doublereal thermalExpansionCoeff() const;
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
@ -343,7 +343,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -351,7 +351,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -373,7 +373,7 @@ public:
|
|||
*/
|
||||
virtual void getCp_R(doublereal* cpr) const;
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* For an incompressible,
|
||||
|
|
@ -448,10 +448,10 @@ public:
|
|||
* This function is resolved in this class. It is assumed that the m_spthermo species thermo
|
||||
* pointer is populated and yields the reference state.
|
||||
*
|
||||
* @param g Output vector containing the reference state
|
||||
* @param g Output vector containing the reference state
|
||||
* Gibbs Free energies. Length: m_kk. Units: J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public:
|
|||
*/
|
||||
GeneralSpeciesThermo& operator=(const GeneralSpeciesThermo& b);
|
||||
|
||||
virtual SpeciesThermo* duplMyselfAsSpeciesThermo() const ;
|
||||
virtual SpeciesThermo* duplMyselfAsSpeciesThermo() const;
|
||||
|
||||
virtual void install_STIT(size_t index,
|
||||
shared_ptr<SpeciesThermoInterpType> stit_ptr);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ public:
|
|||
*/
|
||||
GibbsExcessVPSSTP& operator=(const GibbsExcessVPSSTP& b);
|
||||
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate ThermoPhase objects
|
||||
* inherited from ThermoPhase even if the application only has
|
||||
|
|
@ -285,7 +285,7 @@ public:
|
|||
* @param dlnActCoeffdlnN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) {
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) {
|
||||
throw NotImplementedError("GibbsExcessVPSSTP::getdlnActCoeffdlnN: "
|
||||
"nonzero and nonimplemented");
|
||||
}
|
||||
|
|
@ -479,7 +479,7 @@ protected:
|
|||
//! log of the activity coefficients of the species
|
||||
mutable std::vector<doublereal> dlnActCoeffdlnX_diag_;
|
||||
|
||||
//! Storage for the current derivative values of the gradients with respect to logarithm of the species mole number of the
|
||||
//! Storage for the current derivative values of the gradients with respect to logarithm of the species mole number of the
|
||||
//! log of the activity coefficients of the species
|
||||
/*!
|
||||
* dlnActCoeffdlnN_(k, m) is the derivative of ln(gamma_k) wrt ln mole number of species m
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ namespace Cantera
|
|||
* q1(T - Tr) + q2(T**2 - Tr**2)
|
||||
*/
|
||||
//@{
|
||||
#define PITZER_TEMP_CONSTANT 0
|
||||
#define PITZER_TEMP_LINEAR 1
|
||||
#define PITZER_TEMP_COMPLEX1 2
|
||||
#define PITZER_TEMP_CONSTANT 0
|
||||
#define PITZER_TEMP_LINEAR 1
|
||||
#define PITZER_TEMP_COMPLEX1 2
|
||||
//@}
|
||||
|
||||
/*
|
||||
|
|
@ -74,8 +74,8 @@ namespace Cantera
|
|||
* These defines determine the way A_Debye is calculated
|
||||
*/
|
||||
//@{
|
||||
#define A_DEBYE_CONST 0
|
||||
#define A_DEBYE_WATER 1
|
||||
#define A_DEBYE_CONST 0
|
||||
#define A_DEBYE_WATER 1
|
||||
//@}
|
||||
|
||||
class WaterProps;
|
||||
|
|
@ -154,7 +154,7 @@ class WaterProps;
|
|||
* all solutes. The molar volume for the water solvent, however,
|
||||
* is obtained from a pure water equation of state, waterSS.
|
||||
* Therefore, the water standard state varies with both T and P.
|
||||
* It is an error to request standard state water properties at a T and P
|
||||
* It is an error to request standard state water properties at a T and P
|
||||
* where the water phase is not a stable phase, i.e., beyond its
|
||||
* spinodal curve.
|
||||
*
|
||||
|
|
@ -163,7 +163,7 @@ class WaterProps;
|
|||
* <HR>
|
||||
*
|
||||
* Chemical potentials
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* on the molality form, have the following general format:
|
||||
*
|
||||
* \f[
|
||||
|
|
@ -339,7 +339,7 @@ class WaterProps;
|
|||
* theory depends on the total ionic strength of the solution, and therefore,
|
||||
* \f$ \Phi_{c{c'}} \f$ and \f$ \Phi_{a{a'}} \f$ will depend on <I>I</I>, the
|
||||
* ionic strength. \f$ B_{ca}\f$ is a strong function of the
|
||||
* total ionic strength, <I>I</I>,
|
||||
* total ionic strength, <I>I</I>,
|
||||
* of the electrolyte. The rest of the coefficients are assumed to be independent of the
|
||||
* molalities or ionic strengths. However, all coefficients are potentially functions
|
||||
* of the temperature and pressure of the solution.
|
||||
|
|
@ -399,7 +399,7 @@ class WaterProps;
|
|||
* solfates and other high-valence electrolytes which exhibit significant
|
||||
* association at low ionic strengths.
|
||||
*
|
||||
* The \f$ \beta^{(0)}_{ca} \f$, \f$ \beta^{(1)}_{ca}\f$, \f$ \beta^{(2)}_{ca} \f$,
|
||||
* The \f$ \beta^{(0)}_{ca} \f$, \f$ \beta^{(1)}_{ca}\f$, \f$ \beta^{(2)}_{ca} \f$,
|
||||
* and \f$ C_{ca} \f$ binary coefficients are referred to as ion-interaction or
|
||||
* Pitzer parameters. These Pitzer parameters may vary with temperature and pressure
|
||||
* but they do not depend on the ionic strength. Their values and temperature
|
||||
|
|
@ -603,7 +603,7 @@ class WaterProps;
|
|||
* Therefore,
|
||||
* a formalism wherein all of the coefficients in the base theory have
|
||||
* temperature dependencies associated with them has been implemented
|
||||
* within the HMWSoln object. Much of the formalism, however,
|
||||
* within the HMWSoln object. Much of the formalism, however,
|
||||
* has been unexercised.
|
||||
*
|
||||
* In the HMWSoln object, the temperature dependence of the Pitzer
|
||||
|
|
@ -633,7 +633,7 @@ class WaterProps;
|
|||
* \f$ C_{MX}\f$
|
||||
* The specification of \f$ B_{MX}\f$ is a function of
|
||||
* \f$\beta^{(0)}_{MX} \f$, \f$\beta^{(1)}_{MX} \f$,
|
||||
* \f$\beta^{(2)}_{MX} \f$, \f$\alpha^{(1)}_{MX} \f$, and
|
||||
* \f$\beta^{(2)}_{MX} \f$, \f$\alpha^{(1)}_{MX} \f$, and
|
||||
* \f$\alpha^{(2)}_{MX} \f$.
|
||||
* \f$ C_{MX}\f$ is calculated from \f$C^{\phi}_{MX} \f$
|
||||
* from the formula above.
|
||||
|
|
@ -668,7 +668,7 @@ class WaterProps;
|
|||
* This same <TT> COMPLEX1 </TT> temperature
|
||||
* dependence given above is used for the following parameters:
|
||||
* \f$ \beta^{(0)}_{MX} \f$, \f$ \beta^{(1)}_{MX} \f$,
|
||||
* \f$ \beta^{(2)}_{MX} \f$, \f$ \Theta_{cc'} \f$, \f$\Theta_{aa'} \f$,
|
||||
* \f$ \beta^{(2)}_{MX} \f$, \f$ \Theta_{cc'} \f$, \f$\Theta_{aa'} \f$,
|
||||
* \f$ \Psi_{c{c'}a} \f$ and \f$ \Psi_{ca{a'}} \f$.
|
||||
*
|
||||
* <H3> Like-Charged Binary Ion Parameters and the Mixing Parameters </H3>
|
||||
|
|
@ -723,7 +723,7 @@ class WaterProps;
|
|||
*
|
||||
* The \f$ \Theta_{ij} \f$ term is a constant that is specified
|
||||
* by the XML element <TT> thetaCation </TT> and
|
||||
* <TT> thetaAnion </TT>, which
|
||||
* <TT> thetaAnion </TT>, which
|
||||
* has the attribute <TT> cation1 </TT>, <TT> cation2 </TT> and
|
||||
* <TT> anion1 </TT>, <TT> anion2 </TT> respectively
|
||||
* to identify the interaction. No temperature or
|
||||
|
|
@ -1084,7 +1084,7 @@ class WaterProps;
|
|||
* ThermoPhase *HMW = newPhase("HMW_NaCl.xml", "NaCl_electrolyte");
|
||||
* @endcode
|
||||
*
|
||||
* A new HMWSoln object may be created by the following code snippets:
|
||||
* A new HMWSoln object may be created by the following code snippets:
|
||||
*
|
||||
* @code
|
||||
* HMWSoln *HMW = new HMWSoln("HMW_NaCl.xml", "NaCl_electrolyte");
|
||||
|
|
@ -1499,7 +1499,7 @@ public:
|
|||
|
||||
/**
|
||||
* @}
|
||||
* @name Activities, Standard States, and Activity Concentrations
|
||||
* @name Activities, Standard States, and Activity Concentrations
|
||||
*
|
||||
* The activity \f$a_k\f$ of a species in solution is
|
||||
* related to the chemical potential by \f[ \mu_k = \mu_k^0(T)
|
||||
|
|
@ -1512,7 +1512,7 @@ public:
|
|||
|
||||
//! This method returns an array of generalized activity concentrations
|
||||
/*!
|
||||
* The generalized activity concentrations, \f$ C_k^a\f$, are defined such that
|
||||
* The generalized activity concentrations, \f$ C_k^a\f$, are defined such that
|
||||
* \f$ a_k = C^a_k / C^0_k, \f$ where \f$ C^0_k \f$
|
||||
* is a standard concentration
|
||||
* defined below. These generalized concentrations are used
|
||||
|
|
@ -1541,7 +1541,7 @@ public:
|
|||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the activity (i.e., generalized) concentration for use
|
||||
*
|
||||
* We have set the standard concentration for all solute species in
|
||||
* We have set the standard concentration for all solute species in
|
||||
* this phase equal to the default concentration of the solvent at the system temperature
|
||||
* and pressure multiplied by Mnaught (kg solvent / gmol solvent). The solvent
|
||||
* standard concentration is just equal to its standard state concentration.
|
||||
|
|
@ -2094,7 +2094,7 @@ private:
|
|||
* - polarNeutral
|
||||
* - nonpolarNeutral .
|
||||
*/
|
||||
vector_int m_electrolyteSpeciesType;
|
||||
vector_int m_electrolyteSpeciesType;
|
||||
|
||||
/**
|
||||
* a_k = Size of the ionic species in the DH formulation
|
||||
|
|
@ -2196,10 +2196,10 @@ private:
|
|||
WaterProps* m_waterProps;
|
||||
|
||||
//! Temporary array used in equilibrium calculations
|
||||
mutable vector_fp m_pp;
|
||||
mutable vector_fp m_pp;
|
||||
|
||||
//! vector of size m_kk, used as a temporary holding area.
|
||||
mutable vector_fp m_tmpV;
|
||||
mutable vector_fp m_tmpV;
|
||||
|
||||
/**
|
||||
* Stoichiometric species charge -> This is for calculations
|
||||
|
|
@ -2213,7 +2213,7 @@ private:
|
|||
* For species that aren't ion pairs, its equal to the
|
||||
* m_speciesCharge[] value.
|
||||
*/
|
||||
vector_fp m_speciesCharge_Stoich;
|
||||
vector_fp m_speciesCharge_Stoich;
|
||||
|
||||
/**
|
||||
* Array of 2D data used in the Pitzer/HMW formulation.
|
||||
|
|
@ -2224,25 +2224,25 @@ private:
|
|||
* counterIJ where counterIJ = m_counterIJ[i][j]
|
||||
* is used to access this array.
|
||||
*/
|
||||
mutable vector_fp m_Beta0MX_ij;
|
||||
mutable vector_fp m_Beta0MX_ij;
|
||||
|
||||
//! Derivative of Beta0_ij[i][j] wrt T
|
||||
/*!
|
||||
* vector index is counterIJ
|
||||
*/
|
||||
mutable vector_fp m_Beta0MX_ij_L;
|
||||
mutable vector_fp m_Beta0MX_ij_L;
|
||||
|
||||
//! Derivative of Beta0_ij[i][j] wrt TT
|
||||
/*!
|
||||
* vector index is counterIJ
|
||||
*/
|
||||
mutable vector_fp m_Beta0MX_ij_LL;
|
||||
mutable vector_fp m_Beta0MX_ij_LL;
|
||||
|
||||
//! Derivative of Beta0_ij[i][j] wrt P
|
||||
/*!
|
||||
* vector index is counterIJ
|
||||
*/
|
||||
mutable vector_fp m_Beta0MX_ij_P;
|
||||
mutable vector_fp m_Beta0MX_ij_P;
|
||||
|
||||
//! Array of coefficients for Beta0, a variable in Pitzer's papers
|
||||
/*!
|
||||
|
|
@ -2250,7 +2250,7 @@ private:
|
|||
* m_Beta0MX_ij_coeff.ptrColumn(counterIJ) is a double* containing
|
||||
* the vector of coefficients for the counterIJ interaction.
|
||||
*/
|
||||
mutable Array2D m_Beta0MX_ij_coeff;
|
||||
mutable Array2D m_Beta0MX_ij_coeff;
|
||||
|
||||
/*!
|
||||
* Array of 2D data used in the Pitzer/HMW formulation.
|
||||
|
|
@ -2287,7 +2287,7 @@ private:
|
|||
* m_Beta1MX_ij_coeff.ptrColumn(counterIJ) is a double* containing
|
||||
* the vector of coefficients for the counterIJ interaction.
|
||||
*/
|
||||
mutable Array2D m_Beta1MX_ij_coeff;
|
||||
mutable Array2D m_Beta1MX_ij_coeff;
|
||||
|
||||
/**
|
||||
* Array of 2D data used in the Pitzer/HMW formulation.
|
||||
|
|
@ -2327,7 +2327,7 @@ private:
|
|||
* This was added for the YMP database version of the code since it
|
||||
* contains temperature-dependent parameters for some 2-2 electrolytes.
|
||||
*/
|
||||
mutable Array2D m_Beta2MX_ij_coeff;
|
||||
mutable Array2D m_Beta2MX_ij_coeff;
|
||||
|
||||
/**
|
||||
* Array of 2D data used in the Pitzer/HMW formulation.
|
||||
|
|
@ -2494,16 +2494,16 @@ private:
|
|||
* index, i.e., n. The charged species occupy the j coordinate.
|
||||
* neutral, neutral interactions are also included here.
|
||||
*/
|
||||
mutable Array2D m_Lambda_nj;
|
||||
mutable Array2D m_Lambda_nj;
|
||||
|
||||
//! Derivative of Lambda_nj[i][j] wrt T. see m_Lambda_ij
|
||||
mutable Array2D m_Lambda_nj_L;
|
||||
//! Derivative of Lambda_nj[i][j] wrt T. see m_Lambda_ij
|
||||
mutable Array2D m_Lambda_nj_L;
|
||||
|
||||
//! Derivative of Lambda_nj[i][j] wrt TT
|
||||
mutable Array2D m_Lambda_nj_LL;
|
||||
//! Derivative of Lambda_nj[i][j] wrt TT
|
||||
mutable Array2D m_Lambda_nj_LL;
|
||||
|
||||
//! Derivative of Lambda_nj[i][j] wrt P
|
||||
mutable Array2D m_Lambda_nj_P;
|
||||
//! Derivative of Lambda_nj[i][j] wrt P
|
||||
mutable Array2D m_Lambda_nj_P;
|
||||
|
||||
//! Array of coefficients for Lambda_nj[i][j] in the Pitzer/HMW formulation.
|
||||
/*!
|
||||
|
|
@ -2521,7 +2521,7 @@ private:
|
|||
* m_Lambda_ij_coeff.ptrColumn(n) is a double* containing
|
||||
* the vector of coefficients for the (i,j) interaction.
|
||||
*/
|
||||
Array2D m_Lambda_nj_coeff;
|
||||
Array2D m_Lambda_nj_coeff;
|
||||
|
||||
//! Mu coefficient for the self-ternary neutral coefficient
|
||||
/*!
|
||||
|
|
@ -2530,7 +2530,7 @@ private:
|
|||
* nnn interaction. This is a general interaction representing
|
||||
* neutral species interacting with itself.
|
||||
*/
|
||||
mutable vector_fp m_Mu_nnn;
|
||||
mutable vector_fp m_Mu_nnn;
|
||||
|
||||
//! Mu coefficient temperature derivative for the self-ternary neutral coefficient
|
||||
/*!
|
||||
|
|
@ -2539,7 +2539,7 @@ private:
|
|||
* nnn interaction. This is a general interaction representing
|
||||
* neutral species interacting with itself.
|
||||
*/
|
||||
mutable vector_fp m_Mu_nnn_L;
|
||||
mutable vector_fp m_Mu_nnn_L;
|
||||
|
||||
//! Mu coefficient 2nd temperature derivative for the self-ternary neutral coefficient
|
||||
/*!
|
||||
|
|
@ -2548,7 +2548,7 @@ private:
|
|||
* nnn interaction. This is a general interaction representing
|
||||
* neutral species interacting with itself.
|
||||
*/
|
||||
mutable vector_fp m_Mu_nnn_LL;
|
||||
mutable vector_fp m_Mu_nnn_LL;
|
||||
|
||||
//! Mu coefficient pressure derivative for the self-ternary neutral coefficient
|
||||
/*!
|
||||
|
|
@ -2557,10 +2557,10 @@ private:
|
|||
* nnn interaction. This is a general interaction representing
|
||||
* neutral species interacting with itself.
|
||||
*/
|
||||
mutable vector_fp m_Mu_nnn_P;
|
||||
mutable vector_fp m_Mu_nnn_P;
|
||||
|
||||
//! Array of coefficients form_Mu_nnn term
|
||||
Array2D m_Mu_nnn_coeff;
|
||||
Array2D m_Mu_nnn_coeff;
|
||||
|
||||
//! Logarithm of the activity coefficients on the molality
|
||||
//! scale.
|
||||
|
|
@ -2843,7 +2843,7 @@ private:
|
|||
/*!
|
||||
* Normally these are all one. However, stability schemes will change that
|
||||
*/
|
||||
mutable vector_fp IMS_lnActCoeffMolal_;
|
||||
mutable vector_fp IMS_lnActCoeffMolal_;
|
||||
|
||||
//! IMS Cutoff type
|
||||
int IMS_typeCutoff_;
|
||||
|
|
@ -3181,10 +3181,10 @@ private:
|
|||
void readXMLCroppingCoefficients(const XML_Node& acNode);
|
||||
|
||||
//! Precalculate the IMS Cutoff parameters for typeCutoff = 2
|
||||
void calcIMSCutoffParams_();
|
||||
void calcIMSCutoffParams_();
|
||||
|
||||
//! Calculate molality cut-off parameters
|
||||
void calcMCCutoffParams_();
|
||||
void calcMCCutoffParams_();
|
||||
|
||||
//! Utility function to assign an integer value from a string
|
||||
//! for the ElectrolyteSpeciesType field.
|
||||
|
|
|
|||
|
|
@ -464,7 +464,7 @@ public:
|
|||
setTemperature(p * meanMolecularWeight() / (GasConstant * rho));
|
||||
}
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/**
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
@ -539,7 +539,7 @@ public:
|
|||
//! Returns the standard concentration \f$ C^0_k \f$, which is used to normalize
|
||||
//! the generalized concentration.
|
||||
/*!
|
||||
* This is defined as the concentration by which the generalized
|
||||
* 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
|
||||
|
|
@ -630,7 +630,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species standard states
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -638,7 +638,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! species standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -655,12 +655,12 @@ public:
|
|||
//! state of the species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* Units are Joules/kmol
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getPureGibbs(doublereal* gpure) const;
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* @param urt output vector of nondimensional standard state internal energies
|
||||
|
|
@ -715,7 +715,7 @@ public:
|
|||
/*!
|
||||
* units = J/kmol
|
||||
*
|
||||
* @param g Output vector containing the reference state
|
||||
* @param g Output vector containing the reference state
|
||||
* Gibbs Free energies. Length: m_kk. Units: J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ public:
|
|||
|
||||
//! Partial molar heat capacity of the solution:. UnitsL J/kmol/K
|
||||
/*!
|
||||
* The kth partial molar heat capacity is equal to
|
||||
* The kth partial molar heat capacity is equal to
|
||||
* the temperature derivative of the partial molar
|
||||
* enthalpy of the kth species in the solution at constant
|
||||
* P and composition (p. 220 Smith and Van Ness).
|
||||
|
|
@ -565,14 +565,14 @@ public:
|
|||
*
|
||||
* @param smv Output vector of species molar volumes.
|
||||
*/
|
||||
void getSpeciesMolarVolumes(double* smv) const;
|
||||
void getSpeciesMolarVolumes(double* smv) const;
|
||||
//@}
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Species molar volume \f$ m^3 kmol^{-1} \f$
|
||||
*/
|
||||
vector_fp m_speciesMolarVolume;
|
||||
vector_fp m_speciesMolarVolume;
|
||||
|
||||
/**
|
||||
* The standard concentrations can have three different forms
|
||||
|
|
@ -596,18 +596,18 @@ private:
|
|||
/**
|
||||
* Temporary array used in equilibrium calculations
|
||||
*/
|
||||
mutable vector_fp m_pp;
|
||||
mutable vector_fp m_pp;
|
||||
|
||||
/**
|
||||
* vector of size m_kk, used as a temporary holding area.
|
||||
*/
|
||||
mutable vector_fp m_tmpV;
|
||||
mutable vector_fp m_tmpV;
|
||||
|
||||
//! Logarithm of the molal activity coefficients
|
||||
/*!
|
||||
* Normally these are all one. However, stability schemes will change that
|
||||
*/
|
||||
mutable vector_fp IMS_lnActCoeffMolal_;
|
||||
mutable vector_fp IMS_lnActCoeffMolal_;
|
||||
public:
|
||||
//! value of the solute mole fraction that centers the cutoff polynomials
|
||||
//! for the cutoff =1 process;
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ public:
|
|||
* kmol m<SUP>-3</SUP>. Rate constants must reflect this fact.
|
||||
*
|
||||
* On a general note, the following must be true.
|
||||
* For an ideal solution, the generalized concentration must consist
|
||||
* For an ideal solution, the generalized concentration must consist
|
||||
* of the mole fraction multiplied by a constant. The constant may be
|
||||
* fairly arbitrarily chosen, with differences adsorbed into the
|
||||
* reaction rate expression. 1/V_N, 1/V_k, or 1 are equally good,
|
||||
|
|
@ -483,7 +483,7 @@ public:
|
|||
* \bar s_k(T,P) = \hat s^0_k(T) - R log(X_k)
|
||||
* \f]
|
||||
* The reference-state pure-species entropies,\f$ \hat s^{ref}_k(T) \f$,
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* species thermodynamic
|
||||
* property manager. They are polynomial functions of temperature.
|
||||
* @see SpeciesThermo
|
||||
|
|
@ -846,34 +846,34 @@ protected:
|
|||
/**
|
||||
* Species molar volumes \f$ m^3 kmol^-1 \f$
|
||||
*/
|
||||
vector_fp m_speciesMolarVolume;
|
||||
vector_fp m_speciesMolarVolume;
|
||||
|
||||
//! Vector containing the species reference enthalpies at T = m_tlast
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_h0_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference constant pressure
|
||||
* heat capacities at T = m_tlast
|
||||
*/
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_cp0_R;
|
||||
|
||||
//! Vector containing the species reference Gibbs functions at T = m_tlast
|
||||
mutable vector_fp m_g0_RT;
|
||||
mutable vector_fp m_g0_RT;
|
||||
|
||||
//! Vector containing the species reference entropies at T = m_tlast
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference exp(-G/RT) functions
|
||||
* at T = m_tlast
|
||||
*/
|
||||
mutable vector_fp m_expg0_RT;
|
||||
mutable vector_fp m_expg0_RT;
|
||||
|
||||
//! Vector of potential energies for the species.
|
||||
mutable vector_fp m_pe;
|
||||
mutable vector_fp m_pe;
|
||||
|
||||
//! Temporary array used in equilibrium calculations
|
||||
mutable vector_fp m_pp;
|
||||
mutable vector_fp m_pp;
|
||||
|
||||
private:
|
||||
/// @name Utility Functions
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
*/
|
||||
void setPressure(doublereal p);
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/*!
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
@ -150,7 +150,7 @@ public:
|
|||
//! Returns the standard concentration \f$ C^0_k \f$, which is used to normalize
|
||||
//! the generalized concentration.
|
||||
/*!
|
||||
* This is defined as the concentration by which the generalized
|
||||
* 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
|
||||
|
|
@ -186,7 +186,7 @@ public:
|
|||
* getChemPotentials() and then dividing by RT. No need for child
|
||||
* classes to handle.
|
||||
*
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* Length: m_kk.
|
||||
*/
|
||||
void getChemPotentials_RT(doublereal* mu) const;
|
||||
|
|
|
|||
|
|
@ -362,7 +362,7 @@ public:
|
|||
* @param dlnActCoeffdlnN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) ;
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN);
|
||||
//! @}
|
||||
|
||||
//! Get the Salt Dissociation Coefficients
|
||||
|
|
@ -393,7 +393,7 @@ public:
|
|||
* is charge neutrality. If there isn't, then it wouldn't
|
||||
* make much sense.
|
||||
*
|
||||
* for the case of cIonSolnType_SINGLEANION, some slough
|
||||
* for the case of cIonSolnType_SINGLEANION, some slough
|
||||
* in the charge neutrality is allowed. The cation number
|
||||
* is followed, while the difference in charge neutrality
|
||||
* is dumped into the anion mole number to fix the imbalance.
|
||||
|
|
@ -453,7 +453,7 @@ public:
|
|||
* is charge neutrality. If there isn't, then it wouldn't
|
||||
* make much sense.
|
||||
*
|
||||
* for the case of cIonSolnType_SINGLEANION, some slough
|
||||
* for the case of cIonSolnType_SINGLEANION, some slough
|
||||
* in the charge neutrality is allowed. The cation number
|
||||
* is followed, while the difference in charge neutrality
|
||||
* is dumped into the anion mole number to fix the imbalance.
|
||||
|
|
@ -660,7 +660,7 @@ protected:
|
|||
*
|
||||
* Thus, we formulate the neutral molecule mole fraction NeutralMolecMoleFractions_[]
|
||||
* vector from this association. We further assume that there are
|
||||
* no other associations. If fm_invert_simple_ is not true,
|
||||
* no other associations. If fm_invert_simple_ is not true,
|
||||
* then we need to do a formal inversion which takes a great
|
||||
* deal of time and is not currently implemented.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ namespace Cantera
|
|||
* For example, a bulk-phase binary gas reaction between species j and k, producing
|
||||
* a new species l would have the
|
||||
* following equation for its rate of progress variable, \f$ R^1 \f$, which has
|
||||
* units of kmol m-3 s-1.
|
||||
* units of kmol m-3 s-1.
|
||||
*
|
||||
* \f[
|
||||
* R^1 = k^1 C_j^a C_k^a = k^1 X_j X_k
|
||||
|
|
@ -438,7 +438,7 @@ public:
|
|||
virtual void setConcentrations(const doublereal* const c);
|
||||
|
||||
//@}
|
||||
/// @name Activities, Standard States, and Activity Concentrations
|
||||
/// @name Activities, Standard States, and Activity Concentrations
|
||||
/**
|
||||
* The activity \f$a_k\f$ of a species in solution is
|
||||
* related to the chemical potential by \f[ \mu_k = \mu_k^0(T)
|
||||
|
|
@ -549,7 +549,7 @@ public:
|
|||
* \bar s_k(T,P) = \hat s^0_k(T) - R log(X_k)
|
||||
* \f]
|
||||
* The reference-state pure-species entropies,\f$ \hat s^{ref}_k(T) \f$,
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* species thermodynamic
|
||||
* property manager. They are polynomial functions of temperature.
|
||||
* @see SpeciesThermo
|
||||
|
|
@ -638,7 +638,7 @@ public:
|
|||
* manager class (see ThermoPhase::m_spthermo). How to relate pressure
|
||||
* changes to the reference state thermodynamics is resolved at this level.
|
||||
*
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -723,7 +723,7 @@ public:
|
|||
/*!
|
||||
* units = J/kmol
|
||||
*
|
||||
* @param g Output vector containing the reference state
|
||||
* @param g Output vector containing the reference state
|
||||
* Gibbs Free energies. Length: m_kk. Units: J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
|
@ -793,7 +793,7 @@ public:
|
|||
*
|
||||
* @param n number of parameters. Must be one
|
||||
* @param c array of \a n coefficients
|
||||
* c[0] = The bulk lattice density (kmol m-3)
|
||||
* c[0] = The bulk lattice density (kmol m-3)
|
||||
*/
|
||||
virtual void setParameters(int n, doublereal* const c);
|
||||
|
||||
|
|
@ -873,7 +873,7 @@ protected:
|
|||
/**
|
||||
* Species molar volumes \f$ m^3 kmol^-1 \f$
|
||||
*/
|
||||
vector_fp m_speciesMolarVolume;
|
||||
vector_fp m_speciesMolarVolume;
|
||||
|
||||
//! Site Density of the lattice solid
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ public:
|
|||
|
||||
//! Returns the reference pressure in Pa. This function is a wrapper
|
||||
//! that calls the species thermo refPressure function.
|
||||
virtual doublereal refPressure() const ;
|
||||
virtual doublereal refPressure() const;
|
||||
|
||||
//! This method returns the convention used in specification
|
||||
//! of the standard state, of which there are currently two,
|
||||
|
|
@ -398,7 +398,7 @@ public:
|
|||
//! This method returns an array of generalized activity concentrations
|
||||
/*!
|
||||
* The generalized activity concentrations,
|
||||
* \f$ C^a_k \f$, are defined such that \f$ a_k = C^a_k /
|
||||
* \f$ C^a_k \f$, are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_k \f$ is a standard concentration
|
||||
* defined below and \f$ a_k \f$ are activities used in the
|
||||
* thermodynamic functions. These activity (or generalized)
|
||||
|
|
@ -463,7 +463,7 @@ public:
|
|||
* \bar s_k(T,P) = \hat s^0_k(T) - R log(X_k)
|
||||
* \f]
|
||||
* The reference-state pure-species entropies,\f$ \hat s^{ref}_k(T) \f$,
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* at the reference pressure, \f$ P_{ref} \f$, are computed by the
|
||||
* species thermodynamic
|
||||
* property manager. They are polynomial functions of temperature.
|
||||
* @see SpeciesThermo
|
||||
|
|
@ -564,7 +564,7 @@ public:
|
|||
* @param g Vector of Gibbs free energies of the reference state.
|
||||
* length = m_kk
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
//! Initialize the ThermoPhase object after all species have been set up
|
||||
/*!
|
||||
|
|
@ -588,7 +588,7 @@ public:
|
|||
|
||||
//! Add in species from Slave phases
|
||||
/*!
|
||||
* This hook is used for cSS_CONVENTION_SLAVE phases
|
||||
* This hook is used for cSS_CONVENTION_SLAVE phases
|
||||
*
|
||||
* @param phaseNode XML_Node for the current phase
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ public:
|
|||
*/
|
||||
MargulesVPSSTP& operator=(const MargulesVPSSTP& b);
|
||||
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate ThermoPhase objects
|
||||
* inherited from ThermoPhase even if the application only has
|
||||
|
|
@ -543,7 +543,7 @@ public:
|
|||
*/
|
||||
virtual void getdlnActCoeffdlnX_diag(doublereal* dlnActCoeffdlnX_diag) const;
|
||||
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
|
|
@ -578,7 +578,7 @@ public:
|
|||
* @param dlnActCoeffdlnN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) ;
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN);
|
||||
|
||||
//@}
|
||||
|
||||
|
|
@ -639,7 +639,7 @@ private:
|
|||
*/
|
||||
void s_update_dlnActCoeff_dlnN_diag() const;
|
||||
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
/*!
|
||||
* This function will be called to update the internally stored
|
||||
* derivative of the natural logarithm of the activity coefficients
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public:
|
|||
virtual void setPressure(doublereal pres) {
|
||||
m_press = pres;
|
||||
}
|
||||
virtual doublereal pressure() const {
|
||||
virtual doublereal pressure() const {
|
||||
return m_press;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ public:
|
|||
/*!
|
||||
* @param right Object to be copied
|
||||
*/
|
||||
MetalSHEelectrons(const MetalSHEelectrons& right);
|
||||
MetalSHEelectrons(const MetalSHEelectrons& right);
|
||||
|
||||
//! Assignment operator
|
||||
/*!
|
||||
|
|
@ -253,7 +253,7 @@ public:
|
|||
*/
|
||||
virtual void setPressure(doublereal p);
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/*!
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
@ -269,7 +269,7 @@ public:
|
|||
* \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
|
||||
* \f]
|
||||
*/
|
||||
virtual doublereal thermalExpansionCoeff() const ;
|
||||
virtual doublereal thermalExpansionCoeff() const;
|
||||
|
||||
//! @}
|
||||
//! @name Activities, Standard States, and Activity Concentrations
|
||||
|
|
@ -342,7 +342,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -350,7 +350,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -372,7 +372,7 @@ public:
|
|||
*/
|
||||
virtual void getCp_R(doublereal* cpr) const;
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* For an incompressible,
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ namespace Cantera
|
|||
* R_s = k_s C_{gas}
|
||||
* \f]
|
||||
* where the units for \f$ R_s \f$ are kmol m-2 s-1. \f$ C_{gas} \f$ has units
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* units of m s-1. Nowhere does the concentration of the bulk phase
|
||||
* appear in the rate constant expression, since it's a stoichiometric
|
||||
* phase and the activity is always equal to 1.0.
|
||||
|
|
@ -118,7 +118,7 @@ public:
|
|||
/*!
|
||||
* @param right Object to be copied
|
||||
*/
|
||||
MineralEQ3(const MineralEQ3& right);
|
||||
MineralEQ3(const MineralEQ3& right);
|
||||
|
||||
//! Assignment operator
|
||||
/*!
|
||||
|
|
@ -165,7 +165,7 @@ public:
|
|||
*/
|
||||
virtual void setPressure(doublereal p);
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/*!
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
@ -181,7 +181,7 @@ public:
|
|||
* \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
|
||||
* \f]
|
||||
*/
|
||||
virtual doublereal thermalExpansionCoeff() const ;
|
||||
virtual doublereal thermalExpansionCoeff() const;
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
@ -256,7 +256,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -264,7 +264,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -286,7 +286,7 @@ public:
|
|||
*/
|
||||
virtual void getCp_R(doublereal* cpr) const;
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* For an incompressible,
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ public:
|
|||
*/
|
||||
MixedSolventElectrolyte& operator=(const MixedSolventElectrolyte& b);
|
||||
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate ThermoPhase objects
|
||||
* inherited from ThermoPhase even if the application only has
|
||||
|
|
@ -537,7 +537,7 @@ public:
|
|||
*/
|
||||
virtual void getdlnActCoeffdlnX_diag(doublereal* dlnActCoeffdlnX_diag) const;
|
||||
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
|
|
@ -572,7 +572,7 @@ public:
|
|||
* @param dlnActCoeffdlnN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) ;
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN);
|
||||
//@}
|
||||
|
||||
private:
|
||||
|
|
@ -632,7 +632,7 @@ private:
|
|||
*/
|
||||
void s_update_dlnActCoeff_dlnN_diag() const;
|
||||
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
/*!
|
||||
* This function will be called to update the internally stored
|
||||
* derivative of the natural logarithm of the activity coefficients
|
||||
|
|
|
|||
|
|
@ -24,17 +24,17 @@ namespace Cantera
|
|||
#define FLUID_UNSTABLE -4
|
||||
#define FLUID_UNDEFINED -3
|
||||
#define FLUID_SUPERCRIT -2
|
||||
#define FLUID_GAS -1
|
||||
#define FLUID_LIQUID_0 0
|
||||
#define FLUID_LIQUID_1 1
|
||||
#define FLUID_LIQUID_2 2
|
||||
#define FLUID_LIQUID_3 3
|
||||
#define FLUID_LIQUID_4 4
|
||||
#define FLUID_LIQUID_5 5
|
||||
#define FLUID_LIQUID_6 6
|
||||
#define FLUID_LIQUID_7 7
|
||||
#define FLUID_LIQUID_8 8
|
||||
#define FLUID_LIQUID_9 9
|
||||
#define FLUID_GAS -1
|
||||
#define FLUID_LIQUID_0 0
|
||||
#define FLUID_LIQUID_1 1
|
||||
#define FLUID_LIQUID_2 2
|
||||
#define FLUID_LIQUID_3 3
|
||||
#define FLUID_LIQUID_4 4
|
||||
#define FLUID_LIQUID_5 5
|
||||
#define FLUID_LIQUID_6 6
|
||||
#define FLUID_LIQUID_7 7
|
||||
#define FLUID_LIQUID_8 8
|
||||
#define FLUID_LIQUID_9 9
|
||||
|
||||
/**
|
||||
* @ingroup thermoprops
|
||||
|
|
@ -169,7 +169,7 @@ public:
|
|||
* getChemPotentials() and then dividing by RT. No need for child
|
||||
* classes to handle.
|
||||
*
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* Length: m_kk.
|
||||
*/
|
||||
void getChemPotentials_RT(doublereal* mu) const;
|
||||
|
|
@ -260,7 +260,7 @@ public:
|
|||
virtual void getIntEnergy_RT(doublereal* urt) const;
|
||||
|
||||
//! Get the nondimensional Heat Capacities at constant
|
||||
//! pressure for the standard state of the species at the current T and P.
|
||||
//! pressure for the standard state of the species at the current T and P.
|
||||
/*!
|
||||
* 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.
|
||||
|
|
@ -423,7 +423,7 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
//! Updates the reference state thermodynamic functions at the current T of the solution.
|
||||
//! Updates the reference state thermodynamic functions at the current T of the solution.
|
||||
/*!
|
||||
* This function must be called for every call to functions in this
|
||||
* class. It checks to see whether the temperature has changed and
|
||||
|
|
@ -446,7 +446,7 @@ public:
|
|||
* variables for holding the species reference-state values of Cp, H, S, and V at the
|
||||
* last temperature and reference pressure called. These functions are not recalculated
|
||||
* if a new call is made using the previous temperature.
|
||||
* All calculations are done within the routine _updateRefStateThermo().
|
||||
* All calculations are done within the routine _updateRefStateThermo().
|
||||
*/
|
||||
//@{
|
||||
|
||||
|
|
@ -549,9 +549,9 @@ public:
|
|||
*/
|
||||
//@{
|
||||
|
||||
//! Set the initial state of the phase to the conditions specified in the state XML element.
|
||||
//! Set the initial state of the phase to the conditions specified in the state XML element.
|
||||
/*!
|
||||
* This method sets the temperature, pressure, and mole fraction vector to a set default value.
|
||||
* This method sets the temperature, pressure, and mole fraction vector to a set default value.
|
||||
*
|
||||
* @param state An XML_Node object corresponding to
|
||||
* the "state" entry for this phase in the input file.
|
||||
|
|
@ -615,7 +615,7 @@ protected:
|
|||
//! Calculate the value of z
|
||||
/*!
|
||||
* \f[
|
||||
* z = \frac{P v}{ R T}
|
||||
* z = \frac{P v}{R T}
|
||||
* \f]
|
||||
*
|
||||
* returns the value of z
|
||||
|
|
@ -714,7 +714,7 @@ public:
|
|||
* - WATER_LIQUID below the critical temperature but above the critical density
|
||||
* - WATER_SUPERCRIT above the critical temperature
|
||||
*/
|
||||
int phaseState(bool checkState = false) const ;
|
||||
int phaseState(bool checkState = false) const;
|
||||
|
||||
//! Return the value of the density at the liquid spinodal point (on the liquid side)
|
||||
//! for the current temperature.
|
||||
|
|
@ -791,7 +791,7 @@ protected:
|
|||
*
|
||||
* units = Pascals
|
||||
*/
|
||||
doublereal m_Pcurrent;
|
||||
doublereal m_Pcurrent;
|
||||
|
||||
//! Storage for the current values of the mole fractions of the species
|
||||
/*!
|
||||
|
|
@ -815,19 +815,19 @@ protected:
|
|||
mutable doublereal m_Tlast_ref;
|
||||
|
||||
//! Temporary storage for log of p/rt
|
||||
mutable doublereal m_logc0;
|
||||
mutable doublereal m_logc0;
|
||||
|
||||
//! Temporary storage for dimensionless reference state enthalpies
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_h0_RT;
|
||||
|
||||
//! Temporary storage for dimensionless reference state heat capacities
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_cp0_R;
|
||||
|
||||
//! Temporary storage for dimensionless reference state Gibbs energies
|
||||
mutable vector_fp m_g0_RT;
|
||||
mutable vector_fp m_g0_RT;
|
||||
|
||||
//! Temporary storage for dimensionless reference state entropies
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
spinodalFunc* fdpdv_;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ namespace Cantera
|
|||
*
|
||||
* The standard states for thermodynamic objects that derive from <b>MolalityVPSSTP</b>
|
||||
* are on the unit molality basis. Chemical potentials
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
|
||||
* on the molality form, have the following general format:
|
||||
*
|
||||
* \f[
|
||||
|
|
@ -103,7 +103,7 @@ namespace Cantera
|
|||
* \f]
|
||||
*
|
||||
* MolalityVPSSTP::osmoticCoefficient() returns the value of \f$ \phi \f$.
|
||||
* Note there are a few of definitions of the osmotic coefficient floating
|
||||
* Note there are a few of definitions of the osmotic coefficient floating
|
||||
* around. We use the one defined in
|
||||
* (Activity Coefficients in Electrolyte Solutions, K. S. Pitzer
|
||||
* CRC Press, Boca Raton, 1991, p. 85, Eqn. 28). This definition is most clearly
|
||||
|
|
@ -470,7 +470,7 @@ public:
|
|||
|
||||
//! Get the array of non-dimensional molality based
|
||||
//! activity coefficients at the current solution temperature,
|
||||
//! pressure, and solution concentration.
|
||||
//! pressure, and solution concentration.
|
||||
/*!
|
||||
* See Denbigh p. 278 for a thorough discussion. This class must be overwritten in
|
||||
* classes which derive from MolalityVPSSTP. This function takes over from the
|
||||
|
|
@ -506,7 +506,7 @@ public:
|
|||
* \phi = \frac{- ln(a_o)}{\tilde{M}_o \sum_{i \ne o} m_i}
|
||||
* \f]
|
||||
*
|
||||
* Note there are a few of definitions of the osmotic coefficient floating
|
||||
* Note there are a few of definitions of the osmotic coefficient floating
|
||||
* around. We use the one defined in
|
||||
* (Activity Coefficients in Electrolyte Solutions, K. S. Pitzer
|
||||
* CRC Press, Boca Raton, 1991, p. 85, Eqn. 28). This definition is most clearly
|
||||
|
|
@ -679,7 +679,7 @@ protected:
|
|||
|
||||
//! Get the array of unscaled non-dimensional molality based
|
||||
//! activity coefficients at the current solution temperature,
|
||||
//! pressure, and solution concentration.
|
||||
//! pressure, and solution concentration.
|
||||
/*!
|
||||
* See Denbigh p. 278 for a thorough discussion. This class must be overwritten in
|
||||
* classes which derive from MolalityVPSSTP. This function takes over from the
|
||||
|
|
@ -736,7 +736,7 @@ protected:
|
|||
* scaling.
|
||||
* Either PHSCALE_PITZER or PHSCALE_NBS
|
||||
*/
|
||||
int m_pHScalingType;
|
||||
int m_pHScalingType;
|
||||
|
||||
//! Index of the phScale species
|
||||
/*!
|
||||
|
|
@ -772,7 +772,7 @@ protected:
|
|||
* Note this vector is a mutable quantity.
|
||||
* units are (kg/kmol)
|
||||
*/
|
||||
mutable vector_fp m_molalities;
|
||||
mutable vector_fp m_molalities;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -819,7 +819,7 @@ const int PHSCALE_PITZER = 0;
|
|||
* This is the NBS pH scale, which is used in all conventional pH
|
||||
* measurements. and is based on the Bates-Guggenheim equations.
|
||||
*/
|
||||
const int PHSCALE_NBS = 1;
|
||||
const int PHSCALE_NBS = 1;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public:
|
|||
/*!
|
||||
* @param b class to be copied
|
||||
*/
|
||||
MolarityIonicVPSSTP(const MolarityIonicVPSSTP& b);
|
||||
MolarityIonicVPSSTP(const MolarityIonicVPSSTP& b);
|
||||
|
||||
/// Assignment operator
|
||||
/*!
|
||||
|
|
@ -99,7 +99,7 @@ public:
|
|||
*/
|
||||
MolarityIonicVPSSTP& operator=(const MolarityIonicVPSSTP& b);
|
||||
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate ThermoPhase objects
|
||||
* inherited from ThermoPhase even if the application only has
|
||||
|
|
@ -348,10 +348,10 @@ protected:
|
|||
mutable std::vector<doublereal> moleFractionsTmp_;
|
||||
};
|
||||
|
||||
#define PBTYPE_PASSTHROUGH 0
|
||||
#define PBTYPE_SINGLEANION 1
|
||||
#define PBTYPE_SINGLECATION 2
|
||||
#define PBTYPE_MULTICATIONANION 3
|
||||
#define PBTYPE_PASSTHROUGH 0
|
||||
#define PBTYPE_SINGLEANION 1
|
||||
#define PBTYPE_SINGLECATION 2
|
||||
#define PBTYPE_MULTICATIONANION 3
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class XML_Node;
|
|||
* The piece-wise constant heat capacity is calculated from the change in the chemical potential over each interval.
|
||||
* Once the heat capacity is known, the other thermodynamic functions may be determined.
|
||||
* The basic equation for going from temperature point 1 to temperature point 2
|
||||
* are as follows for \f$ T \f$, \f$ T_1 <= T <= T_2 \f$
|
||||
* are as follows for \f$ T \f$, \f$ T_1 <= T <= T_2 \f$
|
||||
*
|
||||
* \f[
|
||||
* \mu^o(T_1) = h^o(T_1) - T_1 * s^o(T_1)
|
||||
|
|
@ -46,7 +46,7 @@ class XML_Node;
|
|||
* h^o(T_2) = h^o(T_1) + Cp^o(T_1)(T_2 - T_1)
|
||||
* \f]
|
||||
*
|
||||
* Within each interval the following relations are used. For \f$ T \f$, \f$ T_1 <= T <= T_2 \f$
|
||||
* Within each interval the following relations are used. For \f$ T \f$, \f$ T_1 <= T <= T_2 \f$
|
||||
*
|
||||
* \f[
|
||||
* \mu^o(T) = \mu^o(T_1) + Cp^o(T_1)(T - T_1) - Cp^o(T_1)(T_2)ln(\frac{T}{T_1}) - s^o(T_1)(T - T_1)
|
||||
|
|
@ -110,7 +110,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the functions of
|
||||
* temperature needed by this parameterization, and three pointers to arrays where the
|
||||
* temperature needed by this parameterization, and three pointers to arrays where the
|
||||
* computed property values should be written. This method updates only one value in
|
||||
* each array.
|
||||
*
|
||||
|
|
@ -125,12 +125,12 @@ public:
|
|||
*/
|
||||
virtual void updateProperties(const doublereal* tPoly,
|
||||
doublereal* cp_R, doublereal* h_RT,
|
||||
doublereal* s_R) const ;
|
||||
doublereal* s_R) const;
|
||||
|
||||
virtual void updatePropertiesTemp(const doublereal temp,
|
||||
doublereal* cp_R,
|
||||
doublereal* h_RT,
|
||||
doublereal* s_R) const ;
|
||||
doublereal* s_R) const;
|
||||
virtual void reportParameters(size_t& n, int& type,
|
||||
doublereal& tlow, doublereal& thigh,
|
||||
doublereal& pref,
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* pointers to arrays where the computed property values should be
|
||||
* written. This method updates only one value in each array.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* pointers to arrays where the computed property values should be
|
||||
* written. This method updates only one value in each array.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* pointers to arrays where the computed property values should be
|
||||
* written. This method updates only one value in each array.
|
||||
*
|
||||
|
|
@ -104,18 +104,18 @@ public:
|
|||
*/
|
||||
virtual void updateProperties(const doublereal* tt,
|
||||
doublereal* cp_R, doublereal* h_RT, doublereal* s_R) const {
|
||||
doublereal ct0 = m_coeff[0]; // a0
|
||||
doublereal ct1 = m_coeff[1]*tt[0]; // a1 * T
|
||||
doublereal ct2 = m_coeff[2]*tt[1]; // a2 * T^2
|
||||
doublereal ct3 = m_coeff[3]*tt[2]; // a3 * T^3
|
||||
doublereal ct4 = m_coeff[4]*tt[3]; // a4 * T^4
|
||||
doublereal ct0 = m_coeff[0]; // a0
|
||||
doublereal ct1 = m_coeff[1]*tt[0]; // a1 * T
|
||||
doublereal ct2 = m_coeff[2]*tt[1]; // a2 * T^2
|
||||
doublereal ct3 = m_coeff[3]*tt[2]; // a3 * T^3
|
||||
doublereal ct4 = m_coeff[4]*tt[3]; // a4 * T^4
|
||||
|
||||
doublereal cp, h, s;
|
||||
cp = ct0 + ct1 + ct2 + ct3 + ct4;
|
||||
h = ct0 + 0.5*ct1 + 1.0/3.0*ct2 + 0.25*ct3 + 0.2*ct4
|
||||
+ m_coeff[5]*tt[4]; // last term is a5/T
|
||||
+ m_coeff[5]*tt[4]; // last term is a5/T
|
||||
s = ct0*tt[5] + ct1 + 0.5*ct2 + 1.0/3.0*ct3
|
||||
+0.25*ct4 + m_coeff[6]; // last term is a6
|
||||
+0.25*ct4 + m_coeff[6]; // last term is a6
|
||||
|
||||
// return the computed properties for this species
|
||||
*cp_R = cp;
|
||||
|
|
@ -156,14 +156,14 @@ public:
|
|||
double tt[6];
|
||||
double temp = 298.15;
|
||||
updateTemperaturePoly(temp, tt);
|
||||
doublereal ct0 = m_coeff[0]; // a0
|
||||
doublereal ct1 = m_coeff[1]*tt[0]; // a1 * T
|
||||
doublereal ct2 = m_coeff[2]*tt[1]; // a2 * T^2
|
||||
doublereal ct3 = m_coeff[3]*tt[2]; // a3 * T^3
|
||||
doublereal ct4 = m_coeff[4]*tt[3]; // a4 * T^4
|
||||
doublereal ct0 = m_coeff[0]; // a0
|
||||
doublereal ct1 = m_coeff[1]*tt[0]; // a1 * T
|
||||
doublereal ct2 = m_coeff[2]*tt[1]; // a2 * T^2
|
||||
doublereal ct3 = m_coeff[3]*tt[2]; // a3 * T^3
|
||||
doublereal ct4 = m_coeff[4]*tt[3]; // a4 * T^4
|
||||
|
||||
double h_RT = ct0 + 0.5*ct1 + 1.0/3.0*ct2 + 0.25*ct3 + 0.2*ct4
|
||||
+ m_coeff[5]*tt[4]; // last t
|
||||
+ m_coeff[5]*tt[4]; // last t
|
||||
|
||||
double h = h_RT * GasConstant * temp;
|
||||
if (h298) {
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* pointers to arrays where the computed property values should be
|
||||
* written. This method updates only one value in each array.
|
||||
*
|
||||
|
|
@ -162,7 +162,7 @@ public:
|
|||
double h = mnp_low.reportHf298(0);
|
||||
double hnew = h + delH;
|
||||
mnp_low.modifyOneHf298(k, hnew);
|
||||
h = mnp_high.reportHf298(0);
|
||||
h = mnp_high.reportHf298(0);
|
||||
hnew = h + delH;
|
||||
mnp_high.modifyOneHf298(k, hnew);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public:
|
|||
*
|
||||
* Note this is just an extra routine to check the arithmetic
|
||||
*
|
||||
* @return returns the species standard state enthalpy in J kmol-1
|
||||
* @return returns the species standard state enthalpy in J kmol-1
|
||||
*/
|
||||
doublereal enthalpy_mole2() const;
|
||||
#endif
|
||||
|
|
@ -326,7 +326,7 @@ private:
|
|||
//! Translate a Gibbs free energy of formation value to a NIST-based Chemical potential
|
||||
/*!
|
||||
* Internally, this function is used to translate the input value,
|
||||
* m_deltaG_formation_tr_pr, to the internally stored value, m_Mu0_tr_pr.
|
||||
* m_deltaG_formation_tr_pr, to the internally stored value, m_Mu0_tr_pr.
|
||||
*/
|
||||
void convertDGFormation();
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public:
|
|||
* \f]
|
||||
*
|
||||
* <I>m</I> is the neutral molecule species index. \f$ \alpha_{m , k} \f$ is the stoiciometric
|
||||
* coefficient for the neutral molecule, <I>m</I>, that creates the thermodynamics for the ionic species <I>k</I>.
|
||||
* coefficient for the neutral molecule, <I>m</I>, that creates the thermodynamics for the ionic species <I>k</I>.
|
||||
* A factor \f$ 2.0 \ln{2.0} \f$ is added to all ions except for the species ionic species, which in this
|
||||
* case is the single anion species, with species index <I>sp</I>.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -304,7 +304,7 @@ private:
|
|||
private:
|
||||
//! Enumerated data type describing the type of volume model
|
||||
//! used to calculate the standard state volume of the species
|
||||
SSVolume_Model_enumType volumeModel_;
|
||||
SSVolume_Model_enumType volumeModel_;
|
||||
|
||||
//! Value of the constant molar volume for the species
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ public:
|
|||
|
||||
//! Duplication routine for objects which inherit from PDSS
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate PDSS objects
|
||||
* This virtual routine can be used to duplicate PDSS objects
|
||||
* inherited from PDSS even if the application only has
|
||||
* a pointer to PDSS to work with.
|
||||
*
|
||||
|
|
@ -186,7 +186,7 @@ public:
|
|||
*/
|
||||
virtual doublereal dthermalExpansionCoeffdT() const;
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/*!
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ public:
|
|||
//! @param m element index
|
||||
doublereal nAtoms(size_t k, size_t m) const;
|
||||
|
||||
//! Get a vector containing the atomic composition of species k
|
||||
//! Get a vector containing the atomic composition of species k
|
||||
//! @param k species index
|
||||
//! @param atomArray vector containing the atomic number in the species.
|
||||
//! Length: m_mm
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ public:
|
|||
*/
|
||||
PhaseCombo_Interaction& operator=(const PhaseCombo_Interaction& b);
|
||||
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
//! Duplication routine for objects which inherit from ThermoPhase.
|
||||
/*!
|
||||
* This virtual routine can be used to duplicate ThermoPhase objects
|
||||
* inherited from ThermoPhase even if the application only has
|
||||
|
|
@ -618,7 +618,7 @@ public:
|
|||
*/
|
||||
virtual void getdlnActCoeffdlnX_diag(doublereal* dlnActCoeffdlnX_diag) const;
|
||||
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
|
|
@ -714,7 +714,7 @@ private:
|
|||
*/
|
||||
void s_update_dlnActCoeff_dlnN_diag() const;
|
||||
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
//! Update the derivative of the log of the activity coefficients wrt log(moles_m)
|
||||
/*!
|
||||
* This function will be called to update the internally stored
|
||||
* derivative of the natural logarithm of the activity coefficients
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -260,7 +260,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace Cantera
|
|||
* The independent unknowns are pressure, temperature, and mass fraction.
|
||||
*
|
||||
* Several concepts are introduced. The first concept is there are temporary
|
||||
* variables for holding the species standard state values of Cp, H, S, G, and V at the
|
||||
* variables for holding the species standard state values of Cp, H, S, G, and V at the
|
||||
* last temperature and pressure called. These functions are not recalculated
|
||||
* if a new call is made using the previous temperature and pressure. Currently,
|
||||
* these variables and the calculation method are handled by the VPSSMgr class,
|
||||
|
|
@ -136,7 +136,7 @@ namespace Cantera
|
|||
* \tilde{h}_k(T,P) = h^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
|
||||
* \f]
|
||||
*
|
||||
* The partial molar volume for species <I>k</I> is
|
||||
* The partial molar volume for species <I>k</I> is
|
||||
*
|
||||
* \f[
|
||||
* \tilde V_k(T,P) = V^o_k(T,P) + R T \frac{d \ln(\gamma_k) }{dP}
|
||||
|
|
@ -528,7 +528,7 @@ public:
|
|||
*/
|
||||
virtual void getdlnActCoeffdlnX_diag(doublereal* dlnActCoeffdlnX_diag) const;
|
||||
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
//! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
|
|
@ -563,7 +563,7 @@ public:
|
|||
* @param dlnActCoeffdlnN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN) ;
|
||||
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN);
|
||||
|
||||
//@}
|
||||
|
||||
|
|
@ -624,7 +624,7 @@ public:
|
|||
* @param VintOut Output contribution to the voltage corresponding to nonideal term
|
||||
* @param voltsOut Output contribution to the voltage corresponding to nonideal term and mf term
|
||||
*/
|
||||
void Vint(double& VintOut, double& voltsOut) ;
|
||||
void Vint(double& VintOut, double& voltsOut);
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
|
@ -654,7 +654,7 @@ protected:
|
|||
|
||||
//! Entropy term for the binary mole fraction interaction of the
|
||||
//! excess Gibbs free energy expression
|
||||
mutable std::vector< vector_fp> m_SE_m_ij;
|
||||
mutable std::vector< vector_fp> m_SE_m_ij;
|
||||
|
||||
//! form of the RedlichKister interaction expression
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public:
|
|||
/*!
|
||||
* Since the mass density, temperature, and mass fractions are stored,
|
||||
* this method uses these values to implement the
|
||||
* mechanical equation of state \f$ P(T, \rho, Y_1, \dots, Y_K) \f$.
|
||||
* mechanical equation of state \f$ P(T, \rho, Y_1, \dots, Y_K) \f$.
|
||||
*
|
||||
* \f[
|
||||
* P = \frac{RT}{v-b_{mix}} - \frac{a_{mix}}{T^{0.5} v \left( v + b_{mix} \right) }
|
||||
|
|
@ -224,7 +224,7 @@ public:
|
|||
//! Returns the standard concentration \f$ C^0_k \f$, which is used to normalize
|
||||
//! the generalized concentration.
|
||||
/*!
|
||||
* This is defined as the concentration by which the generalized
|
||||
* 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
|
||||
|
|
@ -261,7 +261,7 @@ public:
|
|||
* getChemPotentials() and then dividing by RT. No need for child
|
||||
* classes to handle.
|
||||
*
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* @param mu Output vector of non-dimensional species chemical potentials
|
||||
* Length: m_kk.
|
||||
*/
|
||||
void getChemPotentials_RT(doublereal* mu) const;
|
||||
|
|
@ -602,7 +602,7 @@ protected:
|
|||
vector_fp a_vec_Curr_;
|
||||
vector_fp b_vec_Curr_;
|
||||
|
||||
Array2D a_coeff_vec;
|
||||
Array2D a_coeff_vec;
|
||||
|
||||
vector_fp m_pc_Species;
|
||||
vector_fp m_tc_Species;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public:
|
|||
virtual void setPressure(doublereal pres) {
|
||||
m_press = pres;
|
||||
}
|
||||
virtual doublereal pressure() const {
|
||||
virtual doublereal pressure() const {
|
||||
return m_press;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* functions of temperature needed by this parameterization, and three
|
||||
* pointers to arrays where the computed property values should be
|
||||
* written. This method updates only one value in each array.
|
||||
*
|
||||
|
|
@ -123,13 +123,13 @@ public:
|
|||
virtual void updateProperties(const doublereal* tt,
|
||||
doublereal* cp_R, doublereal* h_RT,
|
||||
doublereal* s_R) const {
|
||||
doublereal A = m_coeff[0];
|
||||
doublereal Bt = m_coeff[1]*tt[0];
|
||||
doublereal Ct2 = m_coeff[2]*tt[1];
|
||||
doublereal Dt3 = m_coeff[3]*tt[2];
|
||||
doublereal Etm2 = m_coeff[4]*tt[3];
|
||||
doublereal Ftm1 = m_coeff[5]*tt[5];
|
||||
doublereal G = m_coeff[6];
|
||||
doublereal A = m_coeff[0];
|
||||
doublereal Bt = m_coeff[1]*tt[0];
|
||||
doublereal Ct2 = m_coeff[2]*tt[1];
|
||||
doublereal Dt3 = m_coeff[3]*tt[2];
|
||||
doublereal Etm2 = m_coeff[4]*tt[3];
|
||||
doublereal Ftm1 = m_coeff[5]*tt[5];
|
||||
doublereal G = m_coeff[6];
|
||||
|
||||
*cp_R = A + Bt + Ct2 + Dt3 + Etm2;
|
||||
*h_RT = A + 0.5*Bt + 1.0/3.0*Ct2 + 0.25*Dt3 - Etm2 + Ftm1;
|
||||
|
|
@ -316,7 +316,7 @@ public:
|
|||
virtual void modifyParameters(doublereal* coeffs) {
|
||||
std::copy(coeffs, coeffs + 15, m_coeff.begin());
|
||||
m_midT = coeffs[0];
|
||||
msp_low = ShomatePoly(m_lowT, m_midT, m_Pref, coeffs+1);
|
||||
msp_low = ShomatePoly(m_lowT, m_midT, m_Pref, coeffs+1);
|
||||
msp_high = ShomatePoly(m_midT, m_highT, m_Pref, coeffs+8);
|
||||
}
|
||||
|
||||
|
|
@ -339,7 +339,7 @@ public:
|
|||
double h = msp_low.reportHf298(0);
|
||||
double hnew = h + delH;
|
||||
msp_low.modifyOneHf298(k, hnew);
|
||||
h = msp_high.reportHf298(0);
|
||||
h = msp_high.reportHf298(0);
|
||||
hnew = h + delH;
|
||||
msp_high.modifyOneHf298(k, hnew);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public:
|
|||
/*!
|
||||
* @param right Object to be copied
|
||||
*/
|
||||
SingleSpeciesTP(const SingleSpeciesTP& right);
|
||||
SingleSpeciesTP(const SingleSpeciesTP& right);
|
||||
|
||||
//! Assignment operator
|
||||
/*!
|
||||
|
|
@ -189,10 +189,10 @@ public:
|
|||
//@}
|
||||
/// @name Partial Molar Properties of the Solution
|
||||
///
|
||||
/// These functions are resolved at this level, by reference
|
||||
/// to the partial molar functions and standard state
|
||||
/// functions for species 0. Derived classes don't need
|
||||
/// to supply entries for these functions.
|
||||
/// These functions are resolved at this level, by reference
|
||||
/// to the partial molar functions and standard state
|
||||
/// functions for species 0. Derived classes don't need
|
||||
/// to supply entries for these functions.
|
||||
//@{
|
||||
|
||||
//! Get the array of non-dimensional species chemical potentials
|
||||
|
|
@ -224,7 +224,7 @@ public:
|
|||
* This method adds a term \f$ Fz_k \phi_k \f$ to
|
||||
* each chemical potential.
|
||||
*
|
||||
* This is resolved here. A single species phase
|
||||
* This is resolved here. A single species phase
|
||||
* is not allowed to have anything other than a zero charge.
|
||||
*
|
||||
* @param mu On return, Contains the electrochemical potential of the single species
|
||||
|
|
@ -356,7 +356,7 @@ public:
|
|||
* @param g Output vector containing the reference state
|
||||
* Gibbs Free energies. Length: m_kk. Units: J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional
|
||||
|
|
@ -481,11 +481,11 @@ protected:
|
|||
doublereal m_p0;
|
||||
|
||||
//! Dimensionless enthalpy at the (mtlast, m_p0)
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_h0_RT;
|
||||
//! Dimensionless heat capacity at the (mtlast, m_p0)
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_cp0_R;
|
||||
//! Dimensionless entropy at the (mtlast, m_p0)
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ class SpeciesThermoInterpType;
|
|||
* The following classes inherit from SpeciesThermoInterpType.
|
||||
*
|
||||
* - NasaPoly1 in file NasaPoly1.h
|
||||
* - This is a one zone model, consisting of a 7
|
||||
* - This is a one zone model, consisting of a 7
|
||||
* coefficient NASA Polynomial format.
|
||||
* - NasaPoly2 in file NasaPoly2.h
|
||||
* - This is a two zone model, with each zone consisting of a 7
|
||||
|
|
@ -104,7 +104,7 @@ class SpeciesThermoInterpType;
|
|||
* at a set number of temperatures. Between each temperature
|
||||
* the heat capacity is treated as a constant.
|
||||
* - Nasa9Poly1 in file Nasa9Poly1.h
|
||||
* - This is a one zone model, consisting of the 9
|
||||
* - This is a one zone model, consisting of the 9
|
||||
* coefficient NASA Polynomial format.
|
||||
* - Nasa9PolyMultiTempRegion in file Nasa9PolyMultiTempRegion.h
|
||||
* - This is a multiple zone model, consisting of the 9
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class VPSSMgr;
|
|||
* The following classes inherit from SpeciesThermoInterpType.
|
||||
*
|
||||
* - NasaPoly1 in file NasaPoly1.h
|
||||
* - This is a one zone model, consisting of a 7
|
||||
* - This is a one zone model, consisting of a 7
|
||||
* coefficient NASA Polynomial format.
|
||||
* .
|
||||
* - NasaPoly2 in file NasaPoly2.h
|
||||
|
|
@ -100,7 +100,7 @@ class VPSSMgr;
|
|||
* the heat capacity is treated as a constant.
|
||||
* .
|
||||
* - Nasa9Poly1 in file Nasa9Poly1.h
|
||||
* - This is a one zone model, consisting of the 9
|
||||
* - This is a one zone model, consisting of the 9
|
||||
* coefficient NASA Polynomial format.
|
||||
* .
|
||||
* - Nasa9PolyMultiTempRegion in file Nasa9PolyMultiTempRegion.h
|
||||
|
|
@ -119,7 +119,7 @@ class VPSSMgr;
|
|||
* \link SpeciesThermoInterpType::updatePropertiesTemp() updatePropertiesTemp()\endlink.
|
||||
* The function calculates the values of Cp, H, and S for the specific
|
||||
* species pertaining to this class. It takes as its arguments the
|
||||
* base pointer for the vector of Cp, H, and S values for all species
|
||||
* base pointer for the vector of Cp, H, and S values for all species
|
||||
* in the phase. The offset for the species is known within the
|
||||
* object.
|
||||
*
|
||||
|
|
@ -150,7 +150,7 @@ class VPSSMgr;
|
|||
*
|
||||
* @code
|
||||
* SpeciesThermoInterpType(int index, doublereal tlow, doublereal thigh,
|
||||
* doublereal pref, const doublereal* coeffs)
|
||||
* doublereal pref, const doublereal* coeffs)
|
||||
* @endcode
|
||||
*
|
||||
* @ingroup spthermo
|
||||
|
|
@ -205,7 +205,7 @@ public:
|
|||
//! Update the properties for this species, given a temperature polynomial
|
||||
/*!
|
||||
* This method is called with a pointer to an array containing the functions
|
||||
* of temperature needed by this parameterization, and three pointers to
|
||||
* of temperature needed by this parameterization, and three pointers to
|
||||
* arrays where the computed property values should be written. This method
|
||||
* updates only one value in each array.
|
||||
*
|
||||
|
|
@ -272,7 +272,7 @@ public:
|
|||
* the standard state of the species from its constituent elements in
|
||||
* their standard states at 298 K and 1 bar.
|
||||
*
|
||||
* @param h298 If this is nonnull, the current value of the Heat of
|
||||
* @param h298 If this is nonnull, the current value of the Heat of
|
||||
* Formation at 298K and 1 bar for species m_speciesIndex is
|
||||
* returned in h298[m_speciesIndex].
|
||||
* @return Returns the current value of the Heat of Formation at 298K
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ public:
|
|||
//! state of the species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* Units are Joules/kmol
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* @param gpure Output vector of standard state Gibbs free energies
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getPureGibbs(doublereal* gpure) const;
|
||||
|
|
@ -307,7 +307,7 @@ public:
|
|||
* Gibbs free energy, calculated from enthalpy and the
|
||||
* entropy, and the multiplying by RT.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
/**
|
||||
* Returns the vector of nondimensional
|
||||
|
|
@ -344,9 +344,9 @@ protected:
|
|||
doublereal m_press;
|
||||
doublereal m_p0;
|
||||
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
private:
|
||||
void _updateThermo() const;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ namespace Cantera
|
|||
* R_s = k_s C_{gas}
|
||||
* \f]
|
||||
* where the units for \f$ R_s \f$ are kmol m-2 s-1. \f$ C_{gas} \f$ has units
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
|
||||
* units of m s-1. Nowhere does the concentration of the bulk phase
|
||||
* appear in the rate constant expression, since it's a stoichiometric
|
||||
* phase and the activity is always equal to 1.0.
|
||||
|
|
@ -181,7 +181,7 @@ public:
|
|||
/*!
|
||||
* @param right Object to be copied
|
||||
*/
|
||||
StoichSubstanceSSTP(const StoichSubstanceSSTP& right);
|
||||
StoichSubstanceSSTP(const StoichSubstanceSSTP& right);
|
||||
|
||||
//! Assignment operator
|
||||
/*!
|
||||
|
|
@ -244,7 +244,7 @@ public:
|
|||
* \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
|
||||
* \f]
|
||||
*/
|
||||
virtual doublereal thermalExpansionCoeff() const ;
|
||||
virtual doublereal thermalExpansionCoeff() const;
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
@ -349,7 +349,7 @@ public:
|
|||
*/
|
||||
virtual void getCp_R(doublereal* cpr) const;
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* For an incompressible,
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ public:
|
|||
|
||||
//! Return a vector of activity concentrations for each species
|
||||
/*!
|
||||
* For this phase the activity concentrations,\f$ C^a_k \f$, are defined to be
|
||||
* For this phase the activity concentrations,\f$ C^a_k \f$, are defined to be
|
||||
* equal to the actual concentrations, \f$ C^s_k \f$.
|
||||
* Activity concentrations are
|
||||
*
|
||||
|
|
@ -428,7 +428,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species standard states
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const;
|
||||
|
|
@ -436,7 +436,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! species standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const;
|
||||
|
|
@ -489,7 +489,7 @@ public:
|
|||
//! enthalpies of the reference state at the current temperature
|
||||
//! of the solution and the reference pressure for the species.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT_ref(doublereal* hrt) const;
|
||||
|
|
@ -545,9 +545,9 @@ public:
|
|||
*/
|
||||
void setCoveragesNoNorm(const doublereal* theta);
|
||||
|
||||
//! Set the coverages from a string of colon-separated name:value pairs.
|
||||
//! Set the coverages from a string of colon-separated name:value pairs.
|
||||
/*!
|
||||
* @param cov String containing colon-separated name:value pairs
|
||||
* @param cov String containing colon-separated name:value pairs
|
||||
*/
|
||||
void setCoveragesByName(const std::string& cov);
|
||||
|
||||
|
|
@ -574,26 +574,26 @@ protected:
|
|||
doublereal m_press;
|
||||
|
||||
//! Temporary storage for the reference state enthalpies
|
||||
mutable vector_fp m_h0;
|
||||
mutable vector_fp m_h0;
|
||||
|
||||
//! Temporary storage for the reference state entropies
|
||||
mutable vector_fp m_s0;
|
||||
mutable vector_fp m_s0;
|
||||
|
||||
//! Temporary storage for the reference state heat capacities
|
||||
mutable vector_fp m_cp0;
|
||||
mutable vector_fp m_cp0;
|
||||
|
||||
//! Temporary storage for the reference state Gibbs energies
|
||||
mutable vector_fp m_mu0;
|
||||
mutable vector_fp m_mu0;
|
||||
|
||||
//! Temporary work array
|
||||
mutable vector_fp m_work;
|
||||
mutable vector_fp m_work;
|
||||
|
||||
//! vector storing the log of the size of each species.
|
||||
/*!
|
||||
* The size of each species is defined as the number of surface
|
||||
* sites each species occupies.
|
||||
*/
|
||||
mutable vector_fp m_logsize;
|
||||
mutable vector_fp m_logsize;
|
||||
|
||||
private:
|
||||
//! Update the species reference state thermodynamic functions
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ namespace Cantera
|
|||
*/
|
||||
//@{
|
||||
//! Standard state uses the molar convention
|
||||
const int cAC_CONVENTION_MOLAR = 0;
|
||||
const int cAC_CONVENTION_MOLAR = 0;
|
||||
//! Standard state uses the molality convention
|
||||
const int cAC_CONVENTION_MOLALITY = 1;
|
||||
const int cAC_CONVENTION_MOLALITY = 1;
|
||||
//@}
|
||||
|
||||
/*!
|
||||
|
|
@ -213,7 +213,7 @@ public:
|
|||
* Some phases must have zero net charge in order for their thermodynamics functions to be valid.
|
||||
* If this is so, then the value returned from this function is true.
|
||||
* If this is not the case, then this is false. Now, ideal gases have this parameter set to false,
|
||||
* while solution with molality-based activity coefficients have this parameter set to true.
|
||||
* while solution with molality-based activity coefficients have this parameter set to true.
|
||||
*/
|
||||
bool chargeNeutralityNecessary() const {
|
||||
return m_chargeNeutralityNecessary;
|
||||
|
|
@ -269,7 +269,7 @@ public:
|
|||
throw NotImplementedError("ThermoPhase::pressure");
|
||||
}
|
||||
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
//! Returns the isothermal compressibility. Units: 1/Pa.
|
||||
/*!
|
||||
* The isothermal compressibility is defined as
|
||||
* \f[
|
||||
|
|
@ -334,7 +334,7 @@ public:
|
|||
* to the chemical potential by \f[ \mu_k = \mu_k^0(T,P) +
|
||||
* \hat R T \log a_k. \f] The quantity \f$\mu_k^0(T,P)\f$ is
|
||||
* the standard chemical potential at unit activity,
|
||||
* which depends on temperature and pressure,
|
||||
* which depends on temperature and pressure,
|
||||
* but not on composition. The activity is dimensionless.
|
||||
* @{
|
||||
*/
|
||||
|
|
@ -577,7 +577,7 @@ public:
|
|||
throw NotImplementedError("ThermoPhase::getdPartialMolarVolumes_dT");
|
||||
}
|
||||
|
||||
//! Return an array of derivatives of partial molar volumes wrt pressure for the
|
||||
//! Return an array of derivatives of partial molar volumes wrt pressure for the
|
||||
//! species in the mixture. Units: m^3/kmol.
|
||||
/*!
|
||||
* The derivative is at constant temperature
|
||||
|
|
@ -610,7 +610,7 @@ public:
|
|||
//! Get the nondimensional Enthalpy functions for the species
|
||||
//! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* @param hrt Output vector of nondimensional standard state enthalpies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEnthalpy_RT(doublereal* hrt) const {
|
||||
|
|
@ -620,7 +620,7 @@ public:
|
|||
//! Get the array of nondimensional Entropy functions for the
|
||||
//! standard state species at the current <I>T</I> and <I>P</I> of the solution.
|
||||
/*!
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* @param sr Output vector of nondimensional standard state entropies.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getEntropy_R(doublereal* sr) const {
|
||||
|
|
@ -648,7 +648,7 @@ public:
|
|||
throw NotImplementedError("ThermoPhase::getPureGibbs");
|
||||
}
|
||||
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! Returns the vector of nondimensional Internal Energies of the standard
|
||||
//! state species at the current <I>T</I> and <I>P</I> of the solution
|
||||
/*!
|
||||
* @param urt output vector of nondimensional standard state internal energies
|
||||
|
|
@ -743,7 +743,7 @@ public:
|
|||
/*!
|
||||
* units = J/kmol
|
||||
*
|
||||
* @param g Output vector containing the reference state
|
||||
* @param g Output vector containing the reference state
|
||||
* Gibbs Free energies. Length: m_kk. Units: J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const {
|
||||
|
|
@ -1063,7 +1063,7 @@ public:
|
|||
* @param rho Density (kg/m^3)
|
||||
* @param p Pressure (Pa)
|
||||
*/
|
||||
virtual void setState_RP(doublereal rho, doublereal p){
|
||||
virtual void setState_RP(doublereal rho, doublereal p) {
|
||||
throw NotImplementedError("ThermoPhase::setState_RP");
|
||||
}
|
||||
|
||||
|
|
@ -1411,7 +1411,7 @@ public:
|
|||
virtual void initThermoFile(const std::string& inputFile,
|
||||
const std::string& id);
|
||||
|
||||
//!Import and initialize a ThermoPhase object using an XML tree.
|
||||
//!Import and initialize a ThermoPhase object using an XML tree.
|
||||
/*!
|
||||
* @internal
|
||||
*
|
||||
|
|
@ -1462,7 +1462,7 @@ public:
|
|||
|
||||
//! Add in species from Slave phases
|
||||
/*!
|
||||
* This hook is used for cSS_CONVENTION_SLAVE phases
|
||||
* This hook is used for cSS_CONVENTION_SLAVE phases
|
||||
*
|
||||
* @param phaseNode XML Element for the phase
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -330,7 +330,7 @@ public:
|
|||
//! Get the nondimensional Heat Capacities at constant pressure for the
|
||||
//! standard state of the species at the current T and P.
|
||||
/*!
|
||||
* This is redefined here to call the internal function, _updateStandardStateThermo(),
|
||||
* This is redefined here to call the internal function, _updateStandardStateThermo(),
|
||||
* which calculates all standard state properties at the same time.
|
||||
*
|
||||
* @param cpr Output vector containing the the nondimensional Heat
|
||||
|
|
@ -396,7 +396,7 @@ public:
|
|||
* of the reference state of the species
|
||||
* length = m_kk, units = dimensionless.
|
||||
*/
|
||||
virtual void getGibbs_RT_ref(doublereal* grt) const ;
|
||||
virtual void getGibbs_RT_ref(doublereal* grt) const;
|
||||
|
||||
|
||||
//! Return a reference to the vector of Gibbs free energies of the species
|
||||
|
|
@ -413,7 +413,7 @@ public:
|
|||
* of the reference state of the species
|
||||
* length = m_kk, units = J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const ;
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional entropies of the reference state
|
||||
|
|
@ -424,7 +424,7 @@ public:
|
|||
* of the species in their reference states
|
||||
* length: m_kk, units: dimensionless.
|
||||
*/
|
||||
virtual void getEntropy_R_ref(doublereal* er) const ;
|
||||
virtual void getEntropy_R_ref(doublereal* er) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional constant pressure heat capacities
|
||||
|
|
@ -435,7 +435,7 @@ public:
|
|||
* of the species in their reference states
|
||||
* length: m_kk, units: dimensionless.
|
||||
*/
|
||||
virtual void getCp_R_ref(doublereal* cpr) const ;
|
||||
virtual void getCp_R_ref(doublereal* cpr) const;
|
||||
|
||||
//! Get the molar volumes of the species reference states at the current
|
||||
//! *T* and *P_ref* of the solution.
|
||||
|
|
@ -445,7 +445,7 @@ public:
|
|||
* @param vol Output vector containing the standard state volumes.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getStandardVolumes_ref(doublereal* vol) const ;
|
||||
virtual void getStandardVolumes_ref(doublereal* vol) const;
|
||||
|
||||
//@}
|
||||
/*! @name Setting the Internal State of the System
|
||||
|
|
@ -535,7 +535,7 @@ protected:
|
|||
* functions for all of the species must be recalculated.
|
||||
*
|
||||
* This function is responsible for updating the following internal members,
|
||||
* when m_useTmpStandardStateStorage is true.
|
||||
* when m_useTmpStandardStateStorage is true.
|
||||
*
|
||||
* - m_hss_RT;
|
||||
* - m_cpss_R;
|
||||
|
|
@ -576,7 +576,7 @@ public:
|
|||
/*!
|
||||
* @param index Species index
|
||||
*/
|
||||
virtual PDSS_enumType reportPDSSType(int index = -1) const ;
|
||||
virtual PDSS_enumType reportPDSSType(int index = -1) const;
|
||||
|
||||
//! This utility function reports the type of manager
|
||||
//! for the calculation of ss properties
|
||||
|
|
@ -584,7 +584,7 @@ public:
|
|||
* @return Returns an enum type called VPSSMgr_enumType, which is a list
|
||||
* of the known VPSSMgr objects
|
||||
*/
|
||||
virtual VPSSMgr_enumType reportVPSSMgrType() const ;
|
||||
virtual VPSSMgr_enumType reportVPSSMgrType() const;
|
||||
|
||||
//! Minimum temperature.
|
||||
/*!
|
||||
|
|
@ -595,7 +595,7 @@ public:
|
|||
*
|
||||
* @param k Species index
|
||||
*/
|
||||
virtual doublereal minTemp(size_t k=npos) const ;
|
||||
virtual doublereal minTemp(size_t k=npos) const;
|
||||
|
||||
//! Maximum temperature.
|
||||
/*!
|
||||
|
|
@ -619,7 +619,7 @@ public:
|
|||
* @param k Species index. Default is -1, which returns
|
||||
* the generic answer.
|
||||
*/
|
||||
virtual doublereal refPressure(size_t k=npos) const ;
|
||||
virtual doublereal refPressure(size_t k=npos) const;
|
||||
|
||||
//@}
|
||||
/*! @name Initialization Methods - For Internal use
|
||||
|
|
@ -674,7 +674,7 @@ public:
|
|||
* @param phaseNode_ptr Pointer to the XML Node corresponding
|
||||
* to the phase which owns the species
|
||||
*/
|
||||
void installSTSpecies(size_t k, const XML_Node& speciesNode,
|
||||
void installSTSpecies(size_t k, const XML_Node& speciesNode,
|
||||
const XML_Node* phaseNode_ptr);
|
||||
|
||||
//! Install specific content for species k in the standard-state
|
||||
|
|
@ -719,11 +719,11 @@ protected:
|
|||
|
||||
//! The last temperature at which the standard state thermodynamic
|
||||
//! properties were calculated at.
|
||||
mutable doublereal m_tlast;
|
||||
mutable doublereal m_tlast;
|
||||
|
||||
//! The last pressure at which the Standard State thermodynamic
|
||||
//! properties were calculated at.
|
||||
mutable doublereal m_plast;
|
||||
mutable doublereal m_plast;
|
||||
|
||||
/*!
|
||||
* Reference pressure (Pa) must be the same for all species
|
||||
|
|
@ -747,28 +747,28 @@ protected:
|
|||
* Vector containing the species reference enthalpies at T = m_tlast
|
||||
* and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp m_h0_RT;
|
||||
mutable vector_fp m_h0_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference constant pressure
|
||||
* heat capacities at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp m_cp0_R;
|
||||
mutable vector_fp m_cp0_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference Gibbs functions
|
||||
* at T = m_tlast and P = p_ref.
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp m_g0_RT;
|
||||
mutable vector_fp m_g0_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference entropies
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp m_s0_R;
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
//! Vector containing the species reference molar volumes
|
||||
mutable vector_fp m_V0;
|
||||
mutable vector_fp m_V0;
|
||||
|
||||
/*!
|
||||
* boolean indicating whether temporary standard state storage is used
|
||||
|
|
@ -780,101 +780,101 @@ protected:
|
|||
* Vector containing the species Standard State enthalpies at T = m_tlast
|
||||
* and P = m_plast.
|
||||
*/
|
||||
mutable vector_fp m_hss_RT;
|
||||
mutable vector_fp m_hss_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State constant pressure
|
||||
* heat capacities at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
mutable vector_fp m_cpss_R;
|
||||
mutable vector_fp m_cpss_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State Gibbs functions
|
||||
* at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
mutable vector_fp m_gss_RT;
|
||||
mutable vector_fp m_gss_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State entropies
|
||||
* at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
mutable vector_fp m_sss_R;
|
||||
mutable vector_fp m_sss_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species standard state volumes
|
||||
* at T = m_tlast and P = m_plast
|
||||
*/
|
||||
mutable vector_fp m_Vss;
|
||||
mutable vector_fp m_Vss;
|
||||
|
||||
//! species reference enthalpies - used by individual PDSS objects
|
||||
/*!
|
||||
* Vector containing the species reference enthalpies at T = m_tlast
|
||||
* and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_h0_RT;
|
||||
mutable vector_fp mPDSS_h0_RT;
|
||||
|
||||
//! species reference heat capacities - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species reference constant pressure
|
||||
* heat capacities at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_cp0_R;
|
||||
mutable vector_fp mPDSS_cp0_R;
|
||||
|
||||
//! species reference Gibbs free energies - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species reference Gibbs functions
|
||||
* at T = m_tlast and P = p_ref.
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_g0_RT;
|
||||
mutable vector_fp mPDSS_g0_RT;
|
||||
|
||||
//! species reference entropies - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species reference entropies
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_s0_R;
|
||||
mutable vector_fp mPDSS_s0_R;
|
||||
|
||||
//! species reference state molar Volumes - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the rf molar volumes
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_V0;
|
||||
mutable vector_fp mPDSS_V0;
|
||||
|
||||
//! species standard state enthalpies - used by individual PDSS objects
|
||||
/*!
|
||||
* Vector containing the species standard state enthalpies at T = m_tlast
|
||||
* and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_hss_RT;
|
||||
mutable vector_fp mPDSS_hss_RT;
|
||||
|
||||
//! species standard state heat capacities - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species standard state constant pressure
|
||||
* heat capacities at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_cpss_R;
|
||||
mutable vector_fp mPDSS_cpss_R;
|
||||
|
||||
//! species standard state Gibbs free energies - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species standard state Gibbs functions
|
||||
* at T = m_tlast and P = p_ref.
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_gss_RT;
|
||||
mutable vector_fp mPDSS_gss_RT;
|
||||
|
||||
//! species standard state entropies - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the species standard state entropies
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_sss_R;
|
||||
mutable vector_fp mPDSS_sss_R;
|
||||
|
||||
//! species standard state molar Volumes - used by individual PDSS objects
|
||||
/**
|
||||
* Vector containing the ss molar volumes
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
mutable vector_fp mPDSS_Vss;
|
||||
mutable vector_fp mPDSS_Vss;
|
||||
|
||||
friend class PDSS;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class VPSSMgr_ConstVol : public VPSSMgr
|
|||
public:
|
||||
//! Constructor
|
||||
/*!
|
||||
* @param vp_ptr Pointer to the owning VPStandardStateTP object
|
||||
* @param vp_ptr Pointer to the owning VPStandardStateTP object
|
||||
* for the phase. It's a requirement that this be
|
||||
* already malloced.
|
||||
* @param spth Pointer to the SpeciesThermo object for the
|
||||
|
|
@ -68,13 +68,13 @@ protected:
|
|||
* state values of Cp, H, S, and V at the last temperature and reference
|
||||
* pressure called. These functions are not recalculated if a new call is
|
||||
* made using the previous temperature. All calculations are done within
|
||||
* the routine _updateRefStateThermo(). _updateRefStateThermo() is
|
||||
* the routine _updateRefStateThermo(). _updateRefStateThermo() is
|
||||
* defined in the parent object.
|
||||
*/
|
||||
//@{
|
||||
|
||||
virtual void getGibbs_RT_ref(doublereal* grt) const ;
|
||||
virtual void getStandardVolumes_ref(doublereal* vol) const ;
|
||||
virtual void getGibbs_RT_ref(doublereal* grt) const;
|
||||
virtual void getStandardVolumes_ref(doublereal* vol) const;
|
||||
|
||||
//@}
|
||||
/*! @name Initialization Methods - For Internal use
|
||||
|
|
@ -111,8 +111,8 @@ public:
|
|||
const XML_Node* const phaseNode_ptr);
|
||||
//@}
|
||||
|
||||
virtual PDSS_enumType reportPDSSType(int index = -1) const ;
|
||||
virtual VPSSMgr_enumType reportVPSSMgrType() const ;
|
||||
virtual PDSS_enumType reportPDSSType(int index = -1) const;
|
||||
virtual VPSSMgr_enumType reportVPSSMgrType() const;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue