16#include <Masse_DG_Elem.h>
17#include <Champ_Elem_DG.h>
18#include <TRUSTTab_parts.h>
19#include <Equation_base.h>
20#include <Matrix_tools.h>
21#include <Array_tools.h>
22#include <BasisFunction.h>
53 if (le_dom_dg_->gram_schmidt())
55 const DoubleVect& volume = le_dom_dg_->volumes();
57 tab_divide_any_shape(sm, volume);
65 const BasisFunction& bfunc = le_dom_dg_->get_basisFunction(order);
66 const int nb_bfunc = bfunc.
nb_bfunc();
72 DoubleTab invMsm, temp_sm;
73 invMsm.
copy(sm, RESIZE_OPTIONS::COPY_INIT);
74 temp_sm.
copy(sm, RESIZE_OPTIONS::COPY_INIT);
76 for (
int num_elem = 0; num_elem < le_dom_dg_->nb_elem(); num_elem++)
79 for (
int d = 0 ; d<dim; d++)
81 res.
ref_array(temp_sm, num_elem*dim*nb_bfunc + d*nb_bfunc, nb_bfunc);
82 loc.
ref_array(invMsm, num_elem*dim*nb_bfunc + d*nb_bfunc, nb_bfunc);
87 sm.
copy(temp_sm, RESIZE_OPTIONS::COPY_INIT);
Manages the local polynomial basis functions for Discontinuous Galerkin elements.
const int & nb_bfunc() const
const int & get_default_quadrature_order() const
const Matrice_Dense eval_invMassMatrix(const Quadrature_base &quad, const int &nelem) const
Computes the inverse of the local L2 mass matrix for element nelem.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Champ_Inc_base & inconnue() const =0
const Nom & le_nom() const override
Returns the name of the field.
Concrete DG mass operator for element-based unknowns.
DoubleTab & appliquer_impl(DoubleTab &) const override
Applies the inverse mass matrix M^{-1} to the right-hand side vector sm in-place.
Abstract base class for the DG mass matrix operator.
virtual DoubleVect & multvect_(const DoubleVect &, DoubleVect &) const
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.
virtual int debute_par(const char *const n) const
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 int Get_order_for(const Nom &n)
Base class for output streams.
void ref_array(TRUSTArray< _TYPE_, _SIZE_ > &, _SIZE_ start=0, _SIZE_ sz=-1) override
void copy(const TRUSTTab &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")