//************************************************************************ // --- 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_ChampPseudoContraintesO4_DEJA_INCLUS #define GeorgesVisco_ChampPseudoContraintesO4_DEJA_INCLUS //******************************************************************** // Nom du fichier: GeorgesVisco_ChampPseudoContraintesO4.h // // Nom de la classe: GeorgesVisco_ChampPseudoContraintesO4 // // Sommaire: Classe calculant un champ de pseudo-contraintes (tenseur d'ordre 4 à symétries mineures) // en se servant d'une relation de de reccurence comme celle retrouvée dans un modèle visco-élastique // de Maxwell ou Kelvin-Voigt. // // Description: Ce champ calcul le tenseur des pseudo-contraintes à partir du champ des déplacements // au temps précédent et courant, de la pseudo-contrainte précédente et des tenseur d'ordre 4 // I et S. Dans le cas du modèle de Maxwell I et S dépendent du temps de relaxation et les pseudo-contraintes // contiennent l'historique des contraintes et servent au calcul des contraintes courantes. // //
// !{!\sigma_{ijkl} = S_{ijkl}(\epsilon_{kl}(U) -\epsilon_{kl}(UPrec)) + I_{ijkl}\sigma^{Prec}_{ijkl}\quad\text{sans\,sommation}!}! //
// Si on assigne pas le champ des deplacements au pas precedent on suppose une formulation incrementale. //
//!{! U !}! champ des deplacements (ou l'increment des deplacements si UPrec absent)
//!{! UPrec !}! champ des deplacements au temps precedent
//!{!I_{ijkh} !}! champ de tenseur d'ordre 4 symetrique
//!{!S _{ijkh} !}! champ de tenseur d'ordre 4 symetrique
//!{!\sigma^{Prec}_{ijkl}!}! champ de pseudo-contrainte au pas precedent
//!{!\epsilon_{kl}!}! champ des deformations
!{!\epsilon_{ij}=\frac{1}{2}(U_{i,j}+ U_{j,i})!}!
// Attributs: // ChampTensorielO4SymMin *aSigmaPrecedent // ChampTensorielO4Sym *aI // ChampTensorielO4Sym *aS // ChampVectoriel3D *aChampDeplacements // ChampVectoriel3D *aChampDeplacementPrecedents // //**************************************************************************************** #include "MEFPPUtil.h" #include "ChampAnalytiqueBaseDiscParElement.h" #include "ChampScalaireComposanteDiscontinu.h" #include "ChampTensO4SymMinDiscParElement.h" #include "TenseurO4SymMin.h" #include