16#include <Schema_Euler_explicite_IJK.h>
17#include <Probleme_FTD_IJK_cut_cell.h>
18#include <Navier_Stokes_FTD_IJK.h>
19#include <Schema_RK3_IJK.h>
20#include <Cut_cell_tools.h>
35 double seuil_indicatrice_petite;
41 Cerr <<
"Le seuil pour l'indicatrice des petites cellules est : " << seuil_indicatrice_petite << finl;
58 param.
dictionnaire(
"non_initialise",(
int)TYPE_SURFACE_EFFICACE_FACE::NON_INITIALISE);
59 param.
dictionnaire(
"explicite",(
int)TYPE_SURFACE_EFFICACE_FACE::EXPLICITE);
60 param.
dictionnaire(
"algebrique_simple",(
int)TYPE_SURFACE_EFFICACE_FACE::ALGEBRIQUE_SIMPLE);
61 param.
dictionnaire(
"conservation_volume_iteratif", (
int)TYPE_SURFACE_EFFICACE_FACE::CONSERVATION_VOLUME_ITERATIF);
63 param.
dictionnaire(
"non_initialise",(
int)TYPE_SURFACE_EFFICACE_INTERFACE::NON_INITIALISE);
64 param.
dictionnaire(
"explicite",(
int)TYPE_SURFACE_EFFICACE_INTERFACE::EXPLICITE);
65 param.
dictionnaire(
"algebrique_simple",(
int)TYPE_SURFACE_EFFICACE_INTERFACE::ALGEBRIQUE_SIMPLE);
66 param.
dictionnaire(
"conservation_volume", (
int)TYPE_SURFACE_EFFICACE_INTERFACE::CONSERVATION_VOLUME);
73 Cerr <<
"Probleme_FTD_IJK_cut_cell::initialize()" << finl;
83 domaine_ijk_->get_local_mesh_delta(DIRECTION_K, 2 ,
delta_z_local_);
95 const auto& bc =
eq_ns.get_boundary_conditions();
97 Cut_field_vector3_double& cut_field_velocity =
static_cast<Cut_field_vector3_double&
>(
eq_ns.get_velocity());
100 allocate_velocity_persistant(
cut_cell_disc_, cut_field_velocity, domaine_ijk_.valeur(), 2, bc.get_dU_perio(bc.get_resolution_u_prime_()));
106 const std::string nam_compo[3] = {
"X",
"Y",
"Z"};
107 for (
int i=0; i<3; i++)
108 cut_field_velocity[i].
nommer(
Nom(
"VELOCITY_") +
Nom(nam_compo[i]));
115 return static_cast<const Cut_field_vector3_double&
>(ref_cast(
Navier_Stokes_FTD_IJK, equations_.front().valeur()).get_velocity());
130 for(
int i=0; i<2; i++)
146 Cut_field_vector3_double& cut_field_velocity =
static_cast<Cut_field_vector3_double&
>(ref_cast(
Navier_Stokes_FTD_IJK, equations_.front().valeur()).get_velocity());
147 cut_field_velocity[0].copie_pure_vers_diph_sans_interpolation();
148 cut_field_velocity[1].copie_pure_vers_diph_sans_interpolation();
149 cut_field_velocity[2].copie_pure_vers_diph_sans_interpolation();
153 ArrOfDouble& var_volume_par_bulle,
154 const int first_step_interface_smoothing)
156 Cut_field_vector3_double& cut_field_velocity =
static_cast<Cut_field_vector3_double&
>(ref_cast(
Navier_Stokes_FTD_IJK, equations_.front().valeur()).get_velocity());
167 cut_field_velocity[0].copie_pure_vers_diph_sans_interpolation();
168 cut_field_velocity[1].copie_pure_vers_diph_sans_interpolation();
169 cut_field_velocity[2].copie_pure_vers_diph_sans_interpolation();
182 cut_field_velocity[0].copie_pure_vers_diph_sans_interpolation();
183 cut_field_velocity[1].copie_pure_vers_diph_sans_interpolation();
184 cut_field_velocity[2].copie_pure_vers_diph_sans_interpolation();
197 ArrOfDouble& var_volume_par_bulle)
199 Cut_field_vector3_double& cut_field_velocity =
static_cast<Cut_field_vector3_double&
>(ref_cast(
Navier_Stokes_FTD_IJK, equations_.front().valeur()).get_velocity());
210 cut_field_velocity[0].copie_pure_vers_diph_sans_interpolation();
211 cut_field_velocity[1].copie_pure_vers_diph_sans_interpolation();
212 cut_field_velocity[2].copie_pure_vers_diph_sans_interpolation();
225 cut_field_velocity[0].copie_pure_vers_diph_sans_interpolation();
226 cut_field_velocity[1].copie_pure_vers_diph_sans_interpolation();
227 cut_field_velocity[2].copie_pure_vers_diph_sans_interpolation();
Class defining operators and methods for all reading operation in an input flow (file,...
const IJK_Field_double & I() const
void set_seuil_indicatrice_petite(double seuil_indicatrice_petite)
const IJK_Field_double & In() const
void calcul_surface_efficace_face_initial(TYPE_SURFACE_EFFICACE_FACE type_surface_efficace_face)
void calcul_surface_efficace_interface_initial(TYPE_SURFACE_EFFICACE_INTERFACE type_surface_efficace_interface)
void calcul_surface_efficace_face(TYPE_SURFACE_EFFICACE_FACE type_surface_efficace_face, double timestep, const Cut_field_vector3_double &total_velocity)
const Maillage_FT_IJK & old_maillage_ft_ijk() const
const Maillage_FT_IJK & maillage_ft_ijk() const
int get_dt_impression_bilan_indicatrice() const
void calcul_surface_efficace_interface(TYPE_SURFACE_EFFICACE_INTERFACE type_surface_efficace_interface, double timestep, const Cut_field_vector3_double &velocity)
void imprime_bilan_indicatrice()
void compute_ghost_cell_numbers_for_subproblems(const Domaine_IJK &splitting, int ghost_init)
void vide_phase_invalide_cellules_diphasiques()
void echange_diph_vers_pure_cellules_finalement_pures()
void echange_pure_vers_diph_cellules_initialement_pures()
int get_probes_ghost_cells(int ghost_init)
class Nom Une chaine de caractere pour nommer les objets de TRUST
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 dictionnaire(const char *option_name, int value)
Add an (option name, integer value) entry to the dictionary attached to a previously registered integ...
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
int thermal_probes_ghost_cells_
virtual void set_param(Param ¶m) const override
const IJK_Interfaces & get_interface() const
const Schema_Temps_IJK_base & schema_temps_ijk() const
const Postprocessing_IJK & get_post() const
virtual void deplacer_interfaces_rk3(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle)
ArrOfDouble_with_ghost delta_z_local_
virtual void update_indicator_field()
void initialize() override
This method is called once at the beginning, before any other one of the interface Problem.
const Navier_Stokes_FTD_IJK & eq_ns() const
virtual void deplacer_interfaces(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle, const int first_step_interface_smoothing)
void update_old_intersections()
const IJK_Thermals & get_ijk_thermals() const
double seuil_indicatrice_petite_facsec_
double seuil_indicatrice_petite_fixe_
void deplacer_interfaces_rk3(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle) override
void cut_cell_perform_interpolation_facettes()
void set_param(Param ¶m) const override
void update_indicator_field() override
Cut_cell_FT_Disc cut_cell_disc_
const Cut_field_vector3_double & get_cut_field_velocity() const
void update_twice_indicator_field() override
void deplacer_interfaces(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle, const int first_step_interface_smoothing) override
TYPE_SURFACE_EFFICACE_INTERFACE type_surface_efficace_interface_
TYPE_SURFACE_EFFICACE_FACE type_surface_efficace_face_
Facettes_Interp_FT cut_cell_facettes_interpolation_
void initialize() override
This method is called once at the beginning, before any other one of the interface Problem.
void nommer(const Nom &name) override
Donne un nom a l'Objet_U Methode virtuelle a surcharger.
double get_timestep_facsec() const
Classe de base des flux de sortie.