16#include <Champ_Morceaux.h>
17#include <Discretisation_base.h>
18#include <Champ_Fonc_MED.h>
19#include <Champ_Uniforme.h>
20#include <Probleme_base.h>
21#include <Domaine_dis_base.h>
44 pb_->domaine().creer_tableau_elements(filled);
49 for (is >> nom; nom !=
"}"; is >> nom)
51 if (nom ==
"default") nom =
"defaut";
58 if (field_.count(nom.getString()))
60 is >> field_[nom.getString()];
62 nb_compo_ = field_[nom.getString()]->nb_comp();
63 else if (field_[nom.getString()]->nb_comp() !=
nb_compo_)
67 if (!field_.count(
"defaut") && mp_min_vect(filled) == 0)
69 else for (
int e = 0; e < pb_->domaine().nb_elem(); e++)
71 default_vals_.append_line(e);
74 pb_->domaine().creer_tableau_elements(
valeurs_);
77 const DoubleTab& xp_dom = ref_cast(Domaine_VF, pb_->domaine_dis()).xp();
78 for (
auto &&kv : field_)
80 const IntVect& elems = kv.first ==
"defaut" ? default_vals_ : pb_->domaine().ss_domaine(kv.first).les_elems();
82 for (
int i = 0; i < elems.
size(); i++)
84 xp_ssz_[kv.first](i, d) = xp_dom(elems(i), d);
92 for (
auto &&kv : field_)
94 kv.second->mettre_a_jour(temps);
95 const IntVect& elems = kv.first ==
"defaut" ? default_vals_ : pb_->domaine().ss_domaine(kv.first).les_elems();
98 kv.second->valeur_aux_elems(xp_ssz_[kv.first], elems, vals);
99 for (
int i = 0; i < elems.size(); i++)
100 for (
int e = elems(i), n = 0; n <
nb_compo_; n++)
109 for (
auto &&kv : field_)
110 res &= kv.second->initialiser(t);
117 for (
auto &&kv : field_)
118 kv.second->changer_temps(t);
124 for (
auto &&kv : field_)
125 kv.second->fixer_unite(unit);
131 for (
auto &&kv : field_)
132 kv.second->fixer_unite(i, unit);
139 for (
auto &&kv : field_)
140 kv.second->associer_domaine_dis_base(zdb);
void associer_domaine_dis_base(const Domaine_dis_base &zdb) override
const Nom & fixer_unite(const Nom &unit) override
Specifie l'unite d'un champ scalaire ou dont toutes les composantes ont la meme unite.
void mettre_a_jour(double) override
Mise a jour en temps du champ.
double changer_temps(const double t) override
Fixe le temps auquel se situe le champ.
int initialiser(const double t) override
NE FAIT RIEN.
virtual void associer_domaine_dis_base(const Domaine_dis_base &)
const Sous_Domaine_t & ss_domaine(int i) const
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
static Objet_U & objet(const Nom &)
Voir Interprete_bloc::objet_global() BM: la classe Interprete n'est pas le meilleur endroit pour cett...
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.
int_t nb_elem_tot() const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)