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
Returns the compo-th coordinate of the values at the element le_poly at the vertex sommet.
DoubleTab & valeur_aux_centres_de_gravite(const Domaine &dom, DoubleTab &tab_valeurs) const override
This method, generic but slow (calculation of gravity centers, filling les_poly, use of shape functio...
void abortTimeStep() override
void cal_rot_ordre1(DoubleTab &) const
DoubleVect & valeur_aux_sommets_compo(const Domaine &dom, DoubleVect &val, int comp) const override
Returns the compo-th value at the vertices of dom.
virtual double norme_H1(const Domaine &) const
DoubleTab & valeur_aux_sommets(const Domaine &dom, DoubleTab &val) const override
Returns the values at the vertices of the Domain dom.
void mettre_a_jour(double temps) override
Performs a time update of the unknown field.
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
Causes an error! Must be overridden by derived classes.
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
Causes an error! Must be overridden by derived classes.
Champ_base & affecter_(const Champ_base &) override
Assignment of a generic OWN_PTR(Champ_base) (Champ_base) to an unknown field.
void calcul_grad_U(const Domaine_Cl_VEF &, DoubleTab &) const
DoubleTab & trace(const Frontiere_dis_base &, DoubleTab &, double, int distant) const override
See Champ_base. Special case (unfortunately) of 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
Causes an error! Must be overridden by derived classes.
int remplir_coord_noeuds_et_polys(DoubleTab &positions, IntVect &polys) const override
DOES NOTHING. Method to override.
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
Causes an error! Must be overridden by derived classes.
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)
class Champ_base This class is the base of the fields hierarchy.
Champ_base()
Default constructor of a Champ_base.
double temps() const
Returns the time of the field.
virtual Champ_base & le_champ()=0
class Frontiere_dis_base Class representing a discretized boundary.
Base class for output streams.