16#include <Terme_Source_Canal_perio_VDF_Face.h>
17#include <Fluide_Dilatable_base.h>
18#include <Pb_Thermohydraulique.h>
19#include <Neumann_sortie_libre.h>
20#include <Dirichlet_homogene.h>
21#include <Domaine_Cl_VDF.h>
22#include <Periodique.h>
25#include <Domaine_VDF.h>
46 const Domaine_VF& domaine_VF = le_dom_VDF.valeur();
48 const IntVect& orientation = le_dom_VDF->orientation();
55 int n_bord, ndeb, nfin;
56 for (n_bord = 0; n_bord < domaine_VF.
nb_front_Cl(); n_bord++)
72 for (
int num_face = ndeb; num_face < nfin; num_face++)
74 double vol = volumes_entrelaces(num_face) * porosite_surf(num_face);
75 ncomp = orientation(num_face);
76 secmem(num_face) += s[ncomp] * vol;
87 int nb_faces = domaine_VF.
nb_faces();
88 for (
int num_face = ndeb; num_face < nb_faces; num_face++)
90 double vol = volumes_entrelaces(num_face) * porosite_surf(num_face);
91 ncomp = orientation(num_face);
92 secmem(num_face) += s[ncomp] * vol;
99 const Domaine_VF& domaine_VF = le_dom_VDF.valeur();
103 int ndeb, nfin, num_face;
105 for (
int n_bord = 0; n_bord < nb_bords; n_bord++)
119 nfin = ndeb + le_bord.
nb_faces() / 2;
121 if (
equation().probleme().is_dilatable() == 1)
130 for (num_face = ndeb; num_face < nfin; num_face++)
132 double debit_face = porosite_surf[num_face] * vitesse[num_face] * std::fabs(domaine_VF.
face_normales(num_face, axe));
133 debit_e += tab_rho_face[num_face] * debit_face;
138 for (num_face = ndeb; num_face < nfin; num_face++)
140 double debit_face = porosite_surf[num_face] * vitesse[num_face] * std::fabs(domaine_VF.
face_normales(num_face, axe));
141 debit_e += debit_face;
147 debit_e =
mp_sum(debit_e);
DoubleTab & valeurs() override
Returns the array of field values at the current time.
class Cond_lim Generic class used to represent any class
Classe Dirichlet_homogene This class is the base class of the hierarchy of homogeneous Dirichlet-type...
Dirichlet This class is the base class of the hierarchy of Dirichlet-type boundary conditions.
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.
int nb_faces() const
Returns the total number of faces.
DoubleVect & volumes_entrelaces()
virtual double face_normales(int face, int comp) const
int premiere_face_int() const
A face is internal if and only if it separates two elements.
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,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
Base class for a dilatable fluid, inheriting from Fluide_base.
int num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the geometric boundary.
DoubleVect & porosite_face()
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.
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 Periodique This class represents a periodic boundary condition.
int direction_periodicite() const
static double mp_sum(double)
Computes the sum of x over all processors in the current group.
Base class for output streams.
Symetrie On symmetry faces, the following properties hold:
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl) const override
void associer_domaines(const Domaine_dis_base &, const Domaine_Cl_dis_base &) override
void calculer_debit(double &) const override
Source term to keep a constant flow rate in a channel with periodic boundary conditions.
int direction_ecoulement_
ArrOfDouble source() const
Term source calculation (called by VDF and VEF implementations) TODO: returning an ArrOfDouble is baa...