[Thermo] Surface coverages can be set using a compositionMap

This commit is contained in:
Ray Speth 2015-05-01 11:48:02 -04:00
parent 9e4e73da90
commit 522c563810
2 changed files with 9 additions and 2 deletions

View file

@ -551,6 +551,9 @@ public:
*/
void setCoveragesByName(const std::string& cov);
//! Set the coverages from a map of name:value pairs
void setCoveragesByName(const compositionMap& cov);
//! Return a vector of surface coverages
/*!
* Get the coverages.

View file

@ -327,11 +327,15 @@ void SurfPhase::getCoverages(doublereal* theta) const
void SurfPhase::setCoveragesByName(const std::string& cov)
{
compositionMap cc = parseCompString(cov, speciesNames());
setCoveragesByName(parseCompString(cov, speciesNames()));
}
void SurfPhase::setCoveragesByName(const compositionMap& cov)
{
vector_fp cv(m_kk, 0.0);
bool ifound = false;
for (size_t k = 0; k < m_kk; k++) {
double c = cc[speciesName(k)];
double c = getValue(cov, speciesName(k), 0.0);
if (c > 0.0) {
ifound = true;
cv[k] = c;