-
This commit is contained in:
parent
ec71c9dd36
commit
7b0be740bd
5 changed files with 366 additions and 149 deletions
223
Cantera/src/PureFluidPhase.h
Normal file
223
Cantera/src/PureFluidPhase.h
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
/**
|
||||
* @file PureFluid.h
|
||||
*
|
||||
* Declares class PureFluid
|
||||
*/
|
||||
|
||||
// Copyright 2001 California Institute of Technology
|
||||
|
||||
#ifndef CT_EOS_TPX_H
|
||||
#define CT_EOS_TPX_H
|
||||
|
||||
#include "ThermoPhase.h"
|
||||
#include "../../ext/tpx/Sub.h"
|
||||
#include "../../ext/tpx/utils.h"
|
||||
|
||||
namespace Cantera {
|
||||
|
||||
/// Class for single-component fluids
|
||||
class PureFluid : public ThermoPhase {
|
||||
|
||||
public:
|
||||
|
||||
PureFluid() : ThermoPhase(), m_sub(0) {}
|
||||
|
||||
virtual ~PureFluid() { delete m_sub; }
|
||||
|
||||
virtual void setParameters(int n, doublereal* c) {
|
||||
if (n == 1) {
|
||||
int subflag = int(c[0]);
|
||||
if (m_sub) delete m_sub;
|
||||
m_sub = tpx::GetSub(subflag);
|
||||
if (m_sub == 0) {
|
||||
throw CanteraError("PureFluid::setParameters",
|
||||
"could not create new substance object.");
|
||||
}
|
||||
m_subflag = subflag;
|
||||
m_mw = m_sub->MolWt();
|
||||
double cp0_R, h0_RT, s0_R, T0, p;
|
||||
T0 = 298.15;
|
||||
if (T0 < m_sub->Tcrit()) {
|
||||
m_sub->Set(tpx::TX, T0, 1.0);
|
||||
p = 0.01*m_sub->P();
|
||||
}
|
||||
else {
|
||||
p = 0.001*m_sub->Pcrit();
|
||||
}
|
||||
m_sub->Set(tpx::TP, T0, p);
|
||||
|
||||
m_spthermo->update_one(0, T0, &cp0_R, &h0_RT, &s0_R);
|
||||
double s_R = s0_R - log(p/refPressure());
|
||||
m_sub->setStdState(h0_RT*GasConstant*298.15/m_mw,
|
||||
s_R*GasConstant/m_mw, T0, p);
|
||||
}
|
||||
}
|
||||
|
||||
virtual int eosType() const { return cPureFluid; }
|
||||
|
||||
/**
|
||||
* Mixture molar enthalpy. Units: J/mol.
|
||||
*/
|
||||
virtual doublereal enthalpy_mole() const {
|
||||
setTPXState();
|
||||
doublereal h = m_sub->h() * m_mw;
|
||||
check();
|
||||
return h;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixture molar internal energy. Units: J/mol.
|
||||
*/
|
||||
virtual doublereal intEnergy_mole() const {
|
||||
setTPXState();
|
||||
doublereal u = m_sub->u() * m_mw;
|
||||
check();
|
||||
return u;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixture molar entropy. Units: J/mol/K.
|
||||
*/
|
||||
virtual doublereal entropy_mole() const {
|
||||
setTPXState();
|
||||
doublereal s = m_sub->s() * m_mw;
|
||||
check();
|
||||
return s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixture molar Gibbs function. Units: J/mol.
|
||||
*/
|
||||
virtual doublereal gibbs_mole() const {
|
||||
setTPXState();
|
||||
doublereal g = m_sub->g() * m_mw;
|
||||
check();
|
||||
return g;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixture molar heat capacity at constant pressure.
|
||||
* Units: J/mol/K.
|
||||
*/
|
||||
virtual doublereal cp_mole() const {
|
||||
setTPXState();
|
||||
doublereal cp = m_sub->cp() * m_mw;
|
||||
check();
|
||||
return cp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mixture molar heat capacity at constant volume.
|
||||
* Units: J/mol/K.
|
||||
*/
|
||||
virtual doublereal cv_mole() const {
|
||||
setTPXState();
|
||||
doublereal cv = m_sub->cv() * m_mw;
|
||||
check();
|
||||
return cv;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Pressure. Units: Pa
|
||||
*/
|
||||
virtual doublereal pressure() const {
|
||||
setTPXState();
|
||||
doublereal p = m_sub->P();
|
||||
check();
|
||||
return p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the pressure, holding temperature and composition
|
||||
* fixed.
|
||||
*/
|
||||
virtual void setPressure(doublereal p) {
|
||||
m_sub->Set(tpx::TP, temperature(), p);
|
||||
setDensity(1.0/m_sub->v());
|
||||
check();
|
||||
}
|
||||
|
||||
virtual void getChemPotentials(doublereal* mu) const {
|
||||
mu[0] = gibbs_mole();
|
||||
}
|
||||
|
||||
|
||||
tpx::Substance& TPX_Substance() { return *m_sub; }
|
||||
|
||||
/// critical temperature
|
||||
virtual doublereal critTemperature() const { return m_sub->Tcrit(); }
|
||||
|
||||
/// critical pressure
|
||||
virtual doublereal critPressure() const { return m_sub->Pcrit(); }
|
||||
|
||||
/// critical density
|
||||
virtual doublereal critDensity() const { return 1.0/m_sub->Vcrit(); }
|
||||
|
||||
|
||||
/// saturation temperature
|
||||
virtual doublereal satTemperature(doublereal p) const {
|
||||
doublereal ts = m_sub->Tsat(p);
|
||||
check();
|
||||
return ts;
|
||||
}
|
||||
|
||||
/// saturation pressure
|
||||
virtual doublereal satPressure(doublereal t) const {
|
||||
doublereal tsv = m_sub->Temp();
|
||||
doublereal vsv = m_sub->v();
|
||||
m_sub->Set(tpx::TP, t, 0.5*m_sub->Pcrit());
|
||||
doublereal ps = m_sub->Ps();
|
||||
m_sub->Set(tpx::TV,tsv,vsv);
|
||||
check();
|
||||
return ps;
|
||||
}
|
||||
|
||||
virtual doublereal vaporFraction() const {
|
||||
setTPXState();
|
||||
doublereal x = m_sub->x();
|
||||
check();
|
||||
return x;
|
||||
}
|
||||
|
||||
virtual void setState_satLiquid() {
|
||||
setTPXState();
|
||||
m_sub->Set(tpx::TX, temperature(), 0.0);
|
||||
setDensity(1.0/m_sub->v());
|
||||
check();
|
||||
}
|
||||
|
||||
virtual void setState_satVapor() {
|
||||
setTPXState();
|
||||
m_sub->Set(tpx::TX, temperature(), 1.0);
|
||||
setDensity(1.0/m_sub->v());
|
||||
check();
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
void setTPXState() const {
|
||||
m_sub->Set(tpx::TV, temperature(), 1.0/density());
|
||||
}
|
||||
|
||||
void check() const {
|
||||
if (m_sub->Error()) {
|
||||
throw CanteraError("PureFluidPhase",string(tpx::errorMsg(
|
||||
m_sub->Error())));
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
mutable tpx::Substance* m_sub;
|
||||
int m_subflag;
|
||||
doublereal m_mw;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -23,6 +23,67 @@
|
|||
|
||||
namespace Cantera {
|
||||
|
||||
void ThermoPhase::setState_TPX(doublereal t, doublereal p,
|
||||
const doublereal* x) {
|
||||
setMoleFractions(x); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TPX(doublereal t, doublereal p,
|
||||
compositionMap& x) {
|
||||
setMoleFractionsByName(x); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TPX(doublereal t, doublereal p,
|
||||
const string& x) {
|
||||
compositionMap xx;
|
||||
int kk = nSpecies();
|
||||
for (int k = 0; k < kk; k++) xx[speciesName(k)] = -1.0;
|
||||
try {
|
||||
parseCompString(x, xx);
|
||||
}
|
||||
catch (CanteraError) {
|
||||
throw CanteraError("setState_TPX",
|
||||
"Unknown species in composition map: "+ x);
|
||||
}
|
||||
setMoleFractionsByName(xx); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TPY(doublereal t, doublereal p,
|
||||
const doublereal* y) {
|
||||
setMassFractions(y); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TPY(doublereal t, doublereal p,
|
||||
compositionMap& y) {
|
||||
setMassFractionsByName(y); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TPY(doublereal t, doublereal p,
|
||||
const string& y) {
|
||||
compositionMap yy;
|
||||
int kk = nSpecies();
|
||||
for (int k = 0; k < kk; k++) yy[speciesName(k)] = -1.0;
|
||||
try {
|
||||
parseCompString(y, yy);
|
||||
}
|
||||
catch (CanteraError) {
|
||||
throw CanteraError("setState_TPY",
|
||||
"Unknown species in composition map: "+ y);
|
||||
}
|
||||
setMassFractionsByName(yy); setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_TP(doublereal t, doublereal p) {
|
||||
setTemperature(t); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_PX(doublereal p, doublereal* x) {
|
||||
setMoleFractions(x); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_PY(doublereal p, doublereal* y) {
|
||||
setMassFractions(y); setPressure(p);
|
||||
}
|
||||
|
||||
void ThermoPhase::setState_HP(doublereal h, doublereal p,
|
||||
doublereal tol) {
|
||||
|
|
|
|||
|
|
@ -53,13 +53,14 @@ namespace Cantera {
|
|||
class ThermoPhase : public Phase {
|
||||
|
||||
public:
|
||||
|
||||
/// Constructor.
|
||||
ThermoPhase() : Phase(), m_spthermo(0), m_speciesData(0),
|
||||
m_index(-1), m_phi(0.0) {}
|
||||
|
||||
|
||||
virtual ~ThermoPhase() {
|
||||
delete m_spthermo;
|
||||
// Taking this out because I think i don't own it
|
||||
//delete m_speciesData;
|
||||
m_spthermo = 0;
|
||||
m_speciesData = 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -90,11 +91,19 @@ namespace Cantera {
|
|||
void setIndex(int m) { m_index = m; }
|
||||
|
||||
|
||||
/// used to access data needed to construct transport manager
|
||||
/// later.
|
||||
void saveSpeciesData(const XML_Node* data) {
|
||||
m_speciesData = data;
|
||||
}
|
||||
|
||||
const XML_Node* speciesData() { return m_speciesData; }
|
||||
const XML_Node* speciesData() {
|
||||
if (m_speciesData)
|
||||
return m_speciesData;
|
||||
else
|
||||
throw CanteraError("ThermoPhase::speciesData",
|
||||
"m_speciesData is NULL");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -236,11 +245,7 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
void setElectricPotential(doublereal v) {
|
||||
//int nsp = nSpecies();
|
||||
m_phi = v;
|
||||
//for (int k = 0; k < nsp; k++) {
|
||||
// setPotentialEnergy(k, v*charge(k)*Faraday);
|
||||
//}
|
||||
}
|
||||
|
||||
doublereal electricPotential() { return m_phi; }
|
||||
|
|
@ -484,63 +489,32 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
/** Set the temperature (K), pressure (Pa), and mole fractions. */
|
||||
void setState_TPX(doublereal t, doublereal p, const doublereal* x) {
|
||||
setMoleFractions(x); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPX(doublereal t, doublereal p, const doublereal* x);
|
||||
|
||||
/** Set the temperature (K), pressure (Pa), and mole fractions. */
|
||||
void setState_TPX(doublereal t, doublereal p, compositionMap& x) {
|
||||
setMoleFractionsByName(x); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPX(doublereal t, doublereal p, compositionMap& x);
|
||||
|
||||
/** Set the temperature (K), pressure (Pa), and mole fractions. */
|
||||
void setState_TPX(doublereal t, doublereal p, const string& x) {
|
||||
compositionMap xx;
|
||||
int kk = nSpecies();
|
||||
for (int k = 0; k < kk; k++) xx[speciesName(k)] = -1.0;
|
||||
try {
|
||||
parseCompString(x, xx);
|
||||
}
|
||||
catch (CanteraError) {
|
||||
throw CanteraError("setState_TPX",
|
||||
"Unknown species in composition map: "+ x);
|
||||
}
|
||||
setMoleFractionsByName(xx); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPX(doublereal t, doublereal p, const string& x);
|
||||
|
||||
/** Set the temperature (K), pressure (Pa), and mass fractions. */
|
||||
void setState_TPY(doublereal t, doublereal p, const doublereal* y) {
|
||||
setMassFractions(y); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPY(doublereal t, doublereal p, const doublereal* y);
|
||||
|
||||
/** Set the temperature (K), pressure (Pa), and mass fractions. */
|
||||
void setState_TPY(doublereal t, doublereal p, compositionMap& y) {
|
||||
setMassFractionsByName(y); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPY(doublereal t, doublereal p, compositionMap& y);
|
||||
|
||||
/** Set the temperature (K), pressure (Pa), and mass fractions. */
|
||||
void setState_TPY(doublereal t, doublereal p, const string& y) {
|
||||
compositionMap yy;
|
||||
int kk = nSpecies();
|
||||
for (int k = 0; k < kk; k++) yy[speciesName(k)] = -1.0;
|
||||
parseCompString(y, yy);
|
||||
setMassFractionsByName(yy); setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TPY(doublereal t, doublereal p, const string& y);
|
||||
|
||||
/** Set the temperature (K) and pressure (Pa) */
|
||||
void setState_TP(doublereal t, doublereal p) {
|
||||
setTemperature(t); setPressure(p);
|
||||
}
|
||||
void setState_TP(doublereal t, doublereal p);
|
||||
|
||||
/** Set the pressure (Pa) and mole fractions. */
|
||||
void setState_PX(doublereal p, doublereal* x) {
|
||||
setMoleFractions(x); setPressure(p);
|
||||
}
|
||||
void setState_PX(doublereal p, doublereal* x);
|
||||
|
||||
/** Set the pressure (Pa) and mass fractions. */
|
||||
void setState_PY(doublereal p, doublereal* y) {
|
||||
setMassFractions(y); setPressure(p);
|
||||
}
|
||||
void setState_PY(doublereal p, doublereal* y);
|
||||
|
||||
|
||||
/** Set the specific enthalpy (J/kg) and pressure (Pa). */
|
||||
void setState_HP(doublereal h, doublereal p, doublereal tol = 1.e-8);
|
||||
|
|
@ -577,7 +551,7 @@ namespace Cantera {
|
|||
void getActivities(doublereal* a) {
|
||||
getActivityConcentrations(a);
|
||||
int nsp = nSpecies();
|
||||
doublereal rc = standardConcentration();
|
||||
doublereal rc = 1.0/standardConcentration();
|
||||
scale(a, a + nsp, a, rc);
|
||||
}
|
||||
|
||||
|
|
@ -661,21 +635,14 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
doublereal minTemp(int k = -1) {
|
||||
return m_spthermo->minTemp();
|
||||
return m_spthermo->minTemp(k);
|
||||
}
|
||||
|
||||
doublereal maxTemp(int k = -1) {
|
||||
return m_spthermo->maxTemp();
|
||||
return m_spthermo->maxTemp(k);
|
||||
}
|
||||
|
||||
|
||||
ThermoPhase() {
|
||||
m_spthermo = 0;
|
||||
m_speciesData = 0;
|
||||
m_index = -1;
|
||||
m_phi = 0.0;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
/// Pointer to the species thermodynamic property manager
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/* $Author$
|
||||
/*
|
||||
* $Author$
|
||||
* $Date$
|
||||
* $Revision$
|
||||
*
|
||||
|
|
@ -24,24 +25,11 @@
|
|||
#endif
|
||||
|
||||
#include "DustyGasTransport.h"
|
||||
#include "ctlapack.h"
|
||||
#include "../../ext/math/gmres.h"
|
||||
|
||||
#include "DenseMatrix.h"
|
||||
#include "polyfit.h"
|
||||
#include "utilities.h"
|
||||
#include "TransportParams.h"
|
||||
#include "IdealGasPhase.h"
|
||||
|
||||
#include "TransportFactory.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
/**
|
||||
* Mole fractions below MIN_X will be set to MIN_X when computing
|
||||
* transport properties.
|
||||
*/
|
||||
|
||||
#define MIN_X 1.e-20
|
||||
|
||||
|
||||
|
|
@ -115,28 +103,24 @@ namespace Cantera {
|
|||
void DustyGasTransport::updateBinaryDiffCoeffs() {
|
||||
if (m_bulk_ok) return;
|
||||
int n,m;
|
||||
|
||||
// get the gaseous binary diffusion coefficients
|
||||
//cout << "Gas binary diffusion coefficients: " << endl;
|
||||
m_gastran->getBinaryDiffCoeffs(m_nsp, m_d.begin());
|
||||
doublereal por2tort = m_porosity / m_tortuosity;
|
||||
for (n = 0; n < m_nsp; n++)
|
||||
for (m = 0; m < m_nsp; m++)
|
||||
m_d(n,m) *= por2tort;
|
||||
m_bulk_ok = true;
|
||||
//cout << m_d << endl;
|
||||
}
|
||||
|
||||
void DustyGasTransport::updateKnudsenDiffCoeffs() {
|
||||
if (m_knudsen_ok) return;
|
||||
doublereal K_g = m_pore_radius * m_porosity / m_tortuosity;
|
||||
const doublereal FourThirds = 4.0/3.0;
|
||||
//cout << "Knudsen diffusion coefficients: " << endl;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
m_dk[k] = FourThirds * K_g * sqrt((8.0 * GasConstant * m_temp)/
|
||||
(Pi * m_mw[k]));
|
||||
//cout << m_dk[k] << ", ";
|
||||
}
|
||||
//cout << endl;
|
||||
m_knudsen_ok = true;
|
||||
}
|
||||
|
||||
|
|
@ -155,7 +139,6 @@ namespace Cantera {
|
|||
sum = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) if (j != k) sum += m_x[j]/m_d(k,j);
|
||||
m_multidiff(k,k) = 1.0/m_dk[k] + sum;
|
||||
//cout << "H matrix = " << endl << m_multidiff << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -197,8 +180,6 @@ namespace Cantera {
|
|||
// invert H
|
||||
int ierr = invert(m_multidiff);
|
||||
|
||||
//cout << "Diffusion coeff matrix: " << endl;
|
||||
//cout << m_multidiff << endl;
|
||||
if (ierr != 0) {
|
||||
throw CanteraError("DustyGasTransport::updateMultiDiffCoeffs",
|
||||
"invert returned ierr = "+int2str(ierr));
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
/**
|
||||
*
|
||||
* @file DustyGasTransport.h
|
||||
* Interface for class DustyGasTransport
|
||||
*
|
||||
*/
|
||||
///
|
||||
///
|
||||
/// @file DustyGasTransport.h
|
||||
/// Interface for class DustyGasTransport
|
||||
///
|
||||
///
|
||||
|
||||
|
||||
// Copyright 2003 California Institute of Technology
|
||||
|
||||
|
|
@ -11,23 +12,6 @@
|
|||
#ifndef CT_DUSTYGASTRAN_H
|
||||
#define CT_DUSTYGASTRAN_H
|
||||
|
||||
|
||||
// turn off warnings under Windows
|
||||
#ifdef WIN32
|
||||
#pragma warning(disable:4786)
|
||||
#pragma warning(disable:4503)
|
||||
#endif
|
||||
|
||||
|
||||
// STL includes
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <numeric>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// Cantera includes
|
||||
#include "TransportBase.h"
|
||||
#include "../DenseMatrix.h"
|
||||
|
|
@ -35,45 +19,46 @@ using namespace std;
|
|||
|
||||
namespace Cantera {
|
||||
|
||||
|
||||
/**
|
||||
* Class DustyGasTransport implements the Dusty Gas model for
|
||||
* transport in porous media. As implemented here, only species
|
||||
* transport is handled. The viscosity, thermal conductivity, and
|
||||
* thermal diffusion coefficients are not implemented.
|
||||
*/
|
||||
///
|
||||
/// Class DustyGasTransport implements the Dusty Gas model for
|
||||
/// transport in porous media. As implemented here, only species
|
||||
/// transport is handled. The viscosity, thermal conductivity, and
|
||||
/// thermal diffusion coefficients are not implemented.
|
||||
///
|
||||
class DustyGasTransport : public Transport {
|
||||
|
||||
public:
|
||||
|
||||
/// default constructor
|
||||
DustyGasTransport(thermo_t* thermo=0);
|
||||
DustyGasTransport(thermo_t* thermo=0);
|
||||
|
||||
/// Destructor. Does nothing, since class allocates no memory
|
||||
/// on the heap.
|
||||
virtual ~DustyGasTransport() {}
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------
|
||||
// overloaded base class methods
|
||||
|
||||
virtual int model() { return cDustyGasTransport; }
|
||||
|
||||
virtual void setParameters(int type, int k, doublereal* p);
|
||||
|
||||
|
||||
//virtual void getBinaryDiffCoeffs(int ld, doublereal* d);
|
||||
|
||||
/**
|
||||
* Get the multicomponent effective diffusion coefficients.
|
||||
*/
|
||||
|
||||
virtual void getMultiDiffCoeffs(int ld, doublereal* d);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// new methods added in this class
|
||||
|
||||
/**
|
||||
* Get the molar gas species fluxes. These fluxes include both the ordinary mass diffusion component
|
||||
* and the Darcy (pressure-driven) commponent.
|
||||
*/
|
||||
|
||||
|
||||
/// Get the molar gas species fluxes. These fluxes include
|
||||
/// both the ordinary mass diffusion component
|
||||
/// and the Darcy (pressure-driven) commponent.
|
||||
void getMolarFluxes(const double* grad_conc,
|
||||
double grad_P, double* fluxes);
|
||||
|
||||
|
||||
|
||||
/// Set the porosity (dimensionless)
|
||||
void setPorosity(doublereal porosity) {
|
||||
m_porosity = porosity;
|
||||
|
|
@ -98,27 +83,27 @@ namespace Cantera {
|
|||
void setMeanParticleDiameter(doublereal dbar) {
|
||||
m_diam = dbar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the permeability. If not set, the value for
|
||||
* close-packed spheres will be used by default.
|
||||
*/
|
||||
|
||||
/// Set the permeability. If not set, the value for
|
||||
/// close-packed spheres will be used by default.
|
||||
void setPermeability(doublereal B) {
|
||||
m_perm = B;
|
||||
}
|
||||
|
||||
|
||||
/// Return a reference to the transport manager used to compute the gas
|
||||
/// binary diffusion coefficients and the visdcosity.
|
||||
Transport& gasTransport() { return *m_gastran; }
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
|
||||
|
||||
|
||||
friend class TransportFactory;
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// called by TransportFactory
|
||||
void initialize(ThermoPhase* phase, Transport* gastr);
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
void updateTransport_T();
|
||||
|
|
@ -147,10 +132,10 @@ namespace Cantera {
|
|||
vector_fp m_dk;
|
||||
|
||||
/// temperature
|
||||
doublereal m_temp;
|
||||
doublereal m_temp;
|
||||
|
||||
/// multicomponent diffusion coefficients
|
||||
DenseMatrix m_multidiff;
|
||||
DenseMatrix m_multidiff;
|
||||
|
||||
// work space
|
||||
vector_fp m_spwork;
|
||||
|
|
@ -158,13 +143,13 @@ namespace Cantera {
|
|||
bool m_knudsen_ok;
|
||||
bool m_bulk_ok;
|
||||
|
||||
doublereal m_porosity;
|
||||
doublereal m_tortuosity;
|
||||
doublereal m_pore_radius;
|
||||
doublereal m_diam;
|
||||
doublereal m_perm;
|
||||
doublereal m_porosity; /// porosity
|
||||
doublereal m_tortuosity; /// tortuosity
|
||||
doublereal m_pore_radius; /// pore radius (m)
|
||||
doublereal m_diam; /// particle diameter (m)
|
||||
doublereal m_perm; /// permeability
|
||||
|
||||
Transport* m_gastran;
|
||||
Transport* m_gastran; /// pointer to gas transport manager
|
||||
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue