|
TrioCFD 1.9.9_beta
TrioCFD documentation
|
This interpreter computes and stores in a lata file the convolution product. More...
#include <Moyenne_volumique.h>
Public Member Functions | |
| Entree & | interpreter (Entree &) override |
| Reads the parameters from the data set. | |
| virtual void | calculer_convolution_champ_elem (const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const |
| Computes the convolution product between the filter function and the field "champ_source", which must be discretized at the elements of "domaine_source". | |
| virtual void | calculer_convolution_champ_face (const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const |
| Same as calculer_convolution_champ_elem but for a VDF face field. | |
| virtual void | eval_filtre (const DoubleTab &coords, ArrOfDouble &result) const |
| Evaluates the filter function at each coordinate in coords. | |
| double | box_size () const |
| 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 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 () |
| Public Member Functions inherited from Process | |
| virtual | ~Process () |
Protected Types | |
| enum | Type { ERROR , BOITE , CHAPEAU , GAUSSIENNE , PARSER , QUADRA } |
Protected Member Functions | |
| void | traiter_champs (const Motcles &noms_champs, const Nom &nom_pb, const Nom &nom_dom, const DoubleTab &coords, Format_Post_base &post, double temps, const Motcle &localisation) |
| Helper function that performs the convolution calculations and writes the result to a lata file for all fields of a given type listed in noms_champs. | |
| int | get_champ (const Nom &nom_pb, const Nom &nom_champ, OBS_PTR(Champ_base) &ref_champ) |
| Searches for the field named "nom_champ" in the problem named "nom_pb" among the interpreter objects. | |
| virtual void | calculer_convolution (const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const |
| General method to compute a convolution from a field defined at elements or faces. | |
| 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_U & | operator= (const Objet_U &) |
| Assignment operator: does nothing (the number and identifier are preserved). | |
| virtual void | set_param (Param &) const |
Protected Attributes | |
| Type | type_ = ERROR |
| double | l_ = -1. |
| double | box_size_ = -100. |
| Nom | expression_parser_ |
| Parser | parser_ |
Additional Inherited Members | |
| Static Public Member Functions inherited from Interprete | |
| static Objet_U & | objet (const Nom &) |
| See Interprete_bloc::objet_global(). BM: the Interprete class is not the best place for this. | |
| static int | objet_existant (const Nom &) |
| Returns 1 if the object exists, 0 otherwise. See Interprete_bloc::objet_global_existant(). | |
| Static Public Member Functions inherited from Objet_U | |
| 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 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 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 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 |
This interpreter computes and stores in a lata file the convolution product.
of certain fields of a problem with an arbitrary filter function, after the computation (i.e. after "resoudre"). It can be used as an interpreter (see Moyenne_volumique::interpreter()) or anywhere inside the code as follows: Moyenne_volumique moy; is >> moy; // reading of the filter function moy.calculer_convolution_champ_elem/face(...)
Definition at line 41 of file Moyenne_volumique.h.
|
protected |
| Enumerator | |
|---|---|
| ERROR | |
| BOITE | |
| CHAPEAU | |
| GAUSSIENNE | |
| PARSER | |
| QUADRA | |
Definition at line 63 of file Moyenne_volumique.h.
|
inline |
Definition at line 53 of file Moyenne_volumique.h.
|
protectedvirtual |
General method to compute a convolution from a field defined at elements or faces.
Method called by calculer_convolution_champ_elem() and calculer_convolution_champ_face().
| domaine_source | the source discretized domain |
| champ_source | the source field values array |
| coords_to_compute | coordinates at which to evaluate the convolution |
| resu | output array of convolution results |
Definition at line 690 of file Moyenne_volumique.cpp.
|
virtual |
Computes the convolution product between the filter function and the field "champ_source", which must be discretized at the elements of "domaine_source".
The resu array has the same number of columns as "champ_source" and the same number of rows as coords_to_compute. The filter function is assumed to have support contained in a cube of half-side box_size centred on the origin (contributions of elements outside this cube are ignored).
| domaine_source | the source discretized domain |
| champ_source | the source field values array |
| coords_to_compute | coordinates at which to evaluate the convolution |
| resu | output array of convolution results |
Definition at line 783 of file Moyenne_volumique.cpp.
|
virtual |
Same as calculer_convolution_champ_elem but for a VDF face field.
The source field is assumed to be a vector field containing, for each face, the normal component of the field at that face. For each column of the champ_source array, "dimension" columns of resu are filled: the first using only faces with X-normal, the second with Y-normal faces, etc.
| domaine_source | the source discretized domain |
| champ_source | the source face field values array |
| coords_to_compute | coordinates at which to evaluate the convolution |
| resu | output array of convolution results |
Definition at line 804 of file Moyenne_volumique.cpp.
|
virtual |
Evaluates the filter function at each coordinate in coords.
Method called from the Calcul_integrale_locale class.
| coords | the array of coordinates at which to evaluate the filter |
| result | the output array of filter values |
Definition at line 132 of file Moyenne_volumique.cpp.
|
protected |
Searches for the field named "nom_champ" in the problem named "nom_pb" among the interpreter objects.
Method called by traiter_champs().
| nom_pb | the name of the problem |
| nom_champ | the name of the field to retrieve |
| ref_champ | reference to the field, set on output |
Definition at line 249 of file Moyenne_volumique.cpp.
Reads the parameters from the data set.
Expected format: Moyenne_volumique { nom_pb NOM_DU_PROBLEME (where to look for the source fields) nom_domaine DOMAINE_CIBLE (the convolution is evaluated at the elements of this domain) noms_champs N CHAMP1 CHAMP2 ... (names of the fields to filter in the problem) [ nom_fichier_post NOM_SANS_EXTENSION ] (either nom_fichier and format_post are given, or fichier_post is given) [ format_post lata|lml|med|... ] (default: lata) [ fichier_post Format_Post_XXX { ... } ] (read via readOn of Format_Post_XXX) fonction_filtre ... (format: see Moyenne_volumique::readOn() ) [ localisation ELEM|SOM ] }
| is | the input stream |
Implements Interprete.
Definition at line 446 of file Moyenne_volumique.cpp.
|
protected |
Helper function that performs the convolution calculations and writes the result to a lata file for all fields of a given type listed in noms_champs.
Method called by interpreter(). type_champ=0 => process element fields type_champ=1 => process face fields
| noms_champs | list of field names to process |
| nom_pb | name of the problem |
| nom_dom | name of the destination domain |
| coords | coordinates at which to evaluate the convolution |
| post | the post-processing format object used for writing |
| temps | current time |
| localisation | field localisation (ELEM or SOM) |
Definition at line 296 of file Moyenne_volumique.cpp.
|
protected |
Definition at line 69 of file Moyenne_volumique.h.
|
protected |
Definition at line 70 of file Moyenne_volumique.h.
|
protected |
Definition at line 67 of file Moyenne_volumique.h.
|
mutableprotected |
Definition at line 71 of file Moyenne_volumique.h.
Definition at line 65 of file Moyenne_volumique.h.