16#ifndef Eval_Forchheimer_VEF_Face_included
17#define Eval_Forchheimer_VEF_Face_included
19#include <Evaluateur_Source_VEF_Face.h>
20#include <Modele_Permeabilite_base.h>
21#include <Champ_Inc_base.h>
32 template <
typename Type_Double>
35 template <
typename Type_Double>
38 inline void setCf(
double c) { Cf_ = c; }
46 template <
typename Type_Double>
47 inline void calculer_terme_source(
int , Type_Double& ,
const DoubleVect&)
const;
49 double Cf_, porosite_;
54template <
typename Type_Double>
55inline void Eval_Forchheimer_VEF_Face::calculer_terme_source(
int num_face, Type_Double& source,
const DoubleVect& volumes)
const
57 int size = source.size_array();
58 for (
int i = 0; i < size; i++)
60 double U = vitesse_->valeurs()(num_face, i);
61 source[i] = -Cf_ / sqrt(modK_->getK(porosite_)) * volumes[num_face] *
porosite_surf[num_face] * std::fabs(U) * U;
71 KOKKOS_INLINE_FUNCTION
76 KOKKOS_INLINE_FUNCTION
void set(const Eval_Forchheimer_VEF_Face &eval) const
KOKKOS_INLINE_FUNCTION void calculer_terme_source_non_standard_view(int num_face, DoubleArrView source) const
KOKKOS_INLINE_FUNCTION void calculer_terme_source_standard_view(int num_face, DoubleArrView source) const
void mettre_a_jour() override
Eval_Forchheimer_VEF_Face(const Eval_Forchheimer_VEF_Face &eval)
void associer(const Champ_Inc_base &v)
void calculer_terme_source_standard(const int num_face, Type_Double &source) const
OWN_PTR(Modele_Permeabilite_base) modK_
Eval_Forchheimer_VEF_Face()
void calculer_terme_source_non_standard(const int num_face, Type_Double &source) const
void setPorosite(double p)
DoubleVect volumes_entrelaces
DoubleVect volumes_entrelaces_Cl
Evaluateur_Source_VEF_Face()
classe Modele_Permeabilite_base Cette classe de base represente un modele de permeabilite
static KOKKOS_INLINE_FUNCTION void Kokkos_exit(const char *)
Routine de sortie de TRUST dans une region Kokkos.