// ************************************************************************ // --- Logiciel MEF++ // --- // --- Copyright 1996-2006 GIREF, Université Laval // --- TOUS DROITS RÉSERVÉS // --- ALL RIGHTS RESERVED // --- // --- Ce logiciel est couvert par la Loi sur le droit d'auteur. // --- L'utilisation, ou la modification de ce logiciel sous toutes ses // --- formes, que ce soit code source ou code compilé, à des fins // --- personnelles et non commerciales sont autorisées sans frais pour // --- autant que la présente notice de copyright ainsi que cette // --- permission apparaissent dans toutes les copies ainsi que dans la // --- documentation. // --- Le GIREF et l'Université Laval ne prétendent en aucune façon que // --- ce code convient à un emploi quelconque. Celui-ci est distribué // --- sans aucune garantie implicite ou explicite. // ************************************************************************ #ifndef GeorgesVisco_TFCelluleViscoElastiqueMaxwellHPPEpsilonLin_INCLUS #define GeorgesVisco_TFCelluleViscoElastiqueMaxwellHPPEpsilonLin_INCLUS // *********************************************************************************************** // Nom du fichier: GeorgesVisco_TFCelluleViscoElastiqueMaxwellHPPEpsilonLin.h // // Nom de la classe: GeorgesVisco_TFCelluleViscoElastiqueMaxwellHPPEpsilonLin // // Sommaire: Terme de formulation pour une cellule visco élastique dans un modèle visco-élastique de Maxwell // avec élasticité linéaire 3D et l'hypothèse de linéarité en temps du tenseur des déformations !{!\epsilon!}!. // // Description: Terme de formulation calculant la contribution à la matrice et au résidu pour une cellule // visco élastique dans un modèle visco-élastique de Maxwell avec élasticité linéaire 3D. // L'hypothèse de linéarité en temps du tenseur des déformations !{!\epsilon!}! permet d'avoir // la forme suivante pour les contributions au résidu et à la matrice: //
// Matrice = !{!\int \boldsymbol{S}_{n+1}\epsilon(\delta u):\epsilon(v) dx.!}! //
// Résidu = !{! - \int \boldsymbol{S}_{n+1}\epsilon(u):\epsilon(v) - \boldsymbol{T}_{n+1}\epsilon(u_{p}):\epsilon(v) + \boldsymbol{I}_{n+1} * \sigma^4_{n}:\epsilon(v) dx.!}!
//
// où
//!{!\epsilon_{ij}(v) = \frac{1}{2}(\frac{\partial v_i}{\partial x_j} + \frac{\partial v_j}{\partial x_i})!}! // le tenseur des déformations (ordre 2)
// //!{!\boldsymbol{S}_{n+1}!}! le champ tensoriel O4 symétrique provenant l'integration du produit (termes à termes) du tenseur // d'élasticité et du tenseur du temps de relaxation
//!{!\boldsymbol{T}_{n+1}!}! le champ tensoriel O4 symétrique provenant l'integration du produit (termes à termes) du tenseur // d'élasticité et du tenseur du temps de relaxation
//!{!\boldsymbol{I}_{n+1}!}! le champ tensoriel O4 symétrique du temps de relaxation (exponentiel de l'intégrale en temps du // rapport de la viscosite et d'élasticité)
//!{!\boldsymbol\sigma^4_{n}!}! le champ des pseudo contraintes, un tenseur O4 avec symetries mineures seulement qui tient compte // de l'historique des contraintes dans la cellule. //!{!u = \delta u + u_p!}! le champ vectoriel3d des déplacements
//!{!v!}! le champ vectoriel3d des fonctions test
// // Attributs: // *aChampU Le champ de calcul // *aChampV Le champ associé aux fonctions test // *aChampUPrecedent: Le champ contenant les deplacements au pas precedent // *aChampPseudoSigmaO4Precedent: Le champ contenant le tenseur des pseudo contraintes au pas precedent // *aChampI: Le champ contenant le tenseur du temps de relaxation
// *aChampS: Le champ contenant le tenseur provenant l'integration du produit du tenseur d'élasticité
// et du tenseur du temps de relaxation
// *aVectInfoTransformation: Le * au vecteur d'information de transformation de l'élément de
// référence sur l'élément réel.
// *aVectInfoInterpolationNU: Le * au vecteur d'information d'interpolation du champ U.
// *aVectInfoInterpolationNV: Le * au vecteur d'information d'interpolation du champ V.
// *aVectInfoChampS Le * au vecteur d'information des valeurs du champ S.
// *aVectInfoChampI: Le * au vecteur d'information des valeurs du champ I.
// *aVectInfoChampPseudoSigmaPrecedent: Le * au vecteur d'information des valeurs du champ PseudoSigma.
//
// ***********************************************************************************************
#include "MEFPPUtil.h"
#include "TenseurO2Sym.h"
#include "TenseurO4Sym.h"
#include "TFGenerique.h"
class BlocVElem;
class BlocMElem;
class ChampGeometrique;
class ChampVectoriel3D;
class ChampTensorielO2Sym;
class ChampTensorielO4Sym;
class ChampTensorielO4SymMin;
class InfoLocalesTransformation;
class InfoLocalesInterpolation;
template