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);
Transport equation for the interfacial area.
class Champ_Don_Fonc_xyz This class represents a data field that is a function
: class Champ_Elem_PolyMAC_MPFA
: class Champ_Face_PolyMAC_MPFA
DoubleTab & valeurs() override
Returns the array of field values at the current time.
virtual DoubleTab & valeurs()=0
class Conds_lim This class represents a vector of boundary conditions.
const Cond_lim & les_conditions_limites(int) const
Returns the i-th boundary condition.
Echange_impose_base: This boundary condition is used only for the energy equation.
Class defining operators and methods for all reading operation in an input flow (file,...
class Equation_base The role of an equation is the calculation of one or more fields....
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the discretized boundary condition domain associated with the equation.
Classe Frottement_impose_base Base class for Navier-type boundary conditions (v.
DoubleVect & porosite_elem()
bool has_masse_volumique() const
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
class Nom: a character string for naming TRUST objects.
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_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
Associates the operator with the domaine_dis, the domaine_Cl_dis, and the unknown of its 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()
Associates the operator with the domaine_dis, the domaine_Cl_dis, and the unknown of its equation.
Multiphase thermohydraulics problem of type "3*N equations":
static void abort()
Abort routine for TRUST on a fatal error.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
_SIZE_ dimension_tot(int) const override