16#include <Solveur_Masse_EF.h>
17#include <Domaine_Cl_EF.h>
18#include <Domaine_EF.h>
20#include <Dirichlet_homogene.h>
22#include <Equation_base.h>
57 const Domaine_EF& domaine_EF = le_dom_EF.valeur();
61 int nfa = domaine_EF.
nb_som();
62 int nbsom=domaine_EF.
nb_som();
66 Cerr <<
"error in Solveur_Masse_EF : ";
67 Cerr <<
"nombre de faces : " << nfa
68 <<
" taille du second membre : " << sm.
dimension(0) << finl;
72 int nb_som_face=faces_sommets.
dimension(1);
77 for (
int som=0; som<nbsom; som++)
79 sm(som) /= (volumes_sommets_thilde(som));
89 for (
int n_bord=0; n_bord<nb_cl; n_bord++)
95 int num2 = num1 + le_bord.
nb_faces();
102 for (face=num1; face<num2; face++)
103 for (
int s=0; s<nb_som_face; s++)
105 int som=faces_sommets(face,s);
117 for (
int som=0; som<nbsom; som++)
119 for (
int comp=0; comp<nbcomp; comp++)
120 sm(som,comp) /= (volumes_sommets_thilde(som));
132 for (
int n_bord=0; n_bord<nb_cl; n_bord++)
138 int num2 = num1 + le_bord.
nb_faces();
140 if ( (sub_type(
Dirichlet,la_cl.valeur()))
145 for (face=num1; face<num2; face++)
146 for (
int s=0; s<nb_som_face; s++)
148 int som=faces_sommets(face,s);
149 for (
int comp=0; comp<nbcomp; comp++)
165 le_dom_EF = ref_cast(
Domaine_EF, le_dom_dis_base);
178 if (penalisation||(le_dom_Cl_EF->equation().inconnue().nature_du_champ()!=vectoriel))
193 if (penalisation||(le_dom_Cl_EF->equation().inconnue().nature_du_champ()!=vectoriel))
class Cond_lim Generic class used to represent any class
static void verifier(const char *const msg, double)
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.
void imposer_symetrie(DoubleTab &, int tous_les_sommets_sym=0) const
Imposes symmetry conditions, i.e. cancels the field components along the normal(s).
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
int nb_cond_lim() const
Returns the number of boundary conditions.
const Cond_lim & les_conditions_limites(int) const
Returns the i-th boundary condition.
const DoubleVect & volumes_sommets_thilde() const
int face_sommets(int i, int j) const
Returns the index of the i-th vertex of face num_face.
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 Champ_Inc_base & inconnue() const =0
virtual Nature_du_champ fixer_nature_du_champ(Nature_du_champ nat)
Sets the nature of a field: scalar, multiscalar, vectorial.
virtual Nature_du_champ nature_du_champ() const
int num_premiere_face() const
Matrice_Base class - Base class of the matrix hierarchy.
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
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 const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
void associer_domaine_cl_dis_base(const Domaine_Cl_dis_base &) override
Matrice_Base & ajouter_masse(double dt, Matrice_Base &matrice, int penalisation=1) const override
DoubleTab & appliquer_impl(DoubleTab &) const override
void associer_domaine_dis_base(const Domaine_dis_base &) override
Solveur_Masse_base Represents the mass matrix of an equation.
virtual Matrice_Base & ajouter_masse(double dt, Matrice_Base &matrice, int penalisation=1) const
Base class for output streams.
_SIZE_ dimension(int d) const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")