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
Returns the array of field values at the current time.
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
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
DoubleVect & porosite_face()
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
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.
Base class for output streams.
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")