15#ifndef VDF_to_IJK_H_TPP
16#define VDF_to_IJK_H_TPP
18#include <VDF_to_IJK.h>
19#include <Schema_Comm_Vecteurs.h>
20#include <Schema_Comm.h>
21#include <communications.h>
25#include <Array_tools.h>
28template <
typename _TYPE_,
typename _TYPE_ARRAY_>
35 const int nsend =
pe_send_.size_array();
36 for (i = 0; i < nsend; i++)
39 const int nrecv =
pe_recv_.size_array();
40 for (i = 0; i < nrecv; i++)
46 for (i = 0; i < nsend; i++)
50 for (
int j = 0; j < ndata; j++)
57 for (i = 0; i < nrecv; i++)
61 for (
int j = 0; j < ndata; j++)
67 ijk_x(ii,jj,kk) = (_TYPE_)buf[j];
73template <
typename _TYPE_,
typename _TYPE_ARRAY_>
79 const int nsend =
pe_send_.size_array();
80 for (i = 0; i < nsend; i++)
83 const int nrecv =
pe_recv_.size_array();
84 for (i = 0; i < nrecv; i++)
90 for (i = 0; i < nrecv; i++)
94 for (
int j = 0; j < ndata; j++)
100 buf[j] = ijk_x(ii, jj, kk);
104 for (i = 0; i < nsend; i++)
110 for (
int j = 0; j < ndata; j++)
118 for (
int j = 0; j < ndata; j++)
: This class is an IJK_Field_local with parallel informations.
void add_send_area_template(int pe, int size)
TRUSTArray< _TYPE_ > & get_next_area_template(int pe, int array_size)
void add_recv_area_template(int pe, int size)
void end_init()
Une fois les donnees a echanger declarees avec add_send/recv_area_.
void begin_init()
Reinitialise les tailles de buffers.
void exchange(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
void begin_comm(bool bufferOnDevice=false)
Commence un nouvel echange de donnees (les tailles de buffers doivent avoir ete initialisees avec beg...
void convert_from_ijk(const IJK_Field_template< _TYPE_, _TYPE_ARRAY_ > &ijk_x, DoubleVect &x, bool add=false) const
Static_Int_Lists pe_recv_data_
Static_Int_Lists pe_send_data_
void convert_to_ijk(const DoubleVect &x, IJK_Field_template< _TYPE_, _TYPE_ARRAY_ > &ijk_x) const