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.
Base class for "interpreter" objects.
An array of Motcle objects.
class Nom: a character string for naming TRUST objects.
An array of character strings (VECT(Nom)).
Representation of data for the Parser class.