modelFixed
Extends from Fluid (Base model for a fluid species).
Information
Assumptions:
- The generalized resistivities (η, θ) are fixed (e.g., independent of thermodynamic state).
- Ideal gas
- The specific exchange currents (τ′) are zero. The rate of phase change is governed by the other configurations (liquid and ionomer).
The default resistivities (η = 1/(9.09e-6*U.Pa*U.s)
and θ = U.m*U.K/(19.6e-3*U.W)) are of H2O gas at saturation pressure and
300 K from Incropera and DeWitt [Incropera2002, p. 921]. Table 1 lists the properties at
saturation pressure and other temperatures. Table 2 lists the properties of H2O gas at 1 atm.
See also
http://www.engineeringtoolbox.com/water-dynamic-kinematic-viscosity-d_596.html.
T/U.K |
cp*U.kg*U.K |
η |
θ*U.W |
|---|---|---|---|
| 273.15 | 1854 | 1/8.02e-6 | 1/18.2e-3 |
| 275 | 1855 | 1/8.09e-6 | 1/18.3e-3 |
| 280 | 1858 | 1/8.29e-6 | 1/18.6e-3 |
| 285 | 1861 | 1/8.49e-6 | 1/18.9e-3 |
| 290 | 1864 | 1/8.69e-6 | 1/19.3e-3 |
| 295 | 1868 | 1/8.89e-6 | 1/19.5e-3 |
| 300 | 1872 | 1/9.09e-6 | 1/19.6e-3 |
| 305 | 1877 | 1/9.29e-6 | 1/20.1e-3 |
| 310 | 1882 | 1/9.49e-6 | 1/20.4e-3 |
| 315 | 1888 | 1/9.69e-6 | 1/20.7e-3 |
| 320 | 1895 | 1/9.89e-6 | 1/21.0e-3 |
| 325 | 1903 | 1/10.09e-6 | 1/21.3e-3 |
| 330 | 1911 | 1/10.29e-6 | 1/21.7e-3 |
| 335 | 1920 | 1/10.49e-6 | 1/22.0e-3 |
| 340 | 1930 | 1/10.69e-6 | 1/22.3e-3 |
| 345 | 1941 | 1/10.89e-6 | 1/22.6e-3 |
| 350 | 1954 | 1/11.09e-6 | 1/23.0e-3 |
| 355 | 1968 | 1/11.29e-6 | 1/23.3e-3 |
| 360 | 1983 | 1/11.49e-6 | 1/23.7e-3 |
| 365 | 1999 | 1/11.69e-6 | 1/24.1e-3 |
| 370 | 2017 | 1/11.89e-6 | 1/24.5e-3 |
| 373.15 | 2029 | 1/12.02e-6 | 1/24.8e-3 |
| 375 | 2036 | 1/12.09e-6 | 1/24.9e-3 |
| 380 | 2057 | 1/12.29e-6 | 1/25.4e-3 |
| 385 | 2080 | 1/12.49e-6 | 1/25.8e-3 |
| 390 | 2104 | 1/12.69e-6 | 1/26.3e-3 |
| 400 | 2158 | 1/13.05e-6 | 1/27.2e-3 |
| 410 | 2221 | 1/13.42e-6 | 1/28.2e-3 |
| 420 | 2291 | 1/13.79e-6 | 1/29.8e-3 |
| 430 | 2369 | 1/14.14e-6 | 1/30.4e-3 |
| 440 | 2460 | 1/14.50e-6 | 1/31.7e-3 |
| 450 | 2560 | 1/14.85e-6 | 1/33.1e-3 |
| 460 | 2680 | 1/15.19e-6 | 1/34.6e-3 |
| 470 | 2790 | 1/15.54e-6 | 1/36.3e-3 |
| 480 | 2940 | 1/15.88e-6 | 1/38.1e-3 |
| 490 | 3100 | 1/16.23e-6 | 1/40.1e-3 |
| 500 | 3270 | 1/16.59e-6 | 1/42.3e-3 |
| 510 | 3470 | 1/16.95e-6 | 1/44.7e-3 |
| 520 | 3700 | 1/17.33e-6 | 1/47.5e-3 |
| 530 | 3960 | 1/17.72e-6 | 1/50.6e-3 |
| 540 | 4270 | 1/18.1e-6 | 1/54.0e-3 |
| 550 | 4640 | 1/18.6e-6 | 1/58.3e-3 |
| 560 | 5090 | 1/19.1e-6 | 1/63.7e-3 |
| 570 | 5670 | 1/19.7e-6 | 1/76.7e-3 |
| 580 | 6400 | 1/20.4e-6 | 1/76.7e-3 |
| 590 | 7350 | 1/21.5e-6 | 1/84.1e-3 |
| 600 | 8750 | 1/22.7e-6 | 1/92.9e-3 |
| 610 | 11100 | 1/24.1e-6 | 1/103e-3 |
| 620 | 15400 | 1/25.9e-6 | 1/114e-3 |
| 635 | 18300 | 1/27.0e-6 | 1/121e-3 |
| 630 | 22100 | 1/28.0e-6 | 1/130e-3 |
| 635 | 27600 | 1/30.0e-6 | 1/141e-3 |
| 640 | 42000 | 1/32.0e-6 | 1/155e-3 |
T/U.K |
cp*U.kg*U.K |
η |
θ*U.W |
|---|---|---|---|
| 380 | 2.060e3 | 1/127.1e-7 | 1/24.6e-3 |
| 400 | 2.014e3 | 1/134.4e-7 | 1/26.1e-3 |
| 450 | 1.980e3 | 1/152.5e-7 | 1/29.9e-3 |
| 500 | 1.985e3 | 1/170.4e-7 | 1/33.9e-3 |
| 550 | 1.997e3 | 1/188.4e-7 | 1/37.9e-3 |
| 600 | 2.206e3 | 1/206.7e-7 | 1/42.2e-3 |
| 650 | 2.056e3 | 1/224.7e-7 | 1/46.4e-3 |
| 700 | 2.085e3 | 1/242.6e-7 | 1/50.5e-3 |
| 750 | 2.119e3 | 1/260.4e-7 | 1/54.9e-3 |
| 800 | 2.152e3 | 1/278.6e-7 | 1/59.2e-3 |
| 850 | 2.186e3 | 1/296.9e-7 | 1/63.7e-3 |
The specific heat capacity is not fixed because it would affect the chemical potential and result in an incorrect cell potential.
The relative humidities (RH and RHboundaries), which are calculated as output variables, do not account for surface tension.
For more information, please see the Species model.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n_intra (from Species) | 0 | Number of exchange connections within the phase |
| Integer | n_inter (from Species) | 0 | Number of exchange connections with other phases |
| Initialization | |||
| Init | initMaterial (from Fluid) | Init.pressure | Method of initializing the material state |
| Init | initEnergy (from Fluid) | Init.temperature | Method of initializing the thermal state |
| Q.Amount | N_IC (from Species) | Initial amount of material | |
| Q.Density | rho_IC (from Species) | Initial density | |
| Q.Volume | V_IC (from Species) | Initial volume | |
| Q.PressureAbsolute | p_IC (from Species) | Initial pressure | |
| Q.TemperatureAbsolute | T_IC (from Species) | Initial temperature | |
| Q.Potential | h_IC (from Species) | Initial specific enthalpy | |
| Q.Potential | g_IC (from Species) | Initial Gibbs potential | |
| Assumptions | |||
| Integer | n_trans (from Species) | 1 | Number of transport axes |
| Integer | n_chem (from Fluid) | 0 | Number of reaction and phase change processes |
| Independence factors | |||
| Q.NumberAbsolute[n_intra,n_trans] | k_intra_Phi (from Species) | ones(n_intra, n_trans) | For translational exchange among species within the phase |
| Q.NumberAbsolute[n_intra] | k_intra_Q (from Species) | ones(n_intra) | For thermal exchange among species within the phase |
| Assumptions › Formulation of the conservation equations | |||
| ConsThermo | consMaterial (from Fluid) | ConsThermo.dynamic | Material |
| Boolean | consRot (from Fluid) | false | Conserve rotational momentum |
| ConsTrans | consTransX (from Fluid) | ConsTrans.dynamic | X-axis translational momentum |
| ConsTrans | consTransY (from Fluid) | ConsTrans.dynamic | Y-axis translational momentum |
| ConsTrans | consTransZ (from Fluid) | ConsTrans.dynamic | Z-axis translational momentum |
| ConsThermo | consEnergy (from Fluid) | ConsThermo.dynamic | Energy |
| Assumptions › Axes with upstream discretization | |||
| Boolean | upstreamX (from Fluid) | true | X |
| Boolean | upstreamY (from Fluid) | true | Y |
| Boolean | upstreamZ (from Fluid) | true | Z |
| Assumptions › Flow conditions | |||
| Boolean | approxVelocity (from Fluid) | true | Calculate normal boundary velocities assuming uniform density |
| Q.NumberAbsolute[Axis] | Nu_Phi (from Fluid) | {4, 4, 4} | Translational Nusselt numbers |
| Q.NumberAbsolute | Nu_Q (from Fluid) | 1 | Thermal Nusselt number |
| Advanced | |||
| Q.Amount | N0 (from Fluid) | 0 | Nominal amount of material to prevent depletion |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Connectors.Intra[n_intra] | intra (from Species) | Connectors to exchange translational momentum and energy within the phase | |
| Connectors.Inter[n_inter] | inter (from Species) | Connectors to exchange translational momentum and energy with all other species | |
| Connectors.Dalton | dalton (from Species) | Connector for additivity of pressure | |
| Connectors.Boundary[n_trans,Side] | boundaries (from Fluid) | Connectors for transport | |
| Connectors.Chemical[n_chem] | chemical (from Fluid) | Connector for reactions and phase change |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Q.Mobility | mu (from Species) | Data.mu(T, v) | Mobility |
| Q.TimeAbsolute | nu (from Species) | Data.nu(T, v) | Thermal independity |
| Q.Amount | N (from Species) | Amount of material | |
| Q.TemperatureAbsolute | T (from Species) | Temperature | |
| Q.Velocity[n_trans] | phi (from Species) | Velocity | |
| Q.PressureAbsolute | p (from Species) | Pressure | |
| Q.Potential | g (from Species) | Specific Gibbs energy | |
| Q.Mass | M (from Species) | Mass | |
| Q.VolumeSpecific | v (from Species) | Specific volume | |
| Q.Potential | h (from Species) | Specific enthalpy | |
| Q.NumberAbsolute | s (from Species) | Specific entropy | |
| Q.Density | rho (from Species) | 1/v | Density |
| Q.MassVolumic | mrho (from Species) | Data.m*rho | Volumic mass |
| Q.Amount | S (from Species) | N*s | Entropy |
| Q.CapacityThermalSpecific | c_p (from Species) | Data.c_p(T, p) | Isobaric specific heat capacity |
| Q.CapacityThermalSpecific | c_v (from Species) | Data.c_v(T, p) | Isochoric specific heat capacity |
| Q.PressureReciprocal | beta (from Species) | Data.beta(T, p) | Isothermal compressibility |
| Q.TimeAbsolute[n_intra,n_trans] | tau_PhiE_intra (from Species) | {Data.m*mu*k_intra_Phi[i, :] for i in 1:n_intra} | Time constants for translational intra-phase exchange |
| Q.TimeAbsolute[n_inter,n_trans] | tau_PhiE_inter (from Species) | {Data.m*mu*k_inter_Phi[i, :] for i in 1:n_inter} | Time constants for translational inter-phase exchange |
| Q.TimeAbsolute[n_intra] | tau_QE_intra (from Species) | c_p*nu*k_intra_Q | Time constants for thermal intra-phase exchange |
| Q.TimeAbsolute[n_inter] | tau_QE_inter (from Species) | c_p*nu*k_inter_Q | Time constants for thermal inter-phase exchange |
| Q.Force[n_trans] | f_DE (from Species) | sum(intra[i].mPhidot for i in 1:n_intra) + sum(inter[i].mPhidot for i in 1:n_inter) | Friction from other configurations (diffusive exchange) |
| Q.Power | Edot_DE (from Species) | sum(intra[i].phi*intra[i].mPhidot for i in 1:n_intra) + sum(inter[i].phi*inter[i].mPhidot for i in 1:n_inter) + sum(intra.Qdot) + sum(inter.Qdot) | Rate of diffusion of energy from other configurations |
| Q.Continuity | zeta (from Fluid) | Data.zeta(T, v) | Continuity |
| Q.Fluidity | eta (from Fluid) | Data.eta(T, v) | Fluidity |
| Q.ResistivityThermal | theta (from Fluid) | Data.theta(T, v) | Thermal resistivity |
| Q.TimeAbsolute[n_chem] | tauprime (from Fluid) | zeros(n_chem) | Specific exchange currents |
| Q.Length[:] | kL (from Fluid) | L[cartTrans] | Effective transport length |
| Q.Current[n_trans] | I (from Fluid) | Current | |
| Q.Velocity[n_trans,Side] | phi_boundaries (from Fluid) | Normal velocities at the boundaries | |
| Q.Force[n_trans] | f (from Fluid) | Total normal translational force on pairs of boundaries | |
| Q.Force[n_trans] | minusDeltaf (from Fluid) | Dynamic and nonequilibrium compression forces | |
| Q.Density[n_trans,Side] | rho_boundaries (from Fluid) | fill(1, n_trans, 2)./Data.v_Tp(boundaries.T, boundaries.p) | Densities at the boundaries |
| Q.VolumeRate[n_trans,Side] | Vdot_boundaries (from Fluid) | boundaries.Ndot./rho_boundaries | Volume flow rates into the boundaries |
| Q.PressureAbsolute[n_trans] | q (from Fluid) | (Data.m/2)*phi.*I./Aprime | Dynamic pressure |
| Q.Velocity[n_chem,n_trans] | phi_chemical (from Fluid) | actualStream(chemical.phi) | Velocity of the chemical streams |
| Q.PotentialAbsolute[n_chem] | sT_chemical (from Fluid) | actualStream(chemical.sT) | Specific entropy-temperature product of the chemical streams |
| Q.Temperature[n_trans] | DeltaT (from Fluid) | Delta(boundaries.T) | Differences in temperatures across the boundaries |
| Q.Pressure[n_trans] | Deltap (from Fluid) | Delta(boundaries.p) | Differences in pressures across the boundaries |
| Q.Power[n_trans,Side] | Hprimedot (from Fluid) | (Data.h(boundaries.T, boundaries.p) + Data.m*phi_boundaries.^2/2).*boundaries.Ndot | Flow rates of enthalpy + kinetic energy into the boundaries |
| Q.Potential[n_trans,Side] | g_boundaries (from Fluid) | Data.g(boundaries.T, boundaries.p) | Gibbs potentials at the boundaries |
| Q.Potential[n_trans] | Deltag (from Fluid) | Delta(g_boundaries) | Differences in Gibbs potentials across the boundaries |
| Q.TimeAbsolute[n_trans] | tau_NT (from Fluid) | fill(zeta*beta*N, n_trans)./(2*Aprime) | Time constants for material transport |
| Q.TimeAbsolute[n_trans] | tau_PhiT (from Fluid) | M*eta*kL./(2*Nu_Phi[cartTrans].*Aprime) | Time constants for transverse translational transport |
| Q.TimeAbsolute[n_trans] | tau_QT (from Fluid) | (N*c_v*theta/(2*Nu_Q))*kL./Aprime | Time constants for thermal transport |
| Q.Number[n_trans] | Pe_N (from Fluid) | tau_NT.*I/N | Material Peclet numbers |
| Q.Number[n_trans] | Pe_Phi (from Fluid) | tau_PhiT.*I/N | Translational Peclet numbers |
| Q.Number[n_trans] | Pe_Q (from Fluid) | tau_QT.*I/N | Thermal Peclet numbers |
| Q.Force[n_trans,n_trans] | mphiI (from Fluid) | outerProduct(I, Data.m*phi) | Bulk rate of translational advection (1st index: transport axis, 2nd index: translational component) |
| Q.VolumeRate[n_trans] | Vdot (from Fluid) | v*I | Bulk volumetric flow rate |
| Q.Power[n_trans] | hI (from Fluid) | h*I | Bulk enthalpy flow rate |
| Q.Force[n_trans] | Ma (from Fluid) | M*(der(phi)/U.s + environment.a[cartTrans]) + N*Data.z*environment.E[cartTrans] | Acceleration force (including acceleration due to body forces) |
| Q.Force[n_trans] | f_thermo (from Fluid) | -Delta(boundaries.p).*Aprime | Thermodynamic force |
| Q.Force[n_trans] | f_AE (from Fluid) | Data.m*sum((actualStream(chemical[i].phi) - phi)*chemical[i].Ndot for i in 1:n_chem) | Acceleration force due to advective exchange |
| Q.Force[n_trans] | f_AT (from Fluid) | {sum(((if i == j then phi_boundaries[j, :] else boundaries[j, :].phi[cartWrap(cartTrans[i] - cartTrans[j])]) - {phi[i], phi[i]})*boundaries[j, :].Ndot*Data.m for j in 1:n_trans) for i in 1:n_trans} | Acceleration force due to advective transport |
| Q.Force[n_trans] | f_DT (from Fluid) | {sum(sum(if i == j then {0, 0} else boundaries[j, :].mPhidot[cartWrap(cartTrans[i] - cartTrans[j])]) for j in 1:n_trans) for i in 1:n_trans} | Shear force from other subregions (diffusive transport) |
| Q.Power | Ndere (from Fluid) | (N*T*der(Data.s(T, p)) + M*phi*der(phi))/U.s | Rate of energy storage (internal and kinetic) and boundary work at constant mass |
| Q.Power | Edot_AE (from Fluid) | sum((chemical[i].g + actualStream(chemical[i].sT) - h + (actualStream(chemical[i].phi)*actualStream(chemical[i].phi) - phi*phi)*Data.m/2)*chemical[i].Ndot for i in 1:n_chem) | Relative rate of energy (internal, flow, and kinetic) due to reactions and phase change |
| Q.Power | Edot_AT (from Fluid) | sum((Data.h(boundaries[i, :].T, boundaries[i, :].p) - {h, h} + (phi_boundaries[i, :].^2 + sum(boundaries[i, :].phi[orient].^2 for orient in Orient) - fill(phi*phi, 2))*(Data.m/2))*boundaries[i, :].Ndot for i in 1:n_trans) | Relative rate of energy (internal, flow, and kinetic) due to advective transport |
| Q.Power | Edot_DT (from Fluid) | sum(sum(boundaries[i, :].phi[orient]*boundaries[i, :].mPhidot[orient] for orient in Orient) for i in 1:n_trans) + sum(boundaries.Qdot) | Rate of diffusion of energy from other subregions |
| Q.NumberAbsolute | RH | p/Characteristics.H2O.p_sat(T) | Relative humidity (approximate) |
| Q.NumberAbsolute[n_trans,Side] | RH_boundaries | boundaries.p./Characteristics.H2O.p_sat(boundaries.T) | Relative humidity at the boundaries (approximate) |