16#ifndef Redistribute_Field_included
17#define Redistribute_Field_included
20#include <IJK_Field_vector.h>
22#include <Schema_Comm_Vecteurs.h>
35 const VECT(IntTab) & redistribute_maps);
37 IJK_Field_double& output_field)
41 template<
class T,
int N>
45 for (
int i = 0; i < N; i++)
49 IJK_Field_double& output_field)
53 template<
class T,
int N>
57 for (
int i = 0; i < N; i++)
61 IJK_Field_float& output_field)
66 IJK_Field_float& output_field)
72 IJK_Field_double& output_field,
75 IJK_Field_float& output_field,
77 static void intersect(
const int s1,
const int n1,
int& s2,
int& n2,
int& s3);
82 const IntTab& global_index_mapping,
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Localisation
Localisation sub class.
The class IJK_Field_vector is a fixed array of polymorphic IJK fields.
Schema_Comm_Vecteurs schema_comm_
static void intersect(const int s1, const int n1, int &s2, int &n2, int &s3)
void redistribute_(const IJK_Field_double &input_field, IJK_Field_double &output_field, bool add)
void compute_send_blocs(const Domaine_IJK &input, const Domaine_IJK &output, const Domaine_IJK::Localisation localisation, const int dir, const IntTab &global_index_mapping, IntTab &send_blocs)
FixedVector< IntTab, 3 > recv_blocs_
FixedVector< IntTab, 3 > send_blocs_
void redistribute(const IJK_Field_vector< T, N > &input_field, IJK_Field_vector< T, N > &output_field)
void redistribute(const IJK_Field_float &input_field, IJK_Field_float &output_field)
void redistribute(const IJK_Field_double &input_field, IJK_Field_double &output_field)
void redistribute_add(const IJK_Field_float &input_field, IJK_Field_float &output_field)
void redistribute_add(const IJK_Field_double &input_field, IJK_Field_double &output_field)
void redistribute_add(const IJK_Field_vector< T, N > &input_field, IJK_Field_vector< T, N > &output_field)
void initialize(const Domaine_IJK &input, const Domaine_IJK &output, const Domaine_IJK::Localisation loc)