// 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-2021 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: 13/04/2004 * * $ * * AUTEUR: G RIO (mailto:gerardrio56@free.fr) * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: Conteneur pour stocker des données pour la thermique. * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * * VERIFICATION: * * * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * ! ! ! ! * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * MODIFICATIONS: * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * $ * ************************************************************************/ #ifndef THERMODONNEE_H #define THERMODONNEE_H #include #include #include #include "Sortie.h" /// @addtogroup Les_conteneurs_energies /// @{ /// class ThermoDonnee { // surcharge de l'operator de lecture avec le type friend istream & operator >> (istream &, ThermoDonnee &); // surcharge de l'operator d'ecriture friend ostream & operator << (ostream &, const ThermoDonnee &); public : // CONSTRUCTEURS : // par défaut ThermoDonnee() : alphaT(0.),active_dilatation(false),lambda(0.),cp(0.),compressibilite(0.) ,taux_crista(NULL) {}; // de copie ThermoDonnee(const ThermoDonnee& co) : alphaT(co.alphaT),active_dilatation(co.active_dilatation),lambda(co.lambda) ,cp(co.cp),compressibilite(co.compressibilite) ,taux_crista(new double) {*taux_crista = *(co.taux_crista);}; // DESTRUCTEUR : ~ThermoDonnee() { if (taux_crista != NULL) delete taux_crista;}; // METHODES PUBLIQUES : // retourne le coefficient de dilatation const double& Dilatation() const {return alphaT;}; // retourne la conductivité const double& Conductivite() const {return lambda;}; // retourne la capacité calorifique const double & CapaciteCalorifique() const {return cp;}; // retourne la compressibilité const double & Compressibilite() const {return compressibilite;}; // indique si oui ou non la dilatation est active bool ActiveDilatation() const {return active_dilatation;}; // retourne un pointeur sur taux de cristalinité. Si le pointeur est nul // indique qu'il n'y a pas de taux de cristalinité const double * TauxCrista() const {return taux_crista;}; // changement du coefficient de dilatation void ChangeDilatation(double dila) { alphaT = dila;}; // changement de: alphaT, lambda, cp void ChangeAlphaTLambdaCp(const double& alph, const double & lamb, const double & ccc) { alphaT=alph; lambda=lamb; cp=ccc;}; void ChangeCompressibilite(const double compress) { compressibilite = compress;}; void ChangeTauxCrista(const double taux_cris) { if (taux_crista == NULL) {taux_crista = new double;}; *taux_crista = taux_cris; }; private : // VARIABLES PROTEGEES : double alphaT; // coefficient de dilatation bool active_dilatation; double lambda ; // conductivité double cp; // capacité calorifique double compressibilite; // compressibilité double* taux_crista; // taux de cristalinité: pointeur null si ne sert pas // METHODES PROTEGEES : }; /// @} // end of group #endif