// 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: 1/10/98 * * $ * * AUTEUR: G RIO (mailto:gerardrio56@free.fr) * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: Classe générale concernant les hyperélastiques utilisant * * comme invariants : V,Ieps,bIIb. * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * * VERIFICATION: * * * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * ! ! ! ! * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * MODIFICATIONS: * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * $ * ************************************************************************/ #ifndef HYPER3DN_H #define HYPER3DN_H #include "HyperDN.h" #include "TypeConsTens.h" /// @addtogroup Les_lois_hyperelastiques /// @{ /// class Hyper3DN : public HyperDN { public : // VARIABLES PUBLIQUES : // CONSTRUCTEURS : // Constructeur par defaut Hyper3DN (); // Constructeur utile si l'identificateur du nom de la loi // de comportement est connu Hyper3DN (Enum_comp id_compor,Enum_categorie_loi_comp categorie_comp) ; // Constructeur utile si l'identificateur du nom de la loi // de comportement est connu Hyper3DN (char* nom,Enum_categorie_loi_comp categorie_comp) ; // Constructeur de copie Hyper3DN (const Hyper3DN& loi) ; // DESTRUCTEUR : ~Hyper3DN () {}; // METHODES internes spécifiques à l'hyperélasticité isotrope découlant de // méthodes virtuelles de HyperDN // Calcul des trois invariants et de epsBH, // retour de IdGBH qui pointe sur le bon tenseur Tenseur3BH* Invariants (TenseurBB& epsBB_t,TenseurBB& gijBB_t, TenseurHH & gijHH_t, double& jacobien_0,double& jacobien_t, double & Ieps, double & V,double& bIIb,Tenseur3BH & epsBH) ; // calcul des trois invariants et de leurs variations, de epsBH, // et de sa variation, puis retour de IdGBH qui pointe sur le bon tenseur Tenseur3BH* Invariants_et_var (TenseurBB& epsBB_tdt, TenseurBB& gijBB_tdt,Tableau & d_gijBB_tdt, TenseurHH & gijHH_tdt,Tableau & d_gijHH_tdt, double& jacobien_0,double& jacobien_tdt,Vecteur& d_jacobien_tdt, double & Ieps,Tableau & dIeps,double & V,Tableau & dV, double& bIIb,Tableau & dbIIb, Tenseur3BH & epsBH,Tableau & depsBH) ; // récupération de la variation relative d'épaisseur calculée: h/h0 // cette variation n'est utile que pour des lois en contraintes planes // - pour les lois 3D : retour d'un nombre très grand, indiquant que cette fonction est invalide // - pour les lois 2D def planes: retour de 0 // les infos nécessaires à la récupération , sont stockées dans saveResul // qui est le conteneur spécifique au point où a été calculé la loi virtual double HsurH0(SaveResul * saveResul) const {return ConstMath::tresgrand;}; // VARIABLES PROTEGEES : // CONSTRUCTEURS : // DESTRUCTEUR : // METHODES PROTEGEES : }; /// @} // end of group #endif