// 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: . /************************************************************************ * DATE: 23/01/97 * * $ * * AUTEUR: G RIO (mailto:gerardrio56@free.fr) * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: Classe servant a stocker des informations intermediaires.* * * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * * VERIFICATION: * * * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * ! ! ! ! * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * MODIFICATIONS: * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * $ * ************************************************************************/ #ifndef DIVERSSTOCKAGE_H #define DIVERSSTOCKAGE_H #include #include #include #include "Tableau_T.h" #include "UtilLecture.h" #include "LesReferences.h" #include "MotCle.h" #include "LectBloc_T.h" #include "Bloc.h" #include "BlocDdlLim.h" /** * * BUT:Classe servant a stocker des informations intermediaires. * * \author Gérard Rio * \version 1.0 * \date 23/01/97 * \brief Classe servant a stocker des informations intermediaires. * */ class DiversStockage { public : // VARIABLES PUBLIQUES : // CONSTRUCTEURS : DiversStockage (); // DESTRUCTEUR : ~DiversStockage () {}; // METHODES PUBLIQUES : // affichage des infos void Affiche () const ; // affichage de tous les infos void Affiche1 () const ; // affichage des infos de la premiere lecture void Affiche2 () const ; // affichage des infos de la seconde lecture // lecture des infos // dans la premiere lecture il s'agit actuellement des epaisseurs, des sections void Lecture1(UtilLecture & entreePrinc,LesReferences& lesRef); // dans la seconde lecture il s'agit des masses additionnelles void Lecture2(UtilLecture & entreePrinc,LesReferences& lesRef); // retourne le tableau des epaisseurs const Tableau < BlocDdlLim > & TabEpaiss() const { return tabEpaiss;}; // retourne le tableau des largeurs const Tableau < BlocDdlLim > & TabLargeurs() const { return tabLargeurs;}; // retourne le tableau des section const Tableau < BlocDdlLim > & TabSect() const { return tabSection;}; // retourne le tableau des variations de section const Tableau < BlocDdlLim > & TabVarSect() const { return tabVarSection;}; // retourne le tableau des masses volumiques const Tableau < BlocDdlLim > & TabMasseVolu() const { return tabMasseVolu;}; // retourne le tableau des masses additionnelles const Tableau < BlocDdlLim > & TabMasseAddi() const { return tabMasseAddi;}; // retourne le tableau des dilatations thermique const Tableau < BlocDdlLim > & TabCoefDila() const { return tabCoefDila;}; // retourne le tableau des gestions d'hourglass const Tableau < BlocDdlLim > & TabGesHourglass() const { return tabGesHourglass;}; // retourne le tableau d'intégration de volume d'une grandeur const Tableau < BlocDdlLim >& TabIntegVol() const {return tabIntegVol;}; // retourne le tableau d'intégration de volume et en temps d'une grandeur const Tableau < BlocDdlLim >& TtabIntegVol_et_temps() const {return tabIntegVol_et_temps;}; // retourne le tableau sur la stabilisation transversale de membrane ou biel const Tableau < BlocDdlLim >& TabStabMembBiel() const {return tabStabMembraneBiel;}; // retourne le tableau sur la définition d'un repère d'anisotropie aux éléments const Tableau < BlocDdlLim >& TabRepAnisotrope() const {return tabRepAnisotrope;}; // lecture de donnée en fonction d'un indicateur : int type // pour l'instant ne fait rien void LectureDonneesExternes(UtilLecture& ,LesReferences& ,const int ,const string& ) {}; // retourne le tableau sur statistique d'une ref de noeuds pour une grandeur quelconque const Tableau < BlocDdlLim >& TabStatistique() const {return tabStatistique;}; // retourne le tableau sur statistique d'une ref de noeuds cumulée en temps pour une grandeur queconque const Tableau < BlocDdlLim >& TabStatistique_et_temps() const {return tabStatistique_et_temps;}; // affichage et definition interactive des commandes void Info_commande_DiversStockage1(UtilLecture & entreePrinc); void Info_commande_DiversStockage2(UtilLecture & entreePrinc); //----- lecture écriture dans base info ----- // cas donne le niveau de la récupération // = 1 : on récupère tout // = 2 : on récupère uniquement les données variables (supposées comme telles) void Lecture_base_info(istream& ent,const int cas); // cas donne le niveau de sauvegarde // = 1 : on sauvegarde tout // = 2 : on sauvegarde uniquement les données variables (supposées comme telles) void Ecriture_base_info(ostream& sort,const int cas); private : // VARIABLES PROTEGEES : // infos sur les epaisseurs Tableau < BlocDdlLim > tabEpaiss; // infos sur les largeurs Tableau < BlocDdlLim > tabLargeurs; // infos sur les sections de biellette Tableau < BlocDdlLim > tabSection; // infos sur les variations de sections de biellette Tableau < BlocDdlLim > tabVarSection; // infos sur les masses volumique Tableau < BlocDdlLim > tabMasseVolu; // infos sur les masses additionnelles Tableau < BlocDdlLim > tabMasseAddi; // infos sur les coefficients de dilatation Tableau < BlocDdlLim > tabCoefDila; // infos sur la gestion d'hourglass Tableau < BlocDdlLim > tabGesHourglass; // infos sur intégration de volume d'une grandeur queconque Tableau < BlocDdlLim > tabIntegVol; // infos sur intégration de volume et en temps d'une grandeur queconque Tableau < BlocDdlLim > tabIntegVol_et_temps; // infos sur la stabilisation transversale de membrane ou biel // a priori de type 4,0 mais peut s'agrandir si nécessaire à la lecture !! Tableau < BlocDdlLim > tabStabMembraneBiel; // infos sur la définition d'un repère d'anisotropie aux éléments Tableau < BlocDdlLim > tabRepAnisotrope; // infos sur statistique d'une ref de noeuds pour une grandeur quelconque Tableau < BlocDdlLim > tabStatistique; // infos sur statistique d'une ref de noeuds cumulée en temps pour une grandeur queconque Tableau < BlocDdlLim > tabStatistique_et_temps; }; #endif