16#include <Cut_cell_diffusion_auxiliaire.h>
17#include <Cut_cell_FT_Disc.h>
18#include <IJK_Thermal_base.h>
19#include <Probleme_FTD_IJK_cut_cell.h>
22#include <IJK_Navier_Stokes_tools.h>
23#include <IJK_Navier_Stokes_tools_cut_cell.h>
28Cut_cell_diffusion_auxiliaire::Cut_cell_diffusion_auxiliaire()
47 param.lire_avec_accolades(is);
62 Int3 ijk = cut_cell_disc.
get_ijk(n);
68 int decalage = num_face/3;
69 int sign = decalage*2 -1;
71 int di = decalage*(dir == 0);
72 int dj = decalage*(dir == 1);
73 int dk = decalage*(dir == 2);
80 int sign_flux_interf = (flux_interface_efficace(n) == 0.) ? 0 : (1 - 2*phase)*(2*(flux_interface_efficace(n) > 0) - 1);
82 double normal_to_face = sign*select_dir(dir, normal_x, normal_y, normal_z);
84 int n_face = cut_cell_disc.
get_n_face(num_face, n, i, j, k);
88 if (surface_efficace > 0)
90 return -sign*surface_efficace*normal_to_face*sign_flux_interf;
100 assert((surface_efficace == 0) || (surface_efficace == 1));
101 if (surface_efficace > 0)
103 return -sign*surface_efficace*normal_to_face*sign_flux_interf;
116 Int3 ijk = cut_cell_disc.
get_ijk(n);
121 int dir = num_face%3;
122 int decalage = num_face/3;
123 int sign = decalage*2 -1;
125 int di = decalage*(dir == 0);
126 int dj = decalage*(dir == 1);
127 int dk = decalage*(dir == 2);
134 int sign_flux_interf = (flux_interface_efficace(n) == 0.) ? 0 : (1 - 2*phase)*(2*(flux_interface_efficace(n) > 0) - 1);
136 double normal_to_face = sign*select_dir(dir, normal_x, normal_y, normal_z);
138 int n_face = cut_cell_disc.
get_n_face(num_face, n, i, j, k);
142 if (surface_efficace > 0)
144 return -sign*surface_efficace*normal_to_face*sign_flux_interf;
154 assert((surface_efficace == 0) || (surface_efficace == 1));
155 if (surface_efficace > 0)
157 return -sign*surface_efficace*normal_to_face*sign_flux_interf;
175 Cerr <<
"Invalid pointer flux_interface_efficace_ in Cut_cell_diffusion_auxiliaire::select_flux_interface." << finl;
const IJK_Interfaces & get_interfaces() const
Int3 get_ijk(int n) const
int get_n_face(int num_face, int n, int i, int j, int k) const
double dying_cells_flux(int num_face, int phase, int n, const Cut_field_vector3_double &cut_field_total_velocity, const Cut_field_double &cut_field) override
void set_param(Param ¶m) const override
double small_nascent_cells_flux(int num_face, int phase, int n, const Cut_field_vector3_double &cut_field_total_velocity, const Cut_field_double &cut_field) override
DoubleTabFT_cut_cell_scalar * flux_interface_efficace_ptr_
bool deactivate_correction_petites_cellules_diffusion_
void associer(DoubleTabFT_cut_cell_scalar &flux_interface_efficace)
const DoubleTabFT_cut_cell_scalar & select_flux_interface(int phase)
CORRECTION_PETITES_CELLULES correction_petites_cellules_
void set_param(Param ¶m) const override
METHODE_TEMPERATURE_REMPLISSAGE methode_valeur_remplissage_
const Cut_cell_FT_Disc & get_cut_cell_disc() const
Class defining operators and methods for all reading operation in an input flow (file,...
const DoubleTabFT_cut_cell_vector3 & get_indicatrice_surfacique_efficace_face() const
const IJK_Field_double & I() const
const IJK_Field_double & In() const
const DoubleTabFT_cut_cell_vector3 & get_normale_deplacement_interface() const
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.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_flag(const char *keyword, const bool *value)
Register a boolean flag whose mere presence switches it to true.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.