TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Echange_global_impose_turbulent.h
1/****************************************************************************
2* Copyright (c) 2024, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#ifndef Echange_global_impose_turbulent_included
17#define Echange_global_impose_turbulent_included
18
19#include <Echange_global_impose.h>
20#include <Correlation_base.h>
21#include <TRUST_Ref.h>
22#include <TRUSTTab.h>
23
24/*! @brief Classe Echange_global_impose_turbulent
25 *
26 * Classe de base pour les CL turbulentes de type Echange_global_impose
27 * Utilisee seulement pour la turbulence de Pb_Multiphase
28 *
29 */
31{
33public:
34 int compatible_avec_eqn(const Equation_base&) const override;
35 virtual int initialiser(double temps) override;
36 virtual int avancer(double temps) override { return 1; } // Avancer ne fait rien car le champ est modifie dans mettre_a_jour
37 void mettre_a_jour(double tps) override;
38 virtual void liste_faces_loi_paroi(IntTab&) override;
39
40 void associer_fr_dis_base(const Frontiere_dis_base& fr) override { la_frontiere_dis = fr; }
41 void associer_domaine_cl_dis_base(const Domaine_Cl_dis_base& zcl) override { mon_dom_cl_dis = zcl; }
42
43 // fonctions de cond_lim_base qui necessitent le champ_front qu'on met a zero car on fait abstraction du champ_front
44 void fixer_nb_valeurs_temporelles(int nb_cases) override { }
45 inline Frontiere_dis_base& frontiere_dis() override { return la_frontiere_dis; }
46 inline const Frontiere_dis_base& frontiere_dis() const override { return la_frontiere_dis; }
47 void changer_temps_futur(double temps, int i) override { }
48 void set_temps_defaut(double temps) override { }
49 void calculer_coeffs_echange(double temps) override { }
50 void verifie_ch_init_nb_comp() const override { }
51
53 {
54 Process::exit(que_suis_je() + " : You shouldn't go through T_ext ! ");
56 }
57
58 const Champ_front_base& T_ext() const override
59 {
60 Process::exit(que_suis_je() + " : You shouldn't go through T_ext ! ");
62 }
63
64 inline virtual Champ_front_base& h_imp() override
65 {
66 Process::exit(que_suis_je() + " : You shouldn't go through h_imp ! ");
68 }
69
70 inline virtual const Champ_front_base& h_imp() const override
71 {
72 Process::exit(que_suis_je() + " : You shouldn't go through h_imp ! ");
74 }
75
76 bool has_h_imp_grad() const override { return true; }
77
78 double h_imp(int i) const override { return h_(i, 0); }
79 double h_imp(int i, int j) const override { return h_(i, j); }
80 double h_imp_grad(int i) const override { return h_grad_(i, 0); }
81 double h_imp_grad(int i, int j) const override { return h_grad_(i, j); }
82 double T_ext(int i) const override { return T_(i, 0); }
83 double T_ext(int i, int k) const override { return T_(i, k); }
84
85protected :
86 virtual void me_calculer()=0;
87
88 OBS_PTR(Correlation_base) correlation_loi_paroi_;
89 OBS_PTR(Frontiere_dis_base) la_frontiere_dis;
90
91 double mon_temps = -1.e8;
92
93 DoubleTab h_, h_grad_, T_;
94};
95
96#endif /* Echange_global_impose_turbulent_included */
classe Champ_front_base Classe de base pour la hierarchie des champs aux frontieres.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
Classe Echange_global_impose_turbulent.
virtual int initialiser(double temps) override
Initialisation en debut de calcul.
int compatible_avec_eqn(const Equation_base &) const override
void associer_domaine_cl_dis_base(const Domaine_Cl_dis_base &zcl) override
Associe le Domaine_Cl_dis_base (Domaine des conditions aux limites discretisees) a l'objet.
virtual void liste_faces_loi_paroi(IntTab &) override
double h_imp(int i) const override
Renvoie la valeur du coefficient d'echange de chaleur impose sur la i-eme composante.
double T_ext(int i) const override
Renvoie la valeur de la temperature imposee sur la i-eme composante du champ de frontiere.
const Champ_front_base & T_ext() const override
double h_imp_grad(int i, int j) const override
void associer_fr_dis_base(const Frontiere_dis_base &fr) override
Associe la frontiere a l'objet.
OBS_PTR(Correlation_base) correlation_loi_paroi_
virtual int avancer(double temps) override
Tourne la roue de la CL.
void fixer_nb_valeurs_temporelles(int nb_cases) override
Appele par Conds_lim::completer Appel cha_front_base::fixer_nb_valeurs_temporelles.
void mettre_a_jour(double tps) override
Effectue une mise a jour en temps de la condition aux limites.
void verifie_ch_init_nb_comp() const override
Appel la verification du champ lu par l intermediaire de l equation pour laquelle on considere la con...
Frontiere_dis_base & frontiere_dis() override
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
Champ_front_base & T_ext() override
Renvoie le champ T_ext de temperature imposee a la frontiere.
double T_ext(int i, int k) const override
Renvoie la valeur de la temperature imposee sur la (i,j)-eme composante du champ de frontiere.
void calculer_coeffs_echange(double temps) override
Calcul des coefficient d'echange pour un couplage par Champ_front_contact_VEF.
void set_temps_defaut(double temps) override
Change le i-eme temps futur de la cl.
virtual const Champ_front_base & h_imp() const override
void changer_temps_futur(double temps, int i) override
Change le i-eme temps futur de la CL.
double h_imp(int i, int j) const override
Renvoie la valeur du coefficient d'echange de chaleur impose sur la i-eme composante.
virtual Champ_front_base & h_imp() override
const Frontiere_dis_base & frontiere_dis() const override
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
OBS_PTR(Frontiere_dis_base) la_frontiere_dis
Classe Echange_global_impose Cette classe represente le cas particulier de la classe.
virtual Champ_front_base & h_imp()
virtual Champ_front_base & T_ext()
Renvoie le champ T_ext de temperature imposee a la frontiere.
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
classe Frontiere_dis_base Classe representant une frontiere discretisee.
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
Definition Objet_U.cpp:104
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Definition Process.cpp:455