TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Parcours_interface Class Reference

#include <Parcours_interface.h>

Inheritance diagram for Parcours_interface:
[legend]
Collaboration diagram for Parcours_interface:
[legend]

Public Member Functions

 Parcours_interface ()
void associer_domaine_dis (const Domaine_dis_base &domaine_dis)
 Remplissage des variables persistantes de la classe (refdomaine_vf_, nb_faces_elem_, nb_elements_reels_, type_element_,.
void associer_connectivite_frontieres (const Connectivite_frontieres &connect)
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, y1, z1), calcule l'intersection du segment (P0,P1).
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 distance_sommet_faces (const Domaine_VF &domaine_vf, const int num_element, double x, double y, double z) const
double get_erreur_geometrique () const
 Renvoie une estimation de l'erreur geometrique (valeur homogene a une distance).
int get_correction_parcours_thomas () const
int get_parcours_sans_tolerance () const
void set_correction_parcours_thomas ()
void set_parcours_sans_tolerance ()
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 calculer_normale_face_bord (int num_face, double x, double y, double z, double &nx_, double &ny_, double &nz_) const
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructeur, supprime l'objet de la liste d'objets enregistres dans "memoire".
int numero () const
 Renvoie l'indice de l'objet dans Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Ecriture de l'objet sur un flot de sortie Methode a surcharger.
virtual EntreereadOn (Entree &)
 Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Renvoie 1 si l'objet x et *this sont une seule et meme instance (meme adresse en memoire).
virtual const Nomle_nom () const
 Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual void nommer (const Nom &)
 Donne un nom a l'Objet_U Methode virtuelle a surcharger.
virtual int reprendre (Entree &)
 Reprise d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual int sauvegarder (Sortie &) const
 Sauvegarde d'un Objet_U sur un flot de sortie Methode a surcharger.
int get_object_id () const
 Renvoie l'identifiant unique de l'objet object_id_.
virtual const Type_infoget_info () const
 Donne des informations sur le type de l'Objet_U.
const Nomque_suis_je () const
 renvoie la chaine identifiant la classe.
const char * le_type () const
 Donne le nom du type de l'Objet_U.
virtual int change_num (const int *const)
 Change le numero interne de l'Objet_U.
virtual int lire_motcle_non_standard (const Motcle &motlu, Entree &is)
 Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
virtual int associer_ (Objet_U &)
 Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Types

enum  { TRIANGLE , RECTANGLE , TETRA , HEXA }

Protected Member Functions

void update_erreur_coords_max ()
void parcourir (Maillage_FT_Disc &maillage) 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
int calcul_intersection_facelem_2D (const Domaine_VF &domaine_vf, Maillage_FT_Disc &maillage, int num_facette, int num_element) const
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.
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
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
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.
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 &centre_de_gravite, double epsilon) const
 Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.
double volume_tetraedre_reference (const DoubleTab &poly_reelles_ref, const FTd_vecteur3 &norme_ref, const FTd_vecteur3 &centre_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 reference.
CutCell_Properties volume_barycentre_hexaedre (const Domaine_VF &domaine_vf, int num_element, const DoubleTab &poly_reelles, const FTd_vecteur3 &norme, const FTd_vecteur3 &centre_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.
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 element.
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,y) global a une coordonnee (u,v,1-u-v) barycentrique.
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).
 OBS_PTR (Domaine_VF) refdomaine_vf_
 OBS_PTR (Connectivite_frontieres) refconnect_front_
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 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,y,z) a l'interieur de l'element elem du domaine_vf a une.
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_), et enregistre l'objet en "memoire".
 Objet_U (const Objet_U &)
 Constructeur par copie.
const Objet_Uoperator= (const Objet_U &)
 Operateur= : ne fait rien (on conserve le numero et l'identifiant).
virtual void set_param (Param &) const

Static Protected Member Functions

static void calcul_inverse_matrice33 (const FTd_matrice33 &matrice, FTd_matrice33 &matrice_inv)
 Cette methode (statique) permet d'inverser une matrice 3x3.
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.

Protected Attributes

int nb_faces_elem_ = -123
int nb_elements_reels_ = -123
int nb_sommets_par_face_ = -123
enum Parcours_interface:: { ... }  type_element_
DoubleTabFT equations_plans_faces_
int compteur_erreur_grossiere = -123
const IntTab * domaine_elem_ptr = nullptr
const DoubleTab * domaine_sommets_ptr = nullptr
ArrOfBit drapeaux_elements_parcourus_
double Erreur_relative_maxi_
double Valeur_max_coordonnees_ = 0.
double Erreur_max_coordonnees_ = 0.
bool correction_parcours_thomas_ = false
bool parcours_sans_tolerance_ = false

Friends

void Maillage_FT_Disc::parcourir_maillage ()

Additional Inherited Members

Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Renvoie une reference constante vers le nom du cas.
static Nomget_set_nom_du_cas ()
 Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier).
static const Type_infoinfo ()
 Donne des informations sur le type de l'Objet_U.
static const Objet_Uself_cast (const Objet_U &)
 methode ajoutee pour caster en python
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 renvoie mon rang dans le groupe de communication courant.
static int nproc ()
 renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group()
static bool is_parallel ()
static void exit (int exit_code=-1)
 Routine de sortie de TRUST dans une region Kokkos.
static double mp_sum (double)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant.
static int mp_min (int)
 renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Calcule le 'et' logique de b sur tous les processeurs du groupe courant.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Routine de sortie de TRUST dans une region Kokkos.
static int node_master ()
 renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere).
static void abort ()
 Routine de sortie de Trio-U sur une erreur abort().
static SortieJournal (int message_level=0)
 Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

Definition at line 33 of file Parcours_interface.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
TRIANGLE 
RECTANGLE 
TETRA 
HEXA 

Definition at line 149 of file Parcours_interface.h.

Constructor & Destructor Documentation

◆ Parcours_interface()

Parcours_interface::Parcours_interface ( )

Definition at line 56 of file Parcours_interface.cpp.

Member Function Documentation

◆ associer_connectivite_frontieres()

void Parcours_interface::associer_connectivite_frontieres ( const Connectivite_frontieres & connect)

Definition at line 154 of file Parcours_interface.cpp.

◆ associer_domaine_dis()

void Parcours_interface::associer_domaine_dis ( const Domaine_dis_base & domaine_dis)

Remplissage des variables persistantes de la classe (refdomaine_vf_, nb_faces_elem_, nb_elements_reels_, type_element_,.

equations_plans_faces_).

Definition at line 78 of file Parcours_interface.cpp.

◆ calcul_eq_plan()

double Parcours_interface::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
inlineprotected

Definition at line 317 of file Parcours_interface.cpp.

◆ calcul_intersection_facelem_2D()

int Parcours_interface::calcul_intersection_facelem_2D ( const Domaine_VF & domaine_vf,
Maillage_FT_Disc & maillage,
int num_facette,
int num_element ) const
protected

Definition at line 475 of file Parcours_interface.cpp.

◆ calcul_intersection_facelem_3D()

int Parcours_interface::calcul_intersection_facelem_3D ( const Domaine_VF & domaine_vf,
Maillage_FT_Disc & maillage,
int num_facette,
int num_element ) const
protected

Cette methode permet de calculer l'intersection entre une facette et un element du maillage eulerien.

Precondition: dimension = 3

Parameters
(domaine_vf)domaine du calcul
(maillage)description du maillage de l'interface
(num_facette)indice de la facette intersectant
(num_element)indice de l'element intersecte
Returns
(int) 1 si ok, 0 si ??.

Definition at line 960 of file Parcours_interface.cpp.

◆ calcul_inverse_matrice33()

void Parcours_interface::calcul_inverse_matrice33 ( const FTd_matrice33 & matrice,
FTd_matrice33 & matrice_inv )
staticprotected

Cette methode (statique) permet d'inverser une matrice 3x3.

Precondition: des denominateurs non nuls

Parameters
(matrice)matrice 3x3 a inverser
(matrice_inv)inverse de la matrice 3x3
Returns
(rien)

Definition at line 1331 of file Parcours_interface.cpp.

◆ calcul_produit_matrice33_vecteur()

void Parcours_interface::calcul_produit_matrice33_vecteur ( const FTd_matrice33 & matrice,
const FTd_vecteur3 & vect,
FTd_vecteur3 & res )
staticprotected

Cette methode (statique) permet de calculer le produit d'une matrice 3x3 avec un vecteur 3.

Parameters
(matrice)matrice 3x3 a inverser
(vect)vecteur 3 a multiplier
(vect)vecteur 3 resultat
Returns
(rien)

Definition at line 1385 of file Parcours_interface.cpp.

◆ calculer_face_sortie_element()

int Parcours_interface::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, y1, z1), calcule l'intersection du segment (P0,P1).

avec les bords de l'element. Si le point P1 est sur un bord de l'element (a epsilon pres), on considere qu'il est a l'interieur et on ne reporte aucune intersection. Si on trouve une intersection I, on met dans pos_intersection la coordonnee barycentrique de l'intersection definie par I = (1-pos) * P0 + pos * P1 Si on ne trouve pas d'intersection, pos_intersection est inchange. Valeur de retour: Si une intersection a ete trouvee, numero de la face de sortie dans le domaine_vf (peut servir d'index dans face_voisins par exemple). Sinon, renvoie -1.

Definition at line 2256 of file Parcours_interface.cpp.

◆ calculer_normale_face_bord()

void Parcours_interface::calculer_normale_face_bord ( int num_face,
double x,
double y,
double z,
double & nx_,
double & ny_,
double & nz_ ) const

Definition at line 2545 of file Parcours_interface.cpp.

◆ calculer_sortie_face_bord()

int Parcours_interface::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.

P0 est la position initiale du marqueur en contact (sur la face_bord) P1 est la position finale visee apres le deplacement Pour un point P0(x0,y0,z0) sur la face "face_bord" et un point P1(x1,y1,z1), on determine la projection orthogonale p(P1) de P1 sur le plan contenant la face, et on calcule l'intersection (x,y,z) du segment [P0,p(P1)] avec les bords de la face. S'il n'y a pas d'intersection, (x,y,z)=p(P1) et la valeur de retour est -1, sinon la valeur de retour est le numero de l'arete de la face qui est coupee par le segment [P0,p(P1)] (aretes telles qu'elles sont definies dans la classe Connectivite_frontieres).

Parameters
(domaine_vf)le Domaine_VF a laquelle se rapportent les indices de face et d'element
(face_0)le numero de la face reelle sur laquelle se trouve le point P0
(num_element)un numero d'element voisin de la face face_0
(x0,y0,z0)Coordonnees du point P0 (en 2D, z0 est ignore)
(x1,y1,z1)Coordonnees du point P1 (en 2D, z1 est ignore)
(x,y,z)On met dans (x,y,z) les coordonnees de l'intersection s'il y en a une, sinon on y met les coordonnees de p(P1) qui est sur la face "face_0" Valeur de retour: -1 s'il n'y a pas d'intersection sinon le numero de la face de bord ou passe le sommet

Definition at line 2326 of file Parcours_interface.cpp.

◆ coupe_face_rectangulaire()

CutFace_Properties Parcours_interface::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
protected

Calcul de la contribution d'une facette a l'indicatrice surfacique et au barycentre sur une face d'un element.

Precondition: dimension = 3

Parameters
(domaine_vf)domaine du calcul
(num_element)indice de l'element intersecte
(num_face)indice de la face, au sein de l'element
(poly_reelles)coordonnees (reelles) des sommets definissant une surface contenue dans l'element (en pratique : surface d'intersection entre une facette d'interface et l'element)
(norme)normale a la facette
(epsilon)erreur relative
Returns
(CutFace_Properties) contribution de la surface engendre par le segment sur la face, et au barycentre de cette surface

Definition at line 2052 of file Parcours_interface.cpp.

◆ distance_sommet_faces()

double Parcours_interface::distance_sommet_faces ( const Domaine_VF & domaine_vf,
const int num_element,
double x,
double y,
double z ) const

Definition at line 2487 of file Parcours_interface.cpp.

◆ eloigner_sommets_des_faces()

int Parcours_interface::eloigner_sommets_des_faces ( Maillage_FT_Disc & maillage) const
protected

Pour chaque sommet, s'il est trop pres d'une face eulerienne, deplace le sommet pour l'en eloigner.

Mise a jour de l'espace virtuel des sommets

Definition at line 2647 of file Parcours_interface.cpp.

◆ get_correction_parcours_thomas()

int Parcours_interface::get_correction_parcours_thomas ( ) const
inline

Definition at line 56 of file Parcours_interface.h.

◆ get_erreur_geometrique()

double Parcours_interface::get_erreur_geometrique ( ) const

Renvoie une estimation de l'erreur geometrique (valeur homogene a une distance).

Par exemple si le domaine a une dimension caracteristique de 1e-3 et si la precision relative des calculs Erreur_relative_maxi_ est fixee a 1E-14 (valeur fixee dans le code source) alors get_erreur_geometrique renvoie 1E-17. Cette valeur est identique sur tous les processeurs et est calculee a partir de la taille du domaine.

Definition at line 2513 of file Parcours_interface.cpp.

◆ get_parcours_sans_tolerance()

int Parcours_interface::get_parcours_sans_tolerance ( ) const
inline

Definition at line 57 of file Parcours_interface.h.

◆ matrice_triangle()

void Parcours_interface::matrice_triangle ( int num_element,
FTd_vecteur2 & origine,
FTd_matrice22 & matrice,
double & surface ) const
inlineprotected

Calcul de la matrice 2x2 de transformation pour passer d'une coordonnee dans le repere (x,y) global a une coordonnee (u,v,1-u-v) barycentrique.

dans un element fini triangulaire. Le point 0 du triangle aura pour coordonnees (0,0,1) Le point 1 (1,0,0) Le point 2 (0,1,0)

Definition at line 827 of file Parcours_interface.cpp.

◆ OBS_PTR() [1/2]

Parcours_interface::OBS_PTR ( Connectivite_frontieres )
protected

◆ OBS_PTR() [2/2]

Parcours_interface::OBS_PTR ( Domaine_VF )
protected

◆ parcourir()

void Parcours_interface::parcourir ( Maillage_FT_Disc & maillage) const
protected

Definition at line 169 of file Parcours_interface.cpp.

◆ parcours_facette()

void Parcours_interface::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
protected

Definition at line 342 of file Parcours_interface.cpp.

◆ projeter_vecteur_sur_face()

void Parcours_interface::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.

Projection du vecteur x_, y_, z_ sur le plan parallele a la face num_face passant par l'origine (permet d'obtenir la direction de deplacement d'un sommet sur une ligne de contact).

Definition at line 2526 of file Parcours_interface.cpp.

◆ set_correction_parcours_thomas()

void Parcours_interface::set_correction_parcours_thomas ( )
inline

Definition at line 58 of file Parcours_interface.h.

◆ set_parcours_sans_tolerance()

void Parcours_interface::set_parcours_sans_tolerance ( )
inline

Definition at line 59 of file Parcours_interface.h.

◆ transformation_2d()

void Parcours_interface::transformation_2d ( const FTd_vecteur2 & origine,
const FTd_matrice22 & matrice,
double x,
double y,
double & u,
double & v ) const
inlineprotected

Applique la transformation calculee par matrice_triangle a une coordonnee (x,y).

Le resultat est stocke dans (u,v). La troisieme coordonnee barycentrique est implicitement egale a 1-u-v.

Definition at line 862 of file Parcours_interface.cpp.

◆ update_erreur_coords_max()

void Parcours_interface::update_erreur_coords_max ( )
protected

Definition at line 67 of file Parcours_interface.cpp.

◆ uzawa2()

double Parcours_interface::uzawa2 ( const Domaine_VF & domaine_vf,
const int elem,
double & x,
double & y,
double & z ) const
protected

Algorithme base sur une version initiale de Thomas (recode par BM) Ramene le point (x,y,z) a l'interieur de l'element elem du domaine_vf a une.

distance >= Erreur_max_coordonnees_ par un algorithme d'Uzawa. Valeur de retour: distance finale du sommet aux faces de l'element (positive si le sommet est a l'interieur)

Definition at line 2566 of file Parcours_interface.cpp.

◆ volume_barycentre_hexaedre()

CutCell_Properties Parcours_interface::volume_barycentre_hexaedre ( const Domaine_VF & domaine_vf,
int num_element,
const DoubleTab & poly_reelles,
const FTd_vecteur3 & norme,
const FTd_vecteur3 & centre_de_gravite,
const ArrOfInt & polygone_plan_coupe,
double epsilon ) const
protected

Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.

C'est une fraction du volume de l'element comprise entre epsilon et 1.-epsilon

Precondition: dimension = 3

Parameters
(domaine_vf)domaine du calcul
(num_element)indice de l'element intersecte
(poly_reelles)coordonnees (reelles) des sommets definissant une surface contenue dans l'element (en pratique : surface d'intersection entre une facette d'interface et l'element)
(norme)normale a la facette
(centre_de_gravite)centre de gravite de la surface
(epsilon)erreur relative
Returns
(double) contribution du volume engendre par la surface dans l'element

Definition at line 1762 of file Parcours_interface.cpp.

◆ volume_rectangle_barycentre()

double Parcours_interface::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
protected

Definition at line 674 of file Parcours_interface.cpp.

◆ volume_tetraedre()

double Parcours_interface::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 & centre_de_gravite,
double epsilon ) const
protected

Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.

C'est une fraction du volume de l'element comprise entre epsilon et 1.-epsilon

Precondition: dimension = 3

Parameters
(domaine_vf)domaine du calcul
(num_element)indice de l'element intersecte
(poly_reelles)coordonnees (reelles) des sommets definissant une surface contenue dans l'element (en pratique : surface d'intersection entre une facette d'interface et l'element)
(centre_de_gravite)centre de gravite de la surface
(epsilon)erreur relative
Returns
(double) contribution du volume engendre par la surface dans l'element

Definition at line 1413 of file Parcours_interface.cpp.

◆ volume_tetraedre_reference()

double Parcours_interface::volume_tetraedre_reference ( const DoubleTab & poly_reelles_ref,
const FTd_vecteur3 & norme_ref,
const FTd_vecteur3 & centre_de_gravite_ref,
double epsilon ) const
protected

Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans le tetraedre de reference.

Dans ce tetraedre, on utilise le plan OXZ comme plan de projection (projection selon OY donc)

Precondition: la surface doit etre un triangle (nb_sommets_poly==3)

Parameters
(poly_reelles_ref)coordonnees (reelles) des sommets l'element de reference
(norme)normale a la surface, dans l'element de reference
(centre_de_gravite,dansl'element de reference) centre de gravite de la surface
(epsilon)erreur relative
Returns
(double) contribution du volume engendre par la surface dans l'element

Definition at line 1522 of file Parcours_interface.cpp.

◆ volume_triangle()

double Parcours_interface::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
inlineprotected

Calcul de la contribution de volume d'une facette a la valeur de l'indicatrice dans un element.

(x0,y0) et (x1,y1) sont les coordonnees de l'extremite du segment (obligatoirement a l'interieur du triangle ou sur un bord). plan_coupe* donne le numero de la face du triangle sur laquelle se trouve chacun des deux sommets du segment ou -1 si le sommet est strictement a l'interieur du triangle. C'est une fraction du volume de l'element comprise entre Erreur_relative_maxi et 1.-Erreur_relative_maxi

sommet2 ^ ordonnee=v |. | . | . | . face 0 (opposee au sommet 0) | . | 0—1. | : A :. | : :B. -----— -> abscisse=u (coordonnees dans le triangle de reference : u,v) sommet0 sommet1

Definition at line 897 of file Parcours_interface.cpp.

◆ Maillage_FT_Disc::parcourir_maillage

Member Data Documentation

◆ compteur_erreur_grossiere

int Parcours_interface::compteur_erreur_grossiere = -123
mutableprotected

Definition at line 167 of file Parcours_interface.h.

◆ correction_parcours_thomas_

bool Parcours_interface::correction_parcours_thomas_ = false
protected

Definition at line 187 of file Parcours_interface.h.

◆ domaine_elem_ptr

const IntTab* Parcours_interface::domaine_elem_ptr = nullptr
mutableprotected

Definition at line 170 of file Parcours_interface.h.

◆ domaine_sommets_ptr

const DoubleTab* Parcours_interface::domaine_sommets_ptr = nullptr
mutableprotected

Definition at line 171 of file Parcours_interface.h.

◆ drapeaux_elements_parcourus_

ArrOfBit Parcours_interface::drapeaux_elements_parcourus_
mutableprotected

Definition at line 174 of file Parcours_interface.h.

◆ equations_plans_faces_

DoubleTabFT Parcours_interface::equations_plans_faces_
protected

Definition at line 160 of file Parcours_interface.h.

◆ Erreur_max_coordonnees_

double Parcours_interface::Erreur_max_coordonnees_ = 0.
protected

Definition at line 183 of file Parcours_interface.h.

◆ Erreur_relative_maxi_

double Parcours_interface::Erreur_relative_maxi_
protected

Definition at line 179 of file Parcours_interface.h.

◆ nb_elements_reels_

int Parcours_interface::nb_elements_reels_ = -123
protected

Definition at line 147 of file Parcours_interface.h.

◆ nb_faces_elem_

int Parcours_interface::nb_faces_elem_ = -123
protected

Definition at line 146 of file Parcours_interface.h.

◆ nb_sommets_par_face_

int Parcours_interface::nb_sommets_par_face_ = -123
protected

Definition at line 148 of file Parcours_interface.h.

◆ parcours_sans_tolerance_

bool Parcours_interface::parcours_sans_tolerance_ = false
protected

Definition at line 193 of file Parcours_interface.h.

◆ []

enum { ... } Parcours_interface::type_element_

◆ Valeur_max_coordonnees_

double Parcours_interface::Valeur_max_coordonnees_ = 0.
protected

Definition at line 181 of file Parcours_interface.h.


The documentation for this class was generated from the following files:
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Front_tracking_discontinu/Geometrie/Parcours_interface.h
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Front_tracking_discontinu/Geometrie/Parcours_interface.cpp