16#include <Fluide_Dilatable_base.h>
17#include <Champ_Fonc_Tabule.h>
18#include <Loi_Etat_GP_base.h>
19#include <Champ_Uniforme.h>
20#include <Domaine_VF.h>
57 le_fluide->set_Cp(
Cp_);
65 const DoubleTab& tab_Temp = le_fluide->inco_chaleur().valeurs();
66 const DoubleTab& tab_rho = le_fluide->masse_volumique().valeurs();
69 for (
int i=0 ; i<ntot ; i++)
81 const DoubleTab& tab_Temp = le_fluide->inco_chaleur().valeurs();
82 temperature_->valeurs() = tab_Temp;
99 const DoubleTab& tab_mu = mu.
valeurs();
101 DoubleTab& tab_lambda =lambda.
valeurs();
115 double mu0 = tab_mu(0,0);
116 tab_lambda *= (mu0 *
Cp_ /
Pr_);
133 Cerr <<
"If lambda is of type Champ_Uniform, mu must also be of type Champ_Uniforme !"<< finl;
134 Cerr <<
"If needed, you can use a Champ_Fonc_Fonction or a Champ_Fonc_Tabule with a constant for mu."<< finl ;
148 const DoubleTab& tab_lambda = champ_lambda.
valeurs();
150 DoubleTab& tab_alpha = le_fluide->diffusivite().
valeurs();
151 const DoubleTab& tab_rho = le_fluide->masse_volumique().valeurs();
154 if (champ_alpha.
que_suis_je()==
"Champ_Fonc_P0_VDF") isVDF = 1;
155 int n=tab_alpha.
size();
159 ToDo_Kokkos(
"critical");
160 for (
int i=0 ; i<n ; i++)
161 tab_alpha(i,0) = (lambda_uniforme ? tab_lambda(0,0) : tab_lambda(i,0)) / (tab_rho(i,0) *
Cp_);
165 const IntTab& tab_elem_faces = ref_cast(
Domaine_VF,le_fluide->vitesse().domaine_dis_base()).elem_faces();
168 CIntTabView elem_faces = tab_elem_faces.
view_ro();
169 CDoubleTabView lambda = tab_lambda.
view_ro();
170 CDoubleTabView rho = tab_rho.
view_ro();
171 DoubleTabView alpha = tab_alpha.
view_wo();
172 Kokkos::parallel_for(start_gpu_timer(__KERNEL_NAME__), n, KOKKOS_LAMBDA(
176 for (
int face=0; face<nfe; face++) rhoelem += rho(elem_faces(i,face),0);
178 alpha(i,0) = (lambda_uniforme ? lambda(0,0) : lambda(i,0))/ ( rhoelem * Cp );
180 end_gpu_timer(__KERNEL_NAME__);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
void mettre_a_jour(double temps) override
Mise a jour en temps.
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
Classe Champ_Fonc_Tabule Classe derivee de Champ_Fonc_base qui represente les.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Fluide_Dilatable_base Cette classe represente un d'un fluide dilatable,
classe Loi_Etat_GP_base Cette classe represente la loi d'etat base pour les gaz parfaits.
void initialiser() override
Initialise la loi d'etat : calcul Pth.
const Nom type_fluide() const override
Renvoie le type de fluide associe.
void calculer_lambda() override
Calcule la conductivite.
void remplir_T() override
Remplit le tableau de la temperature : T=temp+273.
void calculer_Cp() override
Calcule le Cp NE FAIT RIEN : le Cp est constant.
void associer_fluide(const Fluide_Dilatable_base &) override
Associe le fluide a la loi d'etat.
double inverser_Pth(double, double) override
Calcule la pression avec la temperature et la masse volumique.
void calculer_alpha() override
Calcule la diffusivite.
classe Loi_Etat_base Cette classe est la base de la hierarchie des lois d'etat.
virtual void associer_fluide(const Fluide_Dilatable_base &)
Associe le fluide a la loi d'etat.
class Nom Une chaine de caractere pour nommer les objets de TRUST
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
std::enable_if_t< is_default_exec_space< EXEC_SPACE >, View< _TYPE_, _SHAPE_ > > view_wo()
std::enable_if_t< is_default_exec_space< EXEC_SPACE >, ConstView< _TYPE_, _SHAPE_ > > view_ro() const
_SIZE_ size_totale() const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")