101template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
102std::enable_if_t<T == Champ_Don_Type::LU, DoubleVect&>
103TRUSTChamp_Don_generique<_TYPE_>::valeur_a_(
const DoubleVect& x, DoubleVect& val)
const
106 mon_domaine->chercher_elements(x,le_poly);
116template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
117std::enable_if_t<T != Champ_Don_Type::LU, DoubleVect&>
118TRUSTChamp_Don_generique<_TYPE_>::valeur_a_elem_(
const DoubleVect& x, DoubleVect& val,
int )
const
120 return valeur_a(x,val);
123template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
124std::enable_if_t<T == Champ_Don_Type::LU, DoubleVect&>
125TRUSTChamp_Don_generique<_TYPE_>::valeur_a_elem_(
const DoubleVect& , DoubleVect& val,
int le_poly)
const
127 if (val.
size() != nb_compo_) erreur_champ_(__func__);
129 const DoubleTab& ch = valeurs();
130 for (
int k = 0; k < nb_compo_; k++) val(k) = ch(le_poly, k);
141template <Champ_Don_Type _TYPE_>
template <Champ_Don_Type T>
142std::enable_if_t<T != Champ_Don_Type::TXYZ, double>
143TRUSTChamp_Don_generique<_TYPE_>::valeur_a_elem_compo_(
const DoubleVect& x,
int le_poly,
int ncomp)
const
145 static constexpr bool IS_XYZ = (_TYPE_ == Champ_Don_Type::XYZ);
146 if (ncomp > nb_compo_) erreur_champ_(__func__);
148 return IS_XYZ ? valeur_a_compo(x,ncomp) : valeurs()(le_poly,ncomp) ;
151template <Champ_Don_Type _TYPE_>
template <Champ_Don_Type T>
152std::enable_if_t<T == Champ_Don_Type::TXYZ, double>
153TRUSTChamp_Don_generique<_TYPE_>::valeur_a_elem_compo_(
const DoubleVect& x,
int ,
int ncomp)
const
155 DoubleTab positions(1, dimension);
156 for (
int d = 0; d < dimension; d++) positions(0, d) = x(d);
158 DoubleVect val_fct(1);
159 eval_fct(positions, temps(), val_fct, ncomp);
169template <Champ_Don_Type _TYPE_>
template <Champ_Don_Type T>
170std::enable_if_t<T != Champ_Don_Type::LU, DoubleTab&>
171TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_(
const DoubleTab& x, DoubleTab& val)
const
173 static constexpr bool IS_XYZ = (_TYPE_ == Champ_Don_Type::XYZ);
175 if (val.
nb_dim() == 1) assert(nb_compo_ == 1);
177 else erreur_champ_(__func__);
179 IS_XYZ ? eval_fct(x,val) : eval_fct(x,temps(),val);
183template <Champ_Don_Type _TYPE_>
template <Champ_Don_Type T>
184std::enable_if_t<T == Champ_Don_Type::LU, DoubleTab&>
185TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_(
const DoubleTab& x, DoubleTab& val)
const
187 IntVect les_polys(mon_domaine->nb_elem());
188 mon_domaine->chercher_elements(x,les_polys);
189 return valeur_aux_elems(x,les_polys,val);
198template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
199std::enable_if_t<T != Champ_Don_Type::LU, DoubleVect&>
200TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_compo_(
const DoubleTab& x, DoubleVect& val,
int ncomp)
const
202 static constexpr bool IS_XYZ = (_TYPE_ == Champ_Don_Type::XYZ);
203 IS_XYZ ? eval_fct(x,val,ncomp) : eval_fct(x,temps(),val,ncomp);
207template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
208std::enable_if_t<T == Champ_Don_Type::LU, DoubleVect&>
209TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_compo_(
const DoubleTab& x, DoubleVect& val,
int ncomp)
const
211 IntVect les_polys(mon_domaine->nb_elem());
212 mon_domaine->chercher_elements(x,les_polys);
213 return valeur_aux_elems_compo(x,les_polys,val,ncomp);
222template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
223std::enable_if_t<T != Champ_Don_Type::LU, DoubleTab&>
224TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_elems_(
const DoubleTab& x,
const IntVect&, DoubleTab& val)
const
226 return valeur_aux(x, val);
229template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
230std::enable_if_t<T == Champ_Don_Type::LU, DoubleTab&>
231TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_elems_(
const DoubleTab&,
const IntVect& les_polys, DoubleTab& val)
const
233 if (val.
nb_dim() > 2) erreur_champ_(__func__);
236 const DoubleTab& ch = valeurs();
239 for (
int rang_poly = 0; rang_poly < les_polys.
size(); rang_poly++)
240 if ((p = les_polys(rang_poly)) != -1)
241 for (
int n = 0; n < nb_compo_; n++) val(rang_poly, n) = ch(p, n);
253template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
254std::enable_if_t<T != Champ_Don_Type::LU, DoubleVect&>
255TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_elems_compo_(
const DoubleTab& x,
const IntVect&, DoubleVect& val,
int ncomp)
const
257 return valeur_aux_compo(x, val, ncomp);
260template <Champ_Don_Type _TYPE_>
template<Champ_Don_Type T>
261std::enable_if_t<T == Champ_Don_Type::LU, DoubleVect&>
262TRUSTChamp_Don_generique<_TYPE_>::valeur_aux_elems_compo_(
const DoubleTab& ,
const IntVect& les_polys, DoubleVect& val,
int ncomp)
const
265 const DoubleTab& ch = valeurs();
267 for (
int rang_poly = 0; rang_poly < les_polys.
size(); rang_poly++)
269 int le_poly = les_polys(rang_poly);
270 if (le_poly == -1) val(rang_poly) = 0;
271 else val(rang_poly) = ch(le_poly, ncomp);