17#include <Boundary_Conditions.h>
18#include <IJK_Field_vector.h>
20#include <Domaine_IJK.h>
21#include <Operateur_IJK_elem_diff_base.h>
22#include <Operateur_IJK_faces_diff.h>
23#include <Operateur_IJK_faces_conv.h>
26#include <OpConvCentre4IJK.h>
27#include <OpConvCentre2IJK.h>
28#include <OpConvQuickIJKScalar.h>
29#include <OpConvQuickSharpIJK.h>
30#include <OpConvAmontIJK.h>
31#include <Multigrille_Adrien.h>
32#include <Interprete.h>
33#include <IJK_Lata_writer.h>
34#include <Linear_algebra_tools.h>
36#include <Boundary_Conditions.h>
37#include <Statistiques_dns_qc_ijk.h>
38#include <Filter_kernel.h>
39#include <OpConvCentre2IJKScalar.h>
44#include <Fourier_trans.h>
45#include <Redistribute_Field.h>
59 void rk3_sub_step(
const int rk_step,
const double total_timestep);
63 IJK_Field_vector3_double& velocity,
64 const ArrOfDouble_with_ghost& delta_z,
65 const double facteur_delta_x,
66 const double facteur_delta_y,
67 const ArrOfDouble_with_ghost& delta_z_pour_delta,
71 IJK_Field_vector3_double& d_velocity_tmp,
72 IJK_Field_vector3_double& d_velocity,
73 IJK_Field_double& u_div_rho_u);
76 const IJK_Field_double& turbulent_mu_xx,
77 const IJK_Field_double& turbulent_mu_xy,
78 const IJK_Field_double& turbulent_mu_xz,
79 const IJK_Field_double& turbulent_mu_yy,
80 const IJK_Field_double& turbulent_mu_yz,
81 const IJK_Field_double& turbulent_mu_zz,
82 const ArrOfDouble_with_ghost& delta_z,
83 const double facteur_delta_x,
84 const double facteur_delta_y,
85 const ArrOfDouble_with_ghost& delta_z_pour_delta,
89 IJK_Field_vector3_double& d_velocity_tmp,
90 IJK_Field_vector3_double& d_velocity);
94 const ArrOfDouble_with_ghost& delta_z,
95 const double facteur_delta_x,
96 const double facteur_delta_y,
97 const ArrOfDouble_with_ghost& delta_z_pour_delta,
101 IJK_Field_vector3_double& d_velocity_tmp,
102 IJK_Field_vector3_double& d_velocity);
104 const IJK_Field_double& turbulent_kappa_x,
105 const IJK_Field_double& turbulent_kappa_y,
106 const IJK_Field_double& turbulent_kappa_z,
107 IJK_Field_double& d_rho,
108 const IJK_Field_local_double& boundary_flux_kmin,
109 const IJK_Field_local_double& boundary_flux_kmax);
114 IJK_Field_double& temperature,
115 const int turbulent_diffusivity,
116 const IJK_Field_double& lambda_turbulent,
117 const int flag_lambda_anisotropic,
118 const int structural_uscalar,
119 const IJK_Field_double& structural_uscalar_z,
120 const double P_th_initial,
122 const double fractionnal_timestep,
123 double& d_Pth_divise_par_gammamoins1)
const;
128 const char *lata_name);
133 void save_raw_data(
const char *lata_name,
double current_time);
IJK_Field_double velocity_elem_Y_sauvegarde_
bool disable_solveur_poisson_
Entree & interpreter(Entree &) override
IJK_Field_double velocity_elem_X_
bool diff_qdm_negligeable_
bool sauvegarde_post_instantanes_
IJK_Field_double pressure_sauvegarde_
OpConvQuickSharpIJK_double velocity_convection_op_quicksharp_
FixedVector< IJK_Field_double, 6 > turbulent_mu_tensor_
OpDiffTensorialAnisotropicZeroatwallIJK_double velocity_turbulent_diffusion_op_simple_anisotropic_
IJK_Field_double molecular_mu_
IJK_Field_double rho_velocity_j_filtre_
double smoothing_factor_fr_
IJK_Field_vector3_double turbulent_kappa_vector_
double T_paroi_impose_kmin_
double lambda_de_t_paroi_kmin_
OpDiffStdWithLaminarTransposeAndDivergenceTensorialAnisotropicZeroatwallIJK_double velocity_turbulent_diffusion_op_full_anisotropic_
Nom turbulent_viscosity_dynamic_type_
int compteur_post_instantanes_
OpConvCentre2IJKScalar_double rho_convection_op_centre2_
bool flag_oscillating_boundary
OpConvAmontIJK_double velocity_convection_op_amont_
bool flag_nu_anisotropic_
ArrOfDouble turbulent_viscosity_tensor_coefficients_
OpDiffStdWithLaminarTransposeAndDivergenceTensorialZeroatwallIJK_double velocity_turbulent_diffusion_op_full_
double constante_specifique_gaz_
bool flag_structural_uu_tmp_
bool variation_cste_modele_fonctionnel_
IJK_Field_local_double boundary_flux_kmin_
IJK_Field_double velocity_elem_Z_
IJK_Field_double temperature_filtre_
Domaine_IJK post_splitting_
IJK_Field_double turbulent_mu_filtre_
IJK_Field_double turbulent_kappa_filtre_
double terme_source_acceleration_
IJK_Field_double turbulent_kappa_
bool diff_temp_negligeable_
Filter_kernel_base * kernel_
bool conv_rho_negligeable_
void calculer_velocity_elem()
double smoothing_center_fr_
IJK_Field_vector3_double turbulent_kappa_filtre_vector_
IJK_Field_double div_lambda_grad_T_volume_
bool turbulent_diffusivity_
Noms expression_vitesse_initiale_
IJK_Field_double pressure_rhs_
Motcles liste_post_instantanes_
FixedVector< IJK_Field_double, 6 > structural_uu_tensor_
IJK_Field_double rho_sauvegarde_
FixedVector< IJK_Field_double, 6 > turbulent_mu_filtre_tensor_
IJK_Field_vector3_double velocity_filtre_
IJK_Field_double temperature_
void compute_rho_bulk(double &rho_bulk_)
bool flag_filtrage_turbulent_diffusion_qdm_
void calculer_convection_vitesse(IJK_Field_vector3_double &rho_v, IJK_Field_vector3_double &velocity, const ArrOfDouble_with_ghost &delta_z, const double facteur_delta_x, const double facteur_delta_y, const ArrOfDouble_with_ghost &delta_z_pour_delta, T &kernel, FixedVector< IJK_Field_local_double, 18 > &tmp_b, FixedVector< IJK_Field_local_double, 18 > &tmp_a, IJK_Field_vector3_double &d_velocity_tmp, IJK_Field_vector3_double &d_velocity, IJK_Field_double &u_div_rho_u)
void calculer_diffusion_scalar(const IJK_Field_double &rho, const IJK_Field_double &turbulent_kappa_x, const IJK_Field_double &turbulent_kappa_y, const IJK_Field_double &turbulent_kappa_z, IJK_Field_double &d_rho, const IJK_Field_local_double &boundary_flux_kmin, const IJK_Field_local_double &boundary_flux_kmax)
double lambda_de_t_paroi_kmax_
IJK_Field_double u_div_rho_u_
int timestep_reprise_rho_
OpDiffStructuralOnlyZeroatwallIJK_double velocity_turbulent_diffusion_op_structural_
Statistiques_dns_qc_ijk statistiques_
OpDiffTensorialZeroatwallIJK_double velocity_turbulent_diffusion_op_simple_
Boundary_Conditions boundary_conditions_
IJK_Field_vector3_double d_velocity_
IJK_Field_double molecular_lambda_sauvegarde_
OpConvCentre4IJK_double velocity_convection_op_
IJK_Field_local_double boundary_flux_kmax_
OpDiffStdWithLaminarTransposeTensorialAnisotropicZeroatwallIJK_double velocity_turbulent_diffusion_op_simple_with_transpose_anisotropic_
Nom structural_uu_dynamic_type_
IJK_Field_double divergence_
double terme_source_acceleration_constant_
ArrOfDouble turbulent_diffusivity_vector_coefficients_
OpDiffStdWithLaminarTransposeTensorialZeroatwallIJK_double velocity_turbulent_diffusion_op_simple_with_transpose_
bool flag_structural_uscalar_tmp_
IJK_Field_vector3_double structural_uscalar_filtre_vector_
double turbulent_viscosity_model_constant_
IJK_Field_double pressure_
bool flag_kappa_vectorial_
void calculer_moyennes_flux()
Nom sauvegarde_splitting_name_
FixedVector< IJK_Field_double, 6 > structural_uu_filtre_tensor_
IJK_Field_double rho_filtre_
IJK_Field_vector3_double velocity_sauvegarde_
bool projection_initiale_demandee_
bool lecture_post_instantanes_filtrer_p_
void calculer_lambda_paroi_air(double &lambda_de_t_paroi_kmin_, double &lambda_de_t_paroi_kmax_) const
bool convection_velocity_centre2_
void save_stats(double current_time)
bool flag_save_each_delta_t_
double rho_paroi_impose_kmin_
bool flag_d_velocity_tmp_
Multigrille_Adrien poisson_solver_
bool lecture_post_instantanes_filtrer_rho_
bool convection_rho_centre4_
ArrOfDouble_with_ghost delta_z_local_pour_delta_filtre_
Nom expression_temperature_initiale_
double t_debut_statistiques_
IJK_Field_double rho_velocity_i_filtre_
OpDiffIJK_double velocity_diffusion_op_simple_
void ecrire_fichier_sauv(const char *fichier_sauvegarde, const char *lata_name)
double spanwise_mass_flux_now_
bool formulation_velocity_
OpDiffStdWithLaminarTransposeAndDivergenceIJK_double velocity_diffusion_op_full_
IJK_Field_double turbulent_mu_
bool conv_qdm_negligeable_
double T_paroi_impose_kmax_
void sauvegarder_qc(const char *fichier_sauvegarde)
IJK_Field_double temperature_sauvegarde_
OpConvCentre2IJK_double velocity_convection_op_centre_2_
Nom turbulent_diffusivity_model_
bool flag_structural_uscalar_filtre_
double structural_uu_model_constant_
OpConvAmontIJK_double rho_convection_op_amont_
double spanwise_acceleration_source_term_
int timestep_reprise_vitesse_
bool convection_rho_centre2_
Parser parser_derivee_acceleration_
OpDiffStructuralOnlyIJKScalar_double operateur_diffusion_temperature_structural_
void compute_rho_t_bulk(double &rho_bulk_, double &t_bulk_)
OpConvCentre4IJK_double rho_convection_op_centre4_
bool flag_turbulent_mu_filtre_
double rho_paroi_impose_kmax_
Nom large_eddy_simulation_formulation_
FixedVector< IJK_Field_local_double, 18 > tmp_a_
void save_raw_data(const char *lata_name, double current_time)
IJK_Field_vector3_double rho_v_
double structural_uscalar_model_constant_
Nom type_velocity_diffusion_
bool flag_structural_uu_filtre_
IJK_Field_double velocity_elem_X_sauvegarde_
Nom turbulent_viscosity_model_
bool flag_kappa_anisotropic_
void calculer_turbulent_diffusion_vitesse(IJK_Field_vector3_double &velocity, const IJK_Field_double &turbulent_mu_xx, const IJK_Field_double &turbulent_mu_xy, const IJK_Field_double &turbulent_mu_xz, const IJK_Field_double &turbulent_mu_yy, const IJK_Field_double &turbulent_mu_yz, const IJK_Field_double &turbulent_mu_zz, const ArrOfDouble_with_ghost &delta_z, const double facteur_delta_x, const double facteur_delta_y, const ArrOfDouble_with_ghost &delta_z_pour_delta, T &kernel, FixedVector< IJK_Field_local_double, 18 > &tmp_b, FixedVector< IJK_Field_local_double, 18 > &tmp_a, IJK_Field_vector3_double &d_velocity_tmp, IJK_Field_vector3_double &d_velocity)
Domaine_IJK sauvegarde_splitting_
bool flag_temperature_filtre_
OpDiffStdWithLaminarTransposeIJK_double velocity_diffusion_op_simple_with_transpose_
ArrOfDouble_with_ghost constante_modele_
Nom fichier_reprise_vitesse_
Nom type_scalar_turbulent_diffusion_
ArrOfDouble structural_uu_tensor_coefficients_
Nom expression_derivee_acceleration_
double dt_save_oscillating_cycle_raw_data_
bool lecture_post_instantanes_filtrer_tous_
void calculer_structural_diffusion_vitesse(IJK_Field_vector3_double &velocity, const FixedVector< IJK_Field_double, 6 > &structural_uu_tensor, const ArrOfDouble_with_ghost &delta_z, const double facteur_delta_x, const double facteur_delta_y, const ArrOfDouble_with_ghost &delta_z_pour_delta, T &kernel, FixedVector< IJK_Field_local_double, 18 > &tmp_b, FixedVector< IJK_Field_local_double, 18 > &tmp_a, IJK_Field_vector3_double &d_velocity_tmp, IJK_Field_vector3_double &d_velocity)
double amplitude_oscillating_boundary_
bool flag_convection_qdm_sans_divergence_
double P_thermodynamique_
Nom turbulent_diffusivity_dynamic_type_
Nom structural_uscalar_model_
IJK_Field_vector3_double structural_uscalar_tmp_vector_
bool convection_rho_amont_
void compute_t_bulk(double &t_bulk_)
IJK_Field_double velocity_elem_Y_
FixedVector< FixedVector< ArrOfDouble, 7 >, 8 > ml_
IJK_Field_double rho_velocity_k_filtre_
OpDiffVectorialAnisotropicIJKScalar_double operateur_diffusion_turbulent_scalar_anisotropic_
FixedVector< Redistribute_Field, 3 > redistribute_to_sauvegarde_splitting_faces_
bool postraiter_sous_pas_de_temps_
int mode_terme_source_impose_
IJK_Field_double RK3_F_rho_
double facteur_delta_filtre_y_
void fixer_reference_pression(double &reference_pression)
ArrOfDouble_with_ghost delta_z_local_pour_delta_
void translation_pression(const double &reference_pression)
bool flag_convection_qdm_sans_rho_
void rk3_sub_step(const int rk_step, const double total_timestep)
IJK_Field_double molecular_mu_sauvegarde_
bool flag_filtrage_structural_diffusion_qdm_
void calcul_p_thermo_et_bilan(const IJK_Field_double &rho, IJK_Field_double &temperature, const int turbulent_diffusivity, const IJK_Field_double &lambda_turbulent, const int flag_lambda_anisotropic, const int structural_uscalar, const IJK_Field_double &structural_uscalar_z, const double P_th_initial, double &P_th_final, const double fractionnal_timestep, double &d_Pth_divise_par_gammamoins1) const
IJK_Field_vector3_double d_velocity_tmp_
double frequency_oscillating_boundary_
void compute_sum_entering_heat_flux(double &flux_sum)
double terme_source_acceleration_z_
double turbulent_diffusivity_model_constant_
bool lecture_post_instantanes_
OpDiffVectorialIJKScalar_double operateur_diffusion_turbulent_scalar_
double spanwise_mass_flux_aim_
Redistribute_Field redistribute_to_sauvegarde_splitting_elem_
IJK_Field_vector3_double velocity_
double facteur_delta_filtre_x_
bool flag_filtrage_convection_qdm_
IJK_Field_vector3_double RK3_F_velocity_
FixedVector< IJK_Field_double, 6 > structural_uu_tmp_tensor_
IJK_Field_vector3_double structural_uscalar_vector_
double volume_total_domaine_
Nom type_velocity_turbulent_diffusion_
Fourier_trans partie_fourier_
bool flag_turbulent_kappa_filtre_
bool lecture_post_instantanes_filtrer_u_
IJK_Field_double molecular_lambda_
OpConvQuickIJKScalar_double rho_convection_op_
void posttraiter_champs_instantanes(const char *lata_name, double time)
ArrOfDouble structural_uscalar_vector_coefficients_
bool turbulent_viscosity_
FixedVector< IJK_Field_local_double, 18 > tmp_b_
Nom structural_uscalar_dynamic_type_
ArrOfDouble_with_ghost delta_z_local_
void reprendre_qc(const char *fichier_reprise)
IJK_Field_double velocity_elem_Z_sauvegarde_
bool convection_velocity_amont_
OpDiffIJKScalar_double operateur_diffusion_temperature_
bool convection_velocity_quicksharp_
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Classe de base des objets "interprete".
Un tableau d'objets de la classe Motcle.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
Representation des donnees de la classe Parser.