16#ifndef Domaine_VEF_included
17#define Domaine_VEF_included
19#include <TRUSTArray_kokkos.tpp>
20#include <Elem_VEF_base.h>
21#include <TRUST_Deriv.h>
22#include <Domaine_VF.h>
68 void swap(
int,
int,
int);
91 inline int get_P1Bulle()
const { assert(P1Bulle != -1);
return P1Bulle; }
92 inline int get_alphaE()
const { assert(alphaE != -1);
return alphaE; }
93 inline int get_alphaS()
const { assert(alphaS != -1);
return alphaS; }
94 inline int get_alphaA()
const { assert(alphaA != -1);
return alphaA; }
95 inline int get_alphaRT()
const { assert(alphaRT != -1);
return alphaRT; }
112 double h_carre = 1.e30;
117 BigDoubleTab facette_normales_;
119 DoubleTab facette_normales_;
121 DoubleTab vecteur_face_facette_;
122 IntVect orientation_;
125 DoubleVect volumes_som_, volumes_aretes;
126 ArrOfInt renum_arete_perio;
129 int P1Bulle = -1, alphaE = -1, alphaS = -1, alphaA = -1;
131 int modif_div_face_dirichlet = -1;
132 int cl_pression_sommet_faible = -1;
140KOKKOS_INLINE_FUNCTION
int oriente_normale(
int face_opp,
int elem2, CIntTabView face_voisins)
142 return (face_voisins(face_opp, 0) == elem2) ? 1 : -1;
146void exemple_champ_non_homogene(
const Domaine_VEF&, DoubleTab&);
168 else if (!alphaE && !alphaS)
170 else if (!alphaE && alphaS)
172 else if (!alphaS && alphaE)
Empty class used as a base for all the arrays.
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
virtual void creer_tableau_p1bulle(Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const
const auto & facette_normales() const
void verifie_ok_arete(int) const
int numero_premiere_arete() const
void construire_ok_arete()
const IntVect & get_ok_arete() const
int nb_faces_joint() const
IntVect & rang_elem_non_std()
void modifier_pour_Cl(const Conds_lim &) override
double dist_face_elem1(int num_face, int n1) const override
int numero_premier_sommet() const
double dist_face_elem0(int num_face, int n0) const override
DoubleTab & vecteur_face_facette()
int premiere_face_std() const
void calculer_volumes_entrelaces()
int numero_premier_element() const
int nb_faces_non_std() const
double carre_pas_du_maillage() const
const DoubleVect & get_volumes_aretes() const
int get_modif_div_face_dirichlet() const
void typer_elem(Domaine &) override
int get_cl_pression_sommet_faible() const
const Elem_VEF_base & type_elem() const
const IntVect & rang_elem_non_std() const
const ArrOfInt & get_renum_arete_perio() const
virtual void discretiser_suite(const VEF_discretisation &)
virtual const MD_Vector & md_vector_p1b() const
const DoubleVect & volume_aux_sommets() const
const DoubleVect & carre_pas_maille() const
void construire_renum_arete_perio(const Conds_lim &)
auto & facette_normales()
void discretiser() override
double volume_au_sommet(int som) const
IntVect rang_elem_non_std_
virtual const DoubleVect & face_surfaces() const
int nb_faces() const
renvoie le nombre global de faces.
double dot(const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
Classe de base des flux de sortie.