1 /*!
2  * \file   DDIF2Brick.hxx
3  * \brief
4  * \author Thomas Helfer
5  * \date   October,20 2014
6  * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
7  * reserved.
8  * This project is publicly released under either the GNU GPL Licence
9  * or the CECILL-A licence. A copy of thoses licences are delivered
10  * with the sources of TFEL. CEA or EDF may also distribute this
11  * project under specific licensing conditions.
12  */
13 
14 #ifndef LIB_MFRONT_DDIF2BRICKBEHAVIOURBRICK_HXX
15 #define LIB_MFRONT_DDIF2BRICKBEHAVIOURBRICK_HXX
16 
17 #include <memory>
18 #include "MFront/BehaviourBrickBase.hxx"
19 #include "MFront/BehaviourBrick/StressPotential.hxx"
20 
21 namespace mfront {
22 
23   namespace bbrick {
24 
25     // forward declaration
26     struct StressPotential;
27   }
28 
29   /*!
30    * This brick provides the DDIF2 damage behaviour as a basis to build complex
31    * behaviours.
32    */
33   struct DDIF2Brick : public BehaviourBrickBase {
34     /*!
35      * \brief constructor
36      * \param[in] dsl_ : calling domain specific language
37      * \param[in] bd_  : mechanical behaviour description
38      * \param[in] p    : parameters
39      * \param[in] d    : data
40      */
41     DDIF2Brick(AbstractBehaviourDSL&,
42                BehaviourDescription&,
43                const Parameters&,
44                const DataMap&);
45     //! \return the name of the brick
46     std::string getName() const override;
47     /*!
48      * \return the list of supported modelling hypotheses.
49      */
50     std::vector<Hypothesis> getSupportedModellingHypotheses() const override;
51     //! complete the variable description
52     void completeVariableDeclaration() const override;
53     //! method called at the end of the input file processing
54     void endTreatment() const override;
55     //! destructor
56     ~DDIF2Brick() override;
57 
58    protected:
59     std::shared_ptr<bbrick::StressPotential> ddif2;
60   };  // end of struct DDIF2Brick
61 
62 }  // end of namespace mfront
63 
64 #endif /* LIB_MFRONT_DDIF2BRICKBEHAVIOURBRICK_H */
65