17#ifndef Op_Diff_VEF_Face_Penalise_included
18#define Op_Diff_VEF_Face_Penalise_included
19#include <Op_Diff_VEF_Face.h>
20#include <Domaine_Cl_VEF.h>
33 DoubleTab&
ajouter(
const DoubleTab& inconnue, DoubleTab& resu)
const override;
34 DoubleTab&
calculer(
const DoubleTab& inconnue, DoubleTab& resu)
const override;
44 void voisinage(
const int Numero_face, IntList& Voisinage)
const;
51 void voisinage(
const IntList& Ensemble_faces, IntList& Voisinage)
const;
57 double signe(
const int Face1,
const int Face2 )
const;
68 IntList& Face_commune)
const;
75 void reduction(
const IntList& Liste1,
const IntList& Liste2,
76 IntList& Liste_reduite)
const;
87 int autre_face(
const int Face1,
const int Face2)
const;
92 inline double diametre(
const int Element)
const;
97 inline double longueur(
const int Face)
const;
105 inline const Domaine& domaine()
const;
117 double x_sommet1,x_sommet2;
118 double y_sommet1,y_sommet2;
123 x_sommet1 = domaine().coord(sommet1,0);
124 y_sommet1 = domaine().coord(sommet1,1);
126 x_sommet2 = domaine().coord(sommet2,0);
127 y_sommet2 = domaine().coord(sommet2,1);
129 return sqrt( pow(x_sommet1 - x_sommet2,2) + pow(y_sommet1 - y_sommet2,2) );
134 int face1,face2,face3;
135 double longueur_face1,longueur_face2,longueur_face3;
136 double longueur_max,diametre_element;
146 longueur_max = longueur_face1 >= longueur_face2 ? longueur_face1 :
148 diametre_element = longueur_face3 >= longueur_max ? longueur_face3 :
151 return diametre_element;
156 return le_dom_vef.valeur();
159inline const Domaine_Cl_VEF& Op_Diff_VEF_Face_Penalise::domaine_cl()
const
161 return la_zcl_vef.valeur();
164inline const Domaine& Op_Diff_VEF_Face_Penalise::domaine()
const
int face_sommets(int i, int j) const
renvoie le numero du ieme sommet de la face num_face.
int elem_faces(int i, int j) const
renvoie le numero de le ieme face de la maille num_elem la facon dont ces faces sont numerotees est
const Domaine & domaine() const
void reduction(const IntList &Liste1, const IntList &Liste2, IntList &Liste_reduite) const
void faces_communes(const int Face1, const int Face2, IntList &Face_commune) const
fonction membre qui renvoie la liste des faces appartenant au voisinage de Face1 ET de Face2.
double signe(const int Face1, const int Face2) const
double diametre(const int Element) const
DoubleTab & ajouter(const DoubleTab &inconnue, DoubleTab &resu) const override
methode qui calcule la vitesse au temps n+1 lorsque le schema explicite est utilise.
void voisinage(const int Numero_face, IntList &Voisinage) const
methode qui calcule le voisinage d'une face.
DoubleTab & calculer(const DoubleTab &inconnue, DoubleTab &resu) const override
methode qui calcule la contribution de l'operateur.
double coefficient_penalisation(const int Numero_face) const
fonction membre qui retourne le coefficient de penalisation associee a chaque face du maillage primai...
double longueur(const int Face) const
int autre_face(const int Face1, const int Face2) const
fonction membre qui retourne la 3eme face de l'element Element si Face1 et Face2 appartiennent au mem...
int element_commun(const int Face1, const int Face2) const
fonction membre qui renvoie le numero de l'element contenant Face1 et Face2 s'il existe et renvoie -1...
const Domaine_VEF & domaine_vef() const