antioch-0.4.0
eucken_thermal_conductivity.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // Antioch - A Gas Dynamics Thermochemistry Library
5 //
6 // Copyright (C) 2014-2016 Paul T. Bauman, Benjamin S. Kirk,
7 // Sylvain Plessis, Roy H. Stonger
8 //
9 // Copyright (C) 2013 The PECOS Development Team
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the Version 2.1 GNU Lesser General
13 // Public License as published by the Free Software Foundation.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
23 // Boston, MA 02110-1301 USA
24 //
25 //-----------------------------------------------------------------------el-
26 //
27 // $Id$
28 //
29 //--------------------------------------------------------------------------
30 //--------------------------------------------------------------------------
31 
32 #ifndef ANTIOCH_EUCKEN_THERMAL_CONDUCTIVITY_H
33 #define ANTIOCH_EUCKEN_THERMAL_CONDUCTIVITY_H
34 
37 
38 namespace Antioch
39 {
41 
42  template<class ThermoEvaluator>
43  class EuckenThermalConductivity : public SpeciesConductivityBase<EuckenThermalConductivity<ThermoEvaluator> >
44  {
45  public:
46 
47  EuckenThermalConductivity( const ThermoEvaluator& t)
49  _thermo(t)
50  {}
51 
52  template <typename CoeffType>
53  EuckenThermalConductivity( const ThermoEvaluator& t, const std::vector<CoeffType>& /*coeffs*/)
55  _thermo(t)
56  {}
57 
59 
60  template <typename StateType>
61  ANTIOCH_AUTO(StateType)
62  trans( const unsigned int s, const StateType& mu ) const
63  ANTIOCH_AUTOFUNC(StateType,
64  typename Antioch::raw_value_type<StateType>::type(2.5) *
65  mu * this->_thermo.cv_trans(s))
66 
67  template <typename StateType>
68  ANTIOCH_AUTO(StateType)
69  rot( const unsigned int s, const StateType& mu ) const
70  ANTIOCH_AUTOFUNC(StateType, mu* this->_thermo.cv_rot(s))
71 
72  template <typename StateType>
73  ANTIOCH_AUTO(StateType)
74  vib( const unsigned int s, const StateType& mu, const StateType& Tv ) const
75  /* Note: Cander, "High-temperature effects in hypersonic flight",
76  Encyclopedia of Aerospace Engineering, 2010 suggests that
77  there should be a factor of 1.2 here. */
78  ANTIOCH_AUTOFUNC(StateType, mu* this->_thermo.cv_vib(s, Tv))
79 
80  template <typename StateType>
81  ANTIOCH_AUTO(StateType)
82  elec( const unsigned int s, const StateType& mu, const StateType& Te ) const
83  ANTIOCH_AUTOFUNC(StateType, mu* this->_thermo.cv_el(s, Te))
84 
85  typedef ThermoEvaluator micro_thermo_type;
86 
88  friend class SpeciesConductivityBase<EuckenThermalConductivity<ThermoEvaluator> >;
89 
90  protected:
91 
92  const ThermoEvaluator& _thermo;
93 
94  // Suppose thermal equilibrium Tv = Te = T:w
95  template <typename StateType>
96  ANTIOCH_AUTO(StateType)
97  op_no_diff_impl( const unsigned int s, const StateType& mu, const StateType & T ) const
98  ANTIOCH_AUTOFUNC(StateType, trans(s,mu) + rot(s,mu) + vib(s,mu,T) + elec(s,mu,T))
99 
100 
101  template <typename StateType>
102  const ANTIOCH_AUTO(StateType)
103  op_with_diff_impl(unsigned int s, const StateType& mu_s, const StateType & T, const StateType & rho_s, const StateType & Dss) const;
104 
105  };
106 
107  template<class ThermoEvaluator>
108  template <typename StateType>
109  const ANTIOCH_AUTO(StateType)
110  EuckenThermalConductivity<ThermoEvaluator>::op_with_diff_impl(unsigned int s, const StateType& mu_s, const StateType & /*T*/, const StateType & /*rho_s*/, const StateType & /*Dss*/) const
111  {
112  // This is a "no diffusion" model, so attempts at call the "with diffusion"
113  // method should error.
114  antioch_error();
115 
116  /*The following is dummy*/
117  return trans(s,mu_s);
118  }
119 
120 } // end namespace Antioch
121 
122 
123 #endif // ANTIOCH_EUCKEN_THERMAL_CONDUCTIVITY_H
trans(const unsigned int s, const StateType &mu) const ANTIOCH_AUTOFUNC(StateType
mu T const ANTIOCH_AUTO(StateType) op_with_diff_impl(unsigned int s
#define antioch_error()
Species conductivity based on Eucken relation.
mu T const const StateType const StateType & T
Base class for species conducitivity models.
EuckenThermalConductivity(const ThermoEvaluator &t, const std::vector< CoeffType > &)
#define ANTIOCH_AUTOFUNC(Type, Expr)
The parameters are reduced parameters.
op_no_diff_impl(const unsigned int s, const StateType &mu, const StateType &T) const ANTIOCH_AUTOFUNC(StateType
EuckenThermalConductivity(const ThermoEvaluator &t)
mu T const const StateType const StateType const StateType & rho_s
mu T const const StateType const StateType const StateType const StateType &Dss const

Generated on Thu Jul 7 2016 11:09:45 for antioch-0.4.0 by  doxygen 1.8.8