16#include <Ch_front_input_uniforme.h>
17#include <Champ_front_xyz_debit.h>
18#include <Champ_front_uniforme.h>
19#include <Champ_front_Tabule.h>
20#include <Champ_Inc_base.h>
21#include <Champ_front_t.h>
22#include <Equation_base.h>
23#include <Milieu_base.h>
45 param.lire_avec_accolades_depuis(is);
57 flow_rate_->initialiser(tps,inco);
60 Cerr <<
"\nError in Champ_front_xyz_debit::initialiser() \nflow_rate must be of type champ_front_uniforme, ch_front_input_uniforme, champ_front_tabule or champ_front_fonc_t!" << finl;
65 velocity_profil_->initialiser(tps,inco);
66 if (velocity_profil_->nb_comp()!=
dimension)
68 Cerr <<
"\nError in Champ_front_xyz_debit::initialiser() \nvelocity_profil must have " <<
dimension <<
" components!" << finl;
76 integrale_.resize(flow_rate_->valeurs().line_size());
77 DoubleTab velocity_user;
79 velocity_user=velocity_profil_->valeurs();
89 for (
int t=0; t<nb_cases; t++)
99 const int N = flow_rate_->nb_comp();
107 for (
int n = 0; n < N; ++n)
115 if (i < le_bord.
nb_faces())
integrale_(n) += dS * u_scal_n /
coeff_(i, n) * ch_inco_->equation().milieu().porosite_face(f);
118 for (
int n = 0; n < N; ++n)
131 const int N = flow_rate_->nb_comp();
134 for (
int n = 0; n < N; ++n)
137 double v_mult = flow_rate_->valeurs_au_temps(temps)(0, n) /
integrale_(n) ;
139 velocity_field(i, N * j + n) = v_mult * n_mult;
145 flow_rate_->associer_fr_dis_base(fr);
148 velocity_profil_->associer_fr_dis_base(fr);
155 flow_rate_->set_temps_defaut(temps);
157 velocity_profil_->set_temps_defaut(temps);
164 flow_rate_->fixer_nb_valeurs_temporelles(nb_cases);
166 velocity_profil_->fixer_nb_valeurs_temporelles(nb_cases);
174 flow_rate_->changer_temps_futur(temps,i);
176 velocity_profil_->changer_temps_futur(temps,i);
186 if (flow_rate_->avancer(temps))
188 return velocity_profil_->avancer(temps);
202 if (flow_rate_->reculer(temps))
204 return velocity_profil_->reculer(temps);
215 DoubleTab velocity_user;
217 flow_rate_->mettre_a_jour(temps);
220 velocity_profil_->mettre_a_jour(temps);
221 velocity_user=velocity_profil_->valeurs_au_temps(temps);
int initialiser(double temps, const Champ_Inc_base &inco) override
Initialisation en debut de calcul.
classe Champ_front_Tabule Classe derivee de Champ_front_instationnaire_base qui
virtual void associer_fr_dis_base(const Frontiere_dis_base &)
Associe une frontiere discretisee au champ.
virtual void changer_temps_futur(double temps, int i)
Change la valeur du temps pour la ieme valeur temporelle apres le present.
virtual const Frontiere_dis_base & frontiere_dis() const
Renvoie la frontiere discretisee associee au champ.
virtual void set_temps_defaut(double temps)
virtual const Domaine_dis_base & domaine_dis() const
virtual void fixer_nb_valeurs_temporelles(int nb_cases)
Appele par Conds_lim::completer Par defaut ne fait rien.
virtual int reculer(double temps)
A implementer dans les classes derivees.
virtual int avancer(double temps)
A implementer dans les classes derivees.
classe Champ_front_t Classe derivee de Champ_front_var qui represente les
DoubleTab & valeurs_au_temps(double temps) override
Renvoie les valeurs au temps desire.
class Champ_front_xyz_debit
void associer_fr_dis_base(const Frontiere_dis_base &fr) override
Associe une frontiere discretisee au champ.
virtual void set_temps_defaut(double temps) override
int avancer(double temps) override
Turn the wheel of the CL.
void mettre_a_jour(double temps) override
NE FAIT RIEN, a surcharger.
void fixer_nb_valeurs_temporelles(int nb_cases) override
Surcharge Champ_front_base::fixer_nb_valeurs_temporelles.
void calculer_champ_vitesse(const Front_VF &le_bord, DoubleTab &velocity_field, DoubleTab &velocity_user, double temps)
DoubleTab normal_vectors_
virtual void initialiser_coefficient(const Champ_Inc_base &inco, double tps)
int reculer(double temps) override
Turn the wheel of the CL.
int initialiser(double tps, const Champ_Inc_base &inco) override
Initialisation en debut de calcul.
void calculer_normales_et_integrale(const Front_VF &le_bord, DoubleTab &velocity_user)
virtual void update_coeff(double temps)
void changer_temps_futur(double temps, int i) override
Change la valeur du temps pour la ieme valeur temporelle apres le present.
virtual const DoubleVect & face_surfaces() const
DoubleTab normalized_boundaries_outward_vector(int global_face_number, double scale_factor) const
Compute the normalized boundary outward vector associated to the face global_face_number and eventual...
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.
int num_face(const int) const
classe Frontiere_dis_base Classe representant une frontiere discretisee.
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 double mp_sum(double)
Calcule la somme de x sur tous les processeurs du groupe courant.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ size_array() const
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)