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_;
class Champ_Don_base base class of Given Fields (not calculated)
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
class Champ_base This class is the base of the fields hierarchy.
class Champs_compris_interface This class contains an interface of methods intended to manage
class Discretisation_base This class represents a spatial discretization scheme, which
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
class Equation_base The role of an equation is the calculation of one or more fields....
Milieu_base This class is the base of the (physical) medium hierarchy.
void ecrire(Sortie &) const
Writes a medium object to an output stream.
DoubleVect & porosite_elem()
virtual int est_deja_associe()
Returns 0 if the medium is already associated with a problem, 1 otherwise.
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
Assigns a name to the Objet_U. Virtual method to override.
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
Returns the heat capacity of the medium (const version).
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
Returns beta_t of the medium (const version).
DoubleVect porosite_face_
const DoubleVect & diametre_hydraulique_face() const
void set_id_composite(const int i)
virtual const Champ_Don_base & conductivite() const
Returns the conductivity of the medium (const version).
bool has_porosites() const
void discretiser_diametre_hydro(const Probleme_base &pb, const Discretisation_base &dis)
virtual void associer_gravite(const Champ_Don_base &)
Associates (assigns) a gravity field to the medium.
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
Returns the diffusivity of the medium (const version).
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
virtual void set_additional_params(Param ¶m) const
Champs_compris champs_compris_
int associer_(Objet_U &) override
Associates gravity by dynamically checking the type of the object to associate.
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()
Computes 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
Returns 1 if gravity has been initialized.
void fill_section_passage_face()
bool has_diffusivite() const
const bool & has_hydr_diam()
const Nom & le_nom() const override
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual const Champ_Don_base & gravite() const
Returns the gravity of the medium if it has been associated, raises an error otherwise (const version...
void creer_champ(const Motcle &motlu) override
const Champ_Don_base & get_porosites_champ() const
A character string (Nom) in uppercase.
class Nom: a character string for naming TRUST objects.
An array of character strings (VECT(Nom)).
Objet_U()
Default constructor: assigns a unique identifier to the object (object_id_) and registers the object ...
Helper class to factorize the readOn method of Objet_U classes.
class Probleme_base It is a Probleme_U that is not a coupling.