18#include <Dispersion_bulles_turbulente_Bazin.h>
19#include <Pb_Multiphase.h>
20#include <QDM_Multiphase.h>
21#include <Frottement_interfacial_base.h>
22#include <Masse_ajoutee_base.h>
35 param.lire_avec_accolades_depuis(is);
39 const Pb_Multiphase& pbm = ref_cast(Pb_Multiphase, pb_.valeur());
54 DoubleTab coeff_drag(N, N);
55 DoubleTab coeff_Cam(N);
60 for (
int k = 0; k < N; k++)
64 double gamma = 0.5 * in.
rho[
n_l] / in.
rho[k] ;
65 double u_r = std::max(in.
nv(k,
n_l), 1e-4) ;
66 double tau_t = 3. / 2. * in.
nut[
n_l] / in.
k_turb[
n_l] / std::max(std::sqrt (1. + 2.07 * u_r * u_r / std::max(in.
k_turb[
n_l],1e-5)),1e-5) ;
67 double tau_f = ( 1. / (2. * gamma) + coeff_Cam(k) ) * 4./3. * in.
d_bulles[k] / std::max( coeff_drag(k,
n_l) * u_r ,1e-5) ;
68 double eta_r = tau_t / tau_f ;
70 double alpha_limited = std::max(((10. - 2. * eta_r) * gamma * gamma * gamma - (18. + 6. * eta_r) * gamma * gamma - (3. + 6. * eta_r) * gamma - (1.+ eta_r) * 2.) / ( (2. * gamma - 1.) * (2. * gamma - 1.) * ((4. + eta_r) *gamma + 1. + eta_r ) ), 0. ) ;
73 alpha_limited = std::max(((35. - 49. * eta_r) * gamma * gamma * gamma - (161. + 77. * eta_r) * gamma * gamma - (11. + 32. * eta_r) * gamma - (1.+ eta_r) * 4.) / ( (2. * gamma - 1.) * ((91. + 49. )* gamma * gamma + (-14. + 7. * eta_r) * gamma - 2 * (1. + eta_r) ) ), 0. ) ;
75 alpha_limited = std::min( in.
alpha[k] , alpha_limited ) ;
76 double Cam = ((1. + 2. * alpha_limited) * gamma + 1. - alpha_limited) / (2. * gamma * (1. - alpha_limited) + 2. + alpha_limited);
77 double b = (1. + Cam) / (1. / (2. * gamma) + Cam);
80 double one_plus_eta = 1. + eta_r;
81 double drift_ratio = (b + eta_r) / one_plus_eta;
82 double conc_factor = alpha_limited / std::max(1. - alpha_limited, 1e-5);
83 double mixing = drift_ratio + conc_factor;
85 double term_added_mass = Cam * (b * (b - 1.) / one_plus_eta + eta_r * mixing);
86 double term_inertia = 1. / (2. * gamma) * ((b * b + eta_r) / one_plus_eta + eta_r * (drift_ratio + alpha_limited / std::max(1. - alpha_limited, 1e-3)));
89 out.
Ctd(k,
n_l) = term_added_mass + term_inertia - term_kinetic;
static void typer_lire_correlation(OWN_PTR(Correlation_base)&, const Probleme_base &, const Nom &, Entree &)
classe Dispersion_bulles_base utilitaire pour les operateurs de dispersion turbulente ou la force
int find_liquid_phase() const
Finds the continuous liquid phase index in a multiphase problem.
Turbulent bubble dispersion model based on the Bazin model.
void coefficient(const input_t &input, output_t &output) const override
Class defining operators and methods for all reading operation in an input flow (file,...
classe Frottement_interfacial_base utilitaire pour les operateurs de frottement interfacial prenant l...
virtual void coefficient_CD(const DoubleTab &alpha, const DoubleTab &p, const DoubleTab &T, const DoubleTab &rho, const DoubleTab &mu, const DoubleTab &sigma, double Dh, const DoubleTab &ndv, const DoubleTab &d_bulles, DoubleTab &coeff) const
classe Masse_ajoutee_base masse ajoutee de la forme
virtual void coeff(const DoubleTab &alpha, const DoubleTab &rho, DoubleTab &coeff) const =0
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.
int has_correlation(std::string nom_correlation) const
const Correlation_base & get_correlation(std::string nom_correlation) const
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const