16#include <Masse_VDF_Elem.h>
17#include <Equation_base.h>
18#include <Pb_Multiphase.h>
19#include <Milieu_base.h>
20#include <Domaine_Cl_VDF.h>
21#include <Domaine_VDF.h>
41 const Domaine_VDF& domaine_VDF = le_dom_VDF.valeur();
43 int nb_elem = domaine_VDF.
nb_elem();
49 int nb_comp = sm.
size() / nb_elem;
51 assert((nb_comp * nb_elem == sm.
size()) || (nb_dim == 3));
53 for (
int num_elem = 0; num_elem < nb_elem; num_elem++)
54 sm(num_elem) /= (volumes(num_elem) * porosite_elem(num_elem));
57 for (
int num_elem = 0; num_elem < nb_elem; num_elem++)
58 for (
int k = 0; k < nb_comp; k++)
59 sm(num_elem, k) /= (volumes(num_elem) * porosite_elem(num_elem));
66 for (
int num_elem = 0; num_elem < nb_elem; num_elem++)
67 for (
int k = 0; k < d1; k++)
68 for (
int d = 0; d < d2; d++)
69 sm(num_elem, k, d) /= (volumes(num_elem) * porosite_elem(num_elem));
73 Cerr <<
"Masse_VDF_Elem::appliquer ne peut pas s'appliquer a un DoubleTab a " << sm.
nb_dim() <<
" dimensions" << finl;
double volumes(int i) const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
void preparer_calcul() override
void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl={}) const override
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, double dt, const tabs_t &semi_impl, int resoudre_en_increments) const override
DoubleTab & appliquer_impl(DoubleTab &) const override
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, double dt, const tabs_t &semi_impl, int resoudre_en_increments) const override
void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl) const override
DoubleVect & porosite_elem()
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
virtual int debute_par(const char *const n) const
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 const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
classe Pb_Multiphase Cette classe represente un probleme de thermohydraulique multiphase de type "3*N...
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
void preparer_calcul_proto()
void associer_masse_proto(const Solveur_Masse_base &, const Domaine_VF &)
void dimensionner_blocs_proto(matrices_t, const tabs_t &semi_impl={}) const
void ajouter_blocs_proto(matrices_t, DoubleTab &, double, const tabs_t &, int) const
DoubleTab & appliquer_impl_proto(DoubleTab &) const
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")