16#ifndef Eval_Conv_VDF_Elem_included
17#define Eval_Conv_VDF_Elem_included
19#include <CL_Types_include.h>
20#include <Eval_VDF_Elem.h>
22template <
typename DERIVED_T>
35 template <
typename BC,
typename Type_Double>
36 inline void flux_face(
const DoubleTab&,
const DoubleTab&,
const int,
const BC&,
const int, Type_Double& )
const { }
39 template <
typename Type_Double>
inline void flux_face(
const DoubleTab&,
const DoubleTab&,
const int,
const Dirichlet_entree_fluide&,
const int, Type_Double& )
const;
40 template <
typename Type_Double>
inline void flux_face(
const DoubleTab&,
const DoubleTab&,
const int,
const Neumann_sortie_libre&,
const int, Type_Double& )
const;
41 template <
typename Type_Double>
inline void flux_face(
const DoubleTab&,
const DoubleTab&,
const int,
const Periodique&,
const int, Type_Double& )
const;
42 template <
typename Type_Double>
inline void flux_face(
const DoubleTab&,
const int,
const int,
const int,
const Echange_externe_impose&,
const int, Type_Double& )
const { }
43 template <
typename Type_Double>
inline void flux_faces_interne(
const DoubleTab&,
const int, Type_Double& )
const;
49 template <
typename BC,
typename Type_Double>
50 inline void coeffs_face(
const int,
const int,
const BC&, Type_Double& , Type_Double& )
const { }
55 template <
typename Type_Double>
inline void coeffs_face(
const int,
const int,
const Periodique&, Type_Double&, Type_Double& )
const;
56 template <
typename Type_Double>
inline void coeffs_face(
const DoubleTab&,
const int,
const int,
const int,
const int,
const Echange_externe_impose&, Type_Double&, Type_Double& )
const { }
57 template <
typename Type_Double>
inline void coeffs_faces_interne(
const int, Type_Double&, Type_Double& )
const;
60 template <
typename BC,
typename Type_Double>
61 inline void coeffs_face_bloc_vitesse(
const DoubleTab&,
const DoubleTab&,
const int,
const BC&,
const int, Type_Double& )
const { }
66 template <
typename Type_Double>
inline void coeffs_face_bloc_vitesse(
const DoubleTab&,
const DoubleTab&,
const int,
const Periodique&,
const int, Type_Double& )
const;
71 template <
typename BC,
typename Type_Double>
inline void secmem_face(
const int,
const BC&,
const int, Type_Double& )
const {
throw; }
73 template <
typename Type_Double>
inline void secmem_faces_interne(
const int, Type_Double& )
const {
throw; }
76 template <
typename Type_Double>
inline void coeffs_face_common(
const int, Type_Double&, Type_Double& )
const;
77 template <
typename Type_Double>
inline void coeffs_face_bloc_vitesse_common(
const DoubleTab&,
const int, Type_Double& )
const;
80 inline int elem_(
const int i,
const int j)
const {
return static_cast<const DERIVED_T *
>(
this)->get_elem(i,j); }
81 inline int amont_amont_(
const int face,
const int i)
const {
return static_cast<const DERIVED_T *
>(
this)->amont_amont(face,i); }
82 inline double dt_vitesse(
const int face,
int comp = 0)
const {
return static_cast<const DERIVED_T *
>(
this)->get_dt_vitesse(face, comp); }
83 inline const DoubleTab& tab_vitesse()
const {
return static_cast<const DERIVED_T *
>(
this)->get_tab_vitesse(); }
84 inline double surface_porosite(
const int face)
const {
return static_cast<const DERIVED_T *
>(
this)->get_surface_porosite(face); }
86 template <
typename Type_Double>
inline void quick_fram_(
const Type_Double& psc,
const int num0,
const int num1,
const int num0_0,
const int num1_1,
const int face,
const DoubleTab& transporte, Type_Double& flux)
const
87 {
static_cast<const DERIVED_T *
>(
this)->
template quick_fram<Type_Double>(psc, num0, num1, num0_0, num1_1, face, transporte, flux); }
89 template <
typename Type_Double>
inline void qcentre_(
const double psc,
const int num0,
const int num1,
const int num0_0,
const int num1_1,
const int face,
const DoubleTab& transporte, Type_Double& flux)
const
90 {
static_cast<const DERIVED_T *
>(
this)->
template qcentre<Type_Double>(psc,num0,num1,num0_0,num1_1,face,transporte,flux); }
93#include <Eval_Conv_VDF_Elem.tpp>
classe Dirichlet_entree_fluide Cette classe represente une condition aux limite imposant une grandeur
Classe Echange_externe_impose: Cette classe represente le cas particulier de la classe.
static constexpr bool IS_AMONT
void secmem_face(const int, const int, const int, const Echange_externe_impose &, const int, Type_Double &) const
void coeffs_faces_interne(const int, Type_Double &, Type_Double &) const
static constexpr bool CALC_FLUX_FACES_ECH_GLOB_IMP
static constexpr bool CALC_FLUX_FACES_PAR_FIXE
static constexpr bool IS_QUICK
static constexpr bool IS_CENTRE
static constexpr bool CALC_FLUX_FACES_ECH_EXT_IMP
void coeffs_face_bloc_vitesse(const DoubleTab &, const DoubleTab &, const int, const int, const int, const Echange_externe_impose &, const int, Type_Double &) const
void secmem_face(const int, const BC &, const int, Type_Double &) const
void coeffs_face(const DoubleTab &, const int, const int, const int, const int, const Echange_externe_impose &, Type_Double &, Type_Double &) const
void secmem_faces_interne(const int, Type_Double &) const
void coeffs_face_bloc_vitesse(const DoubleTab &, const DoubleTab &, const int, const BC &, const int, Type_Double &) const
void coeffs_face(const int, const int, const BC &, Type_Double &, Type_Double &) const
static constexpr bool CALC_FLUX_FACES_SORTIE_LIB
void flux_faces_interne(const DoubleTab &, const int, Type_Double &) const
static constexpr bool IS_CENTRE4
void flux_face(const DoubleTab &, const DoubleTab &, const int, const BC &, const int, Type_Double &) const
void coeffs_faces_interne_bloc_vitesse(const DoubleTab &, const int, Type_Double &) const
void flux_face(const DoubleTab &, const int, const int, const int, const Echange_externe_impose &, const int, Type_Double &) const
static constexpr bool CALC_FLUX_FACES_PAR
class Eval_VDF_Elem Cette classe represente le prototype fonctionnel
classe Neumann_sortie_libre Cette classe represente une frontiere ouverte sans vitesse imposee
classe Periodique Cette classe represente une condition aux limites periodique.