16#include <Champ_Uniforme_Morceaux.h>
48 Domaine& le_domaine=mon_domaine.valeur();
49 const IntTab& les_elems=le_domaine.
les_elems();
59 if(motlu != Motcle(
"{") )
61 Cerr <<
"Error while reading a " <<
que_suis_je() << finl;
62 Cerr <<
"We expected a { instead of " << nom << finl;
67 if(motlu != Motcle(
"defaut") )
69 Cerr <<
"Error while reading a " <<
que_suis_je() << finl;
70 Cerr <<
"We expected defaut instead of " << nom << finl;
74 VECT(Parser_U) fxyz(dim);
75 for( k=0; k< dim; k++)
80 fxyz[k].setString(tmp);
84 fxyz[k].parseString();
87 for( poly=0; poly<le_domaine.
nb_elem(); poly++)
91 for (
int isom = 0; isom<nb_som_elem; isom++)
92 if ((e = les_elems(poly,isom)) >= 0)
94 x += le_domaine.
coord(e,0);
95 y += le_domaine.
coord(e,1);
102 for( k=0; k< dim; k++)
104 fxyz[k].setVar(
"x",x);
105 fxyz[k].setVar(
"y",y);
106 fxyz[k].setVar(
"z",z);
113 while (motlu != Motcle(
"}") )
116 Sous_Domaine& ssz = refssz.valeur();
117 for( k=0; k< dim; k++)
121 fxyz[k].setString(tmp);
122 fxyz[k].parseString();
128 for (
int isom = 0; isom<nb_som_elem; isom++)
129 if ((e = les_elems(ssz(poly),isom)) >= 0)
131 x += le_domaine.
coord(e,0);
132 y += le_domaine.
coord(e,1);
139 for( k=0; k< dim; k++)
141 fxyz[k].setVar(
"x",x);
142 fxyz[k].setVar(
"y",y);
143 fxyz[k].setVar(
"z",z);
144 valeurs_(ssz(poly),k)=fxyz[k].eval();
159 les_sous_domaines = chum.sous_domaines();
160 mon_domaine = chum.domaine();
167 const DoubleTab& ch_val = chu.
valeurs();
168 for (
int k = 0; k < dim; k++)
169 for (
int poly = 0; poly < nb_poly; poly++)
valeurs_(poly, k) = ch_val(0, k);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
int lire_dimension(Entree &, const Nom &)
Verification de la dimension du champ Renvoie la dimension du champ.
Champ_base()
Constructeur par defaut d'un Champ_base.
const Sous_Domaine_t & ss_domaine(int i) const
int nb_som_elem() const
Renvoie le nombre de sommets des elements geometriques constituants le domaine.
virtual void creer_tableau_elements(Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const
creation d'un tableau parallele de valeurs aux elements.
double coord(int_t i, int j) const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual void fixer_nb_comp(int i)
Fixe le nombre de composantes du champ.
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 interprete_get_domaine(const Nom &nom)
const OBS_PTR(Domaine) &domaine() const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")