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
Specifies the unit of a scalar field or whose all components have the same unit.
void mettre_a_jour(double) override
Time update of the field.
double changer_temps(const double t) override
Sets the time at which the field is defined.
int initialiser(const double t) override
DOES NOTHING.
virtual void associer_domaine_dis_base(const Domaine_dis_base &)
const Sous_Domaine_t & ss_domaine(int i) const
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
Class defining operators and methods for all reading operation in an input flow (file,...
static Objet_U & objet(const Nom &)
See Interprete_bloc::objet_global(). BM: the Interprete class is not the best place for this.
class Nom: a character string for naming TRUST objects.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
int_t nb_elem_tot() const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)