16#include <Echange_contact_PolyMAC_MPFA.h>
17#include <Op_Diff_PolyMAC_MPFA_base.h>
18#include <Frottement_impose_base.h>
19#include <Champ_Elem_PolyMAC_MPFA.h>
20#include <Champ_Face_PolyMAC_MPFA.h>
21#include <Champ_Don_Fonc_xyz.h>
22#include <Domaine_Cl_PolyMAC_family.h>
23#include <Aire_interfaciale.h>
24#include <Champ_Uniforme.h>
25#include <Pb_Multiphase.h>
26#include <Milieu_base.h>
54 if ((N_nu == N_mil) | (N_nu == N))
56 else if ((N_nu == N_mil * D) | (N_nu == N * D))
58 else if ((N_nu == N_mil * D * D) | (N_nu == N * D * D))
59 nu_.resize(0, N, D, D);
61 Process::exit(
Nom(
"Op_Diff_PolyMAC_MPFA_base : diffusivity component count ") +
Nom(N_nu) +
" not among (" +
Nom(N) +
", " +
Nom(N * D) +
", " +
Nom(N * D * D) +
")!");
64 domaine.domaine().creer_tableau_elements(
nu_);
80 N_nu =
nu_.line_size(), N_nu_src = nu_src.
line_size(), mult = N_nu / N;
81 assert(N_nu % N == 0);
95 if (N_nu == N && N_nu_src == N_mil)
96 for (e = 0; e < domaine.nb_elem_tot(); e++)
97 for (n = 0; n < N; n++)
98 nu_.addr()[N_nu * e + n] = nu_src(!c_nu * e, n);
99 else if (N_nu == N * D && N_nu_src == N_mil)
100 for (e = 0; e < domaine.nb_elem_tot(); e++)
101 for (n = 0; n < N; n++)
102 for (d = 0; d < D; d++)
103 nu_(e, n, d) = nu_src(!c_nu * e, n);
104 else if (N_nu == N * D * D && (N_nu_src == N_mil || N_nu_src == N_mil * D))
105 for (e = 0; e < domaine.nb_elem_tot(); e++)
106 for (n = 0; n < N; n++)
107 for (d = 0; d < D; d++)
108 for (db = 0; db < D; db++)
109 nu_(e, n, d, db) = (d == db) * nu_src(!c_nu * e, N_nu_src == N_mil ? n : D * n + d);
115 for (e = 0; e < domaine.nb_elem_tot(); e++)
116 for (n = 0, i = 0; n < N; n++)
117 for (m = 0; m < mult; m++, i++)
129 if (!domaine.domaine().mesh_update_required() && !full_stencil &&
phif_a_jour_)
133 domaine.fgrad(ch.
valeurs().
line_size(), 0, la_zcl_poly_->les_conditions_limites(), fcl, &
nu(), &
som_ext, sub_type(
Champ_Face_PolyMAC_MPFA, ch), full_stencil,
phif_d,
phif_e,
phif_c);
classe Aire_interfaciale Equation de transport de l'aire interfaciale
class Champ_Don_Fonc_xyz Cette classe represente un champ de donnees fonction
: class Champ_Elem_PolyMAC_MPFA
: class Champ_Face_PolyMAC_MPFA
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
virtual DoubleTab & valeurs()=0
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
classe Echange_impose_base: Cette condition limite sert uniquement pour l'equation d'energie.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Classe Frottement_impose_base Classe de base pour des conditions aux limites de type Navier (v.
DoubleVect & porosite_elem()
bool has_masse_volumique() const
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
class Nom Une chaine de caractere pour nommer les objets de TRUST
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_Diff_PolyMAC_CDO_Gen_base
virtual int dimension_min_nu() const
virtual void modifier_mu(DoubleTab &) const
const Champ_base & diffusivite() const override
const DoubleTab & nu() const
class Op_Diff_PolyMAC_MPFA_base
void completer() override
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
void update_phif(int full_stencil=0) const
void mettre_a_jour(double t) override
DOES NOTHING - to override in derived classes.
void update_nu() const override
virtual void mettre_a_jour(double temps)
DOES NOTHING - to override in derived classes.
virtual void completer()
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
classe Pb_Multiphase Cette classe represente un probleme de thermohydraulique multiphase de type "3*N...
static void abort()
Routine de sortie de Trio-U sur une erreur abort().
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ dimension_tot(int) const override