TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
Domaine_dis_base Class Referenceabstract

class Domaine_dis_base This class is the base of the hierarchy of discretized domains. More...

#include <Domaine_dis_base.h>

Inheritance diagram for Domaine_dis_base:
[legend]
Collaboration diagram for Domaine_dis_base:
[legend]

Public Member Functions

const Domaine & domaine () const
Domaine & domaine ()
int nb_elem () const
int nb_elem_tot () const
int nb_som () const
int nb_som_tot () const
int nb_front_Cl () const
int nombre_de_sous_domaines_dis () const
const Sous_domaine_dis_basesous_domaine_dis (int i) const
Sous_domaine_dis_basesous_domaine_dis (int i)
void ecrire_noms_bords (Sortie &) const
 Writes the boundary names to an output stream.
int rang_frontiere (const Nom &)
int rang_frontiere (const Nom &) const
 Returns the rank of the boundary of Name nom Returns -1 if no boundary is named nom.
const Frontiere_dis_basefrontiere_dis (const Nom &) const
 Returns the boundary of Name nom.
Frontiere_dis_basefrontiere_dis (const Nom &)
virtual Frontiere_dis_basefrontiere_dis (int)=0
virtual const Frontiere_dis_basefrontiere_dis (int) const =0
virtual IntTab & face_sommets ()
virtual const IntTab & face_sommets () const
virtual IntTab & face_aretes ()
virtual const IntTab & face_aretes () const
virtual IntTab & face_voisins ()
virtual const IntTab & face_voisins () const
void associer_domaine (const Domaine &)
 Associates a Domain with the object.
void discretiser_root (const Nom &typ)
void completer (const Discretisation_base &disc)
virtual void discretiser ()
virtual void build_map_mc_Cmesh (const bool with_faces)
virtual void discretiser_no_face ()=0
virtual void typer_discretiser_ss_domaine (int i)=0
virtual void modifier_pour_Cl (const Conds_lim &)=0
virtual void creer_elements_fictifs (const Domaine_Cl_dis_base &)
virtual const DoubleTab & y_elem () const
virtual const DoubleTab & y_faces () const
virtual void init_dist_paroi_globale (const Conds_lim &conds_lim)
const Champ_Fonc_basevolume_maille () const
const Champ_Fonc_basemesh_numbering () const
void get_noms_champs_postraitables (Noms &nom, Option opt=NONE) const override
void creer_champ (const Motcle &motlu) override
void creer_champ (const Motcle &, const Probleme_base &)
const Champ_baseget_champ (const Motcle &) const override
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool has_champ (const Motcle &nom) const override
void set_reorder (const Reorder_Mesh &r)
Public Member Functions inherited from Champs_compris_interface
virtual ~Champs_compris_interface ()
virtual bool has_champ (const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const =0
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructor. Removes the object from the list of objects registered in "memory".
int numero () const
 Returns the index of the object in Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Writes the object to an output stream. Virtual method to override.
virtual EntreereadOn (Entree &)
 Reads an Objet_U from an input stream. Virtual method to override.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Returns 1 if x and *this are the same instance (same memory address).
virtual const Nomle_nom () const
 Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void nommer (const Nom &)
 Assigns a name to the Objet_U. Virtual method to override.
virtual int reprendre (Entree &)
 Restores an Objet_U from an input stream. Virtual method to override.
virtual int sauvegarder (Sortie &) const
 Saves an Objet_U to an output stream. Virtual method to override.
int get_object_id () const
 Returns the unique identifier of the object (object_id_).
virtual const Type_infoget_info () const
 Returns type information for the Objet_U.
const Nomque_suis_je () const
 Returns the string identifying the class.
const char * le_type () const
 Returns the type name of the Objet_U.
virtual int change_num (const int *const)
 Changes the internal number of the Objet_U.
virtual int lire_motcle_non_standard (const Motcle &motlu, Entree &is)
 Reads non-simple-type parameters of an Objet_U from an input stream.
virtual int associer_ (Objet_U &)
 Associates the Objet_U with another Objet_U. Virtual method to override.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Member Functions

 OBS_PTR (Domaine) le_dom_
 OBS_PTR (Reorder_Mesh) reorder_
 An observer to the Reorder_Mesh option filled in the discretisation itself.
 OWN_PTR (Champ_Fonc_base) volume_maille_
 OWN_PTR (Champ_Fonc_base) mesh_numbering_
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number.
 Objet_U (const Objet_U &)
 Copy constructor.
const Objet_Uoperator= (const Objet_U &)
 Assignment operator: does nothing (the number and identifier are preserved).
virtual void set_param (Param &) const

Protected Attributes

TRUST_Vector< OWN_PTR(Sous_domaine_dis_base)> les_sous_domaines_dis_
int dist_paroi_initialisee_ = 0
DoubleTab y_elem_
DoubleTab y_faces_
Champs_compris champs_compris_

Additional Inherited Members

Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Returns a constant reference to the case name. This method is static.
static Nomget_set_nom_du_cas ()
 Returns a non-constant reference to the case name (to allow modification). This method is static.
static const Type_infoinfo ()
 Returns type information for the Objet_U (static version).
static const Objet_Uself_cast (const Objet_U &)
 Method added for casting in Python.
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group().
static int nproc ()
 Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group().
static bool is_parallel ()
static void exit (int exit_code=-1)
 Exit routine for TRUST within a Kokkos region.
static double mp_sum (double)
 Computes the sum of x over all processors in the current group.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Computes the sum of x over all processors in the current group.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 Returns the maximum value of x across all processors in the current group.
static int mp_min (int)
 Returns the minimum value of x across all processors in the current group.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Computes the logical AND of b across all processors in the current group.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Exit routine for TRUST within a Kokkos region.
static int node_master ()
 Returns 1 if on the NUMA node master processor, 0 otherwise.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronizes all processors in the current group (waits until all processors have reached the barrier).
static void abort ()
 Abort routine for TRUST on a fatal error.
static SortieJournal (int message_level=0)
 Returns a static Sortie object used as an event journal.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

class Domaine_dis_base This class is the base of the hierarchy of discretized domains.

A Domaine object is associated with the discretized domain.
Each spatial discretization (VDF, VEF, PolyMAC_HFV, ...) in TRUST corresponds to a class deriving
from Domaine_dis_base that implements the tools required by the method.

Definition at line 38 of file Domaine_dis_base.h.

Member Function Documentation

◆ associer_domaine()

void Domaine_dis_base::associer_domaine ( const Domaine & un_domaine)

Associates a Domain with the object.

Various

Parameters
(Domaine&un_domaine) the domain to associate with the discretized domain

Definition at line 55 of file Domaine_dis_base.cpp.

◆ build_map_mc_Cmesh()

virtual void Domaine_dis_base::build_map_mc_Cmesh ( const bool with_faces)
inlinevirtual

Reimplemented in Domaine_VF.

Definition at line 90 of file Domaine_dis_base.h.

◆ completer()

void Domaine_dis_base::completer ( const Discretisation_base & disc)

! Make sure the reordering option passed to the discretisation options is known to the Domaine_dis_base:

Definition at line 172 of file Domaine_dis_base.cpp.

◆ creer_champ() [1/2]

void Domaine_dis_base::creer_champ ( const Motcle & motlu,
const Probleme_base & pb )

Definition at line 210 of file Domaine_dis_base.cpp.

◆ creer_champ() [2/2]

void Domaine_dis_base::creer_champ ( const Motcle & motlu)
inlineoverridevirtual

Implements Champs_compris_interface.

Definition at line 110 of file Domaine_dis_base.h.

◆ creer_elements_fictifs()

void Domaine_dis_base::creer_elements_fictifs ( const Domaine_Cl_dis_base & )
virtual

Reimplemented in Domaine_VDF.

Definition at line 115 of file Domaine_dis_base.cpp.

◆ discretiser()

virtual void Domaine_dis_base::discretiser ( )
inlinevirtual

◆ discretiser_no_face()

virtual void Domaine_dis_base::discretiser_no_face ( )
pure virtual

Implemented in Domaine_VF.

◆ discretiser_root()

void Domaine_dis_base::discretiser_root ( const Nom & typ)

Definition at line 177 of file Domaine_dis_base.cpp.

◆ domaine() [1/2]

Domaine & Domaine_dis_base::domaine ( )
inline

Definition at line 47 of file Domaine_dis_base.h.

◆ domaine() [2/2]

const Domaine & Domaine_dis_base::domaine ( ) const
inline

Accessors and shortcuts

Definition at line 46 of file Domaine_dis_base.h.

◆ ecrire_noms_bords()

void Domaine_dis_base::ecrire_noms_bords ( Sortie & os) const

Writes the boundary names to an output stream.

Bord and Frontiere

Parameters
(Sortie&os) an output stream

Definition at line 110 of file Domaine_dis_base.cpp.

◆ face_aretes() [1/2]

IntTab & Domaine_dis_base::face_aretes ( )
virtual

Reimplemented in Domaine_VF.

Definition at line 138 of file Domaine_dis_base.cpp.

◆ face_aretes() [2/2]

const IntTab & Domaine_dis_base::face_aretes ( ) const
virtual

Reimplemented in Domaine_VF.

Definition at line 146 of file Domaine_dis_base.cpp.

◆ face_sommets() [1/2]

IntTab & Domaine_dis_base::face_sommets ( )
virtual

Mappings

Reimplemented in Domaine_VF.

Definition at line 122 of file Domaine_dis_base.cpp.

◆ face_sommets() [2/2]

const IntTab & Domaine_dis_base::face_sommets ( ) const
virtual

Reimplemented in Domaine_VF.

Definition at line 130 of file Domaine_dis_base.cpp.

◆ face_voisins() [1/2]

IntTab & Domaine_dis_base::face_voisins ( )
virtual

Reimplemented in Domaine_VF.

Definition at line 154 of file Domaine_dis_base.cpp.

◆ face_voisins() [2/2]

const IntTab & Domaine_dis_base::face_voisins ( ) const
virtual

Reimplemented in Domaine_VF.

Definition at line 162 of file Domaine_dis_base.cpp.

◆ frontiere_dis() [1/4]

Frontiere_dis_base & Domaine_dis_base::frontiere_dis ( const Nom & nom)

Definition at line 73 of file Domaine_dis_base.cpp.

◆ frontiere_dis() [2/4]

const Frontiere_dis_base & Domaine_dis_base::frontiere_dis ( const Nom & nom) const

Returns the boundary of Name nom.

(We index the boundaries with their name)

Parameters
(Nom&nom) the name of the boundary to index
Returns
(Frontiere_dis_base&) the indexed discretized boundary
Exceptions
boundarywith unknown name thrown by rang_frontiere(Nom&)

Definition at line 68 of file Domaine_dis_base.cpp.

◆ frontiere_dis() [3/4]

virtual const Frontiere_dis_base & Domaine_dis_base::frontiere_dis ( int ) const
pure virtual

Implemented in Domaine_VF.

◆ frontiere_dis() [4/4]

virtual Frontiere_dis_base & Domaine_dis_base::frontiere_dis ( int )
pure virtual

Implemented in Domaine_VF.

◆ get_champ()

const Champ_base & Domaine_dis_base::get_champ ( const Motcle & un_nom) const
overridevirtual

Implements Champs_compris_interface.

Definition at line 224 of file Domaine_dis_base.cpp.

◆ get_noms_champs_postraitables()

void Domaine_dis_base::get_noms_champs_postraitables ( Noms & nom,
Option opt = NONE ) const
overridevirtual

Implements Champs_compris_interface.

Definition at line 257 of file Domaine_dis_base.cpp.

◆ has_champ() [1/2]

bool Domaine_dis_base::has_champ ( const Motcle & nom) const
overridevirtual

Implements Champs_compris_interface.

Definition at line 249 of file Domaine_dis_base.cpp.

◆ has_champ() [2/2]

bool Domaine_dis_base::has_champ ( const Motcle & nom,
OBS_PTR(Champ_base) & ref_champ ) const
override

Definition at line 234 of file Domaine_dis_base.cpp.

◆ init_dist_paroi_globale()

virtual void Domaine_dis_base::init_dist_paroi_globale ( const Conds_lim & conds_lim)
inlinevirtual

Reimplemented in Domaine_VF.

Definition at line 100 of file Domaine_dis_base.h.

◆ mesh_numbering()

const Champ_Fonc_base & Domaine_dis_base::mesh_numbering ( ) const
inline

Definition at line 108 of file Domaine_dis_base.h.

◆ modifier_pour_Cl()

virtual void Domaine_dis_base::modifier_pour_Cl ( const Conds_lim & )
pure virtual

◆ nb_elem()

int Domaine_dis_base::nb_elem ( ) const
inline

Definition at line 49 of file Domaine_dis_base.h.

◆ nb_elem_tot()

int Domaine_dis_base::nb_elem_tot ( ) const
inline

Definition at line 50 of file Domaine_dis_base.h.

◆ nb_front_Cl()

int Domaine_dis_base::nb_front_Cl ( ) const
inline

Definition at line 53 of file Domaine_dis_base.h.

◆ nb_som()

int Domaine_dis_base::nb_som ( ) const
inline

Definition at line 51 of file Domaine_dis_base.h.

◆ nb_som_tot()

int Domaine_dis_base::nb_som_tot ( ) const
inline

Definition at line 52 of file Domaine_dis_base.h.

◆ nombre_de_sous_domaines_dis()

int Domaine_dis_base::nombre_de_sous_domaines_dis ( ) const

Sous_domaines_dis

Definition at line 36 of file Domaine_dis_base.cpp.

◆ OBS_PTR() [1/2]

Domaine_dis_base::OBS_PTR ( Domaine )
protected

◆ OBS_PTR() [2/2]

Domaine_dis_base::OBS_PTR ( Reorder_Mesh )
protected

An observer to the Reorder_Mesh option filled in the discretisation itself.

◆ OWN_PTR() [1/2]

Domaine_dis_base::OWN_PTR ( Champ_Fonc_base )
protected

◆ OWN_PTR() [2/2]

Domaine_dis_base::OWN_PTR ( Champ_Fonc_base )
protected

◆ rang_frontiere() [1/2]

int Domaine_dis_base::rang_frontiere ( const Nom & nom)

Definition at line 95 of file Domaine_dis_base.cpp.

◆ rang_frontiere() [2/2]

int Domaine_dis_base::rang_frontiere ( const Nom & nom) const

Returns the rank of the boundary of Name nom Returns -1 if no boundary is named nom.

Parameters
(Nom&nom) the name of the boundary whose rank we seek
Returns
(int) the rank of the boundary if it exists -1 otherwise
Exceptions
noboundary of Name nom found

Definition at line 84 of file Domaine_dis_base.cpp.

◆ set_reorder()

void Domaine_dis_base::set_reorder ( const Reorder_Mesh & r)
inline

Definition at line 117 of file Domaine_dis_base.h.

◆ sous_domaine_dis() [1/2]

Sous_domaine_dis_base & Domaine_dis_base::sous_domaine_dis ( int i)

Definition at line 46 of file Domaine_dis_base.cpp.

◆ sous_domaine_dis() [2/2]

const Sous_domaine_dis_base & Domaine_dis_base::sous_domaine_dis ( int i) const

Definition at line 41 of file Domaine_dis_base.cpp.

◆ typer_discretiser_ss_domaine()

virtual void Domaine_dis_base::typer_discretiser_ss_domaine ( int i)
pure virtual

Implemented in Domaine_VF.

◆ volume_maille()

const Champ_Fonc_base & Domaine_dis_base::volume_maille ( ) const
inline

Definition at line 107 of file Domaine_dis_base.h.

◆ y_elem()

virtual const DoubleTab & Domaine_dis_base::y_elem ( ) const
inlinevirtual

Definition at line 98 of file Domaine_dis_base.h.

◆ y_faces()

virtual const DoubleTab & Domaine_dis_base::y_faces ( ) const
inlinevirtual

Definition at line 99 of file Domaine_dis_base.h.

Member Data Documentation

◆ champs_compris_

Champs_compris Domaine_dis_base::champs_compris_
protected

Definition at line 126 of file Domaine_dis_base.h.

◆ dist_paroi_initialisee_

int Domaine_dis_base::dist_paroi_initialisee_ = 0
protected

Definition at line 124 of file Domaine_dis_base.h.

◆ les_sous_domaines_dis_

TRUST_Vector<OWN_PTR(Sous_domaine_dis_base)> Domaine_dis_base::les_sous_domaines_dis_
protected

Definition at line 123 of file Domaine_dis_base.h.

◆ y_elem_

DoubleTab Domaine_dis_base::y_elem_
protected

Definition at line 125 of file Domaine_dis_base.h.

◆ y_faces_

DoubleTab Domaine_dis_base::y_faces_
protected

Definition at line 125 of file Domaine_dis_base.h.


The documentation for this class was generated from the following files: