16#ifndef Statistiques_dns_ijk_included
17#define Statistiques_dns_ijk_included
18#include <IJK_Field_vector.h>
22#include <TRUSTArrays.h>
25#include <Champs_compris_IJK.h>
26#include <Champs_compris_IJK_interface.h>
42 Cerr <<
"Mot lu nom compris par " <<
que_suis_je() <<finl;
47 void update_stat(
const IJK_Field_vector3_double& vitesse,
48 const IJK_Field_double& pression,
49 const IJK_Field_double& temperature,
50 const IJK_Field_double& masse_vol,
51 const IJK_Field_double& champ_mu,
52 const IJK_Field_double& champ_lambda,
53 const ArrOfDouble_with_ghost& delta_z_local_pour_delta,
54 const bool flag_nu_anisotropic,
55 const int flag_turbulent_viscosity,
56 const IJK_Field_double& champ_turbulent_mu_xx,
57 const IJK_Field_double& champ_turbulent_mu_xy,
58 const IJK_Field_double& champ_turbulent_mu_xz,
59 const IJK_Field_double& champ_turbulent_mu_yy,
60 const IJK_Field_double& champ_turbulent_mu_yz,
61 const IJK_Field_double& champ_turbulent_mu_zz,
62 const bool flag_kappa_anisotropic,
63 const int flag_turbulent_diffusivity,
64 const IJK_Field_double& champ_turbulent_kappa_x,
65 const IJK_Field_double& champ_turbulent_kappa_y,
66 const IJK_Field_double& champ_turbulent_kappa_z,
67 const int flag_structural_uu,
69 const int flag_structural_uscalar,
70 const IJK_Field_vector3_double& structural_uscalar_vector,
71 const int flag_formulation_favre,
72 const int flag_formulation_velocity,
74 const double pression_thermodynamique,
78 const IJK_Field_double& pression,
79 const IJK_Field_double& masse_vol,
80 const IJK_Field_double& champ_mu,
81 const double pression_thermodynamique,
82 const double terme_source_acceleration,
88 Cerr <<
"On est pas suppose pouvoir etre ici : Statistiques_dns_ijk::initialize(const Domaine_IJK &)" << finl;
91 virtual void initialize(
const Domaine_IJK& ,
const double T_KMAX,
const double T_KMIN,
const double constante_specifique_gaz);
119 inline VECT(ArrOfDouble) vitesse_moyenne()
const
136 const IJK_Field_double& vitesse_j,
137 const IJK_Field_double& vitesse_k);
140 const IJK_Field_double& dudx,
const IJK_Field_double& dvdy,
const IJK_Field_double& dwdx,
141 const IJK_Field_double& dudz,
const IJK_Field_double& dvdz,
const IJK_Field_double& dwdz,
143 double& ddudxy,
double& ddudxz,
double& ddudyz,
144 double& ddvdxy,
double& ddvdxz,
double& ddvdyz,
145 double& ddwdxy,
double& ddwdxz,
double& ddwdyz)
const ;
148 const IJK_Field_double& vitesse_j,
149 const IJK_Field_double& vitesse_k,
150 const int i,
const int j,
const int k,
161 const bool on_the_first_cell,
162 const bool on_the_last_cell,
163 const int bc_type)
const;
166 const IJK_Field_double& vitesse_j,
167 const IJK_Field_double& vitesse_k,
168 const int i,
const int j,
const int k,
170 double& duidx,
double& dujdx,
double& dukdx,
171 double& duidy,
double& dujdy,
double& dukdy,
172 double& duidz,
double& dujdz,
double& dukdz,
173 double& dduidxx,
double& ddujdxx,
double& ddukdxx,
174 double& dduidyy,
double& ddujdyy,
double& ddukdyy,
175 double& dduidzz,
double& ddujdzz,
double& ddukdzz,
176 const bool on_the_first_cell,
177 const bool on_the_last_cell)
const;
179 const double& duidx,
const double& duidy,
const double& duidz,
180 const double& dujdx,
const double& dujdy,
const double& dujdz,
181 const double& dukdx,
const double& dukdy,
const double& dukdz)
const;
184 const IJK_Field_double& uj,
185 const IJK_Field_double& uk,
186 const IJK_Field_double& vi,
187 const IJK_Field_double& vj,
188 const IJK_Field_double& vk,
194 const IJK_Field_double& v1_i,
195 const IJK_Field_double& v1_j,
196 const IJK_Field_double& v1_k,
197 const IJK_Field_double& v2_i,
198 const IJK_Field_double& v2_j,
199 const IJK_Field_double& v2_k);
213 VECT(ArrOfDouble) moyenne_spatiale_instantanee_;
214 VECT(ArrOfDouble) moyenne_spatiale_ec_;
216 VECT(ArrOfDouble) integrale_temporelle_;
225 VECT(ArrOfDouble) integrale_k_;
Similar to Champs_compris_interface but for IJK scalar and vector fields.
Same as Champs_compris, but specialised for IJK fields and also supports quering for vectorial fields...
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Class defining operators and methods for all reading operation in an input flow (file,...
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Helper class to factorize the readOn method of Objet_U classes.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
VECT(ArrOfDouble) moyenne_spatiale_ec_
VECT(ArrOfDouble) moyenne_spatiale_instantanee_
bool is_post_required(const Motcle &nom) const
IJK_Field_double compute_and_store_scalar_product_face_to_face(const IJK_Field_double &v1_i, const IJK_Field_double &v1_j, const IJK_Field_double &v1_k, const IJK_Field_double &v2_i, const IJK_Field_double &v2_j, const IJK_Field_double &v2_k)
ArrOfDouble masse_volumique_moyenne() const
void get_noms_champs_postraitables(Noms &noms, Option opt=NONE) const
bool is_stats_plans_activated() const
std::map< Motcle, IJK_Field_double > scalar_post_fields_
double t_integration_k() const
void update_stat(const IJK_Field_vector3_double &vitesse, const IJK_Field_double &pression, const IJK_Field_double &temperature, const IJK_Field_double &masse_vol, const IJK_Field_double &champ_mu, const IJK_Field_double &champ_lambda, const ArrOfDouble_with_ghost &delta_z_local_pour_delta, const bool flag_nu_anisotropic, const int flag_turbulent_viscosity, const IJK_Field_double &champ_turbulent_mu_xx, const IJK_Field_double &champ_turbulent_mu_xy, const IJK_Field_double &champ_turbulent_mu_xz, const IJK_Field_double &champ_turbulent_mu_yy, const IJK_Field_double &champ_turbulent_mu_yz, const IJK_Field_double &champ_turbulent_mu_zz, const bool flag_kappa_anisotropic, const int flag_turbulent_diffusivity, const IJK_Field_double &champ_turbulent_kappa_x, const IJK_Field_double &champ_turbulent_kappa_y, const IJK_Field_double &champ_turbulent_kappa_z, const int flag_structural_uu, const FixedVector< IJK_Field_double, 6 > &structural_uu_tensor, const int flag_structural_uscalar, const IJK_Field_vector3_double &structural_uscalar_vector, const int flag_formulation_favre, const int flag_formulation_velocity, const double cp_gaz, const double pression_thermodynamique, double dt)
VECT(ArrOfDouble) integrale_k_
double calculer_vraie_dissipation(const double &pseudo_dissip, const double &duidx, const double &duidy, const double &duidz, const double &dujdx, const double &dujdy, const double &dujdz, const double &dukdx, const double &dukdy, const double &dukdz) const
bool has_champ_vectoriel(const Motcle &nom) const override
const double & t_integration() const
bool has_champ(const Motcle &nom) const override
void compute_vecA_minus_vecB_in_vecA(IJK_Field_vector3_double &vecA, const IJK_Field_vector3_double &vecB)
void postraiter(Sortie &, int flag_valeur_instantanee=0) const
double face_to_cell_gradient(const IJK_Field_double &vitesse_i, const IJK_Field_double &vitesse_j, const IJK_Field_double &vitesse_k, const int i, const int j, const int k, const double dz, double &duidx, double &dujdx, double &dukdx, double &duidy, double &dujdy, double &dukdy, double &duidz, double &dujdz, double &dukdz, const bool on_the_first_cell, const bool on_the_last_cell, const int bc_type) const
double calculer_produit_scalaire_faces_to_center(const IJK_Field_double &ui, const IJK_Field_double &uj, const IJK_Field_double &uk, const IJK_Field_double &vi, const IJK_Field_double &vj, const IJK_Field_double &vk, const int i, const int j, const int k)
double constante_specifique_gaz_
void update_stat_k(const IJK_Field_vector3_double &vitesse, const IJK_Field_double &pression, const IJK_Field_double &masse_vol, const IJK_Field_double &champ_mu, const double pression_thermodynamique, const double terme_source_acceleration, double dt)
virtual void initialize(const Domaine_IJK &)
ArrOfDouble viscosite_cinematique_moyenne() const
const IJK_Field_double & get_IJK_field(const Motcle &nom) override
std::map< Motcle, IJK_Field_vector3_double > vect_post_fields_
double calculer_gradients_vitesse(const IJK_Field_double &vitesse_i, const IJK_Field_double &vitesse_j, const IJK_Field_double &vitesse_k, const int i, const int j, const int k, const double dz, double &duidx, double &dujdx, double &dukdx, double &duidy, double &dujdy, double &dukdy, double &duidz, double &dujdz, double &dukdz, double &dduidxx, double &ddujdxx, double &ddukdxx, double &dduidyy, double &ddujdyy, double &ddukdyy, double &dduidzz, double &ddujdzz, double &ddukdzz, const bool on_the_first_cell, const bool on_the_last_cell) const
VECT(ArrOfDouble) integrale_temporelle_
int lire_motcle_non_standard(const Motcle &mot, Entree &is) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
const IJK_Field_vector3_double & get_IJK_field_vector(const Motcle &nom) override
virtual void completer_read(Param ¶m)
VECT(ArrOfDouble) vitesse_moyenne() const
OBS_PTR(Probleme_FTD_IJK_base) ref_ijk_ft_
Champs_compris_IJK champs_compris_
the actual fields registered and managed by the post-processing part (=all the extra fields,...
void compute_and_store_gradU_cell(const IJK_Field_double &vitesse_i, const IJK_Field_double &vitesse_j, const IJK_Field_double &vitesse_k)
VECT(ArrOfDouble) vit_moy_
static void Fill_postprocessable_fields(std::vector< FieldInfo_t > &chps)
void associer_domaine(Domaine_IJK &dom_ijk)
void cell_to_cell_gradient(const int i, const int j, const int k, const IJK_Field_double &dudx, const IJK_Field_double &dvdy, const IJK_Field_double &dwdx, const IJK_Field_double &dudz, const IJK_Field_double &dvdz, const IJK_Field_double &dwdz, double &ddudxy, double &ddudxz, double &ddudyz, double &ddvdxy, double &ddvdxz, double &ddvdyz, double &ddwdxy, double &ddwdxz, double &ddwdyz) const
OBS_PTR(Domaine_IJK) domaine_ijk_
int check_converge() const
void postraiter_k(Sortie &, int flag_valeur_instantanee=0) const
virtual Sortie & completer_print(Sortie &os) const