Cantera  2.4.0
Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members

Class SolidTransport implements transport properties for solids. More...

#include <SolidTransport.h>

Inheritance diagram for SolidTransport:
[legend]
Collaboration diagram for SolidTransport:
[legend]

Public Member Functions

virtual std::string transportType () const
 Identifies the Transport object type. More...
 
virtual doublereal ionConductivity ()
 Returns the ionic conductivity of the phase. More...
 
virtual doublereal thermalConductivity ()
 Returns the thermal conductivity of the phase. More...
 
virtual doublereal electricalConductivity ()
 Returns the electron conductivity of the phase. More...
 
virtual doublereal defectDiffusivity ()
 
virtual doublereal defectActivity ()
 The activity of defects in the solid. More...
 
virtual void getMixDiffCoeffs (doublereal *const d)
 Returns a vector of mixture averaged diffusion coefficients. More...
 
virtual void getMobilities (doublereal *const mobil)
 Get the Electrical mobilities (m^2/V/s). More...
 
virtual void setParameters (const int n, const int k, const doublereal *const p)
 Set model parameters for derived classes. More...
 
- Public Member Functions inherited from Transport
 Transport (thermo_t *thermo=0, size_t ndim=1)
 Constructor. More...
 
 Transport (const Transport &)=delete
 
Transportoperator= (const Transport &)=delete
 
thermo_tthermo ()
 
bool ready ()
 
void setNDim (const int ndim)
 Set the number of dimensions to be expected in flux expressions. More...
 
size_t nDim () const
 Return the number of dimensions in flux expressions. More...
 
void checkSpeciesIndex (size_t k) const
 Check that the specified species index is in range. More...
 
void checkSpeciesArraySize (size_t kk) const
 Check that an array size is at least nSpecies(). More...
 
virtual doublereal getElectricConduct ()
 Compute the mixture electrical conductivity (S m-1) at the current conditions of the phase (Siemens m-1) More...
 
virtual void getElectricCurrent (int ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_V, doublereal *current)
 Compute the electric current density in A/m^2. More...
 
virtual void getSpeciesFluxes (size_t ndim, const doublereal *const grad_T, size_t ldx, const doublereal *const grad_X, size_t ldf, doublereal *const fluxes)
 Get the species diffusive mass fluxes wrt to the specified solution averaged velocity, given the gradients in mole fraction and temperature. More...
 
virtual void getSpeciesFluxesES (size_t ndim, const doublereal *grad_T, size_t ldx, const doublereal *grad_X, size_t ldf, const doublereal *grad_Phi, doublereal *fluxes)
 Get the species diffusive mass fluxes wrt to the mass averaged velocity, given the gradients in mole fraction, temperature and electrostatic potential. More...
 
virtual void getSpeciesVdiff (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, doublereal *Vdiff)
 Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction and temperature. More...
 
virtual void getSpeciesVdiffES (size_t ndim, const doublereal *grad_T, int ldx, const doublereal *grad_X, int ldf, const doublereal *grad_Phi, doublereal *Vdiff)
 Get the species diffusive velocities wrt to the mass averaged velocity, given the gradients in mole fraction, temperature, and electrostatic potential. More...
 
virtual void getMolarFluxes (const doublereal *const state1, const doublereal *const state2, const doublereal delta, doublereal *const cfluxes)
 Get the molar fluxes [kmol/m^2/s], given the thermodynamic state at two nearby points. More...
 
virtual void getMassFluxes (const doublereal *state1, const doublereal *state2, doublereal delta, doublereal *mfluxes)
 Get the mass fluxes [kg/m^2/s], given the thermodynamic state at two nearby points. More...
 
virtual void getThermalDiffCoeffs (doublereal *const dt)
 Return a vector of Thermal diffusion coefficients [kg/m/sec]. More...
 
virtual void getBinaryDiffCoeffs (const size_t ld, doublereal *const d)
 Returns the matrix of binary diffusion coefficients [m^2/s]. More...
 
virtual void getMultiDiffCoeffs (const size_t ld, doublereal *const d)
 Return the Multicomponent diffusion coefficients. Units: [m^2/s]. More...
 
virtual void getMixDiffCoeffsMole (doublereal *const d)
 Returns a vector of mixture averaged diffusion coefficients. More...
 
virtual void getMixDiffCoeffsMass (doublereal *const d)
 Returns a vector of mixture averaged diffusion coefficients. More...
 
void setVelocityBasis (VelocityBasis ivb)
 Sets the velocity basis. More...
 
VelocityBasis getVelocityBasis () const
 Gets the velocity basis. More...
 
virtual doublereal viscosity ()
 
virtual void getSpeciesViscosities (doublereal *const visc)
 Returns the pure species viscosities. More...
 
virtual doublereal bulkViscosity ()
 The bulk viscosity in Pa-s. More...
 
virtual void getSpeciesIonConductivity (doublereal *const ionCond)
 Returns the pure species ionic conductivity. More...
 
virtual void mobilityRatio (double *mobRat)
 Returns the pointer to the mobility ratios of the species in the phase. More...
 
virtual void getSpeciesMobilityRatio (double **mobRat)
 Returns the pure species limit of the mobility ratios. More...
 
virtual void selfDiffusion (doublereal *const selfDiff)
 Returns the self diffusion coefficients of the species in the phase. More...
 
virtual void getSpeciesSelfDiffusion (double **selfDiff)
 Returns the pure species self diffusion in solution of each species. More...
 
virtual void getFluidMobilities (doublereal *const mobil_f)
 Get the fluid mobilities (s kmol/kg). More...
 
virtual void init (thermo_t *thermo, int mode=0, int log_level=0)
 Initialize a transport manager. More...
 
virtual bool initLiquid (LiquidTransportParams &tr)
 Called by TransportFactory to set parameters. More...
 
virtual void setThermo (thermo_t &thermo)
 Specifies the ThermoPhase object. More...
 

Protected Member Functions

virtual bool initSolid (SolidTransportData &tr)
 Initialize the transport object. More...
 
- Protected Member Functions inherited from Transport
void finalize ()
 Enable the transport object for use. More...
 

Private Attributes

LTPspeciesm_ionConductivity
 Model type for the ionic conductivity. More...
 
LTPspeciesm_thermalConductivity
 Model type for the thermal conductivity. More...
 
LTPspeciesm_electConductivity
 Model type for the electrical conductivity. More...
 
LTPspeciesm_defectDiffusivity
 Model type for the defectDiffusivity – or more like a defect diffusivity in the context of the solid phase. More...
 
LTPspeciesm_defectActivity
 Model type for the defectActivity. More...
 
size_t m_nmobile
 number of mobile species More...
 
vector_fp m_Adiff
 Coefficient for the diffusivity of species within a solid. More...
 
vector_fp m_Ndiff
 Temperature power coefficient for the diffusivity of species in a solid. More...
 
vector_fp m_Ediff
 Arrhenius factor for the species diffusivities of a solid. More...
 
vector_int m_sp
 Index of mobile species to global species. More...
 
doublereal m_Alam
 Coefficient for the thermal conductivity of a solid. More...
 
doublereal m_Nlam
 Temperature power coefficient for the thermal conductivity of a solid. More...
 
doublereal m_Elam
 Arrhenius factor for the thermal conductivity of a solid. More...
 
vector_fp m_work
 extra fp array of length nSpecies() More...
 

Friends

class TransportFactory
 

Additional Inherited Members

- Protected Attributes inherited from Transport
thermo_tm_thermo
 pointer to the object representing the phase More...
 
bool m_ready
 true if finalize has been called More...
 
size_t m_nsp
 Number of species. More...
 
size_t m_nDim
 Number of dimensions used in flux expressions. More...
 
int m_velocityBasis
 Velocity basis from which diffusion velocities are computed. More...
 

Detailed Description

Class SolidTransport implements transport properties for solids.

Deprecated:
To be removed after Cantera 2.4
Attention
This class currently does not have any test cases or examples. Its implementation may be incomplete, and future changes to Cantera may unexpectedly cause this class to stop working. If you use this class, please consider contributing examples or test cases. In the absence of new tests or examples, this class may be deprecated and removed in a future version of Cantera. See https://github.com/Cantera/cantera/issues/267 for additional information.

Definition at line 32 of file SolidTransport.h.

Member Function Documentation

◆ transportType()

virtual std::string transportType ( ) const
inlinevirtual

Identifies the Transport object type.

Each derived class should override this method to return a meaningful identifier.

Reimplemented from Transport.

Definition at line 37 of file SolidTransport.h.

◆ ionConductivity()

doublereal ionConductivity ( )
virtual

Returns the ionic conductivity of the phase.

The thermo phase needs to be updated (temperature) prior to calling this. The ionConductivity calculation is handled by subclasses of LTPspecies as specified in the input file.

Reimplemented from Transport.

Definition at line 69 of file SolidTransport.cpp.

References LTPspecies::getSpeciesTransProp(), and SolidTransport::m_ionConductivity.

◆ thermalConductivity()

doublereal thermalConductivity ( )
virtual

Returns the thermal conductivity of the phase.

The thermo phase needs to be updated (temperature) prior to calling this. The thermalConductivity calculation is handled by subclasses of LTPspecies as specified in the input file.

There is also a legacy method to evaluate

\[ \lambda = A T^n \exp(-E/RT) \]

Reimplemented from Transport.

Definition at line 92 of file SolidTransport.cpp.

References LTPspecies::getSpeciesTransProp(), SolidTransport::m_Alam, SolidTransport::m_Elam, SolidTransport::m_Nlam, SolidTransport::m_thermalConductivity, Transport::m_thermo, and Phase::temperature().

◆ electricalConductivity()

doublereal electricalConductivity ( )
virtual

Returns the electron conductivity of the phase.

The thermo phase needs to be updated (temperature) prior to calling this. The ionConductivity calculation is handled by subclasses of LTPspecies as specified in the input file.

There is also a legacy multicomponent diffusion approach to electrical conductivity.

Reimplemented from Transport.

Definition at line 75 of file SolidTransport.cpp.

References Phase::charge(), SolidTransport::getMobilities(), LTPspecies::getSpeciesTransProp(), SolidTransport::m_electConductivity, SolidTransport::m_nmobile, Transport::m_thermo, SolidTransport::m_work, Phase::molarDensity(), Phase::moleFraction(), and Phase::nSpecies().

◆ defectDiffusivity()

doublereal defectDiffusivity ( )
virtual

The diffusivity of defects in the solid (m^2/s). The thermo phase needs to be updated (temperature) prior to calling this. The defectDiffusivity calculation is handled by subclasses of LTPspecies as specified in the input file.

Definition at line 104 of file SolidTransport.cpp.

References LTPspecies::getSpeciesTransProp(), and SolidTransport::m_defectDiffusivity.

◆ defectActivity()

doublereal defectActivity ( )
virtual

The activity of defects in the solid.

At some point this should be variable and the diffusion coefficient should depend on it.

The thermo phase needs to be updated (temperature) prior to calling this. The defectActivity calculation is handled by subclasses of LTPspecies as specified in the input file.

Definition at line 110 of file SolidTransport.cpp.

References LTPspecies::getSpeciesTransProp(), and SolidTransport::m_defectActivity.

◆ getMixDiffCoeffs()

void getMixDiffCoeffs ( doublereal *const  d)
virtual

Returns a vector of mixture averaged diffusion coefficients.

Mixture-averaged diffusion coefficients [m^2/s]. If the transport manager implements a mixture-averaged diffusion model, then this method returns the array of mixture-averaged diffusion coefficients. Otherwise it throws an exception.

Parameters
dReturn vector of mixture averaged diffusion coefficients Units = m2/s. Length = n_sp

Reimplemented from Transport.

Definition at line 126 of file SolidTransport.cpp.

References Transport::m_thermo, and Phase::nSpecies().

Referenced by SolidTransport::getMobilities().

◆ getMobilities()

void getMobilities ( doublereal *const  mobil_e)
virtual

Get the Electrical mobilities (m^2/V/s).

This function returns the mobilities. In some formulations this is equal to the normal mobility multiplied by Faraday's constant.

Frequently, but not always, the mobility is calculated from the diffusion coefficient using the Einstein relation

\[ \mu^e_k = \frac{F D_k}{R T} \]

Parameters
mobil_eReturns the mobilities of the species in array mobil_e. The array must be dimensioned at least as large as the number of species.

Reimplemented from Transport.

Definition at line 116 of file SolidTransport.cpp.

References Cantera::Boltzmann, SolidTransport::getMixDiffCoeffs(), Transport::m_thermo, Phase::nSpecies(), and Phase::temperature().

Referenced by SolidTransport::electricalConductivity().

◆ setParameters()

void setParameters ( const int  type,
const int  k,
const doublereal *const  p 
)
virtual

Set model parameters for derived classes.

This method may be derived in subclasses to set model-specific parameters. The primary use of this class is to set parameters while in the middle of a calculation without actually having to dynamically cast the base Transport pointer.

Parameters
typeSpecifies the type of parameters to set 0 : Diffusion coefficient 1 : Thermal Conductivity The rest are currently unused.
kSpecies index to set the parameters on
pVector of parameters. The length of the vector varies with the parameterization

Reimplemented from Transport.

Definition at line 45 of file SolidTransport.cpp.

References SolidTransport::m_Adiff, SolidTransport::m_Alam, SolidTransport::m_Ediff, SolidTransport::m_Elam, SolidTransport::m_Ndiff, SolidTransport::m_Nlam, SolidTransport::m_nmobile, SolidTransport::m_sp, Transport::m_thermo, SolidTransport::m_work, and Phase::nSpecies().

◆ initSolid()

bool initSolid ( SolidTransportData tr)
protectedvirtual

Initialize the transport object.

Here we change all of the internal dimensions to be sufficient. We get the object ready to do property evaluations. A lot of the input required to do property evaluations is contained in the SolidTransportParams class that is filled in TransportFactory.

Parameters
trTransport parameters for all of the species in the phase.

Reimplemented from Transport.

Definition at line 28 of file SolidTransport.cpp.

References SolidTransportData::defectActivity, SolidTransportData::defectDiffusivity, SolidTransportData::electConductivity, SolidTransportData::ionConductivity, SolidTransport::m_defectActivity, SolidTransport::m_defectDiffusivity, SolidTransport::m_electConductivity, SolidTransport::m_ionConductivity, SolidTransport::m_thermalConductivity, Transport::m_thermo, SolidTransportData::thermalConductivity, and TransportParams::thermo.

Member Data Documentation

◆ m_ionConductivity

LTPspecies* m_ionConductivity
private

Model type for the ionic conductivity.

Definition at line 124 of file SolidTransport.h.

Referenced by SolidTransport::initSolid(), and SolidTransport::ionConductivity().

◆ m_thermalConductivity

LTPspecies* m_thermalConductivity
private

Model type for the thermal conductivity.

Definition at line 127 of file SolidTransport.h.

Referenced by SolidTransport::initSolid(), and SolidTransport::thermalConductivity().

◆ m_electConductivity

LTPspecies* m_electConductivity
private

Model type for the electrical conductivity.

Definition at line 130 of file SolidTransport.h.

Referenced by SolidTransport::electricalConductivity(), and SolidTransport::initSolid().

◆ m_defectDiffusivity

LTPspecies* m_defectDiffusivity
private

Model type for the defectDiffusivity – or more like a defect diffusivity in the context of the solid phase.

Definition at line 134 of file SolidTransport.h.

Referenced by SolidTransport::defectDiffusivity(), and SolidTransport::initSolid().

◆ m_defectActivity

LTPspecies* m_defectActivity
private

Model type for the defectActivity.

Definition at line 137 of file SolidTransport.h.

Referenced by SolidTransport::defectActivity(), and SolidTransport::initSolid().

◆ m_nmobile

size_t m_nmobile
private

number of mobile species

Definition at line 140 of file SolidTransport.h.

Referenced by SolidTransport::electricalConductivity(), and SolidTransport::setParameters().

◆ m_Adiff

vector_fp m_Adiff
private

Coefficient for the diffusivity of species within a solid.

This is with respect to the lattice units = m**2 / s vector of length m_nmobile

Definition at line 148 of file SolidTransport.h.

Referenced by SolidTransport::setParameters().

◆ m_Ndiff

vector_fp m_Ndiff
private

Temperature power coefficient for the diffusivity of species in a solid.

vector of length m_nmobile

Definition at line 154 of file SolidTransport.h.

Referenced by SolidTransport::setParameters().

◆ m_Ediff

vector_fp m_Ediff
private

Arrhenius factor for the species diffusivities of a solid.

units = temperature vector of length m_nmobile

Definition at line 161 of file SolidTransport.h.

Referenced by SolidTransport::setParameters().

◆ m_sp

vector_int m_sp
private

Index of mobile species to global species.

vector of length m_nmobile

Definition at line 167 of file SolidTransport.h.

Referenced by SolidTransport::setParameters().

◆ m_Alam

doublereal m_Alam
private

Coefficient for the thermal conductivity of a solid.

units = kg m / s3 /K = W/m/K

Definition at line 173 of file SolidTransport.h.

Referenced by SolidTransport::setParameters(), and SolidTransport::thermalConductivity().

◆ m_Nlam

doublereal m_Nlam
private

Temperature power coefficient for the thermal conductivity of a solid.

Definition at line 176 of file SolidTransport.h.

Referenced by SolidTransport::setParameters(), and SolidTransport::thermalConductivity().

◆ m_Elam

doublereal m_Elam
private

Arrhenius factor for the thermal conductivity of a solid.

units = temperature

Definition at line 182 of file SolidTransport.h.

Referenced by SolidTransport::setParameters(), and SolidTransport::thermalConductivity().

◆ m_work

vector_fp m_work
private

extra fp array of length nSpecies()

Definition at line 185 of file SolidTransport.h.

Referenced by SolidTransport::electricalConductivity(), and SolidTransport::setParameters().


The documentation for this class was generated from the following files: