// FICHIER : ThermoDonnee.cc // CLASSE : ThermoDonnee // 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: . #include "ThermoDonnee.h" #include "ParaGlob.h" #include // surcharge de l'operateur de lecture istream & operator >> ( istream & ent, ThermoDonnee & coo) { // lecture du type et vérification string nomtype; ent >> nomtype; if (nomtype != "ThermoDonnee") { Sortie(1); return ent; } // lecture du coefficient de dilatation ent >> nomtype >> coo.alphaT ; // lecture de l'activité de la dilatation ent >> nomtype >> coo.active_dilatation; // lecture de lamba et cp ent >> nomtype >> coo.lambda >> nomtype >> coo.cp; // lecture de la compressibilité ent >> nomtype >> coo.compressibilite ; // pour les grandeurs qui sont éventuellement présente ou absente bool existe = false; ent >> existe; if (existe) { if (coo.taux_crista == NULL) coo.taux_crista = new double; ent >> nomtype >> *(coo.taux_crista) ; }; return ent; }; // surcharge de l'operateur d'ecriture ostream & operator << ( ostream & sort,const ThermoDonnee & coo) { // écriture du type et de la dimension sort << " ThermoDonnee coef_dila "; // les data sort << setprecision(ParaGlob::NbdigdoCA()) << coo.alphaT << " " << " active_dila " << coo.active_dilatation << " " << " lambda " << setprecision(ParaGlob::NbdigdoCA()) << coo.lambda << " " << " cp " << setprecision(ParaGlob::NbdigdoCA()) << coo.cp << " " << " compressibilite " << setprecision(ParaGlob::NbdigdoCA()) << coo.compressibilite << " "; // pour les grandeurs qui sont éventuellement présente ou absente if (coo.taux_crista == NULL) { sort << false << " " ;} else { sort << true << " taux_crista " << *(coo.taux_crista) << " ";}; return sort; };