16#ifndef DomaineCutter_included
17#define DomaineCutter_included
19#include <DomaineCutter_Correspondance.h>
20#include <Static_Int_Lists.h>
25#include <Domaine_forward.h>
32template <
typename _SIZE_>
35 Declare_instanciable_32_64(DomaineCutter_32_64);
54 const bool permissif=
false);
71 void construire_faces_bords_ssdom(
const BigArrOfInt_t& liste_inverse_sommets,
const int partie,
Domaine32& domaine_partie)
const;
72 void construire_faces_raccords_ssdom(
const BigArrOfInt_t& liste_inverse_sommets,
const int partie,
Domaine32& domaine_partie)
const;
73 void construire_frontieres_internes_ssdom(
const BigArrOfInt_t& liste_inverse_sommets,
const int partie,
Domaine32& domaine_partie)
const;
74 void construire_groupe_faces_ssdom(
const BigArrOfInt_t& liste_inverse_sommets,
const int partie,
Domaine32& domaine_partie)
const;
84 void ajouter_joints(
Domaine32& domaine,
const ArrOfInt& voisins)
const;
85 void parcourir_epaisseurs_elements(
SmallArrOfTID_t liste_sommets_depart,
const int partie_a_ignorer,
SmallArrOfTID_t& liste_elements_trouves)
const;
100 int epaisseur_joint_ = -1;
Tool class to generate sub-domains for a parallel computation from a starting domain (domaine_global)...
Domaine_32_64< _SIZE_ > Domaine_t
BigArrOfInt_T< _SIZE_ > BigArrOfInt_t
BigIntVect_T< _SIZE_ > BigIntVect_t
void ecrire_domaines(const Nom &basename, const DomainesFileOutputType format, const int reorder, const Static_Int_Lists_t *som_raccord=nullptr)
Generation of all sub-domains of the computation and writing to disk of the files basename_000n.
void reset()
cancels all references and empties the arrays
void construire_sous_domaine(const int part, Domaine32 &sous_domaine) const
IntTab_T< _SIZE_ > IntTab_t
const Noms & bords_internes() const
void initialiser(const Domaine_t &domaine_global, const BigIntVect_t &elem_part, const int nb_parts, const int epaisseur_joint, const bool permissif=false)
Prepares the data structures for building sub-domains based on a partitioning provided in elem_part.
Domaine_32_64< int > Domaine32
void construire_sous_domaine(const int part, DomaineCutter_Correspondance_t &correspondance, Domaine32 &sous_domaine, const Static_Int_Lists_t *som_raccord=nullptr) const
Fills the "correspondance" structure and the "sous_domaine" for part "part".
SmallArrOfTID_T< _SIZE_ > SmallArrOfTID_t
Static_Int_Lists_32_64< _SIZE_ > Static_Int_Lists_t
Frontiere_32_64< _SIZE_ > Frontiere_t
DomaineCutter_Correspondance_32_64< _SIZE_ > DomaineCutter_Correspondance_t
TRUSTArray< _SIZE_, _SIZE_ > ArrOfInt_t
Decouper_32_64< _SIZE_ > Decouper_t
Sous_Domaine_32_64< _SIZE_ > Sous_Domaine_t
Helper structure holding the correspondence between vertex and element indices of the global domain a...
class Domaine_32_64 A Domain is a mesh composed of a set of geometric elements of the same type.
class Nom: a character string for naming TRUST objects.
An array of character strings (VECT(Nom)).
Base class for TRUST objects (Objet_U).
Objet_U()
Default constructor: assigns a unique identifier to the object (object_id_) and registers the object ...
static void abort()
Abort routine for TRUST on a fatal error.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
Sous_Domaine represents a volumic sub-domain i.e. a sub set of elements of a Domaine.
This class allows storing lists of integers accessible in constant time.
Represents a an array of int/int64/double/... values.