16#include <Champ_implementation_sommet.h>
17#include <Champ_base.h>
19#include <Domaine_VF.h>
25 int nb_components = ch_base.
nb_comp();
26 const DoubleTab& values = ch_base.
valeurs();
27 assert(result.
size() == nb_components);
31 DoubleTab resu(1, nb_components);
35 for (
int j = 0; j < nb_components; j++) result(j) = resu(j, 0);
42 const DoubleTab& values = ch_base.
valeurs();
44 assert(ncomp < ch_base.
nb_comp());
58 const DoubleTab& values = ch_base.
valeurs();
68 const DoubleTab& values = ch_base.
valeurs();
69 int nb_polys = polys.
size();
72 assert(ncomp < ch_base.
nb_comp());
73 assert(result.
size() == nb_polys);
75 DoubleTab resu(nb_polys, 1);
77 for (
int i = 0; i < nb_polys; i++) result(i) = resu(i, 0);
84 const IntTab& f_s = domaine.face_sommets();
86 int i, f, fb, s, ns, n, N = val.
line_size();
87 DoubleTrav result(domaine.xv_bord().dimension_tot(0), N);
88 for (f = 0; f < domaine.nb_faces_tot(); f++)
89 if ((fb = domaine.fbord(f)) >= 0)
91 for (ns = 0, i = 0; i < f_s.
dimension(1) && (s = f_s(f, i)) >= 0; i++)
92 for (ns++, n = 0; n < N; n++)
93 result(fb, n) += val(s, n);
94 for (n = 0; n < N; n++) result(fb, n) /= ns;
103 positions = domaine.les_sommets();
111 positions = domaine.les_sommets();
112 domaine.chercher_elements(positions, polys);
119 const DoubleTab& values = ch_base.
valeurs();
124 for (
int i = 0; i < size; i++)
125 for (
int n = 0; n < N; n++)
126 result(i, n) = values(i, n);
134 const DoubleTab& values = ch_base.
valeurs();
138 assert(ncomp < ch_base.
nb_comp());
139 assert(result.
size() == size);
140 assert(values.
nb_dim() == 2);
143 for (
int i = 0; i < size; i++) result(i) = values(i, ncomp);
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
DoubleTab & valeur_aux_elems(const DoubleTab &positions, const IntVect &polys, DoubleTab &result) const override
DoubleTab & valeur_aux_sommets_impl(DoubleTab &result) const override
DoubleVect & valeur_aux_elems_compo(const DoubleTab &positions, const IntVect &polys, DoubleVect &result, int ncomp) const override
virtual void value_interpolation(const DoubleTab &positions, const ArrOfInt &cells, const DoubleTab &values, DoubleTab &resu, int ncomp=-1) const =0
DoubleTab & remplir_coord_noeuds(DoubleTab &positions) const override
DoubleTab valeur_aux_bords() const
double valeur_a_elem_compo(const DoubleVect &position, int poly, int ncomp) const override
DoubleVect & valeur_a_elem(const DoubleVect &position, DoubleVect &result, int poly) const override
DoubleVect & valeur_aux_sommets_compo_impl(DoubleVect &result, int ncomp) const override
int remplir_coord_noeuds_et_polys(DoubleTab &positions, IntVect &polys) const override
const Domaine & get_domaine_geom() const
virtual Champ_base & le_champ()=0
const Domaine_VF & get_domaine_dis() const
virtual int nb_comp() const
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension_tot(int) const override
_SIZE_ dimension(int d) const