16#include <Terme_Source_Qdm_Elem_DG.h>
17#include <Neumann_sortie_libre.h>
18#include <Domaine_Cl_DG.h>
19#include <Neumann_homogene.h>
20#include <Domaine_DG.h>
21#include <Champ_Uniforme.h>
22#include <BasisFunction.h>
23#include <Equation_base.h>
24#include <Milieu_base.h>
26#include <Field_base.h>
44 const int nb_comp = la_source->nb_comp();
48 noms.add(
"Terme_Source_DG");
49 unites.add(
"kg.m.s^-1");
52 la_source_DG->valeurs() = 0.;
53 la_source_DG->affecter(la_source);
85 const int nb_bfunc = bfunc.
nb_bfunc();
90 DoubleTab product(nb_pts_integ_max);
92 DoubleTab fbase(nb_bfunc, nb_pts_integ_max);
96 for (
int elem = 0; elem < dom.
nb_elem(); elem++)
99 for (
int d = 0; d < dim; d++)
100 for (
int fb = 0; fb < nb_bfunc; fb++)
103 product(k) = la_source_DG->valeurs()(sub_type(
Champ_Uniforme,la_source.valeur()) ? 0 : elem, k + d*nb_pts_integ_max) * fbase(fb, k);
112 la_source->mettre_a_jour(temps);
Manages the local polynomial basis functions for Discontinuous Galerkin elements.
void eval_bfunc(const Quadrature_base &quad, const int &nelem, DoubleTab &fbasis) const
Evaluates all basis functions at the element quadrature points.
const int & nb_bfunc() const
void discretiser_champ(const Motcle &directive, const Domaine_dis_base &z, const Nom &nom, const Nom &unite, int nb_comp, int nb_pas_dt, double temps, OWN_PTR(Champ_Inc_base)&champ, const Nom &sous_type=NOM_VIDE) const
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Quadrature_base & get_quadrature(int order) const
const BasisFunction & get_basisFunction(int order) const
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,...
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
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 Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static int Get_order_for(const Nom &n)
const Discretisation_base & discretisation() const
Renvoie la discretisation associee au probleme.
int nb_pts_integ(int e) const
int nb_pts_integ_max() const
double compute_integral_on_elem(int num_elem, Parser_U &parser) const
Classe de base des flux de sortie.
classe Source_base Un objet Source_base est un terme apparaissant au second membre d'une
DG momentum source term for element-based velocity unknowns.
void mettre_a_jour(double) override
DOES NOTHING - to override in derived classes.
void associer_domaines(const Domaine_dis_base &, const Domaine_Cl_dis_base &) override
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={}) const override
Assembles the momentum source contribution into the right-hand side.