16#ifndef Milieu_base_included
17#define Milieu_base_included
19#include <Champs_compris_interface.h>
20#include <Porosites_champ.h>
21#include <Interface_blocs.h>
22#include <Champ_Inc_base.h>
23#include <Champs_compris.h>
145 mutable std::map<std::string, const Equation_base *>
equation_;
165 bool is_user_porosites_ =
false, is_field_porosites_ =
false, has_hydr_diam_ =
false;
166 void verifie_champ_porosites();
167 void nettoie_champ_porosites();
168 const bool& is_user_porosites() {
return is_user_porosites_; }
169 const bool& is_field_porosites() {
return is_field_porosites_; }
171 mutable int deja_associe_ = 0;
172 bool via_associer_ =
false;
173 void warn_old_syntax();
174 OBS_PTR(Champ_Don_base) g_via_associer_;
classe Champ_Don_base classe de base des Champs donnes (non calcules)
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Champs_compris_interface Cette classe contient une interface de methodes destinees a gerer
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
void ecrire(Sortie &) const
Ecrit un objet milieu sur un flot de sortie.
DoubleVect & porosite_elem()
virtual int est_deja_associe()
Renvoie 0 si le milieu est deja associe a un probleme, 1 sinon.
virtual void associer_equation(const Equation_base *eqn) const
bool has_masse_volumique() const
const LIST(OBS_PTR(Champ_Don_base)) &champs_don() const
DoubleVect diametre_hydraulique_face_
bool has_conductivite() const
virtual int initialiser(const double temps)
virtual bool is_dilatable() const
void nommer(const Nom &) override
Donne un nom a l'Objet_U Methode virtuelle a surcharger.
LIST(OBS_PTR(Champ_Don_base)) champs_don_
virtual void creer_champs_non_lus()
double porosite_face(const int i) const
virtual bool is_rayo_transp() const
void discretiser_porosite(const Probleme_base &pb, const Discretisation_base &dis)
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual void mettre_a_jour(double temps)
virtual void resetTime(double time)
virtual void preparer_calcul()
virtual void calculate_face_porosity()
double diametre_hydraulique_face(int i) const
double section_passage_face(int i) const
virtual const Champ_Don_base & capacite_calorifique() const
Renvoie la capacite calorifique du milieu.
virtual void abortTimeStep()
virtual void update_rho_cp(double temps)
bool has_capacite_calorifique() const
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
virtual bool initTimeStep(double dt)
int initialiser_porosite(const double temps)
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
const DoubleVect & porosite_elem() const
OBS_PTR(Domaine_dis_base) zdb_
virtual void discretiser(const Probleme_base &pb, const Discretisation_base &dis)
OWN_PTR(Champ_base) ch_rho_
virtual void calculate_face_hydr_diam()
const Champ_base & get_champ(const Motcle &nom) const override
virtual const Champ_Don_base & diffusivite_fois_rho() const
DoubleVect & diametre_hydraulique_face()
virtual const Champ_Don_base & beta_t() const
Renvoie beta_t du milieu.
DoubleVect porosite_face_
const DoubleVect & diametre_hydraulique_face() const
void set_id_composite(const int i)
virtual const Champ_Don_base & conductivite() const
Renvoie la conductivite du milieu.
bool has_porosites() const
void discretiser_diametre_hydro(const Probleme_base &pb, const Discretisation_base &dis)
virtual void associer_gravite(const Champ_Don_base &)
Associe (affecte) un champ de gravite au milieu.
virtual int check_unknown_range() const
virtual void verifier_coherence_champs(int &err, Nom &message)
virtual bool is_rayo_semi_transp() const
virtual const Champ_Don_base & diffusivite() const
Renvoie la diffusivite du milieu.
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
virtual void set_additional_params(Param ¶m) const
Champs_compris champs_compris_
int associer_(Objet_U &) override
Associe la gravite en controlant dynamiquement le type de l'objet a associer.
const DoubleTab & diametre_hydraulique_elem() const
DoubleTab & diametre_hydraulique_elem()
void check_gravity_vector() const
const DoubleVect & section_passage_face() const
virtual void set_param(Param ¶m) const override
virtual void calculer_alpha()
Calcul de alpha=lambda/(rho*Cp).
void mettre_a_jour_porosite(double temps)
DoubleVect & porosite_face()
double porosite_elem(const int i) const
std::map< std::string, const Equation_base * > equation_
DoubleVect section_passage_face_
const DoubleVect & porosite_face() const
virtual int a_gravite() const
Renvoie 1 si la gravite a ete initialisee.
void fill_section_passage_face()
bool has_diffusivite() const
const bool & has_hydr_diam()
const Nom & le_nom() const override
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual const Champ_Don_base & gravite() const
Renvoie la gravite du milieu si elle a ete associe provoque une erreur sinon.
void creer_champ(const Motcle &motlu) override
const Champ_Don_base & get_porosites_champ() const
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Helper class to factorize the readOn method of Objet_U classes.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.