16#ifndef IJK_Field_local_template_included
17#define IJK_Field_local_template_included
19#include <Field_base.h>
20#include <communications.h>
22#include <Domaine_IJK.h>
32template<
typename _TYPE_,
typename _TYPE_ARRAY_>
50 IJK_Field_local_template() :
Field_base(),
ni_(0),
nj_(0),
nk_(0),
ghost_size_(0),
j_stride_(0),
compo_stride_(0),
offset_(0),
k_layer_shift_(0),
additional_k_layers_(0),
allocated_size_(0)
55 void allocate(
int ni,
int nj,
int nk,
int ghosts,
int additional_k_layers = 0,
int nb_compo = 1,
bool external_storage =
false);
92 const _TYPE_&
operator()(
int i,
int j,
int k,
int compo)
const
103 assert(x >= 0 && x <
data_.size_array());
109 assert(compo >= 0 && compo < this->
nb_compo_);
112 assert(x >= 0 && x <
data_.size_array());
156 assert(compo >= 0 && compo < this->
nb_compo_);
162 assert(compo >= 0 && compo < this->
nb_compo_);
195#include <IJK_Field_local_template.tpp>
Class defining operators and methods for all reading operation in an input flow (file,...
virtual void fixer_nb_comp(int i)
Fixe le nombre de composantes du champ.
: This class describes a scalar field in an ijk box without any parallel information.
void allocate(int ni, int nj, int nk, int ghosts, int additional_k_layers=0, int nb_compo=1, bool external_storage=false)
const _TYPE_ & operator()(int i, int j, int k) const
const _TYPE_ & operator()(int i, int j, int k, int compo) const
int linear_index(int i, int j, int k) const
Sortie & printOn(Sortie &os) const override
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
_TYPE_ & get_in_allocated_area(int i, int j, int k)
_TYPE_ & operator()(int i, int j, int k)
unsigned taille_memoire() const override
int nb_elem_local(int dir) const
int duplique() const override
int linear_index(int i, int j, int k, int compo) const
_TYPE_ * k_layer(int k, int compo)
void shift_k_origin(int n)
Entree & readOn(Entree &is) override
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
const _TYPE_ & get_in_allocated_area(int i, int j, int k) const
int linear_index_relaxed_test(int i, int j, int k) const
const _TYPE_ * k_layer(int k, int compo) const
IJK_Field_local_template()
const _TYPE_ARRAY_ & data() const
void ref_ij(IJK_Field_local_template &src, int k_layer)
int get_allocated_size() const
_TYPE_ & operator()(int i, int j, int k, int compo)
const _TYPE_ * k_layer(int k) const
_TYPE_ & get_in_allocated_area(int i, int j, int k, int compo)
const _TYPE_ & get_in_allocated_area(int i, int j, int k, int compo) const
int linear_index_relaxed_test(int i, int j, int k, int compo) const
int numero() const
Renvoie l'indice de l'objet dans Memoire::data.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.