16#ifndef Champ_P1NC_included
17#define Champ_P1NC_included
19#include <Champ_P1NC_implementation.h>
20#include <Domaine_Cl_VEF.h>
21#include <Domaine_VEF.h>
53 virtual double norme_L2(
const Domaine&)
const;
61 virtual double norme_H1(
const Domaine&)
const;
62 virtual double norme_L2_H1(
const Domaine& dom)
const;
67 inline DoubleVect&
valeur_a_elem(
const DoubleVect& position, DoubleVect& val,
int le_poly)
const override
87 inline DoubleTab&
valeur_aux_elems(
const DoubleTab& positions,
const IntVect& les_polys, DoubleTab& tab_valeurs)
const override
92 inline DoubleVect&
valeur_aux_elems_compo(
const DoubleTab& positions,
const IntVect& les_polys, DoubleVect& tab_valeurs,
int ncomp)
const override
97 inline DoubleTab&
valeur_aux_elems_smooth(
const DoubleTab& positions,
const IntVect& les_polys, DoubleTab& tab_valeurs)
override
double valeur_a_sommet_compo(int num_som, int le_poly, int ncomp) const
DoubleTab & valeur_aux_sommets(const Domaine &dom, DoubleTab &ch_som) const override
double valeur_a_elem_compo(const DoubleVect &position, int le_poly, int ncomp) const override
DoubleVect & valeur_aux_elems_compo(const DoubleTab &positions, const IntVect &les_polys, DoubleVect &valeurs, int ncomp) const override
DoubleTab & remplir_coord_noeuds(DoubleTab &positions) const override
DoubleVect & valeur_aux_elems_compo_smooth(const DoubleTab &positions, const IntVect &les_polys, DoubleVect &valeurs, int ncomp)
Champ_P1NC_implementation()
DoubleVect & valeur_aux_sommets_compo(const Domaine &dom, DoubleVect &ch_som, int ncomp) const override
void filtrer_H1(DoubleTab &) const
int remplir_coord_noeuds_et_polys(DoubleTab &positions, IntVect &polys) const override
void filtrer_resu(DoubleTab &) const
DoubleTab & valeur_aux_elems_smooth(const DoubleTab &positions, const IntVect &les_polys, DoubleTab &valeurs)
DoubleTab & valeur_aux_centres_de_gravite(const Domaine &, DoubleTab &valeurs) const
Computes values at the centers of gravity for a P1NC field.
DoubleTab & valeur_aux_elems(const DoubleTab &positions, const IntVect &les_polys, DoubleTab &valeurs) const override
void filtrer_L2(DoubleTab &) const
DoubleVect & valeur_a_elem(const DoubleVect &position, DoubleVect &val, int le_poly) const override
void calcul_h_conv(const Domaine_Cl_VEF &, DoubleTab &, int temp_ref) const
double valeur_a_sommet_compo(int num_som, int le_poly, int ncomp) const override
renvoi la compo eme corrdonne des valeurs a l'element le_poly au sommet sommet
DoubleTab & valeur_aux_centres_de_gravite(const Domaine &dom, DoubleTab &tab_valeurs) const override
Cette methode, generique mais lente (calcul des centres de gravite, remplissage les_poly,...
void abortTimeStep() override
void cal_rot_ordre1(DoubleTab &) const
DoubleVect & valeur_aux_sommets_compo(const Domaine &dom, DoubleVect &val, int comp) const override
renvoie la compo eme valeur aux sommets de dom.
virtual double norme_H1(const Domaine &) const
DoubleTab & valeur_aux_sommets(const Domaine &dom, DoubleTab &val) const override
renvoie les valeurs aux sommets du Domaine dom
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps du champ inconnue.
virtual double norme_L2_H1(const Domaine &dom) const
DoubleTab & valeur_aux_elems_smooth(const DoubleTab &positions, const IntVect &les_polys, DoubleTab &tab_valeurs) override
void calcul_grad_T(const Domaine_Cl_VEF &, DoubleTab &) const
static DoubleVect & calcul_S_barre(const DoubleTab &, DoubleVect &, const Domaine_Cl_VEF &)
void calcul_y_plus(const Domaine_Cl_VEF &, DoubleVect &) const
void filtrer_H1(DoubleTab &x) const
DoubleTab & remplir_coord_noeuds(DoubleTab &positions) const override
void verifie_valeurs_cl() override
void gradient(DoubleTab &) const
int compo_normale_sortante(int) const
static DoubleTab & calcul_gradient(const DoubleTab &, DoubleTab &, const Domaine_Cl_VEF &)
DoubleTab & valeur_aux_elems(const DoubleTab &positions, const IntVect &les_polys, DoubleTab &tab_valeurs) const override
provoque une erreur ! doit etre surchargee par les classes derivees
void calcul_critere_Q(DoubleVect &) const
void filtrer_L2(DoubleTab &x) const
DoubleVect & valeur_a_elem(const DoubleVect &position, DoubleVect &val, int le_poly) const override
provoque une erreur ! doit etre surchargee par les classes derivees
Champ_base & affecter_(const Champ_base &) override
Affectation d'un OWN_PTR(Champ_base) generique (Champ_base) dans un champ inconnue.
void calcul_grad_U(const Domaine_Cl_VEF &, DoubleTab &) const
DoubleTab & trace(const Frontiere_dis_base &, DoubleTab &, double, int distant) const override
voir Champ_base Cas particulier (malheureusement) du Champ_P0_VDF :
static DoubleTab & calcul_duidxj_paroi(DoubleTab &, const DoubleTab &, const DoubleTab &, const DoubleTab &, const Domaine_Cl_VEF &)
int fixer_nb_valeurs_nodales(int nb_noeuds) override
int imprime(Sortie &, int) const override
DoubleVect & valeur_aux_elems_compo(const DoubleTab &positions, const IntVect &les_polys, DoubleVect &tab_valeurs, int ncomp) const override
provoque une erreur ! doit etre surchargee par les classes derivees
int remplir_coord_noeuds_et_polys(DoubleTab &positions, IntVect &polys) const override
NE FAIT RIEN Methode a surcharger.
void calcul_y_plus_diphasique(const Domaine_Cl_VEF &, DoubleVect &) const
void filtrer_resu(DoubleTab &x) const
const Domaine_VEF & domaine_vef() const override
double valeur_a_elem_compo(const DoubleVect &position, int le_poly, int ncomp) const override
provoque une erreur ! doit etre surchargee par les classes derivees
virtual double norme_L2(const Domaine &) const
DoubleVect & valeur_aux_elems_compo_smooth(const DoubleTab &positions, const IntVect &les_polys, DoubleVect &tab_valeurs, int ncomp) override
static double calculer_integrale_volumique(const Domaine_VEF &, const DoubleVect &, Ok_Perio ok)
classe Champ_base Cette classe est la base de la hierarchie des champs.
Champ_base()
Constructeur par defaut d'un Champ_base.
double temps() const
Renvoie le temps du champ.
virtual Champ_base & le_champ()=0
classe Frontiere_dis_base Classe representant une frontiere discretisee.
Classe de base des flux de sortie.