16#include <champ_init_canal_sinal.h>
54 Cerr <<
"Problem while reading the dimension of field champ_init_canal_sinal" << finl;
55 Cerr <<
"Check that it was correctly indicated : dim = " << dim << finl;
68 les_mots[0] =
"Ucent";
70 les_mots[2] =
"ampli_bruit";
71 les_mots[3] =
"ampli_sin";
72 les_mots[4] =
"omega";
73 les_mots[5] =
"dir_flow";
74 les_mots[6] =
"dir_wall";
75 les_mots[7] =
"min_dir_flow";
76 les_mots[8] =
"min_dir_wall";
78 Motcle acc_ouverte(
"{");
79 Motcle acc_fermee(
"}");
81 if (mot_lu != acc_ouverte)
83 Cerr <<
"Expecting a { instead of " << mot_lu <<
"while reading intial condition" << finl;
86 while (mot_lu != acc_fermee)
88 int rang = les_mots.search(mot_lu);
93 Cerr <<
"Centerline Longitudinal Velocity = " <<
Ucent << finl;
100 Cerr <<
"Channel Half-height = " <<
h << finl;
105 Cerr <<
"Noise Amplitude = " <<
ampli_bruit << finl;
110 Cerr <<
"Sine Perturbation Amplitude = " <<
ampli_sin << finl;
115 Cerr <<
"Omega = " <<
omega << finl;
120 Cerr <<
"Flow direction : " <<
dir_flow << finl;
125 Cerr <<
"The specified Wall direction : " <<
dir_wall << finl;
130 Cerr <<
"Minimum value position in flow direction : " <<
min_dir_flow << finl;
135 Cerr <<
"Minimum value position in wall direction : " <<
min_dir_wall << finl;
140 Cerr <<
"Error in champ_init_canal_sinal::readOn " << finl;
141 Cerr << mot_lu <<
" is not understood by velocity initial condition generation." << finl;
142 Cerr <<
"The understood keywords are : " << les_mots << finl;
151 Cerr <<
"Error in champ_init_canal_sinal::readOn " << finl;
152 Cerr <<
"You gave the same direction for a wall and the flow direction : Impossible !" << finl;
158 Cerr <<
"Error in champ_init_canal_sinal::readOn " << finl;
159 Cerr <<
"One of the specified directions are not possible." << finl;
160 Cerr <<
"Use : 0 for X, 1 for Y and 2 for Z !" << finl;
164 int valmin = min_array(Verif);
167 for (
int i = 0; i < 5; i++)
168 if (Verif[i] == 0) Cerr <<
"You didn't give a value for " << les_mots[i] << finl;
170 Cerr <<
"Error in champ_init_canal_sinal::readOn " << finl;
171 Cerr <<
"User needs to specify values for the parameters below.";
172 Cerr <<
"The syntax is : Ucent val_Ucent h val_h ampli_bruit val_ampli_bruit [ampli_sin val_ampli_sin] omega val_omega" << finl;
173 Cerr <<
"dir_flow val_dir_flow dir_wall val_dir_wall" << finl;
182 Cerr <<
"values = " << tab_valeurs << finl;
183 Cerr <<
"In champ_init_canal_sinal::valeur_a nb_compo_=" <<
nb_compo_ << finl;
250 for (i = 0; i < tab_valeurs.
dimension(0); i++)
257 for (i = 0; i < tab_valeurs.
dimension(0); i++)
267 for (i = 0; i < tab_valeurs.
dimension(0); i++)
282 tab_valeurs.
resize(nb_pos);
289 for (i = 0; i < nb_pos; i++)
296 for (i = 0; i < nb_pos; i++)
299 for (i = 0; i < nb_pos; i++)
306 for (i = 0; i < nb_pos; i++)
309 for (i = 0; i < nb_pos; i++)
312 for (i = 0; i < nb_pos; i++)
void dimensionner(int, int)
Fixe le nombre de composantes et le nombre de valeurs nodales.
int lire_dimension(Entree &, const Nom &)
Verification de la dimension du champ Renvoie la dimension du champ.
Class defining operators and methods for all reading operation in an input flow (file,...
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.
_SIZE_ dimension(int d) const
_SIZE_ size_totale() const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
DoubleTab & valeur_aux(const DoubleTab &positions, DoubleTab &valeurs) const override
Provoque une erreur ! Doit etre surchargee par les classes derivees.
DoubleVect & valeur_a(const DoubleVect &position, DoubleVect &valeurs) const override
Calcule les "valeurs" du champ au point de coordonnees "pos".
double valeur_a_elem_compo(const DoubleVect &position, int le_poly, int ncomp) const override
provoque une erreur ! doit etre surchargee par les classes derivees
double fz(double x, double y, double z) const
double fx(double x) const
DoubleVect & valeur_aux_compo(const DoubleTab &positions, DoubleVect &valeurs, int ncomp) const override
Idem que valeur_aux(const DoubleTab &, DoubleTab &), mais calcule uniquement la composante compo du c...
double fy(double x, double y) const