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 <<
"erreur dans 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))
classe Cond_lim Classe generique servant a representer n'importe quelle classe
static void verifier(const char *const msg, double)
Classe Dirichlet_homogene Cette classe est la classe de base de la hierarchie des conditions aux limi...
classe Dirichlet Cette classe est la classe de base de la hierarchie des conditions aux limites de ty...
void imposer_symetrie(DoubleTab &, int tous_les_sommets_sym=0) const
Impose les conditions de symetrie c.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
int nb_cond_lim() const
Renvoie le nombre de conditions aux limites.
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
const DoubleVect & volumes_sommets_thilde() const
int face_sommets(int i, int j) const
renvoie le numero du ieme sommet de la face num_face.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
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)
Fixer la nature d'un champ: scalaire, multiscalaire, vectoriel.
virtual Nature_du_champ nature_du_champ() const
int num_premiere_face() const
Classe Matrice_Base Classe de base de la hierarchie des matrices.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
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
classe Solveur_Masse_base Represente la matrice de masse d'une equation.
virtual Matrice_Base & ajouter_masse(double dt, Matrice_Base &matrice, int penalisation=1) 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")