16#ifndef Intersection_Interface_ijk_included
17#define Intersection_Interface_ijk_included
21#include <IJK_Field_vector.h>
22#include <Domaine_IJK.h>
23#include <IJK_Field_forward.h>
24#include <IJK_subres_constants.h>
50 const DoubleTab& position_on_interf,
const DoubleTab& normal_on_interf,
51 const double dist, DoubleTab& positions);
136 DoubleTab& positions, IntTab& indices, DoubleTab& normales_de_la_proj, DoubleTab& distance_barys_interface);
208 DoubleTab& positions, IntTab& indices,
209 DoubleTab& normales_de_la_proj,
210 DoubleTab& distance_centre_interface);
213 const IntTab& indices,
214 const DoubleTab& normale_interf,
215 DoubleTab& positions,
216 IntTab& indices_voisins,
218 DoubleTab& distance_centre_faces_interface)
const;
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
DoubleTab dist_pure_faces_to_interf_
void update_interpolations_cell_faces_on_interface()
bool is_a_jour() const override
void update_interpolations_cell_centres_on_interface()
const DoubleTab & pos_pure_faces_interf() const
const DoubleTab & dist_pure_faces_interf() const
FixedVector< DoubleVect, 3 > ijk_pure_face_to_correct_
void calcul_projection_centre_faces_sur_interface_moy(const IJK_Field_double &indicatrice, const IntTab &indices, const DoubleTab &normale_interf, DoubleTab &positions, IntTab &indices_voisins, FixedVector< DoubleVect, 3 > &indices_faces_corrections, DoubleTab &distance_centre_faces_interface) const
void update_interpolations_cell_centres_on_interface_new()
void compute_face_to_correct()
void calcul_projection_centre_sur_interface_moy(const IJK_Field_double &indicatrice, DoubleTab &positions, IntTab &indices, DoubleTab &normales_de_la_proj, DoubleTab &distance_centre_interface)
void update_interpolations_cell_faces_on_interface_new()
void set_pas_a_jour() override
IntTab ijk_pure_face_neighbours_
FixedVector< DoubleVect, 3 > & get_set_ijk_pure_face_to_correct()
const int & operator()(int i_diph, int dir) const
int get_nb_faces_to_correct()
const int & get_ijk_pure_face_neighbours(int i_diph, int neighbour) const
DoubleTab positions_pure_faces_on_interf_
Intersection_Interface_ijk_cell()
const int & operator()(int i, int j, int k) const
bool face_centres_projected_on_interface_flag_
int initialize(const Domaine_IJK &splitting, const IJK_Interfaces &interfaces) override
const int & operator()(int i, int j, int k, int dir) const
void compute_mean_interface_face(const int i, const int j, const int k, const int dir, Vecteur3 &normale, Vecteur3 &bary) const
void calcul_projection_bary_face_mouillee_interface_moy(DoubleTab &positions, IntTab &indices, DoubleTab &normales_de_la_proj, DoubleTab &distance_barys_interface)
void maj_interpolation_coo_on_interfaces()
int initialize(const Domaine_IJK &splitting, const IJK_Interfaces &interfaces) override
Intersection_Interface_ijk_face()
IJK_Field_vector3_int idiph_ijk_
const IJK_Interfaces * interfaces_
virtual bool is_a_jour() const
DoubleTab positions_on_interf_
void get_mean_interface_cell(const int elem, Vecteur3 &normale, Vecteur3 &bary) const
static void distance_point_point_signe(const Vecteur3 &point_1, const Vecteur3 &point_2, const Vecteur3 &normal_interf, double &distance)
const DoubleTab & norm_interf() const
DoubleTab dist_to_interf_
const DoubleTab & dist_interf() const
DoubleTab normal_on_interf_
static Vecteur3 get_position_interpolation_normal_interf(const Vecteur3 &position_on_interf, const Vecteur3 &normal_on_interf, const double dist)
bool projected_on_interface_flag_
virtual void set_pas_a_jour()
virtual int initialize(const Domaine_IJK &splitting, const IJK_Interfaces &interfaces)=0
const DoubleTab & pos_interf() const
const Domaine_IJK * splitting_
static void projete_interface(const Vecteur3 &normale, const Vecteur3 &point_plan, const Vecteur3 &coo, Vecteur3 &posit_proj)
static void distance_point_point(const Vecteur3 &point_1, const Vecteur3 &point_2, double &distance)
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...