1 /*!
2  * \file   mfront/include/MFront/Castem/CastemTraits.hxx
3  * \brief
4  *
5  * \author Thomas Helfer
6  * \date   13/02/2007
7  * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
8  * reserved.
9  * This project is publicly released under either the GNU GPL Licence
10  * or the CECILL-A licence. A copy of thoses licences are delivered
11  * with the sources of TFEL. CEA or EDF may also distribute this
12  * project under specific licensing conditions.
13  */
14 
15 #ifndef LIB_MFRONT_CASTEMTRAITS_HXX
16 #define LIB_MFRONT_CASTEMTRAITS_HXX
17 
18 namespace castem{
19 
20   enum CastemBehaviourType{
21     STANDARDSTRAINBASEDBEHAVIOUR,
22     STANDARDFINITESTRAINBEHAVIOUR,
23     COHESIVEZONEMODEL
24   }; // end of enum CastemBehaviourType
25 
26   enum CastemSymmetryType{
27     ISOTROPIC,
28     ORTHOTROPIC
29   }; // end of enum CastemSymmetryType
30 
31   template<typename Behaviour>
32   struct CastemTraits{
33     static constexpr CastemBehaviourType btype = castem::STANDARDSTRAINBASEDBEHAVIOUR;
34     // size of the driving variable array (STRAN)
35     static constexpr unsigned short GradientSize = 0u;
36     // size of the thermodynamic force variable array (STESS)
37     static constexpr unsigned short ThermodynamicForceVariableSize = 0u;
38     static constexpr bool useTimeSubStepping = false;
39     static constexpr bool doSubSteppingOnInvalidResults  = false;
40     static constexpr unsigned short maximumSubStepping   = 0u;
41     static constexpr bool requiresStiffnessTensor        = false;
42     static constexpr bool requiresThermalExpansionCoefficientTensor = false;
43     static constexpr unsigned short propertiesOffset       = 0u;
44     static constexpr unsigned short material_properties_nb = 0u;
45     static constexpr unsigned short internal_variables_nb  = 0u;
46     static constexpr CastemSymmetryType stype = castem::ISOTROPIC;
47   }; // end of class CastemTraits
48 
49 } // end of namespace castem
50 
51 #endif /* LIB_MFRONT_CASTEMTRAITS_HXX */
52 
53