16#ifndef Cut_field_included
17#define Cut_field_included
21#include <IJK_Field_vector.h>
22#include <TRUSTTabFT_cut_cell.h>
43template<
typename _TYPE_,
typename _TYPE_ARRAY_>
80 void allocate_persistant(
Cut_cell_FT_Disc& cut_cell_disc,
const Domaine_IJK& splitting,
Domaine_IJK::Localisation loc,
int ghost_size,
int additional_k_layers=0,
int nb_compo=1,
bool external_storage =
false,
int monofluide=0,
double rov=0.,
double rol=0.,
int use_inv_rho_in_pressure_solver=0)
82 IJK_Field_template<_TYPE_,_TYPE_ARRAY_>::allocate(splitting, loc, ghost_size, additional_k_layers, nb_compo, this->
le_nom(), external_storage, monofluide, rov, rol, use_inv_rho_in_pressure_solver);
86 void allocate_ephemere(
Cut_cell_FT_Disc& cut_cell_disc,
const Domaine_IJK& splitting,
Domaine_IJK::Localisation loc,
int ghost_size,
int additional_k_layers = 0,
int nb_compo = 1,
bool external_storage =
false,
int monofluide=0,
double rov=0.,
double rol=0.,
int use_inv_rho_in_pressure_solver=0)
88 IJK_Field_template<_TYPE_,_TYPE_ARRAY_>::allocate(splitting, loc, ghost_size, additional_k_layers, nb_compo, this->
le_nom(), external_storage, monofluide, rov, rol, use_inv_rho_in_pressure_solver);
92 void allocate_paresseux(
Cut_cell_FT_Disc& cut_cell_disc,
const Domaine_IJK& splitting,
Domaine_IJK::Localisation loc,
int ghost_size,
int additional_k_layers = 0,
int nb_compo = 1,
bool external_storage =
false,
int monofluide=0,
double rov=0.,
double rol=0.,
int use_inv_rho_in_pressure_solver=0)
94 IJK_Field_template<_TYPE_,_TYPE_ARRAY_>::allocate(splitting, loc, ghost_size, additional_k_layers, nb_compo, this->
le_nom(), external_storage, monofluide, rov, rol, use_inv_rho_in_pressure_solver);
121 const _TYPE_&
pure_(
int i,
int j,
int k)
const
128 Cerr <<
"Disabling operator() for the derived class Cut_field_template<_TYPE_,_TYPE_ARRAY_> of IJK_Field_template<_TYPE_,_TYPE_ARRAY_>. Please use pure_() instead." << finl;
135 Cerr <<
"Disabling operator() for the derived class Cut_field_template<_TYPE_,_TYPE_ARRAY_> of IJK_Field_template<_TYPE_,_TYPE_ARRAY_>. Please use pure_() instead." << finl;
142 Cerr <<
"Disabling operator() for the derived class Cut_field_template<_TYPE_,_TYPE_ARRAY_> of IJK_Field_template<_TYPE_,_TYPE_ARRAY_>. Please use pure_() instead." << finl;
147 const _TYPE_&
operator()(
int i,
int j,
int k,
int compo)
const
149 Cerr <<
"Disabling operator() for the derived class Cut_field_template<_TYPE_,_TYPE_ARRAY_> of IJK_Field_template<_TYPE_,_TYPE_ARRAY_>. Please use pure_() instead." << finl;
167template<
class T,
int N>
: class Cut_field_template
CutCell_GlobalInfo compute_d_global_energy_cut_cell(bool next) const
void remplir_tableau_pure_cellules_diphasiques_max(bool next_time)
const _TYPE_ & from_signed_independent_index(int signed_independent_index) const
_TYPE_ & from_ijk_and_phase(int i, int j, int k, bool phase)
void echange_espace_virtuel(int ghost)
void multiply_by_scalar(_TYPE_ scalar_l, _TYPE_ scalar_v)
bool check_agreement_diph_pure_cellules_initialement_pures() const
void divide_by_scalar(_TYPE_ scalar_l, _TYPE_ scalar_v)
_TYPE_ & pure_(int i, int j, int k)
const _TYPE_ & from_ijk_and_phase(int i, int j, int k, bool phase) const
void copie_pure_vers_diph_sans_interpolation()
CutCell_GlobalInfo compute_min_cut_cell(bool next) const
void add_from(const Cut_field_template< _TYPE_, _TYPE_ARRAY_ > &data, _TYPE_ constant=1)
const Cut_cell_FT_Disc & get_cut_cell_disc() const
void associer_ephemere(Cut_cell_FT_Disc &cut_cell_disc)
void allocate_ephemere(Cut_cell_FT_Disc &cut_cell_disc, const Domaine_IJK &splitting, Domaine_IJK::Localisation loc, int ghost_size, int additional_k_layers=0, int nb_compo=1, bool external_storage=false, int monofluide=0, double rov=0., double rol=0., int use_inv_rho_in_pressure_solver=0)
void remplir_tableau_pure_cellules_diphasiques(bool next_time)
_TYPE_ & operator()(int i, int j, int k, int compo)
void allocate_persistant(Cut_cell_FT_Disc &cut_cell_disc, const Domaine_IJK &splitting, Domaine_IJK::Localisation loc, int ghost_size, int additional_k_layers=0, int nb_compo=1, bool external_storage=false, int monofluide=0, double rov=0., double rol=0., int use_inv_rho_in_pressure_solver=0)
bool check_agreement_tableau_pure_cellules_diphasiques(bool next_time) const
void set_to_uniform_value(_TYPE_ valeur)
OBS_PTR(Cut_cell_FT_Disc) cut_cell_disc_
const _TYPE_ & operator()(int i, int j, int k) const
CutCell_GlobalInfo compute_max_cut_cell(bool next) const
TRUSTTabFT_cut_cell< int > diph_l_
_TYPE_ & operator()(int i, int j, int k)
void associer_paresseux(Cut_cell_FT_Disc &cut_cell_disc)
CutCell_GlobalInfo compute_norm_cut_cell(bool next) const
const _TYPE_ & from_n_num_face_and_phase(int n, int num_face, bool phase) const
_TYPE_ & from_signed_independent_index(int signed_independent_index)
void set_to_sum(const Cut_field_template< _TYPE_, _TYPE_ARRAY_ > &data_1, const Cut_field_template< _TYPE_, _TYPE_ARRAY_ > &data_2)
void copy_from(const Cut_field_template< _TYPE_, _TYPE_ARRAY_ > &data)
void vide_phase_invalide_cellules_diphasiques()
void echange_pure_vers_diph_cellules_initialement_pures()
bool check_agreement_diph_pure_cellules_finalement_pures() const
void dumplata_scalar(const char *filename, int step) const override
const _TYPE_ & pure_(int i, int j, int k) const
void set_field_data(const Nom &parser_expression_of_x_y_z_and_t, const IJK_Field_template< _TYPE_, _TYPE_ARRAY_ > &input_f, const double current_time)
_TYPE_ & from_n_num_face_and_phase(int n, int num_face, bool phase)
void echange_diph_vers_pure_cellules_finalement_pures()
TRUSTTabFT_cut_cell< int > diph_v_
CutCell_GlobalInfo compute_global_energy_cut_cell(bool next, double constant_l, double constant_v) const
const _TYPE_ & operator()(int i, int j, int k, int compo) const
void associer_persistant(Cut_cell_FT_Disc &cut_cell_disc)
void allocate_paresseux(Cut_cell_FT_Disc &cut_cell_disc, const Domaine_IJK &splitting, Domaine_IJK::Localisation loc, int ghost_size, int additional_k_layers=0, int nb_compo=1, bool external_storage=false, int monofluide=0, double rov=0., double rol=0., int use_inv_rho_in_pressure_solver=0)
Nom get_value_location(_TYPE_ T) const
void echange_espace_virtuel(int ghost)
void set_to_uniform_value(int valeur)
void echange_diph_vers_pure_cellules_finalement_pures()
void vide_phase_invalide_cellules_diphasiques()
Cut_field_template< T, TRUSTArray< T > > & operator[](int i)
const Cut_field_template< T, TRUSTArray< T > > & operator[](int i) const
void echange_pure_vers_diph_cellules_initialement_pures()
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Localisation
Localisation sub class.
const Nom & le_nom() const override
Renvoie le nom du champ.
_TYPE_ & operator()(int i, int j, int k)
: This class is an IJK_Field_local with parallel informations.
void allocate(const Domaine_IJK &d, Domaine_IJK::Localisation l, int ghost_size, int additional_k_layers=0, int nb_compo=1, const Nom &name=Nom(), bool external_storage=false, int monofluide=0, double rov=0., double rol=0., int use_inv_rho_in_pressure_solver=0)
IJK_Field_template< T, TRUSTArray< T > > & operator[](int i)
class Nom Une chaine de caractere pour nommer les objets de TRUST
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
: class TRUSTTabFT_cut_cell