Cantera
2.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
include
cantera
transport
SolidTransport.h
Go to the documentation of this file.
1
/**
2
* @file SolidTransport.h
3
* Header file for defining the class SolidTransport, which handles transport
4
* of ions within solid phases
5
* (see \ref tranprops and \link Cantera::SolidTransport SolidTransport \endlink).
6
*/
7
8
// Copyright 2003 California Institute of Technology
9
10
#ifndef CT_SOLIDTRAN_H
11
#define CT_SOLIDTRAN_H
12
13
// STL includes
14
#include <vector>
15
#include <string>
16
#include <map>
17
#include <numeric>
18
#include <algorithm>
19
20
// Cantera includes
21
#include "
TransportBase.h
"
22
#include "
cantera/numerics/DenseMatrix.h
"
23
24
namespace
Cantera
25
{
26
//! Class SolidTransport implements transport properties for solids.
27
class
SolidTransport
:
public
Transport
28
{
29
30
public
:
31
32
//! Default constructor
33
SolidTransport
();
34
35
//! Copy Constructor
36
/*!
37
* @param right Object to be copied
38
*/
39
SolidTransport
(
const
SolidTransport
& right);
40
41
//! Destructor
42
virtual
~SolidTransport
();
43
44
//! Assignment operator
45
/*!
46
* This is NOT a virtual function.
47
*
48
* @param right Reference to Transport object to be copied into the
49
* current one.
50
*/
51
SolidTransport
&
operator=
(
const
SolidTransport
& right);
52
53
//! Duplication routine for objects which inherit from
54
//! %Transport
55
/*!
56
* This virtual routine can be used to duplicate %Transport objects
57
* inherited from %Transport even if the application only has
58
* a pointer to %Transport to work with.
59
*
60
* These routines are basically wrappers around the derived copy
61
* constructor.
62
*/
63
virtual
Transport
*
duplMyselfAsTransport
()
const
;
64
65
66
virtual
int
model
()
const
{
67
return
cSolidTransport;
68
}
69
70
virtual
doublereal
thermalConductivity
();
71
virtual
void
getMixDiffCoeffs
(doublereal*
const
d);
72
73
//! Compute the electrical mobilities of the species from the diffusion coefficients,
74
//! using the Einstein relation.
75
/*!
76
* Frequently, but not always, the mobility is calculated from the
77
* diffusion coefficient using the Einstein relation
78
*
79
* \f[
80
* \mu^e_k = \frac{F D_k}{R T}
81
* \f]
82
*
83
* units (m^2/V/s).
84
* @param mobil Returns the mobilities of
85
* the species in array \c mobil_e. The array must be
86
* dimensioned at least as large as the number of species.
87
*/
88
virtual
void
getMobilities
(doublereal*
const
mobil);
89
90
virtual
void
setParameters
(
const
int
n,
const
int
k,
const
doublereal*
const
p);
91
92
friend
class
TransportFactory
;
93
94
/**
95
* The electrical conductivity (Siemens/m).
96
*/
97
virtual
doublereal
electricalConductivity
();
98
99
100
private
:
101
102
//! number of mobile species
103
/*!
104
* This is equal to the
105
*/
106
size_t
m_nmobile
;
107
108
//! Coefficient for the diffusivity of species within a solid
109
/*!
110
* This is with respect to the lattice
111
* units = m**2 / s
112
* vector of length m_nmobile
113
*/
114
vector_fp
m_Adiff
;
115
116
//! Temperature power coefficient for the diffusivity of species in a solid
117
/*!
118
* vector of length m_nmobile
119
*/
120
vector_fp
m_Ndiff
;
121
122
//! Arrhenius factor for the species diffusivities of a solid
123
/*!
124
* units = temperature
125
* vector of length m_nmobile
126
*/
127
vector_fp
m_Ediff
;
128
129
//! Index of mobile species to global species
130
/*!
131
* vector of length m_nmobile
132
*/
133
vector_int
m_sp
;
134
135
//! Coefficient for the thermal conductivity of a solid
136
/*!
137
* units = kg m / s3 /K = W/m/K
138
*/
139
doublereal
m_Alam
;
140
141
//! Temperature power coefficient for the thermal conductivity of a solid
142
doublereal
m_Nlam
;
143
144
//! Arrhenius factor for the thermal conductivity of a solid
145
/*!
146
* units = temperature
147
*/
148
doublereal
m_Elam
;
149
150
//! extra fp array of length nSpecies()
151
vector_fp
m_work
;
152
};
153
}
154
#endif
155
156
157
158
159
160
Generated by
1.8.2