16#ifndef Maillage_FT_IJK_included
17#define Maillage_FT_IJK_included
20#include <Maillage_FT_Disc.h>
21#include <Linear_algebra_tools.h>
22#include <Domaine_IJK.h>
25#include <Operator_FT_Disc.h>
75 void transporter(
const DoubleTab& deplacement)
override;
77 const DoubleTab& deplacement_initial,
78 ArrOfInt& liste_sommets_sortis,
79 ArrOfInt& numero_face_sortie,
int skip_facettes=0)
override;
87 const ArrOfInt& liste_elem_arrivee,
88 ArrOfInt& facettes_recues_numfacettes,
89 ArrOfInt& facettes_recues_numelement);
94 const char *geometryname);
115 int check_mesh(
int error_is_fatal = 1,
int skip_facette_owner = 0,
int skip_facettes = 0)
const override;
139 Cerr <<
"Maillage_FT_IJK& operator=" << finl;
144 const ArrOfInt& liste_pe,
145 const ArrOfInt& facettes_send_pe_list,
146 const ArrOfInt& facettes_recv_pe_list)
override;
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
int convert_ijk_cell_to_packed(const FixedVector< int, 3 > ijk) const
Converts the ijk index of an element to a cell index.
FixedVector< int, 3 > convert_packed_to_ijk_cell(int index) const
Convert the local index of an element to a vector with IJK indices.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Maillage_FT_Disc()
constructeur par defaut.
friend class Parcours_interface
void parcourir_maillage()
void set_barycentrage(bool bary)
ArrOfInt liste_processeurs_voisins_faces_
void calculer_costheta_minmax(DoubleTab &costheta) const override
Pour chaque sommet du maillage, s'il est sur un bord, on calcule costheta min et max (hysteresis) cor...
void deplacer_sommets(const ArrOfInt &liste_sommets_initiale, const DoubleTab &deplacement_initial, ArrOfInt &liste_sommets_sortis, ArrOfInt &numero_face_sortie, int skip_facettes=0) override
Applique un vecteur deplacement aux noeuds dont le numero est dans "liste_noeud", puis echange les es...
bool use_tryggvason_interfacial_source_
int check_mesh(int error_is_fatal=1, int skip_facette_owner=0, int skip_facettes=0) const override
int nb_facettes_sans_duplicata() const
void lire_maillage_ft_dans_lata(const char *filename_with_path, int tstep, const char *geometryname)
const ArrOfInt & compo_connexe_facettes() const
void ajouter_maillage(const Maillage_FT_Disc &maillage_tmp, int skip_facettes=0) override
FT_Field & Surfactant_facettes_non_const()
const Domaine_IJK & get_domaine() const
DoubleTab update_sigma_and_interfacial_source_term_sommet(const Domaine_IJK &splitting, bool compute_interfacial_source, bool use_tryggvason_formulation, const double sigma_const=-1.)
void set_Surfactant_facettes(ArrOfDouble Surfactant_field)
Int3 get_ijk_cell_index(int num_sommet) const
const FT_Field & Surfactant_facettes() const
ArrOfIntFT compo_connexe_facettes_
void creer_facettes_virtuelles(const ArrOfInt &liste_facettes, const ArrOfInt &liste_pe, const ArrOfInt &facettes_send_pe_list, const ArrOfInt &facettes_recv_pe_list) override
Creation de facettes virtuelles sur le pe specifie.
FT_Field Surfactant_facettes_
void transporter(const DoubleTab &deplacement) override
Deplace les sommets de l'interface d'un vecteur "deplacement" fourni, Change eventuellement les somme...
const Maillage_FT_IJK & operator=(const Maillage_FT_IJK &)
void nettoyer_maillage() override
Retire toutes les facettes virtuelles, toutes les facettes invalides (sommet0 == sommet1) et tous les...
ArrOfInt & compo_connexe_facettes_non_const()
void initialize_processor_neighbourhood()
int check_sommets(int error_is_fatal=1) const override
void recopie_force_compo(const Maillage_FT_IJK &source_mesh, const int icompo)
DoubleTab indexation_facettes_avant_transport_
void corriger_proprietaires_facettes()
bool during_barycentrage_
void update_surfactant_apres_transport()
ArrOfInt liste_processeurs_voisins_coins_
void recopie(const Maillage_FT_Disc &source_mesh, Statut_Maillage niveau_copie) override
Recopie une partie du maillage source dans *this.
Maillage_FT_IJK(const Maillage_FT_IJK &)=default
void update_gradient_laplacien_Surfactant()
void ajouter_maillage_IJK(const Maillage_FT_IJK &added_mesh)
ArrOfInt voisinage_processeur_
OBS_PTR(Domaine_IJK) ref_domaine_
ArrOfInt liste_processeurs_voisins_aretes_
void set_Surfactant_facettes_sommets(ArrOfDouble Surfactant_field)
void supprimer_facettes(const ArrOfInt &liste_facettes)
double minimum_longueur_arrete() const
void calculer_compo_connexe_sommets(ArrOfIntFT &compo_connexe_sommets) const
void initialize(const Domaine_IJK &, const Domaine_dis_base &, const Parcours_interface &, const bool use_tryggvason_interfacial_source=false)
void echanger_facettes(const ArrOfInt &liste_facettes, const ArrOfInt &liste_elem_arrivee, ArrOfInt &facettes_recues_numfacettes, ArrOfInt &facettes_recues_numelement)
void set_composante_connexe(const int i_facette, const int icompo)
void sauv_facette_indexation_avant_transport()
void set_ijk_cell_index(int num_sommet, Int3 ijk)
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.