16#include <Op_Grad_PolyMAC_CDO_Face.h>
17#include <Neumann_sortie_libre.h>
18#include <Check_espace_virtuel.h>
19#include <Domaine_Cl_PolyMAC_family.h>
20#include <Champ_Elem_PolyMAC_CDO.h>
21#include <Navier_Stokes_std.h>
22#include <Schema_Temps_base.h>
23#include <Probleme_base.h>
24#include <Matrix_tools.h>
25#include <Array_tools.h>
39 ref_domaine = zPolyMAC_HFV;
40 ref_dcl = zclPolyMAC_HFV;
54 Stencil stencil(0, 2);
56 for (
int f = 0; f < zPolyMAC_HFV.
nb_faces(); f++)
57 for (
int i = 0; i < 2; i++)
64 tableau_trier_retirer_doublons(stencil);
72 assert_espace_virtuel_vect(inco);
75 const DoubleVect& face_surfaces = zPolyMAC_HFV.
face_surfaces();
81 int ndeb, nfin, num_face;
82 for (
int n_bord = 0; n_bord < zPolyMAC_HFV.
nb_front_Cl(); n_bord++)
97 for (num_face = ndeb; num_face < nfin; num_face++)
99 double P_imp = la_cl_typee.
flux_impose(num_face - ndeb);
104 resu(num_face) += (coef * (P_imp - inco(n0)));
110 resu(num_face) += (coef * (inco(n1) - P_imp));
123 resu(num_face) += coef * (inco(n1) - inco(n0));
143 assert_espace_virtuel_vect(inco);
146 const DoubleVect& face_surfaces = zPolyMAC_HFV.
face_surfaces();
152 int ndeb, nfin, num_face;
153 for (
int n_bord = 0; n_bord < zPolyMAC_HFV.
nb_front_Cl(); n_bord++)
167 for (num_face = ndeb; num_face < nfin; num_face++)
173 la_matrice(num_face, n0) += coef;
179 la_matrice(num_face, n1) -= coef;
192 la_matrice(num_face, n0) += coef;
193 la_matrice(num_face, n1) -= coef;
classe Cond_lim Classe generique servant a representer n'importe quelle classe
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
virtual const DoubleVect & face_surfaces() const
int nb_faces() const
renvoie le nombre global de faces.
int nb_faces_tot() const
renvoie le nombre total de faces.
int premiere_face_int() const
une face est interne ssi elle separe deux elements.
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
int num_premiere_face() const
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
classe Neumann_sortie_libre Cette classe represente une frontiere ouverte sans vitesse imposee
virtual double flux_impose(int i) const
Renvoie la valeur du flux impose sur la i-eme composante du champ representant le flux a la frontiere...
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
class Op_Grad_PolyMAC_CDO_Face
void associer(const Domaine_dis_base &, const Domaine_Cl_dis_base &, const Champ_Inc_base &) override
void contribuer_a_avec(const DoubleTab &inco, Matrice_Morse &matrice) const override
DOES NOTHING - to override in derived classes.
DoubleTab & ajouter(const DoubleTab &, DoubleTab &) const override
void dimensionner(Matrice_Morse &) const override
DOES NOTHING - to override in derived classes.
DoubleTab & calculer(const DoubleTab &, DoubleTab &) const override
int impr(Sortie &os) const override
DOES NOTHING - to override in derived classes.
Classe Operateur_Grad_base Cette classe est la base de la hierarchie des operateurs representant.
void contribuer_a_avec(const DoubleTab &, Matrice_Morse &) const override
DOES NOTHING - to override in derived classes.
DoubleTab & ajouter(const DoubleTab &inco, DoubleTab &secmem) const override
void dimensionner(Matrice_Morse &) const override
DOES NOTHING - to override in derived classes.
virtual int has_interface_blocs() const
Classe de base des flux de sortie.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")