16#ifndef IJKArray_with_ghost_included
17#define IJKArray_with_ghost_included
19#include <IJK_communications.h>
20#include <communications.h>
21#include <Domaine_IJK.h>
22#include <Perf_counters.h>
23#include <TRUST_Vector.h>
25#include <Perf_counters.h>
32template<
typename _TYPE_,
typename _TYPE_ARRAY_>
53 tab_.resize_array(n + 2 * new_ghost);
58 const _TYPE_ARRAY_&
data()
const {
return tab_; }
71template<
typename _TYPE_,
typename _TYPE_ARRAY_>
74 statistics().begin_count(STD_COUNTERS::virtual_swap);
77 _TYPE_ *pdata =
tab_.addr();
78 ::envoyer_recevoir(pdata + n,
ghost_ *
sizeof(_TYPE_), pe_max, pdata,
ghost_ *
sizeof(_TYPE_), pe_min);
80 ::envoyer_recevoir(pdata +
ghost_,
ghost_ *
sizeof(_TYPE_), pe_min, pdata + n +
ghost_,
ghost_ *
sizeof(_TYPE_), pe_max);
81 statistics().end_count(STD_COUNTERS::virtual_swap);
This is an array with [] operator.
_TYPE_ & operator[](int i)
void resize(int n, int new_ghost)
Entree & readOn(Entree &is) override
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
const _TYPE_ARRAY_ & data() const
Sortie & printOn(Sortie &os) const override
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
unsigned taille_memoire() const override
void echange_espace_virtuel(int pe_min, int pe_max)
_TYPE_ operator[](int i) const
int duplique() const override
int numero() const
Renvoie l'indice de l'objet dans Memoire::data.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.