This class uses the Chapman Enskog theory for mono-atomic gases to estimate the binary diffusion diffusivity between two gases.
More...
|
| ChapmanEnskog () |
|
| ChapmanEnskog (FuelCellShop::Material::PureGas &species1, FuelCellShop::Material::PureGas &species2) |
|
virtual | ~ChapmanEnskog () |
|
virtual char * | get_name () |
|
virtual char * | get_description () |
|
virtual enDiffusionModelID | get_ID () |
|
virtual double | getSikmaAB (const double &sikma_A, const double &sikma_B) |
|
virtual double | getTstarAB (const double &Tstar_A, const double &Tstar_B) |
|
virtual double | getOmegaAB (const double &Tstar) |
|
virtual void | compute_diffusion (double &D) |
| Comupute the diffusion coefficient [in m^2/s] at a given temperature [K] and pressure [atm].
|
|
virtual void | compute_diffusion (std::vector< double > &D_vec) |
| Compute a vector of diffusion coefficients [in m^2/s] for a non-isothermal, isobaric case.
|
|
virtual double | compute_diffusion (const double &T, const double &p) |
| Comupute the diffusion coefficient [in m^2/s] at a given temperature [K] and pressure [atm].
|
|
virtual void | compute_diffusion (double &D, std::vector< double > &dD) |
| Comupute diffusion coefficient [in m^2/s] and the sensitivity of the diffusion coefficient with respect to temperature and pressure.
|
|
virtual void | compute_diffusion (const double &T, const double &p, double &D, std::vector< double > &dD) |
| Comupute diffusion coefficient [in m^2/s] and the sensitivity of the diffusion coefficient with respect to temperature and pressure at a given temperature [K] and pressure [atm].
|
|
virtual void | compute_dD (std::vector< double > &dD) |
|
virtual double | compute_dD_dP (const double &T, const double &p) |
|
virtual double | compute_dD_dT (const double &T, const double &p) |
|
virtual void | compute_dD_dT (std::vector< double > &dD_dT_vec) |
| Method to compute derivative of diffusion coefficient with respect to temperature [in m^2/(s-K)] for a non-isothermal, isobaric case, at all quadrature points of the cell.
|
|
virtual void | scan () |
|
virtual void | report () |
|
virtual void | report2file (char *filename) |
|
| VaporDiffusion () |
|
| VaporDiffusion (FuelCellShop::Material::PureGas &species1, FuelCellShop::Material::PureGas &species2) |
|
virtual | ~VaporDiffusion () |
|
| BinaryDiffusion () |
|
| BinaryDiffusion (FuelCellShop::Material::PureGas &species1, FuelCellShop::Material::PureGas &species2) |
|
virtual | ~BinaryDiffusion () |
|
void | set_T_and_p (const double &T, const double &p) |
| Method used to set temperature (T) and pressure (p) for diffusion coefficient computation.
|
|
void | set_p (const double &p_atm) |
| Method to set pressure (p) for isobaric diffusion coefficient case.
|
|
void | set_temperature (const FuelCellShop::SolutionVariable &T_vec) |
| Method to set a vector of temperatures (T) for nonisothermal diffusion coefficient computation.
|
|
void | set_species (FuelCellShop::Material::PureGas &species1, FuelCellShop::Material::PureGas &species2) |
|
This class uses the Chapman Enskog theory for mono-atomic gases to estimate the binary diffusion diffusivity between two gases.
The gases are input using the member function set_species(). Using member functions such as compute_diffusion() and compute_dD() the diffusion coefficient in units of m/s and the analytical derivatives of the diffusion coefficient with respect of temperature and pressure respectively can be obtained. Note that this class requires two objects of type FuelCellShop::Material::PureGas. In order to compute the binary diffusion coefficient for a gas that has not been implemented, a new child of FuelCellShop::Material::PureGas needs to be implemented with the properties specified in the base class obtained from experimental data or from the literature.
This class is publicly derived class of VaporDiffusion
Usage details
In order to use this class, you will need to specify the two gases for which you would like to compute the diffusion diffusion coefficient. For example, in the sample code below, we will compute the binary diffusion coefficient for oxygen in nitrogen. So, first we create an object oxygen and nitrogen gas from FuelCellShop::Material::PureGas. Then, we set these gases as the gases for which we will compute the coefficients. The diffusion coefficient is a function of temperature and pressure, therefore, we next set these values. The class takes these values in units of temperature [K] and pressure atm. Using compute_diffusion() the diffusion coefficient in units fo m2/s is returned. Note that the analytical derivatives of the diffusion coefficient with respect of temperature and pressure can also be obtained.
double Diff_coef(0);
double temperature(353);
double pressure(1);
std::cout<<"Diffusion coeff: "<<Diff_coef<<" in m2/s"<<std::endl;
- Author
- A. MalekpourKoupaei and M. Secanell
- Date
- 2009-2013
virtual void FuelCellShop::Mixture::ChapmanEnskog::compute_dD_dT |
( |
std::vector< double > & |
dD_dT_vec | ) |
|
|
virtual |
Method to compute derivative of diffusion coefficient with respect to temperature [in m^2/(s-K)] for a non-isothermal, isobaric case, at all quadrature points of the cell.
To specify temperatures, use the member function #set_T_vector and to specify pressure, use the member function set_p. The given temperatures and pressure should be in Kelvin and atmospheres.
Implements FuelCellShop::Mixture::BinaryDiffusion.
virtual void FuelCellShop::Mixture::ChapmanEnskog::compute_diffusion |
( |
std::vector< double > & |
D_vec | ) |
|
|
virtual |
Compute a vector of diffusion coefficients [in m^2/s] for a non-isothermal, isobaric case.
To specify temperatures, use the member function set_T_vector and to specify pressure, use the member function set_p. The given temperatures and pressure should be in Kelvin and atmospheres.
Implements FuelCellShop::Mixture::BinaryDiffusion.