45 template<Type_Flux_Fa7 Fa7_Type,
typename Type_Double>
inline std::enable_if_t< Fa7_Type == Type_Flux_Fa7::SORTIE_LIBRE, void>
48 template<Type_Flux_Fa7 Fa7_Type,
typename Type_Double>
inline std::enable_if_t< Fa7_Type == Type_Flux_Fa7::ELEM, void>
49 flux_fa7(
const DoubleTab&,
const DoubleTab*,
int,
int,
int, Type_Double& )
const;
51 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::INTERNE, void>
52 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double& )
const ;
54 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::MIXTE, void>
55 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double& )
const ;
57 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t<Arete_Type == Type_Flux_Arete::PAROI || Arete_Type == Type_Flux_Arete::NAVIER_PAROI, void>
58 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double& )
const ;
60 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t<(Arete_Type == Type_Flux_Arete::NAVIER),
void>
61 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double& )
const;
63 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
64 inline std::enable_if_t< Arete_Type == Type_Flux_Arete::FLUIDE || Arete_Type == Type_Flux_Arete::NAVIER_FLUIDE || Arete_Type == Type_Flux_Arete::PAROI_FLUIDE, void>
65 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double&, Type_Double&)
const;
67 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::PERIODICITE, void>
68 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double&, Type_Double&)
const ;
70 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::COIN_FLUIDE, void>
71 flux_arete(
const DoubleTab&,
const DoubleTab*,
int,
int,
int,
int, Type_Double&, Type_Double&)
const
73 Cerr <<
"arete_coin_fluide not coded for this scheme. Ask the TRUST support to code like Eval_Amont_VDF_Face !" << finl;
81 template<Type_Flux_Fa7 Fa7_Type,
typename Type_Double>
inline std::enable_if_t< Fa7_Type == Type_Flux_Fa7::SORTIE_LIBRE, void>
84 template<Type_Flux_Fa7 Fa7_Type,
typename Type_Double>
inline std::enable_if_t< Fa7_Type == Type_Flux_Fa7::ELEM, void>
85 coeffs_fa7(
const DoubleTab*,
int,
int,
int, Type_Double& , Type_Double& )
const;
87 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::INTERNE, void>
88 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& )
const;
90 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::MIXTE, void>
91 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& )
const;
93 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::PERIODICITE, void>
94 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& )
const;
96 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< Arete_Type == Type_Flux_Arete::PAROI || Arete_Type == Type_Flux_Arete::NAVIER_PAROI, void>
97 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& , Type_Double& )
const;
99 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
100 inline std::enable_if_t< Arete_Type == Type_Flux_Arete::FLUIDE || Arete_Type == Type_Flux_Arete::NAVIER_FLUIDE || Arete_Type == Type_Flux_Arete::PAROI_FLUIDE, void>
101 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& , Type_Double& )
const;
103 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< (Arete_Type == Type_Flux_Arete::NAVIER),
void>
104 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& , Type_Double& )
const;
106 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
inline std::enable_if_t< (Arete_Type == Type_Flux_Arete::COIN_FLUIDE),
void>
107 coeffs_arete(
const DoubleTab*,
int,
int,
int,
int, Type_Double& , Type_Double& , Type_Double& )
const { }
110 inline double surface_(
int i,
int j)
const {
return 0.5*(
surface(i)+
surface(j)); }
111 inline double porosity_(
int i,
int j)
const {
return 0.5*(
porosite(i)+
porosite(j)); }
114 inline double nu_mean_2pts(
int i=0,
int j=0,
int compo=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_1_impl_face(i, j, compo); }
115 inline double nu_mean_4pts(
int i,
int j,
int k,
int l,
int compo=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_2_impl_face(i, j, k, l,compo); }
116 inline double nu_lam(
int i,
int j=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_2_impl(i,j); }
117 inline double nu_lam_mean_4pts(
int i,
int j,
int k,
int l,
int compo=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_lam_impl_face(i,j,k,l,compo); }
118 inline double nu_lam_mean_2pts(
int i,
int j,
int compo=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_lam_impl_face2(i,j,compo); }
119 inline double nu_turb(
int i,
int compo=0)
const {
return static_cast<const DERIVED_T *
>(
this)->nu_t_impl(i,compo); }
120 inline double tau_tan(
int i,
int j)
const {
return static_cast<const DERIVED_T *
>(
this)->tau_tan_impl(i,j); }
121 inline bool uses_wall_law()
const {
return static_cast<const DERIVED_T *
>(
this)->uses_wall(); }
122 inline bool uses_mod_turb()
const {
return static_cast<const DERIVED_T *
>(
this)->uses_mod(); }
123 inline const DoubleTab& k_elem()
const {
return static_cast<const DERIVED_T *
>(
this)->get_k_elem(); }
126 static constexpr double EPS = 1e-6;
128 template<
typename Type_Double>
void check_error(
const char * ,
const int,
const int ,
const Type_Double& ,
const Type_Double& ,
const Type_Double& )
const;
130 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
131 inline std::enable_if_t< Arete_Type == Type_Flux_Arete::INTERNE || Arete_Type == Type_Flux_Arete::MIXTE, void>
132 test_coeffs_common(
const int ,
const int ,
const int ,
const int , Type_Double& , Type_Double& )
const;
134 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
135 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::PAROI || Arete_Type == Type_Flux_Arete::NAVIER_PAROI, void>
136 test_coeffs_common(
const int ,
const int ,
const int ,
const int , Type_Double& , Type_Double& )
const;
138 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
139 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::FLUIDE || Arete_Type == Type_Flux_Arete::NAVIER_FLUIDE || Arete_Type == Type_Flux_Arete::PAROI_FLUIDE, void>
140 test_coeffs_common(
const int ,
const int ,
const int ,
const int , Type_Double& , Type_Double& , Type_Double& , Type_Double&)
const;
142 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
143 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::PERIODICITE, void>
144 test_coeffs_common(
const int ,
const int ,
const int ,
const int , Type_Double& , Type_Double& )
const;
146 template<Type_Flux_Fa7 Fa7_Type,
typename Type_Double>
inline std::enable_if_t< Fa7_Type == Type_Flux_Fa7::ELEM, void>
147 test_coeffs_fa7(
const int,
const int,
const int,
const Type_Double& )
const;
149 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
150 inline std::enable_if_t< Arete_Type == Type_Flux_Arete::INTERNE, void>
151 test_coeffs_arete(
const int,
const int,
const int,
const int,
const Type_Double& )
const;
153 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
154 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::MIXTE, void>
155 test_coeffs_arete(
const int,
const int,
const int,
const int,
const Type_Double& )
const;
157 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
158 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::PERIODICITE, void>
159 test_coeffs_arete(
const int,
const int,
const int,
const int,
const Type_Double& )
const;
161 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
162 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::PAROI || Arete_Type == Type_Flux_Arete::NAVIER_PAROI, void>
163 test_coeffs_arete(
const int,
const int,
const int,
const int,
const Type_Double&)
const;
165 template<Type_Flux_Arete Arete_Type,
typename Type_Double>
166 inline std::enable_if_t<Arete_Type == Type_Flux_Arete::FLUIDE || Arete_Type == Type_Flux_Arete::NAVIER_FLUIDE || Arete_Type == Type_Flux_Arete::PAROI_FLUIDE, void>
167 test_coeffs_arete(
const int,
const int,
const int,
const int,
const Type_Double& ,
const Type_Double&)
const;