16#include <EcritureLectureSpecial.h>
17#include <Champ_Fonc_base.h>
18#include <MD_Vector_tools.h>
19#include <Domaine_VF.h>
22#include <TRUST_2_PDI.h>
43 return le_dom_VF.valeur();
58 Cerr <<
"Error in Champ_Fonc_base::fixer_nb_valeurs_nodales: method not reimplemented for the class " <<
que_suis_je() << finl;
74 if (!(
valeurs_.get_md_vector() == md))
78 Cerr <<
"Internal error in Champ_Fonc_base::creer_tableau_distribue:\n" <<
" array has already a (wrong) parallel descriptor" << finl;
99 std::vector<YAML_data> data;
112 int a_faire, special;
121 fich << mon_ident << finl;
136 if(
valeurs().dimension_tot(0) )
141 ArrOfDouble garbage(
valeurs().nb_dim() );
155 Cerr <<
"Backup of the field " <<
nom_ <<
" performed on time : " <<
Nom(
temps_,
"%e") << finl;
173 Cerr <<
"Resume of the field " <<
nom_;
189 Cerr <<
" performed." << finl;
195 Cerr << finl <<
"Problem in the resumption " << finl;
196 Cerr <<
"PDI format does not require to navigate through file..." << finl;
293 domaine.chercher_elements(positions, les_polys);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
Champ_base & affecter_compo(const Champ_base &, int compo) override
Affecte une composante d'un Champ_base dans la meme composnate d'un Champ_Fonc_base.
void associer_domaine_dis_base(const Domaine_dis_base &) override
virtual DoubleTab & remplir_coord_noeuds_compo(DoubleTab &, int) const
NE FAIT RIEN A surcharger dans les classes derivees.
virtual int remplir_coord_noeuds_et_polys(DoubleTab &, IntVect &) const
NE FAIT RIEN A surcharger dans les classes derivees.
virtual int remplir_coord_noeuds_et_polys_compo(DoubleTab &, IntVect &, int) const
NE FAIT RIEN A surcharger dans les classes derivees.
virtual const Domaine & domaine() const
DoubleTab & valeur_aux(const DoubleTab &, DoubleTab &) const override
Provoque une erreur ! Doit etre surchargee par les classes derivees.
virtual const Domaine_VF & domaine_vf() const
Champ_base & affecter_(const Champ_base &) override
Affecte un Champ_base dans un Champ_Fonc_base.
void mettre_a_jour(double temps) override
Mise a jour en temps du champ.
virtual std::vector< YAML_data > data_a_sauvegarder() const
for PDI IO: retrieve name, type and dimensions of the field to save/restore.
virtual DoubleTab & remplir_coord_noeuds(DoubleTab &) const
NE FAIT RIEN A surcharger dans les classes derivees.
int reprendre(Entree &) override
Reprise a partir d'un flot d'entree Lit le temps et les valeurs du champ.
virtual void creer_tableau_distribue(const MD_Vector &, RESIZE_OPTIONS=RESIZE_OPTIONS::COPY_INIT)
const Domaine_dis_base & domaine_dis_base() const override
int sauvegarder(Sortie &) const override
Sauvegarde le champ sur un flot de sortie Ecrit le nom, le temps et les valeurs.
int fixer_nb_valeurs_nodales(int nb_noeuds) override
Fixe le nombre de degres de liberte par composante.
Champ_base()
Constructeur par defaut d'un Champ_base.
virtual const Domaine_dis_base & domaine_dis_base() const
virtual DoubleVect & valeur_aux_elems_compo(const DoubleTab &positions, const IntVect &les_polys, DoubleVect &valeurs, int ncomp) const
provoque une erreur ! doit etre surchargee par les classes derivees
virtual double changer_temps(const double t)
Fixe le temps auquel se situe le champ.
virtual DoubleTab & valeur_aux(const DoubleTab &positions, DoubleTab &valeurs) const
Provoque une erreur ! Doit etre surchargee par les classes derivees.
virtual DoubleTab & valeur_aux_elems(const DoubleTab &positions, const IntVect &les_polys, DoubleTab &valeurs) const
provoque une erreur ! doit etre surchargee par les classes derivees
virtual DoubleVect & valeur_aux_compo(const DoubleTab &positions, DoubleVect &valeurs, int ncomp) const
Idem que valeur_aux(const DoubleTab &, DoubleTab &), mais calcule uniquement la composante compo du c...
const Nom & le_nom() const override
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
const Domaine & domaine() const
static int is_ecriture_special(int &special, int &a_faire)
indique si le format special a ete demande en lecture active par sauvegarde xyz .
static int is_lecture_special()
indique si le format special a ete demande en lecture active par reprise xyz .
static int ecriture_special(const Champ_base &ch, Sortie &fich)
simple appel a EcritureLectureSpecial::ecriture_special (const Domaine_VF& zvf,Sortie& fich,...
static void lecture_special(Champ_base &ch, Entree &fich)
simple appel a EcritureLectureSpecial::lecture_special (const Domaine_VF& zvf,Entree& fich,...
Class defining operators and methods for all reading operation in an input flow (file,...
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
const char * getChar() const
const std::string & getString() const
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ size_array() const
void jump(Entree &) override
void lit(Entree &, bool resize_and_read=true) override
void ecrit(Sortie &) const override
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
classe TRUST_2_PDI Encapsulation of PDI methods (library used for IO operations). See the website pdi...
void read(const std::string &name, void *data)
static int is_PDI_checkpoint()
static int is_PDI_restart()
void share_TRUSTTab_dimensions(const DoubleTab &tab, const Nom &name, int write)
Generic method to share the dimensions of a TRUST DoubleTab with PDI.
void TRUST_start_sharing(const std::string &name, const void *data)
classe YAML_data : collection of all needed information for data to save/restore in order to write th...