15#ifndef Partitionneur_base_included
16#define Partitionneur_base_included
18#include <TRUSTTabs_forward.h>
20#include <Static_Int_Lists.h>
22#include <Objet_U_With_Params.h>
24#include <Domaine_forward.h>
50template <
typename _SIZE_>
Class Bord This class represents a boundary of a domain, it is a type of frontier.
class Domaine_32_64 A Domain is a mesh composed of a set of geometric elements of the same type.
Class defining operators and methods for all reading operation in an input flow (file,...
A character string (Nom) in uppercase.
Inherits from Objet_U, adds the very common method set_param for the Objet_U hierarchy.
Helper class to factorize the readOn method of Objet_U classes.
Base class for domain partitioners (for splitting a mesh before a parallel computation).
TRUSTArray< int, _SIZE_ > BigArrOfInt_
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
static int_t corriger_bords_avec_graphe(const Static_Int_Lists_t &graph_elements_perio, const Static_Int_Lists_t &som_elem, const Domaine_t &domaine, BigIntVect_ &elem_part)
Corrects elem_part so that element i is on the same partition elem_part[i] as all elements connected ...
static void corriger_bords_avec_liste(const Domaine_t &dom, const int_t my_offset, BigIntVect_ &elem_part)
Computes the periodic element connectivity graphs and calls corriger_periodique_avec_graphe.
static void corriger_elem0_sur_proc0(BigIntVect_ &elem_part)
Corrects the partition so that element 0 of the initial domain is on the first sub-domain of the part...
ArrOfInt_T< _SIZE_ > ArrOfInt_t
static int_t corriger_sommets_bord(const Domaine_t &domaine, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)
Modifies elem_part to ensure the following properties: 1) Elements that have a boundary vertex are as...
virtual void associer_domaine(const Domaine_t &domaine)=0
IntVect_T< _SIZE_ > IntVect_t
TRUSTVect< int, _SIZE_ > BigIntVect_
Domaine_32_64< _SIZE_ > Domaine_t
Bord_32_64< _SIZE_ > Bord_t
static int_t corriger_multiperiodique(const Domaine_t &domaine, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)
Applies corrections to elem_part so that multi-periodicity is correct:
IntTab_T< _SIZE_ > IntTab_t
virtual void construire_partition(BigIntVect_ &elem_part, int &nb_parts_tot) const =0
Static_Int_Lists_32_64< _SIZE_ > Static_Int_Lists_t
static int_t calculer_graphe_connexions_periodiques(const Domaine_t &domaine, const Static_Int_Lists_t &som_elem, const int_t my_offset, Static_Int_Lists_t &graph)
Computes a connectivity graph between elements connected by periodic faces.
This class allows storing lists of integers accessible in constant time.
Represents a an array of int/int64/double/... values.