16#ifndef Iterateur_VDF_base_included
17#define Iterateur_VDF_base_included
19#include <CL_Types_include.h>
20#include <Domaine_Cl_VDF.h>
21#include <Operateur_base.h>
22#include <Evaluateur_VDF.h>
23#include <Champ_Face_VDF.h>
24#include <Probleme_base.h>
25#include <Equation_base.h>
26#include <Domaine_VDF.h>
27#include <Milieu_base.h>
36enum class Type_Operateur { Op_CONV_ELEM , Op_CONV_FACE , Op_DIFF_ELEM , Op_DIFT_ELEM , Op_DIFF_FACE , Op_DIFT_FACE , Op_DIFT_MULTIPHASE_FACE , Op_DIFT_MULTIPHASE_ELEM } ;
45 paroi_scalaire_impose,
46 paroi_dirichlet_loi_paroi,
49 echange_externe_impose,
50 echange_global_impose,
62 virtual void ajouter_blocs(matrices_t mats, DoubleTab& secmem,
const tabs_t& semi_impl)
const=0;
66 Cerr <<
"Iterateur_VDF_base::" << __func__ <<
" should not be called !" << finl;
92 virtual DoubleTab&
calculer(
const DoubleTab& inco, DoubleTab& resu)
const final
94 operator_egal(resu, 0., VECT_REAL_ITEMS);
98 virtual DoubleTab&
ajouter(
const DoubleTab& inco, DoubleTab& secmem)
const final
100 ajouter_blocs({}, secmem, {{ op_base->equation().inconnue().le_nom().getString(), inco }});
106 DoubleTrav secmem(inco);
107 ajouter_blocs({{ op_base->equation().inconnue().le_nom().getString(), &m }}, secmem, {});
112 Cerr <<
"Iterateur_VDF_base::" << __func__ <<
" should not be called !" << finl;
118 Cerr <<
"Iterateur_VDF_base::" << __func__ <<
" should not be called !" << finl;
135 Type_Cl_VDF retour = nouvelle_Cl_VDF;
137 if (sub_type(
Navier, la_cl.valeur())) retour = navier;
143 else if (sub_type(
Dirichlet_loi_paroi, la_cl.valeur())) retour = paroi_dirichlet_loi_paroi;
145 else if (sub_type(
Neumann_paroi, la_cl.valeur())) retour = paroi;
148 else if (sub_type(
Periodique, la_cl.valeur())) retour = periodique;
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Cond_lim Classe generique servant a representer n'importe quelle classe
classe Dirichlet_entree_fluide Cette classe represente une condition aux limite imposant une grandeur
Classe Dirichlet_loi_paroi Classe de base pour les valeurs impose pour une condition aux limites des ...
classe Dirichlet_paroi_defilante Impose la vitesse de paroi dnas une equation de type Navier_Stokes.
classe Dirichlet_paroi_fixe Represente une paroi immobile dans une equation de type Navier_Stokes.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
Classe Echange_externe_impose: Cette classe represente le cas particulier de la classe.
Classe Echange_global_impose Cette classe represente le cas particulier de la classe.
class Evaluateur_VDF Classe de base des evaluateurs VDF.
const Domaine_Cl_VDF & domaine_Cl() const
OBS_PTR(Champ_Inc_base) le_champ_convecte_ou_inc
OBS_PTR(Domaine_Cl_VDF) la_zcl
virtual void creer_champ_T_paroi_pour_flux_parietal()
virtual void ajouter_contribution(const DoubleTab &inco, Matrice_Morse &m) const final
OBS_PTR(Operateur_base) op_base
OBS_PTR(Domaine_VDF) le_dom
Type_Cl_VDF type_cl(const Cond_lim &) const
void associer(const Domaine_VDF &, const Domaine_Cl_VDF &, const Operateur_base &)
virtual void ajouter_blocs(matrices_t mats, DoubleTab &secmem, const tabs_t &semi_impl) const =0
const bool & is_convective_op() const
virtual void contribuer_au_second_membre(DoubleTab &) const
void set_incompressible(const int flag)
virtual DoubleTab & calculer(const DoubleTab &inco, DoubleTab &resu) const final
void associer_domaine_cl_dis(const Domaine_Cl_dis_base &)
const Domaine_VDF & domaine() const
virtual int impr(Sortie &os) const =0
virtual void completer_()=0
virtual Evaluateur_VDF & evaluateur()=0
const bool & is_pb_multiphase() const
void set_name_champ_inco(const std::string &nom)
virtual void ajouter_contribution_autre_pb(const DoubleTab &, Matrice_Morse &, const Cond_lim &, std::map< int, std::pair< int, int > > &) const
void set_convective_op_pb_type(const bool ty_op, const bool ty_pb)
virtual void associer_correlation_flux_parietal(const Correlation_base &corr)
OBS_PTR(Champ_base) le_ch_v
const int & is_incompressible() const
virtual DoubleTab & ajouter(const DoubleTab &inco, DoubleTab &secmem) const final
void set_multiscalar_diff(bool m)
virtual const Evaluateur_VDF & evaluateur() const =0
void associer_champ_convecte_ou_inc(const Champ_Inc_base &ch, const Champ_base *chv, bool use=false)
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
classe Navier Condition aux limites sur la vitesse de type "Navier" :
Classe Neumann_paroi_adiabatique Cette condition limite correspond a une paroi adiabatique dans une.
Classe Neumann_paroi Cette condition limite correspond a un flux impose pour l'equation de.
classe Neumann_sortie_libre Cette classe represente une frontiere ouverte sans vitesse imposee
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
classe Operateur_base Classe est la base de la hierarchie des objets representant un
classe Periodique Cette classe represente une condition aux limites periodique.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
classe Scalaire_impose_paroi Impose un scalaire a la paroi dans une equation de type Convection-Difus...