/*! \file Enum_TypeQuelconque.h \brief Définition de l'enuméré pour repérer un type quelconque */ // FICHIER : Enum_TypeQuelconque.h // This file is part of the Herezh++ application. // // The finite element software Herezh++ is dedicated to the field // of mechanics for large transformations of solid structures. // It is developed by Gérard Rio (APP: IDDN.FR.010.0106078.000.R.P.2006.035.20600) // INSTITUT DE RECHERCHE DUPUY DE LÔME (IRDL) . // // Herezh++ is distributed under GPL 3 license ou ultérieure. // // Copyright (C) 1997-2022 Université Bretagne Sud (France) // AUTHOR : Gérard Rio // E-MAIL : gerardrio56@free.fr // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, // or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // For more information, please consult: . // Afin de realiser un gain en place memoire, les noms des types de grandeurs sont // stockes a l'aide d'un type enumere. Les fonctions NomTypeQuelconque et Id_nomTypeQuelconque rendent // possible le lien entre les noms des geometries et les identificateurs // de type enumere correspondants. #ifndef ENUMTYPEQUELCONQUE_H #define ENUMTYPEQUELCONQUE_H #include using namespace std; #include #include "ParaGlob.h" #include "EnumTypeGrandeur.h" #include "Enum_dure.h" #include "Tableau_T.h" /// @addtogroup Group_types_enumeres /// @{ /// Définition de l'enuméré pour repérer un type quelconque enum EnumTypeQuelconque { RIEN_TYPEQUELCONQUE = 1, SIGMA_BARRE_BH_T ,CONTRAINTE_INDIVIDUELLE_A_CHAQUE_LOI_A_T ,CONTRAINTE_INDIVIDUELLE_A_CHAQUE_LOI_A_T_SANS_PROPORTION ,CONTRAINTE_COURANTE,DEFORMATION_COURANTE,VITESSE_DEFORMATION_COURANTE ,ALMANSI,GREEN_LAGRANGE,LOGARITHMIQUE,DELTA_DEF ,ALMANSI_TOTAL,GREEN_LAGRANGE_TOTAL,LOGARITHMIQUE_TOTALE ,DEF_PRINCIPALES,SIGMA_PRINCIPALES,VIT_PRINCIPALES,DEF_DUALE_MISES,DEF_DUALE_MISES_MAXI ,CONTRAINTE_MISES,CONTRAINTE_MISES_T,CONTRAINTE_TRESCA,CONTRAINTE_TRESCA_T ,ERREUR_Q,DEF_PLASTIQUE_CUMULEE ,ERREUR_SIG_RELATIVE ,TEMPERATURE_LOI_THERMO_PHYSIQUE, PRESSION_LOI_THERMO_PHYSIQUE ,TEMPERATURE_TRANSITION, VOLUME_SPECIFIQUE ,FLUXD, GRADT, DGRADT,DELTAGRADT ,COEFF_DILATATION_LINEAIRE, CONDUCTIVITE, CAPACITE_CALORIFIQUE ,MODULE_COMPRESSIBILITE,MODULE_CISAILLEMENT,COEFF_COMPRESSIBILITE ,MODULE_COMPRESSIBILITE_TOTAL,MODULE_CISAILLEMENT_TOTAL ,E_YOUNG,NU_YOUNG,MU_VISCO,MU_VISCO_SPHERIQUE ,MODULE_TANGENT_1D,COMPRESSIBILITE_TANGENTE ,NB_INVERSION,HYPER_CENTRE_HYSTERESIS,SIGMA_REF,Q_SIG_HYST_Oi_A_R,Q_SIG_HYST_R_A_T ,Q_DELTA_SIG_HYST,COS_ALPHA_HYSTERESIS,COS3PHI_SIG_HYSTERESIS,COS3PHI_DELTA_SIG_HYSTERESIS ,FCT_AIDE ,NB_ITER_TOTAL_RESIDU,NB_INCRE_TOTAL_RESIDU,NB_APPEL_FCT,NB_STEP,ERREUR_RK ,PRESSION_HYST_REF,PRESSION_HYST,PRESSION_HYST_REF_M1,PRESSION_HYST_T ,UN_DDL_ENUM_ETENDUE,ENERGIE_ELASTIQUE_INDIVIDUELLE_A_CHAQUE_LOI_A_T ,ENERGIE_PLASTIQUE_INDIVIDUELLE_A_CHAQUE_LOI_A_T ,ENERGIE_VISQUEUSE_INDIVIDUELLE_A_CHAQUE_LOI_A_T ,PROPORTION_LOI_MELANGE, FONC_PONDERATION ,POSITION_GEOMETRIQUE,POSITION_GEOMETRIQUE_t,POSITION_GEOMETRIQUE_t0 ,CRISTALINITE ,VOLUME_ELEMENT,VOLUME_PTI,EPAISSEUR_MOY_INITIALE, EPAISSEUR_MOY_FINALE ,SECTION_MOY_INITIALE, SECTION_MOY_FINALE ,EPAISSEUR_INITIALE, EPAISSEUR_FINALE,SECTION_INITIALE, SECTION_FINALE ,VOL_ELEM_AVEC_PLAN_REF,INTEG_SUR_VOLUME,INTEG_SUR_VOLUME_ET_TEMPS ,STATISTIQUE,STATISTIQUE_ET_TEMPS ,ENERGIE_HOURGLASS,PUISSANCE_BULK,ENERGIE_BULK,ENERGIE_STABMEMB_BIEL,FORCE_STABMEMB_BIEL ,TENSEUR_COURBURE, COURBURES_PRINCIPALES, DIRECTIONS_PRINC_COURBURE ,DIRECTIONS_PRINC_SIGMA,DIRECTIONS_PRINC_DEF,DIRECTIONS_PRINC_D ,REPERE_LOCAL_ORTHO, REPERE_LOCAL_H, REPERE_LOCAL_B ,REPERE_D_ANISOTROPIE,EPS_TRANSPORTEE_ANISO,SIGMA_DANS_ANISO ,DELTA_EPS_TRANSPORTEE_ANISO,DELTA_SIGMA_DANS_ANISO ,PARA_ORTHO,PARA_LOI_FAVIER,PARA_LOI_TYPE_MOONEY ,SPHERIQUE_EPS,Q_EPS,COS3PHI_EPS,SPHERIQUE_SIG,Q_SIG,COS3PHI_SIG ,SPHERIQUE_DEPS,V_vol,Q_DEPS,COS3PHI_DEPS,POTENTIEL,FCT_POTENTIEL_ND ,INVAR_B1,INVAR_B2,INVAR_B3,INVAR_J1,INVAR_J2,INVAR_J3 ,DEF_EQUIVALENTE,DEF_EPAISSEUR,D_EPAISSEUR,DEF_LARGEUR,D_LARGEUR ,DEF_MECANIQUE,DEF_ASSO_LOI,DEF_P_DANS_V_A ,SIG_EPAISSEUR,SIG_LARGEUR ,FORCE_GENE_EXT,FORCE_GENE_INT,FORCE_GENE_TOT,RESIDU_GLOBAL ,FORCE_GENE_EXT_t,FORCE_GENE_INT_t ,VECT_PRESSION,PRESSION_SCALAIRE,VECT_FORCE_VOLUM ,VECT_DIR_FIXE,VECT_SURF_SUIV,VECT_HYDRODYNA_Fn,VECT_HYDRODYNA_Ft,VECT_HYDRODYNA_T ,VECT_LINE,VECT_LINE_SUIV,VECT_REAC,VECT_REAC_N ,NN_11,NN_22,NN_33,NN_12,NN_13,NN_23,MM_11,MM_22,MM_33,MM_12,MM_13,MM_23 ,DIRECTION_PLI,DIRECTION_PLI_NORMEE,INDIC_CAL_PLIS ,NN_SURF,NN_SURF_t,NN_SURF_t0,N_FRONT,N_FRONT_t,N_FRONT_t0 ,NOEUD_PROJECTILE_EN_CONTACT,NOEUD_FACETTE_EN_CONTACT ,GLISSEMENT_CONTACT,PENETRATION_CONTACT ,GLISSEMENT_CONTACT_T,PENETRATION_CONTACT_T ,FORCE_CONTACT,FORCE_CONTACT_T,CONTACT_NB_PENET ,CONTACT_NB_DECOL,CONTACT_CAS_SOLIDE ,CONTACT_ENERG_PENAL,CONTACT_COLLANT,NUM_ZONE_CONTACT ,CONTACT_ENERG_GLISSE_ELAS,CONTACT_ENERG_GLISSE_PLAS,CONTACT_ENERG_GLISSE_VISQ ,CONTACT_PENALISATION_N,CONTACT_PENALISATION_T ,NORMALE_CONTACT ,TEMPS_CPU_USER,TEMPS_CPU_LOI_COMP,TEMPS_CPU_METRIQUE ,GENERIQUE_UNE_GRANDEUR_GLOBALE ,GENERIQUE_UNE_CONSTANTE_GLOB_INT_UTILISATEUR ,GENERIQUE_UNE_CONSTANTE_GLOB_DOUBLE_UTILISATEUR ,GENERIQUE_UNE_VARIABLE_GLOB_DOUBLE_UTILISATEUR_0 ,GENERIQUE_UNE_VARIABLE_GLOB_DOUBLE_UTILISATEUR_T ,GENERIQUE_UNE_VARIABLE_GLOB_DOUBLE_UTILISATEUR_TDT ,DEPLACEMENT, VITESSE, ACCELERATION ,DELTA_XI,XI_ITER_0,MASSE_RELAX_DYN ,COMP_TORSEUR_REACTION ,NUM_NOEUD,NUM_MAIL_NOEUD,NUM_ELEMENT,NUM_MAIL_ELEM,NUM_PTI ,NUM_FACE,NUM_ARETE }; /// @} // end of group //------****----- // en fonction des ajouts voir pour mettre à jour éventuellement // EnumTypeQuelconque Equi_Enum_ddl_en_enu_quelconque(Enum_ddl a); //------****----- /// @addtogroup Group_types_enumeres /// @{ /// def de la map qui fait la liaison entre les string et les énumérés class ClassPourEnumTypeQuelconque { public: // def de la map qui fait la liaison entre les string et les énumérés static map < string, EnumTypeQuelconque , std::less < string> > map_EnumTypeQuelconque; // def de la grandeur statique qui permet de remplir la map static ClassPourEnumTypeQuelconque remplir_map; // le constructeur qui rempli effectivement la map ClassPourEnumTypeQuelconque(); // indique le type d'expression de la grandeur static Tableau < int > tt_GLOB; // = 1 indique si la grandeur est naturellement exprimé dans le repère globale // = 0 indique que la grandeur est dans le repère naturelle (ou une combinaison) // indique à quel temps la grandeur est calculée static Tableau < Enum_dure > tt_TQ_temps; // nombre de grandeur énumérée existante static int NombreEnumTypeQuelconque() {return tt_GLOB.Taille();}; }; /// @} // end of group // Retourne le nom du type de grandeur a partir de son identificateur de // type enumere id_TypeQuelconque correspondant string NomTypeQuelconque (EnumTypeQuelconque id_TypeQuelconque); // idem mais en version courte (sur quelques caractères) string NomTypeQuelconque_court (EnumTypeQuelconque id_TypeQuelconque); // nom générique, lorsqu'il s'agit de composantes string NomGeneriqueTypeQuelconque(EnumTypeQuelconque id_TypeQuelconque); // indique si le string correspond à un type quelconque reconnu ou non bool Existe_typeQuelconque(const string& nom); // Retourne l'identificateur de type enumere associe au nom du type de grandeur // nom_TypeQuelconque EnumTypeQuelconque Id_nomTypeQuelconque (const char* nom_TypeQuelconque); EnumTypeQuelconque Id_nomTypeQuelconque (const string& nom_TypeQuelconque); // Retourne le type de grandeur associée au type quelconque EnumTypeGrandeur Type_de_grandeur_associee(EnumTypeQuelconque typa); // retourne le temps auquel la grandeur est définie Enum_dure EnumTypeQuelconqueTemps(EnumTypeQuelconque typa); // retour du type d'expression de la grandeur // = 1 indique si la grandeur est naturellement exprimé dans le repère globale // = 0 indique que la grandeur est dans le repère naturelle (ou une combinaison) int EnumTypeQuelconqueGlobale(EnumTypeQuelconque typa); // surcharge de l'operator de lecture istream & operator >> (istream & entree, EnumTypeQuelconque& a); // surcharge de l'operator d'ecriture ostream & operator << (ostream & sort, const EnumTypeQuelconque& a); #endif