16#include <Fraction_Euler.h>
17#include <Discret_Thyd.h>
18#include <Domaine_VF.h>
33 verifier_somme_alpha();
36 terme_nconserv_.set_description(
"Conribution of non_conservative operator in fraction equation");
44 param.
ajouter_non_std(
"termes_non_conservatifs|non_conservative_terms", (
this));
49 Cerr <<
"Fraction_Euler discretization" << finl;
58 l_inco_ch_->fixer_nature_du_champ(N == 1 ? scalaire : multi_scalaire);
60 for (
int i = 0; i < N; i++)
61 l_inco_ch_->fixer_nom_compo(i,
Nom(
"alpha_") + pb.
nom_phase(i));
66 Cerr <<
"Fraction_Euler discretization ==> ok" << finl;
73 Cerr <<
que_suis_je() <<
" : wrong operator number " << i << finl;
83 Cerr <<
que_suis_je() <<
" : wrong operator number " << i << finl;
93 verifier_somme_alpha();
97void Fraction_Euler::verifier_somme_alpha()
99 Cerr <<
"Fraction_Euler::verifier_somme_alpha() ..." ;
100 const DoubleTab& vals = l_inco_ch_->valeurs();
102 DoubleVect vals_somme(ne);
105 for (
int i = 0; i < ne; i++)
106 for (
int j = 0; j < nl; j++)
107 vals_somme(i) += vals(i, j);
109 const double min_a = mp_min_vect(vals_somme), max_a = mp_max_vect(vals_somme);
111 if (min_a < 1. - 1.e-12 || max_a > 1. + 1.e-12)
113 Cerr <<
" KO !!! " << finl;
114 Cerr <<
"WHAT ?? The sum of the void fraction (per cell) is not 1 !!!! You should do something !" << finl;
118 Cerr <<
" OK ! " << finl;
Operateur_NConserv terme_nconserv_
void add_missing_nconserv_op()
classe Discret_Thyd Cette classe est la classe de base representant une discretisation
void discretiser_champ(const Motcle &directive, const Domaine_dis_base &z, const Nom &nom, const Nom &unite, int nb_comp, int nb_pas_dt, double temps, OWN_PTR(Champ_Inc_base)&champ, const Nom &sous_type=NOM_VIDE) const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual void set_param(Param &titi) const override
const Discretisation_base & discretisation() const
Renvoie la discretisation associee a l'equation.
virtual void mettre_a_jour(double temps)
La valeur de l'inconnue sur le pas de temps a ete calculee.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
virtual void discretiser()
Discretise l'equation.
Champs_compris champs_compris_
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
void discretiser() override
Discretise l'equation.
void mettre_a_jour(double temps) override
La valeur de l'inconnue sur le pas de temps a ete calculee.
const Operateur & operateur(int) const override
void set_param(Param ¶m) const override
class Nom Une chaine de caractere pour nommer les objets de TRUST
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.
classe Operateur Classe generique de la hierarchie des operateurs.
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.
const Nom & nom_phase(int i) const
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
double temps_courant() const
Renvoie le temps courant.
virtual int nb_valeurs_temporelles() const =0
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const