16#ifndef Parcours_interface_included
17#define Parcours_interface_included
21#include <Maillage_FT_Disc.h>
22#include <TRUSTTabs_forward.h>
42 const int num_element,
43 double x0,
double y0,
double z0,
44 double x1,
double y1,
double z1,
45 double& pos_intersection)
const;
47 const int num_element,
48 double x0,
double y0,
double z0,
49 double x1,
double y1,
double z1,
50 double& x,
double& y,
double& z)
const;
52 const int num_element,
53 double x,
double y,
double z)
const;
63 double& nx_,
double& ny_,
double& nz_)
const;
74 ArrOfInt& echange_facettes_numfacette,
75 ArrOfInt& echange_facettes_numelement,
77 int element_depart)
const;
82 int num_element)
const;
87 int num_element)
const;
90 const int num_element,
const int num_face_element,
91 double& a,
double& b,
double& c,
double& d)
const;
96 double x0,
double y0,
double x1,
double y1,
97 double epsilon,
double liquid_barycentre[3])
const;
100 double x0,
double y0,
double x1,
double y1,
101 int plan_coupe0,
int plan_coupe1)
const;
107 const DoubleTab& poly_reelles,
108 const FTd_vecteur3& centre_de_gravite,
109 double epsilon)
const;
112 const FTd_vecteur3& norme_ref,
113 const FTd_vecteur3& centre_de_gravite_ref,
114 double epsilon)
const;
117 const DoubleTab& poly_reelles,
118 const FTd_vecteur3& norme,
119 const FTd_vecteur3& centre_de_gravite,
120 const ArrOfInt& polygone_plan_coupe,
121 double epsilon)
const;
125 const DoubleTab& poly_reelles,
126 const FTd_vecteur3& norme,
127 const ArrOfInt& polygone_plan_coupe,
128 double epsilon)
const;
131 FTd_vecteur2& origine,
132 FTd_matrice22& matrice,
133 double& surface)
const;
136 const FTd_matrice22& matrice,
138 double& u,
double& v)
const;
190 double& x,
double& y,
double& z)
const;
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
: class Maillage_FT_Disc Cette classe decrit un maillage:
void parcourir_maillage()
Remplit la structure intersections_elem_facettes_.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
double volume_tetraedre_reference(const DoubleTab &poly_reelles_ref, const FTd_vecteur3 &norme_ref, const FTd_vecteur3 ¢re_de_gravite_ref, double epsilon) const
Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans le tetraedre de r...
double calcul_eq_plan(const Domaine_VF &domaine_vf, const int num_element, const int num_face_element, double &a, double &b, double &c, double &d) const
void calculer_normale_face_bord(int num_face, double x, double y, double z, double &nx_, double &ny_, double &nz_) const
double volume_tetraedre(const Domaine_VF &domaine_vf, int num_element, int num_facette, const Maillage_FT_Disc &maillage, const DoubleTab &poly_reelles, const FTd_vecteur3 ¢re_de_gravite, double epsilon) const
Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.
int calcul_intersection_facelem_2D(const Domaine_VF &domaine_vf, Maillage_FT_Disc &maillage, int num_facette, int num_element) const
void parcours_facette(const Domaine_VF &domaine_vf, Maillage_FT_Disc &maillage, ArrOfInt &echange_facettes_numfacette, ArrOfInt &echange_facettes_numelement, int num_facette, int element_depart) const
double Valeur_max_coordonnees_
static void calcul_inverse_matrice33(const FTd_matrice33 &matrice, FTd_matrice33 &matrice_inv)
Cette methode (statique) permet d'inverser une matrice 3x3.
int compteur_erreur_grossiere
int get_parcours_sans_tolerance() const
void matrice_triangle(int num_element, FTd_vecteur2 &origine, FTd_matrice22 &matrice, double &surface) const
Calcul de la matrice 2x2 de transformation pour passer d'une coordonnee dans le repere (x,...
int calculer_sortie_face_bord(const int face_0, const int num_element, double x0, double y0, double z0, double x1, double y1, double z1, double &x, double &y, double &z) const
Methode outil de Maillage_FT_Disc::deplacer_un_point dans le cas d'un marqueur de la ligne de contact...
double uzawa2(const Domaine_VF &domaine_vf, const int elem, double &x, double &y, double &z) const
Algorithme base sur une version initiale de Thomas (recode par BM) Ramene le point (x,...
DoubleTabFT equations_plans_faces_
const DoubleTab * domaine_sommets_ptr
enum Parcours_interface::@373266144117317220251337123122267336271346142325 type_element_
void projeter_vecteur_sur_face(const int num_face, double &x_, double &y_, double &z_) const
Methode outil utilisee pour le traitement des lignes de contact.
void set_correction_parcours_thomas()
double get_erreur_geometrique() const
Renvoie une estimation de l'erreur geometrique (valeur homogene a une distance).
double volume_rectangle_barycentre(const Domaine_VF &domaine_vf, int num_element, double x0, double y0, double x1, double y1, double epsilon, double liquid_barycentre[3]) const
void transformation_2d(const FTd_vecteur2 &origine, const FTd_matrice22 &matrice, double x, double y, double &u, double &v) const
Applique la transformation calculee par matrice_triangle a une coordonnee (x,y).
int calculer_face_sortie_element(const Domaine_VF &domaine_vf, const int num_element, double x0, double y0, double z0, double x1, double y1, double z1, double &pos_intersection) const
Pour un point P0 (x0, y0, z0) a l'INTERIEUR de l'element num_element et un autre point P1 (x1,...
static void calcul_produit_matrice33_vecteur(const FTd_matrice33 &matrice, const FTd_vecteur3 &vect, FTd_vecteur3 &res)
Cette methode (statique) permet de calculer le produit d'une matrice 3x3 avec un vecteur 3.
int eloigner_sommets_des_faces(Maillage_FT_Disc &maillage) const
Pour chaque sommet, s'il est trop pres d'une face eulerienne, deplace le sommet pour l'en eloigner.
double Erreur_max_coordonnees_
void set_parcours_sans_tolerance()
ArrOfBit drapeaux_elements_parcourus_
double volume_triangle(const Domaine_VF &domaine_vf, int num_element, double x0, double y0, double x1, double y1, int plan_coupe0, int plan_coupe1) const
Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.
bool correction_parcours_thomas_
int calcul_intersection_facelem_3D(const Domaine_VF &domaine_vf, Maillage_FT_Disc &maillage, int num_facette, int num_element) const
Cette methode permet de calculer l'intersection entre une facette et un element du maillage eulerien.
void parcourir(Maillage_FT_Disc &maillage) const
CutCell_Properties volume_barycentre_hexaedre(const Domaine_VF &domaine_vf, int num_element, const DoubleTab &poly_reelles, const FTd_vecteur3 &norme, const FTd_vecteur3 ¢re_de_gravite, const ArrOfInt &polygone_plan_coupe, double epsilon) const
Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.
OBS_PTR(Connectivite_frontieres) refconnect_front_
void update_erreur_coords_max()
const IntTab * domaine_elem_ptr
OBS_PTR(Domaine_VF) refdomaine_vf_
bool parcours_sans_tolerance_
int get_correction_parcours_thomas() const
double Erreur_relative_maxi_
double distance_sommet_faces(const Domaine_VF &domaine_vf, const int num_element, double x, double y, double z) const
CutFace_Properties coupe_face_rectangulaire(const Domaine_VF &domaine_vf, int num_element, int num_face, const DoubleTab &poly_reelles, const FTd_vecteur3 &norme, const ArrOfInt &polygone_plan_coupe, double epsilon) const
Calcul de la contribution d'une facette a l'indicatrice surfacique et au barycentre sur une face d'un...
void associer_connectivite_frontieres(const Connectivite_frontieres &connect)
void associer_domaine_dis(const Domaine_dis_base &domaine_dis)
Remplissage des variables persistantes de la classe (refdomaine_vf_, nb_faces_elem_,...