16#include <Champ_Generique_Predefini.h>
18#include <Entree_complete.h>
42 Entree_complete s_complete(expression,s);
69 champ_->completer(post);
79 return champ_->get_champ_without_evaluation(espace_stockage);
83 return champ_->get_champ(espace_stockage);
89 motcles[0] =
"unites";
90 int rang = motcles.
search(query);
99 mots[0] =
"kg/(m.s2)";
129 return champ_->get_property(query);
139 return champ_->get_nom_post();
151 les_mots[0] =
"energie_cinetique_totale";
152 les_mots[1] =
"energie_cinetique_elem";
153 les_mots[2] =
"viscosite_turbulente";
154 les_mots[3] =
"viscous_force_x";
155 les_mots[4] =
"viscous_force_y";
156 les_mots[5] =
"viscous_force_z";
157 les_mots[6] =
"pressure_force_x";
158 les_mots[7] =
"pressure_force_y";
159 les_mots[8] =
"pressure_force_z";
160 les_mots[9] =
"total_force_x";
161 les_mots[10] =
"total_force_y";
162 les_mots[11] =
"total_force_z";
163 les_mots[12] =
"viscous_force";
164 les_mots[13] =
"pressure_force";
165 les_mots[14] =
"total_force";
176 expression =
" Reduction_0D { methode somme_ponderee ";
177 expression +=
" source Transformation { methode formule expression 1 0.5*rho*norme_u*norme_u ";
178 expression +=
" sources { Transformation { methode norme localisation elem source RefChamp { Pb_champ ";
180 expression +=
" vitesse } nom_source norme_u } , refChamp { Pb_champ ";
182 expression +=
" masse_volumique nom_source rho } } } } ";
188 expression =
" Transformation { methode formule expression 1 0.5*rho*norme_u*norme_u ";
189 expression +=
" sources { Transformation { methode norme localisation elem source RefChamp { Pb_champ ";
191 expression +=
" vitesse } nom_source norme_u } , refChamp { Pb_champ ";
193 expression +=
" masse_volumique nom_source rho } } } ";
199 expression =
" modifier_pour_QC { division source refChamp { Pb_champ ";
201 expression +=
" viscosite_dynamique_turbulente } } ";
207 expression =
" Morceau_equation { type operateur numero 0 option flux_bords compo 0 ";
208 expression +=
" source refChamp { Pb_champ ";
210 expression +=
" vitesse } }";
216 expression =
" Morceau_equation { type operateur numero 0 option flux_bords compo 1 ";
217 expression +=
" source refChamp { Pb_champ ";
219 expression +=
" vitesse } }";
225 expression =
" Morceau_equation { type operateur numero 0 option flux_bords compo 2 ";
226 expression +=
" source refChamp { Pb_champ ";
228 expression +=
" vitesse } }";
234 expression =
" Morceau_equation { type operateur numero 2 option flux_bords compo 0 ";
235 expression +=
" source refChamp { Pb_champ ";
237 expression +=
" vitesse } }";
243 expression =
" Morceau_equation { type operateur numero 2 option flux_bords compo 1 ";
244 expression +=
" source refChamp { Pb_champ ";
246 expression +=
" vitesse } }";
252 expression =
" Morceau_equation { type operateur numero 2 option flux_bords compo 2 ";
253 expression +=
" source refChamp { Pb_champ ";
255 expression +=
" vitesse } }";
261 expression =
" Transformation { methode formule expression 1 viscousFX+pressureFX sources { ";
262 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 0 source refChamp { Pb_champ ";
264 expression +=
" vitesse } nom_source viscousFX } , ";
265 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 0 source refChamp { Pb_champ ";
267 expression +=
" vitesse } nom_source pressureFX } ";
268 expression +=
" } }";
274 expression =
" Transformation { methode formule expression 1 viscousFY+pressureFY sources { ";
275 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 1 source refChamp { Pb_champ ";
277 expression +=
" vitesse } nom_source viscousFY } , ";
278 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 1 source refChamp { Pb_champ ";
280 expression +=
" vitesse } nom_source pressureFY } ";
281 expression +=
" } }";
287 expression =
" Transformation { methode formule expression 1 viscousFZ+pressureFZ sources { ";
288 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 2 source refChamp { Pb_champ ";
290 expression +=
" vitesse } nom_source viscousFZ } , ";
291 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 2 source refChamp { Pb_champ ";
293 expression +=
" vitesse } nom_source pressureFZ } ";
294 expression +=
" } }";
302 expression =
" Transformation { methode vecteur expression 3 viscousX viscousY viscousZ sources { ";
303 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 2 source refChamp { Pb_champ ";
305 expression +=
" vitesse } nom_source viscousZ } , ";
308 expression =
" Transformation { methode vecteur expression 2 viscousX viscousY sources { ";
309 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 0 source refChamp { Pb_champ ";
311 expression +=
" vitesse } nom_source viscousX } , ";
312 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 1 source refChamp { Pb_champ ";
314 expression +=
" vitesse } nom_source viscousY } ";
315 expression +=
" } }";
323 expression =
" Transformation { methode vecteur expression 3 pressureX pressureY pressureZ sources { ";
324 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 2 source refChamp { Pb_champ ";
326 expression +=
" vitesse } nom_source pressureZ } , ";
329 expression =
" Transformation { methode vecteur expression 2 pressureX pressureY sources { ";
330 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 0 source refChamp { Pb_champ ";
332 expression +=
" vitesse } nom_source pressureX } , ";
333 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 1 source refChamp { Pb_champ ";
335 expression +=
" vitesse } nom_source pressureY } ";
336 expression +=
" } }";
344 expression =
" Transformation { methode vecteur expression 3 viscousX+pressureX viscousY+pressureY viscousZ+pressureZ sources { ";
345 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 2 source refChamp { Pb_champ ";
347 expression +=
" vitesse } nom_source viscousZ } , ";
348 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 2 source refChamp { Pb_champ ";
350 expression +=
" vitesse } nom_source pressureZ } , ";
353 expression =
" Transformation { methode vecteur expression 2 viscousX+pressureX viscousY+pressureY sources { ";
354 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 0 source refChamp { Pb_champ ";
356 expression +=
" vitesse } nom_source viscousX } , ";
357 expression +=
" Morceau_equation { type operateur numero 0 option flux_bords compo 1 source refChamp { Pb_champ ";
359 expression +=
" vitesse } nom_source viscousY } , ";
360 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 0 source refChamp { Pb_champ ";
362 expression +=
" vitesse } nom_source pressureX } , ";
363 expression +=
" Morceau_equation { type operateur numero 2 option flux_bords compo 1 source refChamp { Pb_champ ";
365 expression +=
" vitesse } nom_source pressureY } ";
366 expression +=
" } }";
373 Cerr<<
"Only keywords among "<<les_mots<<
" are allowed."<<finl;
Base class of generic fields having other generic fields as source. The use of the class methods reli...
class Champ_Generique_Predefini
const Champ_base & get_champ(OWN_PTR(Champ_base)&espace_stockage) const override
void nommer(const Nom &) override
Assigns a name to the Objet_U. Virtual method to override.
OWN_PTR(Champ_Generique_base) champ_
const Nom & get_nom_post() const override
Nom construit_expression()
const Champ_base & get_champ_without_evaluation(OWN_PTR(Champ_base)&espace_stockage) const override
const Noms get_property(const Motcle &query) const override
Returns the requested property.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
void completer(const Postraitement_base &post) override
const Champ_Generique_base & get_source(int i) const override
void nommer_source() override
void set_param(Param ¶m) const override
class Champ_Generique_base
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
class Champ_base This class is the base of the fields hierarchy.
Class defining operators and methods for all reading operation in an input flow (file,...
A character string (Nom) in uppercase.
An array of Motcle objects.
int search(const Motcle &t) const
class Nom: a character string for naming TRUST objects.
An array of character strings (VECT(Nom)).
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 const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_non_std(const char *keyword, const Objet_U *value, Param::Nature nat=Param::OPTIONAL)
Register a keyword handled by Objet_U::lire_motcle_non_standard.
Base class for all post-processing objects.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.