17#ifndef Domaine_DG_included
18#define Domaine_DG_included
20#include <Domaine_Poly_base.h>
22#include <Matrix_tools.h>
56 double compute_L1_norm(
const DoubleVect& val_source,
const bool basis_function,
const int order)
const override;
57 double compute_L2_norm(
const DoubleVect& val_source,
const bool basis_function,
const int order)
const override;
58 void compute_average(
const DoubleVect& val_source,
double& sum,
double& average,
const bool basis_function,
const int order)
const override;
59 void compute_average_porosity(
const DoubleVect& val_source,
const DoubleVect& porosity,
double& sum,
double& average,
const bool basis_function,
const int order)
const override;
70 std::shared_ptr<Quadrature_base>
quad1_;
71 std::shared_ptr<Quadrature_base>
quad3_;
72 std::shared_ptr<Quadrature_base>
quad5_;
97 mutable std::map<BasisFunction_Key, std::shared_ptr<BasisFunction>>
bfunc_maps_;
Manages the local polynomial basis functions for Discontinuous Galerkin elements.
std::shared_ptr< Quadrature_base > quad3_
std::shared_ptr< Quadrature_base > quad1_
void init_equiv() const override
New feature in Trust, not yet available in DG, ask Elie.
bool build_nfaces_elem_()
Create an array that store the number of faces per element.
void get_ind_integ_points(IntTab &ind_integ_points) const override
Create the indirection that give for each cell, the index number of the first integration point.
int get_max_nb_integ_points() const override
void discretiser() override
Compute mesh parameters, allocate quadratures and link them to the domain.
const DoubleTab & get_rho() const
double compute_L1_norm(const DoubleVect &val_source, const bool basis_function, const int order) const override
Compute L_1 norm.
const DoubleTab & get_dia() const
std::map< BasisFunction_Key, std::shared_ptr< BasisFunction > > bfunc_maps_
const DoubleTab & get_per() const
void set_default_order(int order)
Set the global default order.
void get_nb_integ_points(IntTab &nb_integ_points) const override
Give an IntTab that contains the number of integration points for each cell.
void calculer_h_carre() override
Should disappear, as well as h_carre, as we have dia_, this come with a refactoring of Domaine_Poly_b...
const Stencil & get_stencil_sorted() const
void compute_mesh_param()
Compute geometric quantities used for the computation TODO :: Put this in the Domain_Poly_base and de...
std::shared_ptr< Quadrature_base > quad5_
double compute_L2_norm(const DoubleVect &val_source, const bool basis_function, const int order) const override
Compute L_2 norm.
void compute_average(const DoubleVect &val_source, double &sum, double &average, const bool basis_function, const int order) const override
Compute average.
const Quadrature_base & get_quadrature() const
const TRUST_Deriv< Elem_poly_base > get_type_elem() const
const DoubleTab & get_sig() const
const bool & gram_schmidt() const
const DoubleTab & get_invdia() const
void get_position(DoubleTab &positions) const override
Compute positions of the quadrature points.
void compute_average_porosity(const DoubleVect &val_source, const DoubleVect &porosity, double &sum, double &average, const bool basis_function, const int order) const override
Compute average with porosity.
const IntTab & get_nfaces_elem() const
const BasisFunction & get_basisFunction(int order) const
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
bool operator<(const BasisFunction_Key &other) const