|
| void | typer_elem (Domaine &domaine_geom) override |
| void | discretiser () override |
| virtual void | calculer_volumes_entrelaces () |
| void | discretiser_aretes () |
| void | orthocentrer () |
| const DoubleVect & | longueur_aretes () const |
| const DoubleTab & | ta () const |
| void | modifier_pour_Cl (const Conds_lim &) override |
| const Elem_poly_base & | type_elem () const |
| int | nb_elem_Cl () const |
| int | nb_faces_joint () const |
| int | nb_faces_std () const |
| int | nb_elem_std () const |
| double | carre_pas_du_maillage () const |
| double | carre_pas_maille (int i) const |
| IntVect & | rang_elem_non_std () |
| const IntVect & | rang_elem_non_std () const |
| virtual void | calculer_h_carre () |
| DoubleTab & | volumes_entrelaces_dir () |
| const DoubleTab & | volumes_entrelaces_dir () const |
| double | nu_dot (const DoubleTab *nu, int e, int n, const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const |
| double | dist_norm (int num_face) const override |
| double | dist_norm_bord (int num_face) const override |
| DoubleVect & | dist_norm_bord (DoubleVect &, const Nom &nom_bord) const |
| double | dist_face_elem0 (int num_face, int n0) const override |
| double | dist_face_elem1 (int num_face, int n1) const override |
| double | dist_face_elem0_period (int num_face, int n0, double l) const override |
| double | dist_face_elem1_period (int num_face, int n1, double l) const override |
| void | detecter_faces_non_planes () const |
| const IntTab & | equiv () const |
| virtual void | init_equiv () const =0 |
| const Static_Int_Lists & | som_elem () const |
| const IntTab & | elem_som_d () const |
| const IntTab & | elem_arete_d () const |
| const DoubleTab & | vol_elem_som () const |
| const DoubleTab & | pvol_som (const DoubleVect &poro) const |
| void | calculer_infos_aretes () |
| void | fill_normales () |
| void | recalculer_xv () |
| Public Member Functions inherited from Domaine_VF |
| virtual double | face_normales (int face, int comp) const |
| virtual DoubleTab & | face_normales () |
| virtual const DoubleTab & | face_normales () const |
| void | calculer_face_surfaces (const DoubleVect &surfaces) |
| virtual const DoubleVect & | face_surfaces () const |
| virtual double | face_surfaces (int i) const |
| virtual double | surface (int i) const |
| void | discretiser () override |
| | Generates the faces and builds the boundaries.
|
| void | discretiser_no_face () override |
| void | typer_discretiser_ss_domaine (int i) override |
| void | infobord () |
| void | info_elem_som () |
| void | marquer_faces_double_contrib (const Conds_lim &) |
| virtual void | remplir_face_voisins_fictifs (const Domaine_Cl_dis_base &) |
| virtual Faces * | creer_faces () |
| | Returns new(Faces)! It is overridden by Domaine_VDF for example.
|
| int | nb_joints () const |
| int | premiere_face_int () const |
| | A face is internal if and only if it separates two elements.
|
| int | nb_faces () const |
| | Returns the total number of faces.
|
| int | nb_faces_tot () const |
| | Returns the total number of faces.
|
| int | nb_som_face () const |
| | Returns the number of vertices per face.
|
| int | nb_arete_face () const |
| | Returns the number of edges per face.
|
| int | nb_faces_bord () const |
| | Returns the number of faces on which boundary conditions are applied:
|
| int | nb_faces_bord_tot () const |
| | Returns the total number of faces (real + virtual) on which boundary conditions are applied:
|
| int | premiere_face_bord () const |
| | Returns the index of the first face on which boundary conditions are applied:
|
| int | nb_faces_internes () const |
| | A face is internal if and only if it separates two elements.
|
| double | xv (int num_face, int k) const |
| double | xp (int num_elem, int k) const |
| double | xa (int num_arete, int k) const |
| int | face_numero_bord (int num_face) const |
| IntTab & | face_numero_bord () |
| const IntTab & | face_numero_bord () const |
| void | remplir_face_numero_bord () |
| ArrOfInt & | est_face_bord () |
| const ArrOfInt & | est_face_bord () const |
| virtual const IntVect & | orientation () const |
| virtual int | orientation (int) const |
| virtual int | orientation_si_definie (int) const |
| DoubleTab | normalized_boundaries_outward_vector (int global_face_number, double scale_factor) const |
| | Compute the normalized boundary outward vector associated to the face global_face_number and eventually scaled by scale_factor.
|
| DoubleTab & | xv () |
| const DoubleTab & | xv () const |
| DoubleTab & | xp () |
| const DoubleTab & | xp () const |
| DoubleTab & | xa () |
| const DoubleTab & | xa () const |
| DoubleVect & | volumes_entrelaces () |
| const DoubleVect & | volumes_entrelaces () const |
| double | volumes_entrelaces (int num_face) const |
| const DoubleTab & | volumes_entrelaces_dir () const |
| DoubleTab & | volumes_entrelaces_dir () |
| const Joint & | joint (int i) const |
| Joint & | joint (int i) |
| Frontiere_dis_base & | frontiere_dis (int) override |
| | Returns the i-th discrete boundary.
|
| const Frontiere_dis_base & | frontiere_dis (int) const override |
| | Returns the i-th discrete boundary.
|
| int | nb_frontiere_dis () const |
| const Front_VF & | front_VF (int i) const |
| double | volumes (int i) const |
| double | inverse_volumes (int i) const |
| int | face_voisins (int num_face, int i) const |
| | Returns the neighbouring element of num_face in direction i.
|
| int | elem_faces (int i, int j) const |
| | Returns the index of the i-th face of element num_elem; the face numbering convention is.
|
| int | face_sommets (int i, int j) const |
| | Returns the index of the i-th vertex of face num_face.
|
| DoubleVect & | volumes () |
| DoubleVect & | inverse_volumes () |
| const DoubleVect & | volumes () const |
| const DoubleVect & | inverse_volumes () const |
| IntTab & | face_voisins () override |
| | Returns the face-element connectivity array; see above.
|
| const IntTab & | face_voisins () const override |
| | See above.
|
| const IntTab & | face_voisins_fictifs () const |
| void | face_voisins_reel_fictif (int face, int &el0, int &elf) const |
| | Returns in el0 the index of the interior element; returns in elf the index of the fictitious element (-1 if it does not exist).
|
| IntTab & | elem_faces () |
| | Returns the element/face connectivity array.
|
| const IntTab & | elem_faces () const |
| | See above.
|
| ArrOfInt & | faces_doubles () |
| | Returns 1 for faces belonging to a periodic boundary or a shared item, 0 by default.
|
| const ArrOfInt & | faces_doubles () const |
| | See above.
|
| IntTab & | face_sommets () override |
| | Returns the face/vertex connectivity array.
|
| const IntTab & | face_sommets () const override |
| | See above.
|
| IntTab & | face_aretes () override |
| | Returns the face/edge connectivity array.
|
| const IntTab & | face_aretes () const override |
| | See above.
|
| void | modifier_pour_Cl (const Conds_lim &) override |
| int | numero_face_local (int face, int elem) const |
| int | numero_sommet_local (int som, int elem) const |
| const IntTab & | get_num_fac_loc () const |
| int | get_num_fac_loc (int, int) const |
| void | construire_num_fac_loc () |
| const ArrOfInt & | ind_faces_virt_bord () const |
| int | est_une_face_virt_bord (int) const |
| | Returns 1 if face is a virtual boundary face, 0 otherwise.
|
| int | fbord (int f) const |
| void | construire_face_virt_pe_num () |
| | Fills in the face_virt_pe_num_ array (see comment in Domaine_VF.h).
|
| const IntTab & | face_virt_pe_num () const |
| void | creer_tableau_faces (Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const |
| void | creer_tableau_aretes (Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const |
| void | creer_tableau_faces_bord (Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const |
| const MD_Vector & | md_vector_faces_bord () const |
| const MD_Vector & | md_vector_faces () const |
| const MD_Vector & | md_vector_aretes () const |
| virtual const DoubleTab & | xv_bord () const |
| DoubleTab | calculer_xgr () const |
| | Computes the xgr array for the computation of moments of forces at boundaries.
|
| virtual void | get_position (DoubleTab &positions) const |
| virtual double | compute_L1_norm (const DoubleVect &val_source, const bool basis_function, const int order) const |
| virtual double | compute_L2_norm (const DoubleVect &val_source, const bool basis_function, const int order) const |
| virtual void | compute_average (const DoubleVect &val_source, double &sum, double &volume, const bool basis_function, const int order) const |
| virtual void | compute_average_porosity (const DoubleVect &val_source, const DoubleVect &porosity, double &sum, double &volume, const bool basis_function, const int order) const |
| virtual void | get_nb_integ_points (IntTab &nelem) const |
| virtual void | get_ind_integ_points (IntTab &nelem) const |
| virtual int | get_max_nb_integ_points () const |
| double | dot (const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const |
| std::array< double, 3 > | cross (int dima, int dimb, const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const |
| void | init_dist_paroi_globale (const Conds_lim &conds_lim) override |
| | Method inspired by Raccord_distant_homogene::initialise.
|
| const DoubleTab & | normale_paroi_elem () const |
| const DoubleTab & | normale_paroi_faces () const |
| void | build_mc_face_mesh () const |
| | Build the MEDCoupling face mesh. It is always made of polygons (in 3D) for simplicity purposes. Face numbers (and node numbers) are the same as in TRUST.
|
| void | build_mc_dual_mesh () const |
| | Build the dual mesh of the domain for post-processing of face fields.
|
| int | oriente_normale (int f, int e) const |
| const IntTab & | get_face_voisins_dual () const |
| int | get_face_voisins_dual (const int i, const int j) const |
| void | build_map_mc_Cmesh (const bool with_faces) override |
| Public Member Functions inherited from Domaine_dis_base |
| 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_base & | sous_domaine_dis (int i) const |
| Sous_domaine_dis_base & | sous_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_base & | frontiere_dis (const Nom &) const |
| | Returns the boundary of Name nom.
|
| Frontiere_dis_base & | frontiere_dis (const Nom &) |
| 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 | creer_elements_fictifs (const Domaine_Cl_dis_base &) |
| virtual const DoubleTab & | y_elem () const |
| virtual const DoubleTab & | y_faces () const |
| const Champ_Fonc_base & | volume_maille () const |
| const Champ_Fonc_base & | mesh_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_base & | get_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) |
| virtual | ~Champs_compris_interface () |
| virtual bool | has_champ (const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const =0 |
| | ~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 Sortie & | printOn (Sortie &) const |
| | Writes the object to an output stream. Virtual method to override.
|
| virtual Entree & | readOn (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 Nom & | le_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_info * | get_info () const |
| | Returns type information for the Objet_U.
|
| const Nom & | que_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 Interprete & | interprete () const |
| Interprete & | interprete () |
| virtual | ~Process () |
|
| static const Nom & | nom_du_cas () |
| | Returns a constant reference to the case name. This method is static.
|
| static Nom & | get_set_nom_du_cas () |
| | Returns a non-constant reference to the case name (to allow modification). This method is static.
|
| static const Type_info * | info () |
| | Returns type information for the Objet_U (static version).
|
| static const Objet_U & | self_cast (const Objet_U &) |
| | Method added for casting in Python.
|
| static Objet_U & | self_cast (Objet_U &) |
| 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 Sortie & | Journal (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 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 int | exception_sur_exit =0 |
| static int | multiple_files =5120 |
class Domaine_Poly_base
Instantiable class derived from Domaine_VF.
This class contains the geometric information required by the
Finite Volume Element method (Crouzeix-Raviart element).
The class holds a number of pieces of information concerning the faces.
In this set of faces, the boundary and joint faces are also included.
To handle the faces, two categories are distinguished:
- non-standard faces: located on a joint, a boundary, or internal
but belonging to a boundary element
- standard faces: internal faces not belonging to a boundary element
This distinction corresponds to the treatment of boundary conditions:
standard faces do not "see" boundary conditions.
The set of faces is numbered as follows:
- faces on a Domaine_joint appear first
(in the order of the les_joints vector)
- faces on a Domaine_bord appear next
(in the order of the les_bords vector)
- non-standard internal faces appear next
- standard internal faces appear last
Consequently, all non-standard faces requiring special treatment are
grouped together at the beginning.
Two types of elements are distinguished:
- non-standard elements: they have at least one boundary face
- standard elements: they have no boundary face
Standard elements (resp. non-standard elements) are not stored
consecutively in the Domaine object. The rang_elem_non_std array
is used to selectively access one or the other type of element.
Definition at line 69 of file Domaine_Poly_base.h.