16#include <Champ_Fonc_Tabule_Morceaux_Interp.h>
17#include <TRUSTTab_parts.h>
18#include <Domaine_VF.h>
41 std::vector<std::array<std::string, 3>> v_pb_ch(
s_pb_ch.begin(),
s_pb_ch.end());
44 for (
int i = 0; i < (int)v_pb_ch.size(); i++)
46 Nom ch_int =
Nom(
"{ pb_loc ") + ref_pb->
le_nom() +
" pb_dist " +
Nom(v_pb_ch[i][0]) +
" nom_champ " +
Nom(v_pb_ch[i][1]) +
" nature " +
Nom(v_pb_ch[i][2]) +
" }";
54 for (
int i = 0; i < (int)
m_pb_ch.size(); i++)
55 for (
auto && pb_ch :
m_pb_ch[i])
56 morceaux[i].i_ch.push_back((
int)(std::lower_bound(v_pb_ch.begin(), v_pb_ch.end(), pb_ch) - v_pb_ch.begin()));
68 std::vector<const DoubleTab* > pval;
69 std::vector<bool> is_multi;
73 pch.mettre_a_jour(time);
74 pval.push_back(&pch.valeurs());
75 is_multi.push_back(pval.back()->dimension(1) > 1);
78 for (
int e = 0; e < mon_domaine->nb_elem(); e++)
84 else for (
int n = 0, m; n < N; n++)
86 for (vals.clear(), m = 0; m < M; m++) vals.push_back((*pval[mor.
i_ch[m]])(e, n * is_multi[mor.
i_ch[m]]));
DoubleTab & valeurs() override
Overrides Champ_base::valeurs() Returns the array of values.
Champ_Fonc_Tabule_Morceaux_Interp This class represents a field taking piecewise values as functions.
std::vector< Champ_Fonc_Interp > ch_param_interp
int initialiser(const double temps) override
DOES NOTHING.
void mettre_a_jour(double temps) override
Time update.
class Champ_Fonc_Tabule_Morceaux
std::set< ArrStr > s_pb_ch
std::vector< std::vector< ArrStr > > m_pb_ch
std::vector< CHTAB > morceaux
An input stream whose source is a character string.
Class defining operators and methods for all reading operation in an input flow (file,...
class Nom: a character string for naming TRUST objects.
const Nom & le_nom() const override
Returns *this.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Base class for output streams.
bool read_pb_instead_of_domain
int initialiser(const double temps) override
DOES NOTHING.
_SIZE_ dimension(int d) const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
double val_simple(double vals_param) const
double val(const double val_param, int ncomp=0) const