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;
class Cond_lim Generic class used to represent any class
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
const Cond_lim & les_conditions_limites(int) const
Returns the i-th boundary condition.
virtual const DoubleVect & face_surfaces() const
int nb_faces() const
Returns the total number of faces.
int nb_faces_tot() const
Returns the total number of faces.
int premiere_face_int() const
A face is internal if and only if it separates two elements.
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
Class defining operators and methods for all reading operation in an input flow (file,...
int num_premiere_face() const
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
Neumann_sortie_libre This class represents an open boundary without imposed velocity.
virtual double flux_impose(int i) const
Returns the value of the imposed flux on the i-th component of the field representing the flux at the...
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_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 This class is the base of the hierarchy of operators representing.
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
Base class for output streams.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")