16#include <Champ_Face_PolyMAC_MPFA.h>
17#include <Op_Div_PolyMAC_MPFA.h>
18#include <Domaine_Cl_PolyMAC_family.h>
19#include <Navier_Stokes_std.h>
20#include <Schema_Temps_base.h>
21#include <Probleme_base.h>
22#include <EcrFicPartage.h>
23#include <Matrice_Morse.h>
24#include <Matrix_tools.h>
25#include <Array_tools.h>
36 const IntTab& f_e = domaine.face_voisins();
37 const int ne_tot = domaine.nb_elem_tot(), nf_tot = domaine.nb_faces_tot(),
40 Stencil stencil(0, 2);
42 for (
int f = 0; f < domaine.nb_faces(); f++)
43 for (
int i = 0; i < 2; i++)
45 const int e = f_e(f, i);
48 for (
int n = 0; n < N; n++)
52 tableau_trier_retirer_doublons(stencil);
60 const IntTab& f_e = domaine.face_voisins();
65 tab_flux_bords.
resize(domaine.nb_faces_bord(), 1);
68 for (
int f = 0; f < domaine.nb_faces(); f++)
70 for (
int i = 0; i < 2; i++)
72 const int e = f_e(f, i);
75 for (
int n = 0; n < N; n++)
76 div(e, n) += (i ? -1 : 1) * fs(f) * pf(f) * vit(f, n);
79 if (f < domaine.premiere_face_int())
80 for (
int n = 0; n < N; n++)
81 tab_flux_bords(f, n) = fs(f) * pf(f) * vit(f, n);
93 const IntTab& f_e = domaine.face_voisins();
96 for (
int f = 0; f < domaine.nb_faces(); f++)
97 for (
int i = 0; i < 2 ; i++)
99 const int e = f_e(f, i);
102 for (
int n = 0; n < N; n++)
103 mat(N * e + n, N * f + n) += (i ? 1 : -1) * fs(f) * pf(f);
: class Champ_Face_PolyMAC_MPFA
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
DoubleVect & porosite_face()
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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_Div_PolyMAC_MPFA
void contribuer_a_avec(const DoubleTab &, Matrice_Morse &matrice) const override
DOES NOTHING - to override in derived classes.
DoubleTab & ajouter(const DoubleTab &, DoubleTab &) const override
void dimensionner(Matrice_Morse &matrice) const override
DOES NOTHING - to override in derived classes.
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")