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;
Classe de base des champs generiques ayant comme source d'autres champs generiques L'utilisation des ...
class Champ_Generique_Predefini
const Champ_base & get_champ(OWN_PTR(Champ_base)&espace_stockage) const override
void nommer(const Nom &) override
Donne un nom a l'Objet_U Methode virtuelle a surcharger.
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
Renvoie la propriete demandee.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
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
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
classe Champ_base Cette classe est la base de la hierarchie des champs.
Class defining operators and methods for all reading operation in an input flow (file,...
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
int search(const Motcle &t) const
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
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 const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
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.
Classe de base pour l'ensemble des postraitements.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.