16#ifndef OpConvCentre2IJK_included
17#define OpConvCentre2IJK_included
19#include <Operateur_IJK_faces_conv_base.h>
20#include <Boundary_Conditions.h>
21#include <Boundary_Conditions_Thermique.h>
30 void calculer(
const IJK_Field_double& inputx,
const IJK_Field_double& inputy,
const IJK_Field_double& inputz,
31 const IJK_Field_double& vx,
const IJK_Field_double& vy,
const IJK_Field_double& vz,
32 IJK_Field_double& dvx, IJK_Field_double& dvy, IJK_Field_double& dvz);
33 void ajouter(
const IJK_Field_double& inputx,
const IJK_Field_double& inputy,
const IJK_Field_double& inputz,
34 const IJK_Field_double& vx,
const IJK_Field_double& vy,
const IJK_Field_double& vz,
35 IJK_Field_double& dvx, IJK_Field_double& dvy, IJK_Field_double& dvz);
37 void calculer_avec_u_div_rhou(
const IJK_Field_double& rhovx,
const IJK_Field_double& rhovy,
const IJK_Field_double& rhovz,
38 const IJK_Field_double& vx,
const IJK_Field_double& vy,
const IJK_Field_double& vz,
39 IJK_Field_double& dvx, IJK_Field_double& dvy, IJK_Field_double& dvz,
40 IJK_Field_double& div_rho_u)
override;
41 void ajouter_avec_u_div_rhou(
const IJK_Field_double& rhovx,
const IJK_Field_double& rhovy,
const IJK_Field_double& rhovz,
42 const IJK_Field_double& vx,
const IJK_Field_double& vy,
const IJK_Field_double& vz,
43 IJK_Field_double& dvx, IJK_Field_double& dvy, IJK_Field_double& dvz,
44 IJK_Field_double& div_rho_u)
override;
48 compute_flux_<DIRECTION::X,DIRECTION::X>(resu,k_layer);
52 compute_flux_<DIRECTION::X,DIRECTION::Y>(resu,k_layer);
56 compute_flux_<DIRECTION::X,DIRECTION::Z>(resu,k_layer);
60 compute_flux_<DIRECTION::Y,DIRECTION::X>(resu,k_layer);
64 compute_flux_<DIRECTION::Y,DIRECTION::Y>(resu,k_layer);
68 compute_flux_<DIRECTION::Y,DIRECTION::Z>(resu,k_layer);
72 compute_flux_<DIRECTION::Z,DIRECTION::X>(resu,k_layer);
76 compute_flux_<DIRECTION::Z,DIRECTION::Y>(resu,k_layer);
80 compute_flux_<DIRECTION::Z,DIRECTION::Z>(resu,k_layer);
84 exec_after_divergence_flux_<DIRECTION::X>(resu, k_layer);
88 exec_after_divergence_flux_<DIRECTION::Y>(resu, k_layer);
92 exec_after_divergence_flux_<DIRECTION::Z>(resu, k_layer);
97 double get_g(
int k_layer,
int compo,
int dir,
int g_index)
const
109 void calcul_g(
const double& dxam,
const double& dx,
const double& dxav,
double& g1,
double& g2,
double& g3,
double& g4);
110 void fill_g_compo(DoubleTab& g,
int nb_values,
int offset,
int istart,
int iend,
const ArrOfDouble_with_ghost& delta_z,
bool is_z_component,
bool is_z_periodic);
123 void calculer_div_rhou(
const IJK_Field_double& rhovx,
const IJK_Field_double& rhovy,
const IJK_Field_double& rhovz,
125 template <DIRECTION _DIR_, DIRECTION _VCOMPO_>
126 void compute_flux_(IJK_Field_local_double& resu,
const int k_layer);
127 template <DIRECTION _DIR_>
128 void exec_after_divergence_flux_(IJK_Field_double& resu,
const int k_layer);
132#include <OpConvCentre2IJK.tpp>
: class Boundary_Conditions_Thermique
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
DoubleTab g_compo_xy_dir_z_
void compute_flux_x_vz(IJK_Field_local_double &resu, const int k_layer) override
DoubleTab g_compo_z_dir_z_
void set_bc_thermique(const Boundary_Conditions_Thermique &bc_th) override
void calculer_avec_u_div_rhou(const IJK_Field_double &rhovx, const IJK_Field_double &rhovy, const IJK_Field_double &rhovz, const IJK_Field_double &vx, const IJK_Field_double &vy, const IJK_Field_double &vz, IJK_Field_double &dvx, IJK_Field_double &dvy, IJK_Field_double &dvz, IJK_Field_double &div_rho_u) override
void exec_after_divergence_flux_z(IJK_Field_double &resu, const int k_layer) override
int last_computed_klayer_for_div_rhou_
void fill_g_compo(DoubleTab &g, int nb_values, int offset, int istart, int iend, const ArrOfDouble_with_ghost &delta_z, bool is_z_component, bool is_z_periodic)
void compute_flux_x_vx(IJK_Field_local_double &resu, const int k_layer) override
void ajouter(const IJK_Field_double &inputx, const IJK_Field_double &inputy, const IJK_Field_double &inputz, const IJK_Field_double &vx, const IJK_Field_double &vy, const IJK_Field_double &vz, IJK_Field_double &dvx, IJK_Field_double &dvy, IJK_Field_double &dvz)
void initialize(const Domaine_IJK &splitting) override
OBS_PTR(Boundary_Conditions_Thermique) ref_bc_Thermique_
void calculer(const IJK_Field_double &inputx, const IJK_Field_double &inputy, const IJK_Field_double &inputz, const IJK_Field_double &vx, const IJK_Field_double &vy, const IJK_Field_double &vz, IJK_Field_double &dvx, IJK_Field_double &dvy, IJK_Field_double &dvz)
void ajouter_avec_u_div_rhou(const IJK_Field_double &rhovx, const IJK_Field_double &rhovy, const IJK_Field_double &rhovz, const IJK_Field_double &vx, const IJK_Field_double &vy, const IJK_Field_double &vz, IJK_Field_double &dvx, IJK_Field_double &dvy, IJK_Field_double &dvz, IJK_Field_double &div_rho_u) override
void calcul_g(const double &dxam, const double &dx, const double &dxav, double &g1, double &g2, double &g3, double &g4)
void exec_after_divergence_flux_y(IJK_Field_double &resu, const int k_layer) override
void exec_after_divergence_flux_x(IJK_Field_double &resu, const int k_layer) override
void compute_flux_z_vx(IJK_Field_local_double &resu, const int k_layer) override
void set_bc(const Boundary_Conditions &bc) override
void compute_flux_y_vx(IJK_Field_local_double &resu, const int k_layer) override
void compute_flux_z_vy(IJK_Field_local_double &resu, const int k_layer) override
IJK_Field_double * div_rho_u_
void compute_flux_x_vy(IJK_Field_local_double &resu, const int k_layer) override
void compute_flux_z_vz(IJK_Field_local_double &resu, const int k_layer) override
double get_g(int k_layer, int compo, int dir, int g_index) const
void compute_flux_y_vz(IJK_Field_local_double &resu, const int k_layer) override
OBS_PTR(Boundary_Conditions) ref_bc_
void compute_flux_y_vy(IJK_Field_local_double &resu, const int k_layer) override
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.